Por que o Linux não é adotado como o kernel oficial do GNU?

128

Embora eu soubesse há algum tempo a existência do Hurd e sua missão como o kernel oficial do sistema operacional GNU, fiquei pensando como é que o Linux não é adotado como o kernel oficial do GNU ao longo dos anos, visto que está em um estado muito melhor que o Hurd?

O Linux tem, mais ou menos, desempenhado esse papel há mais de 20 anos, no entanto , pode-se ver que o Projeto GNU está mantendo distância quando se trata de Linux. Por que isso está acontecendo? É por causa de um sonho que Hurd (em algum momento no futuro) estará em um nível de qualidade de produção? É porque o projeto GNU não vê sua missão refletida tanto quanto deseja no Linux? É por outras razões políticas?

NlightNFotis
fonte
20
Tipo de pergunta "ilegal" aqui, mas interessante. Com um pouco de sorte ele fica protegido para "importância histórica", dado respostas suficientes brilhantes ... ;-)
Hauke Laging
2
@HaukeLaging Thanx mate. Eu também acho que essa é uma boa pergunta, e pode produzir respostas interessantes, e não consigo realmente entender por que alguém votaria atentamente. Estou certo de que isso é algo que muitas pessoas gostariam de saber.
N
1
Oh, isso é simples: Alguém teria apenas para apontar para o FAQ e gritar "off-topic" E "muito amplo" ...
Hauke Laging
5
@HaukeLaging Você é tão verdadeiro e gostaria que as pessoas fossem mais pragmáticas e pudessem reconhecer uma pergunta com algum valor, em vez de apenas apontar para o FAQ e gritar. Pode-se facilmente ver na Assim, as perguntas mais interessantes sendo fechado, só para perguntar ...
NlightNFotis
4
Acabei de reler o FAQ. IMHO isso está no tópico aqui. Embora seja uma meta-pergunta, a pergunta em si está relacionada ao Linux / Unix e é bastante clara.
Nils

Respostas:

151

O GNU não adotará algo como projeto, a menos que os desenvolvedores concordem com certas estipulações que vinculam todos os projetos oficiais do GNU.

Atualmente, o kernel do Linux provavelmente não se encaixa nessas restrições, e não há nada para Linus Torvalds, kernel.org, et al. ganhar ao se colocar sob o guarda-chuva do GNU e muito a perder - o acordo obrigatório mencionado acima e a percepção pública de que o kernel é agora um projeto do GNU, que teria um impacto principalmente negativo. A organização matriz do GNU, a Free Software Foundation (FSF), é uma organização política e Torvalds fez várias críticas públicas a ele e ao líder / fundador iconoclasta e controverso da vida do GNU e da FSF, Richard M. Stallman.

Além disso, o kernel do Linux não requer o espaço do usuário GNU, assim como o espaço do usuário GNU não exige o kernel do Linux. Essa independência deve ser considerada uma coisa boa pelos princípios básicos da engenharia de software, que favorecem a modularidade e o acoplamento mais flexível em oposição ao oposto (coisas monolíticas com acoplamento rígido).

Outro ponto contra essa idéia é que, embora o HURD possa não ser do interesse de tantas pessoas quanto o Linux, os desenvolvedores e usuários do HURD podem se opor a que seu projeto seja efetivamente descartado em um concurso de popularidade. E bom para eles; "uma competição" desse tipo é uma coisa positiva, ao passo que curvar-se à monopolização não é - você acaba com entidades maciças que sufocam a criatividade em parte porque são propensas ao controle monolítico / meglomaníaco. A Linux Foundation já é uma organização independente, e pode continuar assim.

