Saltar para o conteúdo

Debate entre Tanenbaum e Torvalds

Origem: Wikipédia, a enciclopédia livre.

O Debate entre Tanenbaum e Torvalds foi uma discussão entre Andrew S. Tanenbaum e Linus Torvalds, em relação à arquitetura do núcleo Linux e dos núcleos dos sistemas operacionais em geral. Tanenbaum começou o debate em 1992 no grupo de discussão da Usenet comp.os.minix,[1] argumentando que os micronúcleos são superiores aos núcleos monolíticos e que, portanto, o Linux era, já em 1992, obsoleto. Outros hackers notáveis como David S. Miller e Theodore Ts'o somaram-se ao debate.[2]

O debate foi considerado algumas vezes como sendo uma flame war.

O tema foi revisitado em 2006 após Tanenbaum ter escrito uma matéria para a revista Computer intitulada "Can We Make Operating Systems Reliable and Secure?" ("Podemos fazer sistemas operacionais confiáveis e seguros?").[3] Apesar do próprio Tanenbaum ter mencionado que não havia escrito o artigo para renovar o debate sobre o desenho do núcleo,[4] a justaposição do artigo e de uma cópia arquivada do debate de 1992 no site de tecnologia Slashdot provocou a retomada do assunto .[5] Torvalds refutou os argumentos de Tanenbaum em uma mensagem em um fórum de discussão online,[6] e vários novos sites de tecnologia começaram a cobrir a questão.[7] Isso fez com que Jonathan Shapiro respondesse que, na prática, a maioria dos sistemas operacionais mais confiáveis e seguros possuíam uma arquitetura do núcleo de tipo micro.[8]

Gráfico de um núcleo monolítico executado no espaço de usuário totalmente em modo supervisor.
Dr. Andrew S. Tanenbaum (chamado de 'ast' , no comp.os.minix)
Linus Torvalds

O debate teve um começo relativamente moderado, com ambas as partes envolvidas fazendo apenas afirmações banais sobre o desenho do núcleo, mas foi ficando progressivamente mais detalhado e sofisticada a cada rodada de posts. Além do desenho do núcleo, o debate ramificou-se em muitos outros tópicos, tais como qual arquitetura de microprocessador triunfaria sobre as outras no futuro. Além de Tanenbaum e Torvalds, várias outras pessoas se somaram ao debate, incluindo Peter MacDonald, um pioneiro desenvolvedor do núcleo Linux e criador de uma das primeiras distribuições do Linux, a Softlanding Linux System; David S. Miller, um dos principais desenvolvedores do núcleo Linux; e Theodore Ts'o, o primeiro desenvolvedor do Linux de origem norte-americana.

“O Linux é obsoleto”

[editar | editar código-fonte]

A primeira ocorrência deste debate remete ao dia 29 de janeiro de 1992, quando Tanenbaum primeiramente postou suas críticas ao núcleo Linux no comp.os.minix, notando como o desenho do núcleo monolítico agia em detrimento de suas habilidades, em um post intitulado LINUX is obsolete.[1] Embora ele não tenha inicialmente entrado em grandes detalhes técnicos para explicar o motivo pelo qual ele pensava que o micronúcleo era melhor, ele sugeriu que isso estivesse relacionado principalmente à portabilidade, argumentando que o núcleo Linux estava tão intimamente atado à linha de processadores x86 que não poderia ter qualquer uso no futuro, uma vez que essa arquitetura seria, então, suplantada. Para colocar as coisas em perspectiva, ele mencionou como escrever um núcleo monolítico em 1991 era "um gigantesco passo atrás em direção aos anos 1970"".

Uma vez que as críticas foram publicadas em um grupo de notícias público, Torvalds pôde respondê-las de maneira direta no dia seguinte, argumentando que o MINIX possuía algumas falhas inerentes de desenho (indicando a incapacidade da realização de multitarefa como exemplo específico), ao passo que reconhecia que acreditava que o desenho de um micronúcleo era superior de um ponto de vista "teórico e estético".[9] Ele também declarou que uma vez que ele estava desenvolvendo o núcleo Linux em seu tempo livre e distribuindo-o gratuitamente (o MINIX de Tanenbaum não era gratuito naquela época), Tanenbaum não deveria se opor a seus esforços. Além disso, ele mencionou como havia desenvolvido o Linux especificamente para os computadores Intel 80386 porque era em parte um exercício de aprendizagem para ele próprio; ao passo que reconheceu que isso fazia com que o núcleo em si tivesse menos portabilidade que o MINIX, ele sustentou que isso era um princípio de desenho aceitável, já que fez com que a interface de programação de aplicativos fosse mais simples e tivesse mais portabilidade. Por essa razão, ele declarou, "linux é mais portátil que o minix."

