¿Por qué se equivocó Tanenbaum en los debates Tanenbaum-Torvalds?


233

Recientemente me asignaron la lectura de los debates de Tanenbaum-Torvalds en mi clase de SO. En los debates, Tanenbaum hace algunas predicciones:

  1. Los microkernels son el futuro
  2. x86 se extinguirá y las arquitecturas RISC dominarán el mercado
  3. (5 años a partir de entonces) todos estarán ejecutando un sistema operativo GNU gratuito

Tenía un año cuando ocurrieron los debates, así que me falta intuición histórica. ¿Por qué no se han cumplido estas predicciones? Me parece que desde la perspectiva de Tanenbaum, son predicciones bastante razonables del futuro. ¿Qué pasó para que no sucedieran?


189
Al predecir el futuro, favorezca la entropía y la suerte sobre la innovación y los ideales.
zzzzBov

18
Escribí un poco de una respuesta maratónica aquí que cubre algo sobre el punto 1. De hecho, es bastante difícil evitar ese debate cuando se discuten las diferencias en las arquitecturas del núcleo. La ironía más dulce es en realidad la firma, Linus "my first, and hopefully last flamefest" Torvaldsque obviamente tampoco se hizo realidad :)
Tim Post

13
Dejo esto como un comentario en lugar de una respuesta (no creo que sea lo suficientemente "elaborado" como para ser una respuesta): Tanenbaum no se equivocó al creer que los Microkernels son mejores, que x86 debería abandonar la arena y que el sistema operativo GNU (cualquiera que sea el núcleo en el que se ejecute) fue una mejor solución. Era, tal vez, ingenuo si realmente creía firmemente que sucedería tan rápido (o sucedería), en parte debido a la inercia social y los monopolios, y en parte porque los microkernels eficientes no son tan fáciles de implementar en sistemas de propósito general. . (así que sí, suerte )
njsg

15
Tanenbaum no está totalmente equivocado: en la nueva era posterior a la PC, iOS se basa en Mach y ARM, Android se basa en L4 y ARM. Solo GNU ha perdido.
Mouviciel

15
@mouviciel: y GNU solo perdió en el escritorio. Los servidores y los dispositivos móviles e integrados son prácticamente todos los monopolios de GNU.
gbjbaanb

Respuestas:


171

Los microkernels son el futuro

Creo que Linus dio en el blanco en los núcleos monolíticos en su debate. Ciertamente, algunas lecciones aprendidas de la investigación de microkernel se aplicaron a núcleos monolíticos. En ocasiones, Microsoft solía afirmar que el kernel Win32 era una arquitectura de microkernel. Es un poco exagerado cuando miras algunos microkernels de libros de texto, pero las afirmaciones tenían alguna justificación técnica.

x86 se extinguirá y las arquitecturas RISC dominarán el mercado

Si realiza una copia de seguridad desde computadoras de escritorio y servidores, RISC domina el mercado de procesadores en cualquier medida. ARM (R significa RISC) vende más que x86 en número de procesadores, hay más procesadores ARM que procesadores x86 en uso, y hay más capacidad total de cómputo ARM que capacidad de cómputo x86. Este año, un solo proveedor de ARM (sí, Apple) puede superar a todos los proveedores x86 combinados. Solo en el escritorio y el espacio del servidor domina x86. Mientras Windows sea la plataforma dominante para computadoras de escritorio y Linux para servidores, es probable que esto continúe siendo cierto por un tiempo.

Hay una parte b en esto también. Los ingenieros de Intel hicieron un trabajo increíble para exprimir la vida de su conjunto de instrucciones, incluso hasta el punto de hacer un núcleo RISC con un traductor de código de operación que se encuentra en la parte superior. Compárese con uno de los fabricantes de chips de escritorio RISC dominantes, IBM, que no pudo obtener un G5 de alto rendimiento y eficiencia energética para las computadoras portátiles Apple en un plazo razonable.

(5 años a partir de entonces) todos estarán ejecutando un sistema operativo GNU gratuito

