- El Pensadero de Canek - https://aztlan.fciencias.unam.mx/~canek/pensadero -

Andy Tanenbaum

Yo quiero ser como Andy Tanenbaum cuando sea grande.

Andy Tanenbaum es un académico gringo que vive en Holanda dando clases, haciendo investigación y asesorando estudiantes de doctorado. En otras palabras, básicamente cumple al pie de la letra la definición de “académico”; pero quise poner exactamente qué significa ser académico porque mucha gente realmente no lo sabe.

También es autor de Minix, un “unixcito” que escribió para que sus estudiantes pudieran ver cómo implementar ciertos aspectos de un sistema operativo, y ha escrito de varios libros, principalmente de Sistemas Operativos y Redes, que se han convertido en libros de texto por omisión en casi todos los programas de Ciencias de la Computación en el mundo. Yo llevé dos de sus libros como libros de texto en clases de la Facultad (aunque lamentablemente los cursos no estuvieran a la altura de los libros).

Linus Torvalds ha dicho que uno de los libros de Tanenbaum, Operating Systems: Design and Implementation, fue el que lo inspiró a escribir el kernel de Linux. Entonces ha de haber sido algo medio feo que en enero de 1992, Tanenbaum haya enviado un mensaje al grupo de noticias comp.os.minix (en donde Linus había anunciado Linux unos meses antes), diciendo que Linux “era obsoleto”.

No lo decía en el cuerpo del mensaje, por cierto; lo decía en el título: “Linux is obsolete”.

El punto de Tanenbaum era que Linux utilizaba técnicas de sistemas operativos que venían de los setentas (y de los sesentas en algunos casos), y que por lo tanto estaba condenado al fracaso porque los sistemas operativos “modernos” iban a utilizar técnicas novedosas que harían que nadie quisiera usar Linux. En particular, Tanenbaum se quejó amargamente de que Linux fuera un kernel de diseño monolítico, cuando “todo mundo” sabía que los microkernels eran el camino que había que seguir.

Un kernel monolítico compila todo dentro de sí, y un microkernel (como su nombre lo indica) es un kernel chiquitito que se limita a lo más básico que tenga que ver con el hardware, dejando casi todo lo demás en programas en el espacio de usuario (que suelen llamarse “servidores”). Incluyendo cosas como el manejo de memoria, el manejo de procesos y los sistemas de archivos. La idea es que de esta forma se protege el sistema operativo: si un sistema de archivos falla, el sistema puede seguir corriendo e incluso “reiniciar” el servidor del sistema de archivos. En 1992 el comentario de Andy era verdad: todo mundo creía que los kernels del futuro serían microkernels.

Linus, siendo como es, le respondió a Andy diciéndole que en primer lugar se había puesto a escribir Linux como hobby; que en segundo lugar, Minix era de chocolate (que lo era; Andy mismo siempre lo dijo); y que en tercer lugar podría utilizar técnicas obsoletas, pero al menos funcionaba (refiriéndose a que GNU/Hurd y BSD para motivos prácticos no existían en ese momento).

La cosa rápidamente degeneró en el famoso debate Tanenbaum-Torlvads [1], una de las flame wars más famosas que han existido, porque aunque indudablemente una flame war, el nivel de discusión se mantuvo bastante elevado la mayor parte del tiempo.

En algún punto del debate, Tanenbaum le dijo a Linus:

“I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)”

Para lo que importe, Andy no le dijo a Linus que lo reprobaría; sólo le dijo que no obtendría una calificación alta.

Por supuesto, todos sabemos qué ocurrió después: Linux terminó convirtiéndose en uno de los sistemas operativos más exitosos de la historia. Pero además varias cosas que dijo Andy (como que en 1997 todos estaríamos corriendo GNU/Hurd en estaciones de trabajo Sparc, o que la arquitectura x86 desaparecería) sencillamente resultaron ser completamente erróneas.

No es que Tanenbaum fuera un idiota, claro; sencillamente en 1992 esas afirmaciones parecían estar justificadas. Y además yo creo que Andy no tomó en cuenta que Linux eventualmente sería escrito por miles de programadores, lo que le permitiría evolucionar mucho más de lo que a Linus jamás se lo podría haber ocurrido.