A arquitetura de um micronúcleo depende de programas servidores no espaço de usuário.

Após a resposta de Linus, Tanenbaum argumentou que as limitações do MINIX estavam relacionadas ao fato de ele ser um professor universitário, declarando que os requisitos para que o sistema funcionassem não deveriam ser superiores aos limitados hardwares do estudante comum, que ele notou que eram computadores do tipo Intel 8088, às vezes sem nem mesmo um disco rígido.[10] Naqueles anos, o Linux havia sido elaborado especificamente para os computadores Intel 80386, que possuíam um processador significativamente mais poderoso (e mais caro). Tanenbaum também disse especificamente que "[...] cerca de um ano atrás, havia duas versões [of MINIX], uma para os PCs (disquetes de 360K) e uma para os 286/386 (1.2M). A versão para PC vendia mais que a versão para 286/386 à razão de 2 por 1." Ele notou que ainda que o Linux fosse grátis, não seria uma escolha viável para seus estudantes, uma vez que eles não seriam capazes de adquirir o hardware exigido para seu funcionamento, e que o MINIX poderia ser usada em “um PC comum de 4.77 MHz PC sem disco rígido.” A isso, Kevin Brown, outro usuário do grupo Usenet, replicou que Tanenbaum não deveria queixar-se sobre o Linux estar preso à arquitetura dos computadores 386, já que isso era o resultado de uma escolha consciente e não a falta de conhecimento sobre o desenho dos sistemas operativos, apontando que "[...] um objetivo explícito de desenho do Linux foi para tirar vantagem dos atributos especiais da arquitetura dos computadores 386. Assim, qual é exatamente o seu ponto? Objetivos de desenho diferentes levam à desenhos diferentes."[11] Ele também destacou que conceber um sistema especificamente para hardwares baratos poderia acarretar problemas de portabilidade no futuro. Apesar do fato de que o MINIX não era inteiramente suportada por hardware mais novo, Tanenbaum argumentou que uma vez que a arquitetura x86 seria superada por outras concepções de arquitetura no futuro, ele não precisava tratar dessa questão, notando que "É claro que daqui a cinco anos será diferente, mas daqui a cinco anos todo mundo estará usando o GNU grátis em seus MIPS 200, 64M SPARCstation-5." Ele assinalou que o núcleo Linux eventualmente seria deixado de lado com o avanço no desenvolvimento de hardware, devido ao fato de estar tão intimamente relacionado à arquitetura 386.[10] (Ver a seção "Previsões equivocadas" para mais detalhes sobre isso.)

Torvalds tentou encerrar a discussão nesse ponto, declarando que ele sentia que não deveria ter exagerado em sua reação às considerações iniciais de Tanenbaum, e que estava escrevendo um e-mail pessoal para desculpar-se com ele.[12] Contudo, ele continuaria o debate posteriormente.

Consequências

[editar | editar código-fonte]

Apesar desse debate, Torvalds e Tanenbaum aparentam ter uma boa relação; Torvalds quer deixar claro que não há nenhuma animosidade com relação a Tanenbaum, e Tanenbaum sublinha que seus desacordos sobre as ideias ou questões técnicas não devem ser interpretadas como uma rivalidade pessoal.[13]

Previsões equivocadas

[editar | editar código-fonte]

Quando a questão e o debate inicial completo foram publicados no livro Open Sources: Voices from the Open Source Revolution da O'Reilly Media em 1999, foi dito que o debate exemplificava “a maneira que o mundo estava pensando a concepção dos sistemas operacionais naquela época”.[13]

O processador 386 era então, de longe, o chip mais difundido, de acordo com Kevin Brown, com o 486 usado em computadores de alta performance, e o 286 quase obsoleto, e a World Wide Web não era amplamente usada. Um dos argumentos de Tanenbaum contra o Linux era que era demasiadamente vinculado à linha de processadores x86, o qual ele havia declarado não ser “o caminho a se seguir”.[1] Contudo, até 2011, o x86 e suas extensões retroativas compatíveis x86-64 continuam a dominar totalmente a arquitetura dos computadores pessoais. O Linux foi "portado" para muitas outras arquiteturas de processador, includindo x86-64, ARM, AVR32, Alpha, IA-64, 680x0, MIPS, POWER/PowerPC, e SPARC.