Creo que los diversos proveedores de sistemas operativos aún ofrecen propuestas de valor convincentes en sus sistemas operativos. GNU ni siquiera es necesariamente el jugador más importante en la comunidad de código abierto, por lo que incluso una adopción más generalizada de software de código abierto no necesariamente se tradujo en sistemas operativos GNU. Sin embargo, hay muchas cosas de GNU por ahí (todas las Mac se envían con GNU's Bash , por ejemplo. Probablemente hay algunas herramientas del sistema GNU en los teléfonos Android). Creo que el ecosistema informático es mucho más diverso de lo que Tanenbaum previó, incluso cuando restringe su vista a las computadoras de escritorio.


8
En el punto 3, Linux está muy extendido, probablemente el sistema operativo más utilizado, Windows y VxWorks siguientes. Entonces, el punto 3 puede considerarse verdadero. Hace que 2 puntos de 3 sean correctos, lo cual es bastante bueno teniendo en cuenta lo impredecible que es la TI.
deadalnix

11
@deadalnix: tenía la intención de hacer una mención explícita del alcance en 3, restringiéndome a las computadoras de escritorio. Si una granja de servidores de Google ejecuta Linux (¿lo hace?) Y cada cuadro cuenta para el conteo de Linux, y mi módem de cable ejecuta una versión simplificada de Linux, y mi teléfono Android cuenta, entonces Linux probablemente domina. Pero si bien he visto buenos gráficos de procesadores ARM vs x86 vendidos / utilizados a lo largo del tiempo, no he visto uno para los sistemas operativos, especialmente cuando se mezclan los dispositivos integrados.
ccoakley

66
También con respecto a la parte 2, las diversas modernizaciones x86 en realidad van unos pasos más allá de RISC y hacen algunas cosas fascinantes con "micro-operaciones" internamente que brindan una flexibilidad de programación aún mejor con la reordenación de instrucciones sobre la marcha, lo que trae aumentos de rendimiento que están lejos más allá de lo que los seguidores de RISC pueden incluso soñar. Las CPU RISC también podrían obtener eso, pero en este punto no está comparando RISC frente a CISC, está comparando varias estrategias JIT en hardware con interfaces ISA bastante abstractas.
esponjoso

55
@KonradRudolph recreando citas para ventas totales a través de google: 3 mil millones de chips ARM enviados en 2009 ( vanshardware.com/2010/08/mirror-the-coming-war-arm-versus-x86 ) mientras que se estima que se vendieron 400 millones de chips x86 en 2011 (Número trimestral 4 veces reportado aquí: computerworlduk.com/news/it-business/3345299/… ). El mercado integrado es enorme y en gran medida no es Intel.
ccoakley

55
No creo que el punto 3 sea cierto en el sentido que Tanenbaum quiso decir. En ese momento, había mucho optimismo en torno a GNU HURD. Reclamar Linux (en cualquier variante) como una victoria de GNU OS no es históricamente válido. Espacio de usuario? Seguro. Pero en cierto sentido Linux el núcleo ganó a pesar de GNU.
regularfry

60

Expertos en software ignoraron la economía del hardware

... o "Moore tenía razón y ambos estaban equivocados"

Lo más importante que se pasó por alto en este debate fue el impacto de la tecnología y la economía de fabricación de CPU, impulsada por la reducción de los tamaños de los transistores como se expresa en la Ley de Moore (no es sorprendente como si supieran mucho sobre el hardware de la CPU, estos tipos estudiaron y debatieron sobre el software, no Fabricación de CPU o economía). Los costos fijos de fabricación que se amortizan sobre las CPU (por ejemplo, diseño ISA, diseño de CPU e instalaciones de producción de CPU) han crecido rápidamente, aumentando así el valor de las economías de escala; con los costos por unidad de CPU (en términos de "inversión por dinero" y "inversión por vatio"), el costo de una CPU no necesita amortizarse en una selección tan amplia de funciones para proporcionar valor, por lo que la computación en productos con función fija ha explotado; Los presupuestos de transistores de CPU han crecido exponencialmente,

1. La escala de CPU gana sobre la diversidad de CPU

La importancia de las economías de escala ha hecho que los beneficios de un ISA / CPU dirigido a un mercado más grande (por lo tanto, más amplio) supere los beneficios potenciales de las opciones de diseño que reducen el mercado para un ISA / CPU. Los sistemas operativos pueden abarcar porciones cada vez más grandes del mercado por ISA / CPU compatible, por lo que hay poca necesidad (o incluso ninguna) de ejercicios de transferencia para permitir que prospere un ecosistema de sistema operativo. Los dominios con problemas Los objetivos de ISA y CPU tienden a ser tan amplios que se superponen en su mayoría, por lo que para cualquier software más allá de un compilador, el tamaño de los ejercicios de portabilidad también ha disminuido. Podría decirse que tanto Torvalds como Tanenbaumsobrestimó la parte del diseño y la implementación del núcleo que ahora debe ser ISA o incluso específica de la CPU. Como describió Tanenbaum, los núcleos modernos del sistema operativo resumen las distinciones entre CPU e ISA. Sin embargo, el código específico de CPU / ISA en los sistemas operativos modernos es mucho más pequeño que un microkernel. En lugar de implementar el manejo / programación de interrupciones, gestión de memoria, comunicación y E / S, estos bits no portátiles abordan solo una pequeña fracción de la implementación de esos servicios, y la gran mayoría de la arquitectura de incluso estas funciones centrales del sistema operativo es portátil.

2. El código abierto ganó la batalla, pero perdió la guerra

Más beneficios por el dinero significa que una mayor parte de la informática se realiza mediante productos de función fija, donde la capacidad de modificar el producto no es parte de la propuesta de valor para el cliente. Ahora, irónicamente, el código abierto ha florecido en estos dispositivos de función fija, pero la mayoría de las veces, los beneficios de esas libertades se realizan más por aquellos que fabrican los productos que por los usuarios finales (lo que en realidad era cierto en el mercado del software incluso en aquel entonces: Microsoft era un gran consumidor de software de código abierto, pero sus clientes no lo eran). Del mismo modo, se podría argumentar que el código abierto ha tenido más dificultades en el espacio de escritorio de uso general que en cualquier otro lugar, pero a medida que la informática web y en la nube ha crecido, la informática de escritorio se ha utilizado cada vez más para un propósito más limitado (principalmente con un navegador) con las funciones restantes ejecutándose en la nube (irónicamente, principalmente en plataformas de código abierto). En resumen: el código abierto realmente posee el espacio informático de propósito general, pero el mercado se ha vuelto más sofisticado; El empaque de productos informáticos con menos frecuencia se detiene en la función de propósito general, pero continúa junto con el producto destinado a funciones fijas, donde gran parte de la ventaja de la informática de código abierto está en conflicto con los objetivos del producto.

3. 2 n Crecimiento significa k Los ahorros fijos no son importantes

El crecimiento exponencial de los presupuestos de transistores ha traído consigo la constatación de que el costo del presupuesto de transistores de una arquitectura CISC es casi completamente fijo. La ventaja estratégica de RISC fue que movió la complejidad del conjunto de instrucciones de la CPU al compilador (sin duda, en parte motivado por el hecho de que los escritores de compiladores se beneficiaron mucho menos de los ISA complejos que los desarrolladores humanos que codifican en ensamblador, pero los compiladores podrían razonar mucho más fácilmente) matemáticamente sobre, y por lo tanto explotar, un ISA más simple); los ahorros de transistores resultantes podrían aplicarse para mejorar el rendimiento de la CPU. La advertencia era que el ahorro en el presupuesto del transistor de un ISA más simple era mayormente fijo (y la sobrecarga en el diseño del compilador también era mayormente fija). Si bien este impacto fijo fue una gran parte del presupuesto en el día, Como uno puede imaginar, solo se necesitan unas pocas rondas de crecimiento exponencial para que el impacto se vuelva trivial. Este impacto en rápida disminución, combinado con la importancia cada vez mayor antes mencionada de la monocultura de la CPU, significó una oportunidad muy pequeña para que cualquier ISA nueva se establezca. Incluso cuando los nuevos ISA tuvieron éxito, los ISA modernos "RISC" no son los ISA ortogonales descritos por la estrategia RISC, ya que el crecimiento continuo en los presupuestos de transistores y la aplicabilidad más amplia del procesamiento SIMD en particular ha alentado la adopción de nuevas instrucciones ajustadas para funciones específicas. Este impacto en rápida disminución, combinado con la importancia cada vez mayor antes mencionada de la monocultura de la CPU, significó una oportunidad muy pequeña para que cualquier ISA nueva se establezca. Incluso cuando los nuevos ISA tuvieron éxito, los ISA modernos "RISC" no son los ISA ortogonales descritos por la estrategia RISC, ya que el crecimiento continuo en los presupuestos de transistores y la aplicabilidad más amplia del procesamiento SIMD en particular ha alentado la adopción de nuevas instrucciones ajustadas para funciones específicas. Este impacto en rápida disminución, combinado con la importancia cada vez mayor antes mencionada de la monocultura de la CPU, significó una oportunidad muy pequeña para que cualquier ISA nueva se establezca. Incluso cuando los nuevos ISA tuvieron éxito, los ISA modernos "RISC" no son los ISA ortogonales descritos por la estrategia RISC, ya que el crecimiento continuo en los presupuestos de transistores y la aplicabilidad más amplia del procesamiento SIMD en particular ha alentado la adopción de nuevas instrucciones ajustadas para funciones específicas.

