El debate Tanenbaum-Torvalds fue un debate escrito entre Andrew S. Tanenbaum y Linus Torvalds , sobre el núcleo Linux y la arquitectura del núcleo en general. Tanenbaum, el creador de Minix , inició el debate en 1992 en el grupo de discusión de Usenet comp.os.minix , argumentando que los micronúcleos son superiores a los núcleos monolíticos y que por lo tanto Linux estaba, incluso en 1992, obsoleto. [1] El debate a veces se ha considerado una guerra de llamas . [2]
Aunque el debate comenzó siendo relativamente moderado, con ambas partes involucradas haciendo sólo declaraciones banales sobre el diseño del núcleo, se fue haciendo progresivamente más detallado y sofisticado con cada ronda de publicaciones. Además del diseño del núcleo, el debate se ramificó en varios otros temas, como qué arquitectura de microprocesador ganaría sobre otras en el futuro. Además de Tanenbaum y Torvalds, varias otras personas se unieron al debate, incluyendo a Peter MacDonald , uno de los primeros desarrolladores del núcleo Linux y creador de una de las primeras distribuciones , Softlanding Linux System ; David S. Miller , uno de los desarrolladores principales del núcleo Linux; y Theodore Ts'o , el primer desarrollador norteamericano del núcleo Linux. [1]
El debate se abrió el 29 de enero de 1992, cuando Tanenbaum publicó por primera vez sus críticas al núcleo Linux en comp.os.minix , señalando cómo el diseño monolítico era perjudicial para sus capacidades, en una publicación titulada "LINUX está obsoleto". [1] Si bien inicialmente no entró en grandes detalles técnicos para explicar por qué sentía que el diseño del micronúcleo era mejor, sí sugirió que estaba principalmente relacionado con la portabilidad , argumentando que el núcleo Linux estaba demasiado vinculado a la línea de procesadores x86 como para ser de alguna utilidad en el futuro, ya que esta arquitectura sería reemplazada para entonces. Para poner las cosas en perspectiva, mencionó cómo escribir un núcleo monolítico en 1991 es "un paso gigante hacia atrás en la década de 1970".
Como la crítica se publicó en un grupo de noticias público, Torvalds pudo responder directamente. Lo hizo un día después, argumentando que MINIX tiene defectos de diseño inherentes (citando la falta de multihilo como un ejemplo específico), al tiempo que reconocía que considera que el diseño del núcleo con micronúcleo es superior "desde un punto de vista teórico y estético". [3] También afirmó que, dado que estaba desarrollando el núcleo Linux en su tiempo libre y lo estaba regalando (el MINIX de Tanenbaum no era gratuito en ese momento), Tanenbaum no debería oponerse a sus esfuerzos. Además, mencionó que desarrolló Linux específicamente para el Intel 80386 porque en parte estaba pensado como un ejercicio de aprendizaje para el propio Torvalds; aunque admitió que esto hacía que el núcleo en sí fuera menos portable que MINIX, afirmó que se trataba de un principio de diseño aceptable, ya que hacía que la interfaz de programación de aplicaciones fuera más sencilla y más portable. Por esta razón, afirmó, "Linux es más portable que Minix".
Tras la respuesta de Linus, Tanenbaum argumentó que las limitaciones de MINIX se relacionaban con su condición de profesor, y afirmó que el sistema debía poder ejecutarse en el hardware bastante limitado del estudiante medio, que, según señaló, era un ordenador basado en Intel 8088 , a veces incluso sin disco duro . [4] En aquel momento, Linux estaba diseñado específicamente para el Intel 386 , un procesador significativamente más potente (y caro). Tanenbaum también afirma específicamente que "... hace aproximadamente un año, había dos versiones [de MINIX], una para PC ( disquetes de 360K ) y otra para 286/386 (1,2M). La versión para PC se vendía más que la versión 286/386 en una proporción de 2 a 1". Señaló que aunque Linux era gratuito, no sería una opción viable para sus estudiantes, ya que no podrían permitirse el costoso hardware necesario para ejecutarlo, y que MINIX podría usarse en "una PC normal de 4,77 MHz sin disco duro ". A esto, Kevin Brown, otro usuario del grupo Usenet, respondió que Tanenbaum no debería quejarse de los vínculos de Linux con la arquitectura 386, ya que era el resultado de una elección consciente en lugar de una falta de conocimiento sobre el diseño de sistemas operativos, afirmando "... un objetivo de diseño explícito de Linux era aprovechar las características especiales de la arquitectura 386. Entonces, ¿cuál es exactamente su punto? Diferentes objetivos de diseño te llevan a diferentes diseños". [5] También afirmó que diseñar un sistema específicamente para hardware barato provocaría que tuviera problemas de portabilidad en el futuro. A pesar de que MINIX no soportaba completamente el nuevo hardware, Tanenbaum argumentó que, dado que la arquitectura x86 sería superada por otros diseños de arquitectura en el futuro, no necesitaba abordar el tema, señalando "Por supuesto, dentro de 5 años todo será diferente, pero dentro de 5 años todo el mundo estará ejecutando GNU gratuito en su SPARCstation -5 de 200 MIPS y 64M ". Afirmó que el núcleo Linux eventualmente pasaría de moda a medida que el hardware progresara, debido a que estaba tan estrechamente vinculado a la arquitectura 386. [4]
Torvalds intentó terminar la discusión en ese punto, afirmando que sentía que no debería haber reaccionado exageradamente a las declaraciones iniciales de Tanenbaum y que le estaba escribiendo un correo electrónico personal para disculparse. [6] Sin embargo, continuaría el debate en otro momento.
A pesar de este debate, Torvalds y Tanenbaum parecen tener una buena relación; Torvalds quiere dejar en claro que no siente ninguna animosidad hacia Tanenbaum, y Tanenbaum subraya que los desacuerdos sobre ideas o cuestiones técnicas no deben interpretarse como disputas personales. [2]
Cuando el tema y el debate inicial completo se publicaron en el libro de O'Reilly Media Open Sources: Voices from the Open Source Revolution en 1999, se afirmó que el debate ejemplificaba "la forma en que el mundo pensaba sobre el diseño de sistemas operativos en ese momento". [2]
Según el participante Kevin Brown, el procesador 386 era entonces el chip más extendido, "con una diferencia de varias veces", mientras que el 486 se utilizaba en ordenadores de gama alta, el 286 estaba casi obsoleto y la World Wide Web aún no se utilizaba ampliamente. Uno de los argumentos de Tanenbaum contra Linux era que estaba demasiado ligado a la arquitectura y al conjunto de instrucciones x86 , lo que consideraba un error. [1] El Linux moderno tiene ahora una base de código más portátil y ha sido adaptado a muchas otras arquitecturas de procesador.
Otro tema recurrente en el debate discute las alternativas a Linux y MINIX , como GNU (Hurd) y 4.4BSD . Tanenbaum sugirió lo primero en su primer mensaje, afirmando que a diferencia de Linux, era un sistema "moderno". [1] En su segundo mensaje, mencionó que "... dentro de 5 años todo el mundo estará ejecutando GNU gratuito en su SPARCstation-5 de 200 MIPS y 64M". [4] Varios debatientes no estuvieron de acuerdo en que GNU fuera una alternativa adecuada. Kevin Brown lo llamó vaporware y afirmó que Linux probablemente se beneficiaría de la arquitectura x86 que seguiría siendo común y se volvería más accesible para una audiencia general. Theodore Ts'o, uno de los primeros colaboradores de Linux, dijo que si bien un enfoque de microkernel tendría beneficios, "... Linux está aquí, y GNU no, y la gente ha estado trabajando en Hurd durante mucho más tiempo del que Linus ha estado trabajando en Linux". [7] Torvalds, consciente de los esfuerzos de GNU por crear un núcleo, afirmó: "Si el núcleo GNU hubiera estado listo la primavera pasada, no me habría molestado ni siquiera en comenzar mi proyecto: el hecho es que no lo estaba y todavía no lo está". [8]
4.4BSD-Lite no estaría disponible hasta dos años después debido a la demanda USL v. BSDi , interpuesta por la subsidiaria de AT&T, Unix System Laboratories , contra Berkeley Software Design , que se refería a la propiedad intelectual relacionada con UNIX . La demanda ralentizó el desarrollo de los descendientes de software libre de BSD durante casi dos años mientras su estatus legal estaba en duda. Como Linux no tenía tal ambigüedad legal, los sistemas basados en él ganaron mayor apoyo. Se llegó a un acuerdo entre USL v. BSDi en enero de 1994, y 4.4BSD se lanzó en junio. (Si bien el lanzamiento final fue en 1995, desde entonces se han mantenido varias versiones libres basadas en esta versión, incluidas FreeBSD , DragonFly BSD , OpenBSD y NetBSD ).
El 23 de marzo de 2004, Kenneth Brown , presidente de la Institución Alexis de Tocqueville , entrevistó a Tanenbaum. Esto fue un preludio a la publicación pendiente de un libro de Brown titulado Samizdat: And Other Issues Regarding the 'Source' of Open Source Code . El libro afirma que Linux fue inicialmente copiado ilegalmente de MINIX. Tanenbaum publicó una fuerte refutación, defendiendo a Torvalds, [9] y en un seguimiento escribió:
Me gustaría terminar aclarando algunos conceptos erróneos y corrigiendo también un par de errores. Primero, REALMENTE no estoy enojado con Linus. HONESTAMENTE. Él tampoco está enojado conmigo. No soy una especie de "mal perdedor" que se siente eclipsado por Linus. MINIX era sólo una especie de pasatiempo divertido para mí. Soy profesor. Doy clases, investigo, escribo libros, voy a conferencias y hago cosas que hacen los profesores. Me gusta mi trabajo, mis estudiantes y mi universidad. ... Escribí MINIX porque quería que mis estudiantes tuvieran experiencia práctica jugando con un sistema operativo. Después de que AT&T prohibiera enseñar a partir del libro de John Lions , decidí escribir un sistema tipo UNIX para que mis estudiantes jugaran con él. ... No estaba tratando de reemplazar GNU/HURD o Berkeley UNIX. Dios sabe que he dicho esto suficientes veces. Sólo quería mostrarles a mis estudiantes y a otros estudiantes cómo se puede escribir un sistema tipo UNIX usando tecnología moderna. Muchas otras personas querían un UNIX de producción libre con muchas funciones y querían convertir a MINIX en eso. Yo me dejé llevar por la vorágine durante un tiempo, pero cuando apareció Linux, me sentí aliviado de poder volver a dar clases. ... Linus parece estar haciendo un trabajo excelente y le deseo mucho éxito en el futuro.
Aunque escribir MINIX fue divertido, no lo considero realmente como lo más importante que he hecho en mi vida. Fue más una distracción que otra cosa. Lo más importante que he hecho es producir una cantidad de estudiantes increíblemente buenos, especialmente estudiantes de doctorado. Vean mi página de inicio para ver la lista. Han hecho grandes cosas. Estoy tan orgulloso como una gallina. En la medida en que Linus puede considerarse mi estudiante, también estoy orgulloso de él. A los profesores les gusta cuando sus estudiantes llegan a una mayor gloria. [10]
Este tema fue retomado en 2006 después de que Tanenbaum escribiera un artículo de portada para la revista Computer titulado "¿Podemos hacer que los sistemas operativos sean confiables y seguros?". [11] Si bien el propio Tanenbaum ha mencionado que no escribió el artículo para renovar el debate sobre el diseño del núcleo, [12] la yuxtaposición del artículo y una copia archivada del debate de 1992 en el sitio de tecnología Slashdot hizo que el tema se reavivara. [13] Torvalds publicó una refutación de los argumentos de Tanenbaum a través de un foro de discusión en línea , [14] y varios sitios de noticias de tecnología comenzaron a informar sobre el problema. [15] Esto impulsó a Jonathan S. Shapiro (desarrollador principal del microkernel EROS ) a responder que la mayoría de los sistemas informáticos confiables y seguros probados en el campo utilizan un enfoque más parecido al microkernel. [16]
En 2017, se reveló que Intel estaba ejecutando MINIX dentro del Management Engine , un procesador separado incorporado en los chipsets de procesadores Intel desde 2008. Como respuesta a esto, Tanenbaum escribió una carta abierta a Intel afirmando que MINIX era "el sistema operativo de computadora más utilizado en el mundo". [17]
Cuando el propio Linus se enteró de que íbamos a incluir esto, quiso asegurarse de que el mundo comprendiera que no tenía ningún rencor hacia Tanenbaum y, de hecho, no habría aprobado su inclusión si no hubiéramos podido convencerlo de que mostraría la forma en que el mundo pensaba sobre el diseño de sistemas operativos en ese momento.