Cachinhos Dourados
fonte
13
Obrigado pela resposta fantástica. +1 de mim e 2 notas: 1) Não me entenda mal: tenho uma opinião alta do Hurd. Eu sou um desenvolvedor ruim. No entanto (acredito que) não é discutível que o Linux seja um estado melhor. 2) Entendo por que o Linux não gostaria de ser associado ao GNU, mas pelo que vejo, é o Projeto GNU que demonstra as maiores objeções a isso. Você poderia elaborar isso?
NlightNFotis
14
@NlightNFotis: Você tem certeza de que é principalmente uma objeção ao GNU? Basta ler o seguinte: torvalds-family.blogspot.ca/2008/11/black-and-white.html . Para mim, parece que todos os envolvidos são muito mais felizes sem um relacionamento formal.
Goldilocks
Obrigado por esta postagem no blog. Isso faz mais sentido agora. Manterei a pergunta em aberto por algum tempo para ver se as pessoas elaboram respostas mais fantásticas e, caso contrário, a sua será selecionada como a "resposta" para essa pergunta. Apenas mais uma última "petição". Você se importaria em reformular, se eu posso dizer, o "você pode não ter uma opinião alta do HURD" porque isso me faz sentir um pouco desconfortável e me faz sentir mal comigo mesma.
NlightNFotis
4
Eu realmente gosto das idéias por trás de Hurd. O que me veio à cabeça: a tendência contínua para a virtualização pode se tornar uma grande ajuda para Hurd ver pelo menos uma parte do mundo real. Você não precisa de um sistema operacional completo para fazer com que alguém o use. Se você tiver alguns aplicativos com vantagens claras em rodar no Hurd, basta colocá-los em uma VM do Hurd. Semelhante ao chrooting, lxc ou qualquer outra coisa.
Hauke Laging
2
@NlightNFotis rephrased :)
goldilocks
77

Há muita documentação e discussão sobre isso na rede.

A resposta curta de que existem profundas diferenças ideológicas entre o projeto GNU e os projetos do kernel Linux, que impedem uma possível unificação.

O foco da FSF, a organização por trás do Projeto GNU, está na pureza ideológica com relação à idéia de software livre. Isso se baseia em grande parte na visão do fundador da FSF / GNU, Richard Stallman. Além disso, como os cachinhos dourados mencionaram, a FSF agora é principalmente uma organização de defesa política. Há muito tempo, a FSF não coloca recursos significativos no Projeto GNU, embora eles forneçam infraestrutura de suporte.

O projeto do kernel Linux tem uma postura muito mais pragmática sobre a liberdade de software, novamente em grande parte decorrente de seu fundador, Linus Torvalds. O projeto do kernel Linux é principalmente um projeto de software livre, composto por desenvolvedores de software especializados em desenvolvimento de kernel / OS e, em nenhum aspecto, uma organização de defesa política.

Como exemplos específicos de como essas ideologias se desenrolam na prática, considere

1) Que Stallman considera inaceitável o fato de o projeto Debian "anunciar" software não livre, mantendo a parte não livre de seu arquivo de software. Isso é irônico, já que o projeto Debian se concentra na liberdade de software que é bastante semelhante à FSF, embora não seja tão ideologicamente rígida.

2) Que o kernel do Linux permite que módulos binários (não livres) do kernel sejam usados ​​com o kernel. Embora os desenvolvedores do kernel não estejam entusiasmados com isso, eles toleram, mas é difícil imaginar a FSF fazendo isso.

Também é importante notar que a tentativa de Stallman de nomear os sistemas operacionais baseados no kernel Linux como GNU / Linux provavelmente não melhorou as relações entre a FSF e a comunidade de kernel Linux, embora eu não tenha dados específicos sobre isso.

Além de qualquer outra coisa, como o goldilocks menciona, a FSF tem várias regras às quais um projeto GNU deve estar em conformidade. Isso inclui a atribuição de direitos autorais de todo o código à FSF. Isso por si só seria um rompimento de acordos, uma vez que Linus Torvalds nunca exigiu tal atribuição de direitos autorais. Portanto, se o kernel Linux se tornar parte do projeto GNU, todas as contribuições significativas para o kernel Linux deverão ter seus direitos autorais atribuídos à FSF. Dada a idade e o tamanho do projeto, e o número de colaboradores, isso é basicamente impossível. Projetos muito menores e mais jovens (por exemplo, Mercurial) descobriram que o software relicensing uma tarefa assustadora.