4. Simple: separación de preocupaciones. Complejo: Separación del espacio de direcciones.

El kernel moderno de Linux (junto con la mayoría de los otros kernels) se ajusta a la definición más bien suelta de un macrokernel y no a la definición más bien que estrecha de un microkernel. Dicho esto, con su arquitectura de controlador, módulos cargados dinámicamente y optimizaciones de multiprocesamiento que hacen que las comunicaciones en el espacio del núcleo se parezcan cada vez más al mensaje de un microkernel, su estructura se asemeja más a un diseño de microkernel (tal como lo encarna Minix) que al diseño de macrokernel (tal como lo encarna el diseño de Linux en el momento de la discusión). Al igual que un diseño de microkernel, el kernel de Linux proporciona comunicación generalizada, programación, manejo de interrupciones y administración de memoria para todos los demás componentes del sistema operativo; sus componentes tienden a tener un código distinto y estructuras de datos. Mientras que los módulos se cargan dinámicamente, Las piezas de código portátil poco acopladas, que se comunican a través de interfaces fijas, no emplean una propiedad restante de los microkernels: no son procesos de espacio de usuario. Al final, la Ley de Moore aseguró que los problemas motivados por problemas de hardware como la portabilidad (una preocupación de Tanenbaum) y el rendimiento (una preocupación de Torvalds) disminuyeron, pero los problemas de desarrollo de software adquirieron una importancia capital. El resto de las ventajas no realizadas que podría proporcionar una separación de espacios de direcciones se ve compensada por el equipaje adicional impuesto al software del sistema operativo debido a las limitaciones de diseño y la mayor complejidad de las interfaces de componentes. s La ley aseguró que los problemas motivados por problemas de hardware como la portabilidad (una preocupación de Tanenbaum) y el rendimiento (una preocupación de Torvalds) disminuyeron, pero los problemas de desarrollo de software adquirieron una importancia capital. El resto de las ventajas no realizadas que podría proporcionar una separación de espacios de direcciones se ve compensada por el equipaje adicional impuesto al software del sistema operativo debido a las limitaciones de diseño y la mayor complejidad de las interfaces de componentes. s La ley aseguró que los problemas motivados por problemas de hardware como la portabilidad (una preocupación de Tanenbaum) y el rendimiento (una preocupación de Torvalds) disminuyeron, pero los problemas de desarrollo de software adquirieron una importancia capital. El resto de las ventajas no realizadas que podría proporcionar una separación de espacios de direcciones se ve compensada por el equipaje adicional impuesto al software del sistema operativo debido a las limitaciones de diseño y la mayor complejidad de las interfaces de componentes.

