Debate Tanenbaum–Torvalds

debate respecto al núcleo Linux

El debate Tanenbaum-Torvalds es un debate entre Andrew S. Tanenbaum y Linus Torvalds, en relación con el núcleo Linux, y la arquitectura de núcleos en general. Tanenbaum comenzó el debate en 1992, en el grupo de discusión de Usenet: comp.os.minix,[1]​ argumentando que los micronúcleos son superiores a los núcleos monolíticos, y por tanto, Linux era —incluso en 1992— obsoleto. Otros hackers notables, como David S. Miller y Theodore Ts'o se unieron al debate.[2]

El debate se ha considerado en ocasiones como una guerra de flames.

Dicho tema fue retomado en 2006 luego de que Tanenbaum escribiera una noticia de primera página para Computer Magazine, titulada «¿Podemos hacer más seguros y confiables a los sistemas operativos?».[3]​ Si bien Tanenbaum ha mencionado que no escribió el artículo para renovar el debate acerca del diseño del kernel,[4]​ la yuxtaposición del artículo y una copia archivada del debate de 1992, en el sitio de tecnología Slashdot, causaron que el tema se reavivara.[5]​ Torvalds publicó una refutación a los argumentos de Tanenbaum, a través de un foro de discusión en línea,[6]​ y muchos sitios de noticias tecnológicas comenzaron a reportar este asunto.[7]​ Esto estimuló a Jonathan Shapiro a responder que la mayoría de los sistemas computacionales probados y seguros utilizan un enfoque basado en micronúcleos.[8]

El debate editar

 
Vista gráfica general de un núcleo monolítico.
 
Dr. Andrew S. Tanenbaum (llamado «ast», en comp.os.minix)
 
Linus Torvalds

Aunque el debate comenzó de forma relativamente moderada, con ambas partes involucradas haciendo solo declaraciones triviales acerca del diseño del kernel, se tornaría progresivamente más detallado y sofisticado con cada ronda. Además del diseño del kernel, el debate se ramificó hacia otros temas distintos, tales como qué arquitectura de microprocesador vencería a otras en el futuro. Además de Tanenbaum y Torvalds, muchas otras personas se unieron al debate, incluyendo a Peter MacDonald, un antiguo desarrollador del núcleo Linux, y creador de una de las primeras distribuciones: Softlanding Linux System. David S. Miller, uno de los desarrolladores centrales del núcleo Linux, y Theodore Ts'o, el primer desarrollador norteamericano del núcleo Linux.

«Linux es obsoleto» editar

El primer acontecimiento en el debate se registró el 29 de enero de 1992, cuando Tanenbaum publicó esta crítica acerca del núcleo Linux en comp.os.minix, indicando cómo el diseño monolítico era perjudicial para sus habilidades, en una publicación titulada «Linux es obsoleto».[1]​ Si bien inicialmente no se adentró en detalles técnicos para explicar por qué sentía que el diseño de microkernel era mejor, sí sugirió que estaba mayormente relacionado con la portabilidad, arguyendo que el núcleo Linux estaba estrechamente ligado a la línea de procesadores x86, para ser de uso en el futuro, ya que la arquitectura sería sustituida para ese entonces. Para poner las cosas en perspectiva, mencionó cómo escribir un kernel monolítico en 1991 era «un gran paso, de vuelta a los setentas».

Ya que esta crítica fue publicada en un grupo de noticias, Torvalds fue capaz de responder a ella directamente. Lo hizo tan solo un día después, indicando que MINIX tenía fallas de diseño intrínsecas —nombrando la falta de multithreading, como un ejemplo específico—, a la vez que reconocía encontrar el diseño de microkernel superior «desde un punto de vista teórico y estético».[9]