Observe que esta resposta não é de forma alguma uma crítica aos desenvolvedores do kernel da FSF ou Linux. Ambos os lados têm seus próprios pontos de vista válidos. No entanto, a realidade da situação é que eles são, em certa medida, pontos de vista incompatíveis.

Faheem Mitha
fonte
4
+1 Gostei desta resposta. Informações sólidas sobre o assunto. Agradeço sua opinião.
NlightNFotis
1
Vale a pena notar que em muitos países da Europa a 'atribuição de direitos autorais' não é legalmente possível. Existem outras possibilidades (contrato de contribuição), mas a atribuição de direitos autorais pode não ser legalmente possível - não apenas tecnicamente.
Maciej Piechotka
1
@FaheemMitha, não pela definição do GNU, porque os blobs binários certamente fazem parte do kernel; eles são distribuídos no código-fonte do kernel e incorporados aos binários do kernel e exigidos para que funcionem.
Psusi
8
Ahh, os drivers proprietários são outra coisa que o GNU se opõe. Esse foi um dos motivos da GPLv3; impedir que módulos proprietários sejam vinculados a código livre, mesmo em tempo de execução, e por que o Linux optou por permanecer na GPLv2.
Psusi 28/04
1
@vonbrand, se você concorda com isso ou não, é irrelevante; é a posição da FSF e, por causa disso, o Linux nunca poderia ser um projeto GNU.
Psusi
35

Estou citando um comentário de Richard Stallman , sobre a decisão de rolar com o Hurd ao invés do Linux.

Às vezes, as pessoas perguntam: `` Por que a FSF desenvolveu um novo kernel livre em vez de usar o Linux? ''. A resposta, resumidamente, é que essa não é a pergunta que enfrentamos.

Quando começamos a desenvolver o Hurd em 1990, a pergunta que se colocava era: `` Como podemos obter um kernel gratuito para o sistema GNU? '' Não havia nenhum kernel livre do tipo Unix na época e não sabíamos de outro plano para escrever. 1. A única maneira de esperar um kernel gratuito era escrevê-lo. Então começamos.

Ouvimos falar do Linux após seu lançamento. Naquele momento, a pergunta que enfrentamos era: `` Devemos cancelar o projeto Hurd e usar o Linux? ''

Ouvimos dizer que o Linux não era de todo portátil (isso pode não ser verdade hoje, mas foi o que ouvimos então). E ouvimos dizer que o Linux era arquitetonicamente parecido com o kernel Unix; nosso trabalho estava levando a algo muito mais poderoso.

Dados os anos de trabalho que já tínhamos colocado no Hurd, decidimos finalizá-lo em vez de jogá-los fora.

Se enfrentássemos a pergunta que as pessoas fazem --- se o Linux já estava disponível, e estávamos pensando em começar a escrever outro kernel --- não o faríamos. Em vez disso, escolheríamos outro projeto, algo para fazer um trabalho que nenhum software livre existente pode fazer.

Mas nós começamos o Hurd, naquela época, e agora o fizemos funcionar. Esperamos que sua arquitetura superior torne os sistemas operacionais gratuitos mais poderosos.

NlightNFotis
fonte
7
Apesar das respostas fantásticas já fornecidas à pergunta, selecionarei essa resposta como a canônica da pergunta, pois demonstra a lógica por trás da escolha de manter o Hurd, diretamente do criador do Projeto GNU, Richard Stallman.
NLNFotis
9
Observe "isso pode não ser verdade hoje" - a opinião do RMS sobre o Linux parece ser baseada em boatos, não em conhecimento.
Martin Schröder
19
@ Martin: (Resposta tardia, mas :) Quando o Torvalds anunciou o Linux, ele era específico para x86, com zero planos de torná-lo portátil. No tópico inicial, Linus disse "eu diria que é impossível portar". Portanto, a rms não tinha motivos para acreditar que o Linux se tornaria o que tem hoje. Evidências da boca do líder do projeto dificilmente são ouvidas.
Kevin Cathcart
@KevinCathcart: A RMS / FSF deveria ter estudado o código por conta própria, em vez de confiar em outras pessoas ("ouvimos").
Martin Schröder
21
@ MartinSchröder: Por que estudar o código quando o Líder do Projeto disse explicitamente que não seria portátil? De qualquer forma, o Linux foi anunciado em 1991. Demorou até abril de 1994 (versão 1.1.45) antes do Linux adicionar as pastas para as portas de arquitetura. Levaria mais tempo antes que qualquer porta fosse prática. Se a FSF tomasse a decisão de continuar o Hurd em 1992 ou 1993, analisar o código apenas reforçaria que o código não era portátil.
Kevin Cathcart
4