Curiosamente, lo que ha sido una tendencia fuerte es la aparición del hipervisor, que al igual que los microkernels, abstrae el hardware. Algunos afirman que los hipervisores son microkernels. Sin embargo, la arquitectura del hipervisor es diferente, ya que las responsabilidades destinadas a ser propiedad de los microkernels son manejadas por los núcleos "invitados" sentados encima, con hipervisores multiplexados entre ellos, y la abstracción del hipervisor no es un espacio genérico de mensajes y direcciones de memoria, sino predominantemente una emulación de hardware real.

En conclusión: el futuro favorece a quienes adoptan una semántica menos estricta

* .. o "los tontos apestan al predecir el futuro"

En la práctica, gran parte de lo correcto / incorrecto en el debate es una cuestión de semántica (y eso fue parte de lo que Torvalds estaba discutiendo y en mi humilde opinión Tanenbaum no pudo apreciarlo completamente). Es difícil hacer definiciones precisas sobre el futuro porque hay muchos factores fuera del argumento que pueden entrar en juego; una semántica más flexible significa que tus predicciones son un objetivo más grande en el tablero de dardos que el del otro tipo, lo que te da mejores probabilidades. Si ignora la semántica, los argumentos presentados por Torvalds y Tanenbaum eran correctos sobre muchas cosas y erróneos sobre muy poco.

tl; dr

La mayoría de los ISA no se ajustan a la definición semántica de RISC, pero aprovechan la mayoría de las ventajas de diseño que eran distintivas de las CPU RISC en ese momento; la cantidad de SO que es específica de la CPU es menor de lo que Tanenbaum esperaba, y mucho menos de Torvalds; el código abierto domina la computación de propósito general, pero los consumidores de ese mercado ahora son principalmente aquellos que empaquetan la computación en productos con funciones más fijas donde gran parte del beneficio del software de código abierto no se realiza; separar la función del sistema operativo en los espacios de direcciones no demostró ser beneficioso, pero separar la función del sistema operativo en el hardware "virtual" sí. Si quiere afirmar que sus predicciones demostraron ser correctas, deje la mayor cantidad de espacio semántico de maniobras posible, al igual que el Sr. Torvalds.

PD Una observación irónica final: Linus Torvalds es uno de los defensores más firmes de mantener tanta funcionalidad nueva como sea posible en el espacio de usuario y fuera del kernel de Linux.


42
  • Los microkernels son el futuro

Se equivocó, parece que todo está convergiendo en el uso de núcleos híbridos. Linux formalmente todavía es monolítico, pero agregar cosas como FUSE, etc. también lo hace parecer un poco híbrido.

  • x86 se extinguirá y las arquitecturas RISC dominarán el mercado

Ok, entonces x86 no se extinguió. ¿Pero no RISC domina el mercado? Miles de millones de teléfonos inteligentes con ARM, todas las consolas de juegos con procesadores RISC, la mayoría del hardware de red con procesadores MIPS.

Además, a principios de la década de 2000, RISC y CISC han convergido tanto que no hubo diferencias claras en el diseño interno. Los procesadores x86 modernos son básicamente RISC internamente con interfaz CISC.

  • (5 años a partir de entonces) todos estarán ejecutando un sistema operativo GNU gratuito

Si por GNU OS se refería a GNU Hurd, entonces sí una predicción totalmente fallida. Lo que la gente usa masivamente es Android. Android es Linux, sin embargo, es que no GNU, ya que no utiliza GNU libc. En su lugar, utiliza el propio Bionic de Google . Y la cuota de mercado de Linux de escritorio estándar todavía está por debajo del 2%. ¿Pero realmente se refería a las PC de consumo? En el mercado de servidores, Linux domina absolutamente con un 70-90% de participación dependiendo del segmento.


55
"En el mercado de servidores, Linux domina absolutamente con un 70-90% de participación dependiendo del segmento". ¿Dónde está la prueba de eso?
quant_dev

44
Los números de Vartec probablemente son exagerados.
Dejaré