Outro tópico recorrente no debate versa sobre as alternativas ao Linux e ao MINIX, como o GNU e o 4.4BSD. Tanenbaum sugeriu o GNU em seu primeiro post, assinalando que ao contrário do Linux, era um sistema "moderno”.[1] Em seu segundo post, ele mencionou que “[...] daqui a 5 anos, todo mundo estará usando o GNU grátis em seus 200 MIPS, 64M SPARCstation-5”.[10] Vário debatedores discordaram que o GNU fosse uma alternativa adequada. Kevin Brown o chamou de vaporware, e destacou que o Linux provavelmente se beneficiaria da arquitetura x86 que continuaria a ser comum e se tornaria mais acessível ao público em geral. Theodore Ts'o, um pioneiro contribuidor do Linux, disse que ainda que o micronúcleo tivesse vantagens, “[...] o Linux está aqui, e o GNU não — e as pessoas trabalharam no Hurd muito mais tempo que o Linus no Linux”.[14] Torvalds, sabendo dos esforços do GNU para criar um núcleo, apontou que “Se o núcleo GNU estivesse pronto na primavera passada, eu não teria me incomodado nem mesmo em começar meu projeto: o fato é que não estava e que ainda não está.”[15]

4.4BSD-Lite não estaria disponível até dois anos mais tarde devido à demanda judicial conhecida como USL v. BSDi, apresentada pela subsidiária da AT&T, Unix System Laboratories, contra a Berkeley Software Design, a qual pertencia a propriedade intelectual relativa ao UNIX. A demanda atrasou o desenvolvimento de descendentes free software do BSD por quase dois anos já que seu status legal estava em questão. Como o Linux não tinha essa ambiguidade legal, os sistemas baseados nele ganharam um apoio maior. Um acordo foi alcançado em janeiro de 1994, e o 4.4BSD foi lançado em junho. (Embora o lançamento final tenha sido em 1995, muitas versões gratuitas baseadas nessa versão foram mantidas desde então, includindo o FreeBSD, o OpenBSD e o NetBSD.)

O incidente Samizdat

[editar | editar código-fonte]

Em 23 de março de 2004, Kenneth P. Brown Jr., presidente da Alexis de Tocqueville Institution, entrevistou Tanenbaum. Isso foi um prelúdio para a publicação pendente de um livro de Brown intitulado Samizdat: And Other Issues Regarding the "Source" of Open Source Code. O livro afirmava que o Linux foi inicialmente copiado ilegalmente do MINIX. Tanenbaum publicou uma enérgica refutação, defendendo Torvalds,[16] e declarou à época:

Eu gostaria de encerrar esclarecendo algumas poucas concepções equivocadas e também corrigindo alguns erros. Em primeiro lugar, eu REALMENTE não estou bravo com Linus. DE VERDADE. Ele também não está bravo comigo. Eu não sou nenhum tipo de "mau perdedor" que sente ter sido eclipsado por Linus. O MINIX foi apenas um tipo de hobby divertido para mim. Eu sou um professor universitário. Eu ensino, faço pesquisas, escrevo livros, vou a conferências e faço coisas que professores universitários fazem. Eu gosto do meu trabalho e de meus estudantes e de minha universidade. [...] Eu escrevi o MINIX porque eu queria que meus estudantes tivessem a experiência de botar as mãos em um sistema operacional. Depois que a AT&T proibiu o ensino do livro de John Lions, eu decidi escrever um sistema do tipo UNIX para que meus alunos pudessem mexer. [...] Eu não estava tentando substituir o GNU/HURD ou o Berkeley UNIX. Deus sabe, eu disse isso um número suficiente de vezes. Eu apenas queria mostrar aos meus alunos e a outros estudantes como se podia escrever um sistema de tipo UNIX usando tecnologia moderna. Muitas pessoas queriam uma produção gratuita do UNIX com um monte de funcionalidades sofisticadas e exageradas e queriam converter o MINIX nisso. Eu fui arrastado por esse turbilhão por um tempo, mas quando o Linux progrediu, eu estava na verdade aliviado que eu podia voltar à docência. [...] Linus parece estar fazendo um excelente trabalho e eu lhe desejo sucesso no futuro.