Estou apenas adicionando meus 2 centavos aqui, acho que o que foi discutido neste momento faz muito sentido, mas há um aspecto importante que acho que pode realmente polarizar a fundação GNU e é o fato de o Linux estar se tornando cada vez mais mais um lugar em que grandes empresas estão investindo dinheiro e tempo reais, a ideia de que o linux é um projeto caseiro não é verdade, nem um pouco, talvez haja algum cara aleatório tentando chamar a atenção em cena, dando uma remendar, mas, em grande parte, o linux é um trabalho para empresas.

user2384250
fonte
1
Não acho que a FSF tenha um problema com o suporte corporativo a projetos de software. Seu foco principal é nos princípios do software livre.
Faheem Mitha
O domínio corporativo era uma grande preocupação que o GNU GPL pretendia resolver. O software licenciado permissivamente era, na verdade, procedimento normal no MIT e em Berkeley, mas, uma vez comercializado, o código foi prontamente fechado. Por exemplo, eu poderia verificar a fonte do Linux hoje e todas as melhorias desenvolvidas comercialmente beneficiarão meu projeto em potencial. Ou meu próximo projeto pessoal pequeno pode usar apenas alguns blocos, o ponto é que qualquer melhoria lançada beneficia quem trabalha com o código a seguir.
JM Becker
-6

O Linux não pode ser Unix, pois o Linux não está em conformidade com o Posix .

Portanto, mesmo sem problemas políticos, o Linux não pode cumprir a meta de design do Hurd.

Cite : "O Hurd é o substituto do projeto GNU para o UNIX, um popular kernel do sistema operacional".

Surpreendente, que exista um Debian / Hurd-Projekt . Mas essa é possivelmente uma história diferente ...

BTW: Windows (desde NT / XP) também é baseado no kernel do MACH.

Nils
fonte
8
Se você pretende afirmar que o Linux não é compatível com POSIX, precisará fazer um backup disso um pouco. Incluindo onde a FSF diz que eles exigem um kernel absolutamente 100% compatível com POSIX. A propósito, o Unix não é POSIX. O Unix (marca registrada) é um sistema operacional proprietário específico, portanto, é óbvio que nenhum outro sistema operacional pode ser esse sistema operacional.
Psusi
6
Citação para o kernel do Windows ser baseado no MACH? A Wikipedia diz que eles compartilham algumas opções de design; mas com o MACH sendo o microkernel prototípico, enquanto a maioria dos serviços do sistema operacional Windows é executada no kernel, não na terra do usuário. O único componente principal do OSS no kernel do Windows que eu conheço era a pilha de rede que costumava ser baseada na implementação do BSD; no entanto, foi arrancado e substituído por um que melhor se relacionasse com o restante do design do sistema operacional várias versões atrás (IIRC no XP ou 2k).
21413 Dan Neely
14
Mas o GNU também não é o Unix.
29613 Simon
6
@ Nils, a pergunta que você vinculou contradiz sua posição e não a apoia.
Psusi 29/04
8
@ Nils, o absurdo de Mach é outro pouco do equívoco popular. NT não tem nada em comum com mach. Seus "servidores de subsistema" não são diferentes dos daemons unix, que não formam um microkernel. Originalmente, o gui era implementado no modo de usuário, e isso tinha apenas uma semelhança passageira com um sistema de microkernel (embora o Xwindows também não faça do Linux um microkernel), mas isso foi descartado no NT4 e movido para o kernel.
Psusi 29/04