44
@quant_dev: 92% de Top500, 60-70% servidores web, toda la infraestructura de Google, toda la infraestructura de FB, toda la infraestructura de Amazon ... etc.
vartec

1
¿Puede proporcionar enlaces para respaldar sus declaraciones?
quant_dev

13
Top500: i.top500.org/stats , Google: lwn.net/Articles/357658 , Amazon: news.cnet.com/2100-1001-275155.html , FB: http: /www.infoq.com/presentations/Facebook -Software-Stack
vartec

21
  1. No es seguro.

  2. Mitad derecha. Los chips "x86" de hoy son RISC bajo el capó, básicamente con una "interfaz CISC". x86 no se extinguió porque Intel tenía suficiente participación en el mercado y suficientes ingresos para hacer esa transición y hacerlo bien antes de que otras soluciones RISC les capturaran una participación significativa en el mercado.

  3. Dos razones principales: compatibilidad y usabilidad.

    Una vez más, los sistemas existentes (Windows y, en menor medida, Mac OS) tienen una base instalada muy grande. Eso significa que muchos usuarios usan muchos programas. Los sistemas operativos GNU libres no pueden duplicar eso. El proyecto WINE ha realizado un gran trabajo en esa dirección, pero todavía no puede sustituir a un sistema Windows real, y los desarrolladores de WINE ni siquiera intentan afirmar que lo es. La gente no quiere usar un sistema operativo que no ejecute sus programas favoritos, no importa cuán teóricamente increíble sea. (Y sin una base de usuarios instalada, nadie quiere desarrollarse para el sistema. Es un problema de gallina y huevo).

    Y luego llegamos a la usabilidad. Mi mamá tiene un sistema de Windows. Ella puede usarlo bien para sus propósitos. Todo lo que necesita para trabajar con su computadora está disponible desde la interfaz de Windows, y si le dijera las palabras "línea de comando", ni siquiera sabría de qué estoy hablando. Hasta donde yo sé, todavía no es posible hacer eso en ningún sistema operativo GNU libre. De hecho, es tan difícil trabajar con Linux que incluso los más grandes semidioses de la comunidad tienen serios problemas con tareas simples a veces. Y nunca parecen "entenderlo" y trabajan para solucionar los problemas, razón por la cual nunca ganan cuota de mercado. (¡El artículo vinculado debe ser leído para cualquiera que intente producir algún programa de mercado masivo!)


16
-1 para la publicación de blog de hace 8 años, que ya no es relevante.
vartec

16
@Vartec: ¿Ya no es relevante? ¿ Realmente está afirmando que un usuario de hoy puede elegir Linux y comenzar a hacer el repertorio completo de tareas comunes del usuario final sin tener que saber siquiera que existe una línea de comandos, como pueden hacerlo en Windows u OSX?
Mason Wheeler

17
@Mason: ¿cuándo fue la última vez que viste, por ejemplo, Ubuntu? Es más fácil hacer una tarea común del usuario final en Ubuntu sin saber acerca de la consola, que en OSX (demonios, en OSX hacer visibles los archivos ocultos requiere un doctorado en Nerdology). En Ubuntu las cosas simplemente funcionan. En Windows tienes que instalar controladores o lo que sea. En OSX las cosas simplemente no funcionan. Por cierto. usa tu mamá RegEdit
:-P

8
@MasonWheeler: Por supuesto. Cualquier persona puede recoger a Ubuntu y utilizarlo con ningún material línea de comandos en absoluto . Mi compañero de cuarto, ciertamente no muy experto en tecnología, no tuvo problemas para pasar de Windows a Ubuntu. Otras personas que conozco que usan Ubuntu, que varían en experiencia pero no son expertos, tampoco han tenido ningún problema. Mi antiguo compañero de cuarto el año pasado tuvo más problemas con su Mac que mi actual compañero de cuarto con Ubuntu, a niveles similares de experiencia informática. (¡Incluso la impresión, de todas las cosas, fue mucho más fácil en Linux que en Mac!) Entonces, todo lo relacionado con la línea de comandos de Linux es una tergiversación.
Tikhon Jelvis

18
@MasonWheeler: ¿Realmente está afirmando que un usuario hoy puede elegir Windows y configurar una impresora de red?
Christoffer Hammarström

14

Creo que hay un par de razones que son bastante serias, pero que no se han mencionado.

La primera es la suposición ciega de Tanenbaum de que la superioridad técnica conduciría al dominio del mercado. La gente ha discutido durante años si los microkernels (nanokernels, picokernels, etc.) son técnicamente superiores, pero por el momento, supongamos que lo son. Todavía nos queda la pregunta de si es probable que esa superioridad técnica se traduzca en dominio del mercado. Voy a postular que no lo hace. Para la mayoría de las personas, Windows, Mac OS, etc., son lo suficientemente buenos. Peor aún, las mejoras que marcarían una diferencia significativa para la mayoría de los usuarios estarían en la interfaz de usuario, no en el núcleo.