Embora escrever o MINIX tenha sido divertido, eu realmente não vejo isso como a coisa mais importante que eu já tenha feito. Foi muito mais uma distração que qualquer outra coisa. A coisa mais importante que eu já fiz foi produzir um número de estudantes incrivelmente bons, especialmente estudantes de Ph.D. Veja a minha página para a lista. Eles fizeram coisas grandiosas. Eu estou tão orgulhoso como uma mãe estaria. Na medida em que Linus pode ser considerado meu aluno, eu estou orgulhoso dele também. Professores universitários gostam quando seus alunos alcançam glórias maiores.[17]

  1. a b c d A. S. Tanenbaum (29 de janeiro de 1992). «LINUX is obsolete». Grupo de notíciascomp.os.minix. 12595@star.cs.vu.nl. Consultado em 27 de novembro de 2006 
  2. Vale a pena ressaltar que comentários feitos por Ken Thompson também podem ser vistos na discussão original. Contudo, não se tratava de Kenneth Lane Thompson, conhecido pela sua influência no sistema operacional UNIX.
  3. Tanenbaum, A. S. (maio 2006). «Can We Make Operating Systems Reliable and Secure?». IEEE Computer Society. 39 (5): 44–51. doi:10.1109/MC.2006.156. Consultado em 26 de novembro de 2006 
  4. Tanenbaum, A. S. (maio 2006). «Tanenbaum-Torvalds Debate: Part II». Vrije Universiteit Amsterdam. Consultado em 14 de janeiro de 2007 
  5. “bariswheel”, “Hemos” & Slashdot contributors (maio 2006). «Microkernel: The Comeback?». Slashdot. Consultado em 14 de janeiro de 2007 
  6. Torvalds, L. (maio 2006). «Hybrid kernel, not NT». Real World Technologies. Consultado em 30 de novembro de 2006 
  7. diegocgteleline.es, ScuttleMonkey & Slashdot contributors (10 de maio de 2006). «Torvalds on the Microkernel Debate». Slashdot. Consultado em 21 de maio de 2008 
  8. Jonathan Shapiro (11 de maio de 2006). «Debunking Linus's Latest». coyotos.org. Consultado em 21 de maio de 2008. Arquivado do original em 11 de maio de 2008 
  9. L. Torvalds (29 de janeiro de 1992). «Re: LINUX is obsolete». Grupo de notíciascomp.os.minix. 1992Jan29.231426.20469@klaava.Helsinki.FI. Consultado em 28 de novembro de 2006 
  10. a b c A. S. Tanenbaum (30 de janeiro de 1992). «LINUX is obsolete». Grupo de notíciascomp.os.minix. 12615@star.cs.vu.nl. Consultado em 10 de janeiro de 2006 
  11. Kevin Brown (31 de janeiro de 1992). «RE: LINUX is obsolete». Grupo de notíciascomp.os.minix. 1992Jan31.074347.1198@menudo.uh.edu. Consultado em 7 de abril de 2007 
  12. L. Torvalds (30 de janeiro de 1992). «Apologies (was Re: LINUX is obsolete)». Grupo de notíciascomp.os.minix. 1992Jan30.153816.1901@klaava.Helsinki.FI. Consultado em 10 de janeiro de 2007 
  13. a b DiBona, Chris; Sam Ockman, Mark Stone, Brian Behlendorf, Scott Bradner, Jim Hamerly, Kirk McKusick, Tim O'Reilly, Tom Paquin, Bruce Perens, Eric Raymond, Richard Stallman, Michael Tiemann, Linus Torvalds, Paul Vixie, Larry Wall, Bob Young (janeiro 1999). «The Tanenbaum-Torvalds Debate». Open Sources: Voices from the Open Source Revolution. [S.l.]: O'Reilly Media. ISBN 1-56592-582-3. Quando Linus soube que havia sido incluído nisso, ele quis certificar-se que o mundo havia entendido que ele não nutria nenhuma animosidade em relação a Tanenbaum e que, na verdade, não sancionado sua inclusão se não tivéssemos sido capazes de convencê-lo que mostraria a maneira que o mundo estava pensando a concepção dos sistemas operacionais naquela época. 
  14. Theodore Y. Ts'o (31 de janeiro de 1992). «Re: LINUX is obsolete». Grupo de notíciascomp.os.minix. TYTSO.92Jan31164013@SOS.mit.edu. Consultado em 11 de maio de 2007 
  15. L. Torvalds (29 de janeiro de 1992). «Re: LINUX is obsolete». Grupo de notíciascomp.os.minix. 1992Jan29.231426.20469@klaava.Helsinki.FI. Consultado em 11 de maio de 2006 
  16. Tanenbaum, Andrew S. «Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.5». Consultado em 21 de maio de 2008 
  17. Tanenbaum, Andrew S. «Ken Brown's Motivation». Consultado em 24 de dezembro de 2007 

Ligações externas

[editar | editar código-fonte]