¿Qué pasó con el debate Tanenbaum-Torvalds?

Puede ver todo el debate en este hilo de Grupos de Google, incluida la conclusión, que no es tan concluyente. El debate se desvaneció, la gente volvió a sus respectivos proyectos de sistema operativo, y el conflicto afectó las ventas de los primeros libros de código abierto más de lo que lo hizo ninguno de nosotros haciendo ningún pirateo real del núcleo.

Si su pregunta es cómo la historia juzga el debate, creo que está más claro: Linus tenía razón y Linux ganó.

Linus tenía razón no en que un diseño de núcleo monolítico derrota a un microkernel, sino que no es la pregunta crítica en el diseño de un sistema operativo . Puede tener núcleos exitosos de ambos diseños. Además, Linux nos ha demostrado que un kernel puede tener muchos de los beneficios de un microkernel sin la sobrecarga: Linux es modular con módulos dinámicamente cargables y descargables, utiliza hilos de kernel e interrupciones roscadas, y es capaz de programarse de forma preventiva (“preventivo” núcleo”). Estas fueron comúnmente consideradas características de los microkernels, pero Linux sigue siendo liviano: las operaciones como la creación de procesos, el cambio de contexto y las llamadas al sistema son baratas. Si estuviera diseñando un nuevo kernel hoy, elegiría un diseño monolítico, aunque sea altamente multiproceso. Pero, ¿por qué alguien diseñaría un nuevo núcleo hoy?

En la medida en que el debate fue Linux versus Minix, Linux ganó. Hoy, Linux es un sistema omnipresente, que alimenta supercomputadoras a centros de datos, estaciones de trabajo a dispositivos móviles. El único segmento de mercado en el que Linux no es un líder claro es el escritorio (donde es un claro perdedor). Linux se ejecuta solo en más de 500 millones de dispositivos Android.

Andrew también se equivocó en muchos de los detalles, por ejemplo, la portabilidad de Linux, el destino de x86, el éxito inminente de GNU Hurd, declaraciones como “un sistema de archivos multiproceso es solo un truco de rendimiento”, pero no parece justo elegir aparte de un hilo de correo electrónico de 20 años en un contexto contemporáneo. Bien, podemos reírnos del comentario de GNU Hurd: “dentro de 5 años, todos ejecutarán GNU gratis en sus 200 MIPS, 64M SPARCstation-5”.

Creo que ambos terminaron equivocados. Cada uno pensó que el enfoque del otro no era práctico y que fracasaría a medida que los sistemas se volvieran más complejos. Sin embargo, los sistemas que representan ambos enfoques todavía existen y exhiben sus respectivas ventajas en un contexto moderno. Creo que ambos tampoco pudieron apreciar cómo el código abierto afecta el debate. Un núcleo monolítico tan complejo como Linux podría no ser práctico sin código abierto, como la gente de Solaris finalmente se dio cuenta.

Como dice Robert Love (más o menos), el argumento es específico de hace mucho tiempo. Evaluarlo a la luz de lo que hemos aprendido desde entonces arroja poca luz sobre lo que dijeron en ese momento, aunque aún podría ser útil como una forma de ver qué respuestas aún no conocemos.

Tanenbaum más tarde defendió a Torvalds de algunas acusaciones mal informadas, aquí: Algunas notas sobre Kerfuffle “Quién escribió Linux”