El segundo es sobreestimar drásticamente la tasa de cambio en un mercado (razonablemente) maduro. Es muy fácil cambiar las cosas rápidamente cuando tienes un nuevo mercado. Para que esencialmente todos cambiaran en cinco años, la migración debería haber estado sucediendo a toda velocidad incluso como él lo predijo.

También señalaría otra forma en la que tenía razón que no he visto mencionado. La gente ya ha notado la ubicuidad de RISC (por ejemplo, en teléfonos celulares). Lo que no han mencionado es la ubicuidad de lo que yo llamaría "microkernel 2.0". Esto ahora se conoce más a menudo como "máquina virtual" o "hipervisor". Sin embargo, en realidad son microkernels.

La gran diferencia es que Tanenbaum pensó en términos de un microkernel y una emulación de SO en modo de usuario, ambos diseñados específicamente el uno para el otro. En cambio, hemos mantenido el sistema operativo esencialmente sin cambios y adaptado el microkernel para ejecutarlo tal como está. Esto no es tan bueno técnicamente, pero desde una perspectiva de mercado, es dramáticamente superior: en lugar de un sistema completamente nuevo de arriba a abajo, el usuario puede continuar usando la mayoría de su código existente tal como está y simplemente agregar un nuevo y genial "utilidad" que realmente es un sistema operativo de microkernel.


8

Una gran razón fue Windows, especialmente Windows 3.1 y un poco más tarde, Windows 95 y NT 3.51. Los consumidores adoraron especialmente las interfaces GUI en comparación con los antiguos sistemas basados ​​en texto de Unix y DOS. Esto significaba que más personas promedio comprarían computadoras para uso doméstico. Además, la explosión de Internet a mediados de los 90 aumentó las ventas.

Los precios de las PC también cayeron a lo largo de los años 90 hasta que llegaron al punto en que están hoy. Esto se debió a las economías de escala presentadas por una mayor demanda de los consumidores y las empresas. Por ejemplo, mis cinco computadoras actuales cuestan menos combinadas que las 486 computadoras de escritorio que compré en 1992.

Ahora, en cierto modo, podría tener razón pero en una dirección inesperada. El auge de los dispositivos móviles, teléfonos inteligentes y tabletas, ha provocado parcialmente sistemas operativos simplificados y puede reducir la importancia de x86. Sin embargo, van mucho más allá de lo previsto en 1992.


7

En última instancia, todo se reduce al hecho de que a las cosas realmente no les gusta cambiar.

No migramos a un microkernel mejor diseñado porque los monolíticos eran más fáciles de crear, funcionaban más rápido y todos sabían cómo construirlos. Además, debido a que Linux se desarrolló como un núcleo monolítico y se hizo popular, no había microkernels que lograran el éxito suficiente para despegar. (es un poco como la misma razón por la que todos ejecutamos Windows, ejecutamos Windows porque todos ejecutan Windows)

RISC, otros han señalado que x86 es más o menos una arquitectura RISC hoy en día, con un contenedor CISC en la parte superior para la compatibilidad con versiones anteriores.

Mucha gente está ejecutando un sistema operativo GNU gratuito, en el servidor. La web está bastante impulsada por ella. Nadie se da cuenta porque todos los clientes son Windows. En aquellos días, tenía una opción: Linux que todavía era un sistema operativo hobby; un sabor de Unix pero no podías permitirte comprarlo; o barato y alegre Windows. Linux tardó demasiado en reemplazar Unix, y todavía no tiene una solución convincente suficiente para ejecutarse en el escritorio (en parte debido a problemas ideológicos con diferentes sistemas Windows, controladores de gráficos binarios y la falta de un ABI estable). Sin embargo, está funcionando bastante bien en otros mercados que no son de escritorio, como los integrados y los móviles.


6

Todo es cierto si no crees que una computadora es algo en tu escritorio.

  1. Es cierto: los microkernels nunca funcionaron porque nunca fueron lo suficientemente micro. Si la totalidad de su Linux incrustado es más pequeño que el bit específico x86 del núcleo MACH, ¿es relevante la cuestión de los micro-núcleos?

  2. RISC está dominando el mercado. Cada año se venden más cpus ARM que los cpus X86. Probablemente nunca esté a más de 6 pies de una CPU ARM.

  3. Casi todo el mundo está ejecutando Linux, está en su enrutador, su caja superior de TV, su Tivo y su teléfono Android; simplemente no saben que estos tienen un sistema operativo


44
"los microkernels nunca funcionaron porque nunca fueron lo suficientemente micro"> Según tengo entendido, la palabra "micro" no necesariamente se refiere a bytes o líneas de código. La idea es llevar la funcionalidad al espacio del usuario, haciendo que los servicios proporcionados por el núcleo en sí sean mínimos. Por ejemplo, un sistema con un microkernel tendría un proceso de usuario dedicado a manejar el sistema de archivos. Por lo tanto, la existencia de una versión simplificada de Linux que sea más pequeña que Minix no es realmente relevante.
Robz