Dieciséis años después, además, varios aspectos del diseño de Linus que Andy criticó terminaron modificándose hasta acercarse mucho a lo que a él le hubiera gustado; el kernel Linux soporta módulos, que no es algo contemplado en un kernel monolítico “tradicional”. Más aún, cuando yo monto una partición NTFS de Windows en Linux, el código que hace eso corre en el espacio de usuario usando el módulo FUSE [2].

Aunque durante los años que siguieron al debate mucha gente se quedó con la impresión de que Andy y Linus estaban “peleados”, ambos siempre dijeron que eso no era cierto. En 2004 un instituto de derecha financiado por Microsoft trató de escribir un libro donde planteaban que Linux había robado código de (entre otras fuentes) Minix, que la GPL era “mala” (poco faltó para que la acusaran de comunista), y algunas otras linduras de ese estilo. Al final de cuentas el libro nunca se publicó porque fue hecho pedazos por todo mundo incluso antes de que saliera a la luz pública, pero Tanenbaum salió de inmediato en defensa de Linus diciendo que por supuesto ningún pedazo de Minix había sido “robado” para Linux.

Tanenbaum también dijo lo siguiente:

“I would like to close by clearing up a few misconceptions and also correcting a couple of errors. First, I REALLY am not angry with Linus. HONEST. He’s not angry with me either. I am not some kind of «sore loser» who feels he has been eclipsed by Linus. MINIX was only a kind of fun hobby for me. I am a professor. I teach and do research and write books and go to conferences and do things professors do. I like my job and my students and my university. […] I wrote MINIX because I wanted my students to have hands-on experience playing with an operating system. After AT&T forbade teaching from John Lions’ book, I decided to write a UNIX-like system for my students to play with. […] I was not trying to replace GNU/HURD or Berkeley UNIX. Heaven knows, I have said this enough times. I just wanted to show my students and other students how you could write a UNIX-like system using modern technology. A lot of other people wanted a free production UNIX with lots of bells and whistles and wanted to convert MINIX into that. I was dragged along in the maelstrom for a while, but when Linux came along, I was actually relieved that I could go back to professoring. […] Linus seems to be doing excellent work and I wish him much success in the future.”

“While writing MINIX was fun, I don’t really regard it as the most important thing I have ever done. It was more of a distraction than anything else. The most important thing I have done is produce a number of incredibly good students, especially Ph.D. students. See my home page for the list. They have done great things. I am as proud as a mother hen. To the extent that Linus can be counted as my student, I’m proud of him, too. Professors like it when their students go on to greater glory.”

Tal vez pase desapercibido por muchos, pero que un profesor llame “mi estudiante” a alguien a quien nunca le ha dado clases directamente, y que además diga que está orgulloso de él, es tal vez el elogio más grande que pueda dar. Más aún viniendo de alguien como Andy Tanenbaum.

Andy Tanenbaum también es el “Votemaster” de Electoral Vote [3], un sitio que hace análisis de encuentas para tratar de determinar quien ganará las elecciones gringas; lo viene haciendo desde 2004. Además de sólo analizar los datos, el sitio es básicamente un blog político, donde Andy comenta las campañas y el espectro político estadounidense de forma muy inteligente, y desde un punto de vista de “izquierda” (entre comillas, porque la izquierda gringa es como que el centro del resto del mundo). Si les interesa aunque sea un poco la política gringa, es un blog que no pueden perderse.

Yo en general no tengo “ídolos” o “héroes”. Me educaron de forma demasiado irreverente como para que se me de eso. Pero Andy Tanenbaum es sin duda alguna alguien que merece todo mi respeto, y que sigue un estilo de vida que yo bien podría tomar como modelo. El tipo me cae muy bien, y sí me gustaría ser un poco como él cuando fuera grande.

1 Comment (Open | Close)

1 Comment To "Andy Tanenbaum"

#1 Comment By Luger On abril 1, 2012 @ 2:50 PM

Excelente artìculo, muy ilustrativo y aclara que no existe “pelea” o animadversión personal entre Andy y Linus, sino confrontacion de ideas, unico medio para lograr la superación. Yo tambien quisiera haber sido como Andy……………………..