También aseveró que ya que él desarrollaba el núcleo Linux en su tiempo libre, y lo brindaba gratuitamente (el MINIX de Tanenbaum no era gratuito en ese entonces), Tanenbaum no debía poner reparos a sus esfuerzos. Además, mencionó cómo desarrolló Linux especialmente para el Intel 80386, ya que estaba pensado, en parte, como un ejercicio de aprendizaje para Torvalds mismo; si bien admitió que esto hacía el kernel menos portable que MINIX, aseguró que esto era un principio de diseño aceptable, ya que hizo la interfaz de programación de aplicaciones más simple y más portable. Por tal motivo, expresó: «Linux es más portable que MINIX».

 
Esquema del funcionamiento de un micronúcleo.

Siguiendo la respuesta de Linus, Tanenbaum argumentó que las limitaciones de MINIX tenían que ver con el hecho de que él fuese profesor, manifestando el requerimiento de que el sistema pudiese ser ejecutado en el hardware limitado del estudiante promedio, el cual observó, era una computadora basada en Intel 8088, en ocasiones incluso sin un disco duro.[10]​ Linux era, en aquel momento, construido específicamente para el Intel 80386, un procesador significativamente más poderoso y costoso. Tanenbaum también declaró específicamente:

[…] cerca de un año atrás, existían dos versiones (de MINIX), una para la PC (diskettes de 360K) y una para la 286/386 (1.2M). La versión de PC vendía más que la versión 286/386, en proporción de 2 a 1.

Señaló que a pesar de que Linux era gratuito, no sería una opción viable para sus estudiantes, ya que no serían capaces de pagar el costoso hardware requerido para ejecutarse, y que MINIX podía ser utilizado en una «PC 4.77 MHz convencional, sin disco duro». A esto, Kevin Brown, otro usuario del grupo Usenet, respondió que Tanenbaum no debería quejarse acerca de las ataduras de Linux a la arquitectura 386, pues esto era el resultado de una decisión consciente, en vez de una falta de conocimiento acerca de diseño de sistemas operativos, y aseguró:

[…] una meta explícita de diseño para Linux era tomar ventaja de las características especiales de la arquitectura 386. Entonces, ¿a qué te refieres? Diferentes metas en el diseño otorgan distintos diseños.[11]

También indicó que diseñar un sistema específicamente para hardware económico causaría que tuviese problemas de portabilidad en el futuro. A pesar del hecho de que MINIX no era completamente compatible con el nuevo hardware, Tanenbaum argumentó que dado que la arquitectura x86 sería superada por otros diseños de arquitecturas en el futuro, él no necesitaba abordar esta cuestión, apuntando:

Por supuesto que dentro de cinco años todo será distinto, pero dentro de cinco años todos utilizarán GNU en sus 200 MIPS, 64M SPARCstation-5.

Afirmó que el núcleo Linux eventualmente dejaría de ser del gusto de los usuarios, en la medida en que el hardware progresara, a causa de estar estrechamente ligado a la arquitectura 386.[10]​ (Véase la sección Predicciones erróneas para un detallado reporte sobre esta afirmación).

Torvalds intentó dar fin a la discusión en este punto, expresando que sentía haber reaccionado de forma exagerada a las declaraciones iniciales de Tanenbaum, y que le escribiría un correo electrónico personal para disculparse.[12]​ Sin embargo, continuaría con el debate más adelante.

Secuelas editar

A pesar de este debate, Torvalds y Tanenbaum parece que continúan en buenos términos; Torvalds desea dejar en claro que no guarda negatividad contra Tanenbaum, y este último remarca que los desacuerdos acerca de cuestiones técnicas no deberían considerarse como disputas personales.[13]

Predicciones erróneas editar

Cuando este asunto y el debate completo fueron publicados en el libro de O'Reilly Media, Open Sources: Voices from the Open Source Revolution en 1999, se expresó que el debate ejemplifica «la manera en que el mundo pensaba acerca del diseño de sistemas operativos en ese entonces».[13]