1
@Robz Size es algo relevante: el objetivo de un microkernel es brindarle portabilidad y habilitar ciertos casos extremos (como ejecutar dos entornos de sistema operativo en una máquina a la vez sin virtualización). Si el microkernel es más grande que un híbrido / monolito que limita las plataformas en las que se puede implementar, y tiende a destruir el argumento de que es más fácil lograr la portabilidad al escribir un componente pequeño si en realidad no es más pequeño que la alternativa.
Marcin

4

1) Estaba equivocado en los microkernels. A mi entender, la necesidad del requisito de velocidad supera la separación de las preocupaciones impuestas en los microkernels, al menos en el kernel de Linux.

2) La arquitectura predominante en tabletas y teléfonos móviles es ARM, que es un conjunto de instrucciones RISC. Incluso Windows ha sido portado.

3) No todos ejecutan un sistema operativo GNU gratuito. Esto se debe principalmente a las patentes y la compatibilidad con versiones anteriores. Aquellos que no quieren Windows con frecuencia eligen OS X.


1) la velocidad importaba aún más en ese entonces! No estoy seguro de que importe tanto hoy.
gbjbaanb

Depende de dónde estén tus cuellos de botella.

Cuando su único requisito es "ser más rápido que el otro", no se hace más fácil con el tiempo. En mi opinión, hubo un período de tiempo muy corto cuando HURD pudo haber superado a Linux como una opción viable, y lo estropearon al perder el tiempo en un puerto de L4 a Mach.
regularfry

2

1. Los microkernels fallaron

Por las razones que dijo Linus Torvalds, que en el papel parece teóricamente atractivo pero en la implementación en sistemas modernos, que son sistemas muy complejos, la complejidad se vuelve exponencialmente inmanejable. El caso de estudio es GNU Hurd, un sistema totalmente microkernel que ni siquiera logró las funciones básicas. Mac OS X es similar a Hurd en estructura y es el sistema operativo menos estable y más limitado que existe.

2. arquitectura de la CPU

Esto se ha diversificado para varios casos de uso. Una arquitectura de CPU no dominaba porque los casos de uso integrados, móviles, de escritorio, servidores, etc. son diferentes y requieren enfoques diferentes. Tannenbaum no pudo ver esta diversificación.

3. GNU vs mundo?

GNU no dominó, pero Linux sí en servidor, incrustado y móvil. Las tabletas y teléfonos Apple ejecutan iOS, que es simplemente Unix antiguo. Es difícil obtener estadísticas precisas para las implementaciones de Linux en el escritorio porque no existe un mecanismo central real (venta de unidades) que seguramente pueda dar un valor preciso. La mayoría de las implementaciones de Linux en el escritorio a veces se registran como implementaciones de Windows porque los usuarios compran un sistema Windows y luego lo escriben con Linux. Sin embargo, si segmenta los sistemas operativos, entonces Linux tiene alrededor del 5-6% en el escritorio de acuerdo con http://www.w3schools.com/browsers/browsers_os.asp y esto es igual al número de usuarios de Windows Vista en todo el mundo, lo cual es muy significativo .

Según mis propias estimaciones de varias fuentes, parece que Linux en el escritorio en realidad podría ser igual a la cantidad de usuarios en Windows XP, aproximadamente el 25%, si cuenta naciones no occidentales como China e India, donde Linux es más popular que en EE. UU. o la UE, pero es posible que no se cuenten en las estadísticas occidentales porque solo cuentan el tráfico a sitios web de habla inglesa dirigidos a occidentales.

En India, la mayoría de los estudiantes universitarios usan Ubuntu o Fedora porque este es el sistema operativo predeterminado de los sistemas educativos indios y en los famosos IIT. La mayoría de las oficinas gubernamentales indias también usan Linux. En China, Red Flag Linux es el sistema operativo oficial del gobierno chino y los sistemas escolares, Academias de Artes y Ciencias, y es el sistema operativo recomendado en China por los medios estatales como un esfuerzo para evitar que los jóvenes chinos empobrecidos usen copias pirateadas de Windows. Si contara el uso de Linux en India y China, sorprendería a la mayoría de los expertos tecnológicos occidentales y cambiaría radicalmente las percepciones del verdadero dominio del escritorio Linux en países en desarrollo no occidentales donde es dominante.


1
La realidad es que Windows está siendo realmente sacrificado en el frente del sistema operativo para escritorio y servidor. Si cree que solo el 45% de los usuarios aproximadamente utilizan Windows 7, eso significa que la adopción de nuevos sistemas operativos de Windows en cada ciclo de actualización de Windows disminuye un 10-15% y los usuarios se quedan con la versión anterior o van a Mac o Linux. Para los servidores, la situación es aún peor, ya que cada actualización del servidor de Windows 20-30% de los usuarios cambian inmediatamente a los clústeres de servidores Linux ...
AG Restringere


1

La producción se volvió más barata, x86 estuvo tan cerca del precio de RISC, que ya no era factible usarlo. También había un pequeño vendedor cerrado.


No creo que el controlador para RISC haya sido nunca el precio, era más que las arquitecturas RISC estaban mejor diseñadas que x86. Desafortunadamente, MIPS y SPARC nunca se ampliaron muy bien, y DEC se quedó sin dinero antes de que Alpha obtuviera suficiente participación de mercado para importar. Intel fue capaz de obtener bastante rendimiento de x86, por lo que realmente no había una razón convincente para cambiar (para la mayoría de las personas). Ahora que el rendimiento se mide en términos de vatios que MHz, x86 está comenzando a deslizarse lentamente hacia la irrelevancia.
TMN

Sí, lo sé, solo me estaba refiriendo por qué RISC aumentó mucho más rápido que RISC al principio. Por supuesto, en estos días esto ha cambiado mucho.
Lucas Kauffman

1
  1. Los microkernels reemplazan las llamadas a métodos con mensajes entre procesos, lo que agrega complejidad de desarrollo para algunos beneficios hipotéticos. Como resultado, en su mayor parte, puede obtener casi las mismas ventajas de una buena componente, incluso si todo está viviendo en un gran proceso.
  2. La pregunta ya no es relevante. Las arquitecturas CISC ya no existen, todos los procesadores modernos son RISC en sus corazones, pero eso no eliminó el conjunto de instrucciones x86. Los procesadores x86 desde la era Pentium-Pro (hace 17 años) utilizan la traducción del código operativo para permitir que un núcleo esencialmente RISC se vea como una CPU x86 desde el exterior.
  3. Peor clásico es mejor . Los efectos de iteración, pragmatismo, red y ecosistema superan la pureza en todo momento.

1

Los microkernels son el futuro x86 se extinguirá y las arquitecturas RISC dominarán el mercado (5 años a partir de entonces) todos tendrán un sistema operativo GNU gratuito

Depende de cómo veas y definas el futuro, en el sentido tradicional sus predicciones han fallado.

Sin embargo, el tiempo aún no ha terminado (dejando de lado otra discusión más profunda) .

Por lo tanto, las cosas aún podrían cambiar:

  1. Los microkernels o alguna variante podrían regresar

  2. RISC / ARM bien puede dominar -> tabletas / móviles

  3. 10 o 15 años a partir de ahora. Quién sabe, el código abierto está cambiando el mundo lentamente.


1
Por supuesto, las cosas pueden cambiar en el futuro. Mi pregunta es sobre cómo es el mundo ahora y por qué no ha reflejado sus predicciones.
Robz

Esas razones ya han sido enumeradas por otros, les estoy dando una visión alternativa, como parte de cualquier discusión saludable, al menos deberían considerarse todas las perspectivas. Viva mucho y prospere mi amigo.
Darknight

Alrededor de 3, la diferencia es que el sistema operativo GNU específicamente ya no es relevante. Nadie usa el kernel GNU Hurd, y si elimina todas las herramientas de espacio de usuario GNU de los escritorios Linux u OS X, la mayoría de las personas ni siquiera lo notarían. Si observa otras implementaciones exitosas de sistemas operativos de código abierto (por ejemplo, enrutadores basados ​​en Linux y Android), la mayoría de ellos tampoco dependen de los componentes de GNU. Hay muchas herramientas de GNU que son muy populares y útiles, sí, pero están lejos de ser parte del "sistema operativo" que usan las personas.
ehabkost

0

Para 2: el conjunto de instrucciones CISIC tiene una gran ventaja: es más compacto, como el código de máquina comprimido. Hoy en día es muy barato decodificar las instrucciones CISC en micro-operaciones y es muy costoso acceder a la RAM. Entonces CISC tiene la ventaja de empujar más código en los cachés L1 / L2 / L3


0

Recuerdo el tiempo, y el tiempo que lo precedió. No sé sobre microkernals, pero

2) La idea de RISC tenía dos patas: que las optimizaciones de software se podían hacer mejor en el software que en el hardware, y que los chips RISC podían hacerse económicamente más rápido que los chips CISC.

Ambas ideas resultaron ser falsas a corto plazo. Intel pudo, y lo hizo, hacer chips CISC que registraron las instrucciones más rápido que los chips RISC de la competencia, a un precio competitivo. Intel pudo, y lo hizo, hacer chips CISC que hicieron la optimización del programa mejor en hardware que lo que se podría hacer en el compilador, o en el supervisor de tiempo de ejecución del software, y cualquier optimización de software se podría agregar además de eso, como lo haría con un Chip RISC.

3) La informática, la programación y las operaciones se han reinventado por completo 4 veces en mi carrera. Del marco principal a la PC. De la línea de comando a la GUI. De GUI a internet. De Internet a iPad. La revolución parece normal ahora, pero NO PREDICITAMOS ESO. Como todos los programadores más viejos de la época, él estaba prediciendo el "fin de la historia".

Muy pocas personas estaban ejecutando un sistema operativo GNU en cinco años, porque el recuento se reinició.

Quizás todavía está sucediendo. Hace 5 años, habría predicho que nuestro servidor de Windows sería reemplazado por servidores * nix (mientras escribo, SAMBA ha lanzado un servidor de dominio AD, que era la pieza faltante del rompecabezas). No va a suceder donde trabajo: no tendremos servidores locales.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.