El procesador 386 era entonces el chip más común, de acuerdo al participante Kevin Brown, mientras que el 486 se utilizaba en computadoras de alta gama, y el 286 era prácticamente obsoleto, y la World Wide Web no era utilizada aún extensamente. Uno de los argumentos de Tanenbaum contra Linux fue que estaba estrechamente ligado a la línea de procesadores x86, lo que afirmó no ser «el camino a seguir».[1]​ No obstante, hasta 2011, el x86 y su extensión compatible con versiones anteriores, el x86-64, se mantienen como las arquitecturas de CPU abrumadoramente dominantes en la computadoras de escritorio. Linux ha sido portado a muchos otros procesadores y arquitecturas, incluyendo ARM, AVR32, Alpha, IA-64, 680x0, MIPSPOWER/PowerPC, y SPARC.

Otro tema recurrente en el debate trata sistemas como GNU y 4.4BSD. Tanenbaum sugirió la primera en su primera publicación, asegurando que a diferencia de Linux, se trataba de un sistema «moderno».[1]​ En su segunda publicación, mencionó:

[…] dentro de cinco años todos estarán ejecutando GNU libre en sus MIPS 200, 64M SPARCstation-5.[10]

Muchos participantes disintieron con que GNU fuese una alternativa adecuada. Kevin Brown lo llamó vaporware, y aseveró que Linux sin duda se beneficiaría de la arquitectura x86, la cual continuaría siendo común y se volvería más accesible para el público general. Theodore Ts'o, un antiguo contribuidor de Linux, dijo que mientras un enfoque basado en un microkernel tendría beneficios, «[…] Linux está aquí, a diferencia de GNU: y la gente ha estado trabajando en Hurd durante mucho más tiempo que el que Linus ha estado trabajando en Linux».[14]​ Torvalds, consciente de los esfuerzos de GNU por crear un nuevo kernel, declaró:

Si el núcleo GNU hubiese estado listo la primavera pasada, no me hubiese molestado siquiera en comenzar mi proyecto: el hecho es que no estaba, y aún no lo está.[15]

4.4BSD-Lite no estaría disponible hasta dos años más tarde, debido a la demanda entre USL y BSDi, presentada por la subsidiaria de AT&T: Unix System Laboratories, en contra de Berkeley Software Design, que pertenecía a la propiedad intelectual relacionada con UNIX. La demanda retardó el desarrollo de los descendientes de software libre de BSD, durante casi dos años, mientras su estatus legal estaba en duda. Ya que Linux no tenía tal ambigüedad legal, los sistemas basados en él consiguieron más apoyo. Un acuerdo ente USL y BSDi fue alcanzado en enero de 1994, y 4.4BSD fue lanzado en junio. (Mientras que la versión final fue lanzada en 1995, muchas versiones gratuitas basadas en esta versión han sido mantenidas desde entonces, incluyendo a FreeBSD, OpenBSD y NetBSD).

El incidente Samizdat editar

El 23 de marzo de 2004, Kenneth Brown, presidente de Alexis de Tocqueville Institution, entrevistó a Tanenbaum. Este fue el preámbulo a la publicación de un libro, autoría de Brown, titulado Samizdat: And Other Issues Regarding the 'Source' of Open Source Code. El libro asegura que Linux fue inicialmente copiado ilegalmente de MINIX. Tanenbaum publicó una fuerte refutación, defendiendo a Torvalds,[16]​ y manifestó en aquel momento:

Me gustaría terminar aclarando unas cuantas ideas erróneas, y también corrigiendo un par de errores. Primero, yo no estoy enemistado con Linus: honestamente. Él tampoco está enojado conmigo. No soy un «mal perdedor», quien siente haber sido eclipsado por Linus. MINIX fue solo un pasatiempo divertido para mí. Soy un profesor. Enseño y hago investigaciones, escribo libros y voy a conferencias, hago lo que corresponde a un profesor. Me gusta mi trabajo, disfruto de mis estudiantes y de la universidad. […] Escribí MINIX porque quería que mis alumnos tuviesen experiencia práctica jugando con un sistema operativo. Después de que AT&T prohibió enseñar con el libro de John Lions, decidí escribir un sistema operativo tipo UNIX para que mis estudiantes lo utilizaran. […] No intentaba reemplazar a GNU/HURD o a Berkeley UNIX. Dios sabe, lo he dicho en suficientes ocasiones. Solo quería mostrarles a mis alumnos y a otros estudiantes cómo se puede escribir un sistema operativo tipo UNIX utilizando tecnología moderna. Muchas otras personas querían un UNIX de libre producción, con muchas características irrelevantes, y querían convertir a MINIX en eso. Fue arrastrado por la corriente hacia eso, durante algún tiempo, pero entonces Linux apareció. De hecho me sentí aliviado por poder regresar a ejercer como maestro. […] Linus parece estar haciendo un excelente trabajo, y le deseo mucho éxito en el futuro. A pesar de que escribir MINIX fue muy divertido, no lo considero como lo más importante que he hecho. Fue más una distracción que otra cosa. Lo más importante que he hecho es producir un número increíble de buenos estudiantes, especialmente alumnos de doctorado. Visiten mi página personal para conocer la lista. Han hecho cosas fantásticas. Estoy tan orgulloso como una madre. En la medida en que Linus puede contarse como mi estudiante estoy orgulloso de él, también. A los profesores les gusta cuando sus estudiantes obtienen mayor gloria.[17]

Referencias editar

  1. a b c d "LINUX is obsolete". (Google Groups).
  2. Cabe notar que se en la discusión original se observan comentarios de alguien llamado Ken Thompson; sin embargo, no es la misma persona que Kenneth Lane Thompson, el pionero de UNIX.
  3. Tanenbaum, A. S. (mayo de 2006). «Can We Make Operating Systems Reliable and Secure?». IEEE Computer Society (5 edición) 39: 44-51. doi:10.1109/MC.2006.156. Archivado desde el original el 29 de junio de 2011. Consultado el 26 de noviembre de 2006. 
  4. Tanenbaum, A. S. (mayo de 2006). Vrije Universiteit Amsterdam, ed. «Tanenbaum-Torvalds Debate: Part II». Consultado el 14 de enero de 2007. 
  5. “bariswheel”, “Hemos” & Slashdot contributors (mayo de 2006). Slashdot, ed. «Microkernel: The Comeback?». Consultado el 14 de enero de 2007. 
  6. Torvalds, L. (mayo de 2006). Real World Technologies, ed. «Hybrid kernel, not NT». Consultado el 30 de noviembre de 2006. 
  7. diegocgteleline.es, ScuttleMonkey & Slashdot contributors (10 de mayo de 2006). Slashdot, ed. «Torvalds on the Microkernel Debate». Consultado el 21 de mayo de 2008. 
  8. Jonathan Shapiro (11 de mayo de 2006). coyotos.org, ed. «Debunking Linus's Latest». Archivado desde el original el 11 de mayo de 2008. Consultado el 21 de mayo de 2008. 
  9. "Re: LINUX is obsolete". (Google Groups).
  10. a b c "LINUX is obsolete". (Google Groups).
  11. "RE: LINUX is obsolete". (Google Groups).
  12. "Apologies (was Re: LINUX is obsolete)". (Google Groups).
  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 (enero de 1999). «The Tanenbaum-Torvalds Debate». En O'Reilly Media, ed. Open Sources: Voices from the Open Source Revolution. ISBN 1-56592-582-3. «When Linus himself heard that we were including this, he wanted to make sure that the world understood that he holds no animus towards Tanenbaum and in fact would not have sanctioned its inclusion if we had not been able to convince him that it would show the way the world was thinking about OS design at the time. » 
  14. "Re: LINUX is obsolete". (Google Groups).
  15. "Re: LINUX is obsolete". (Google Groups).
  16. Tanenbaum, Andrew S.. «Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.5». Consultado el 21 de mayo de 2008. 
  17. Tanenbaum, Andrew S.. «Ken Brown's Motivation». Consultado el 25 de diciembre de 2007. 

Enlaces externos editar