Aparte del kernel de Linux, ¿qué kernels del sistema operativo debería estudiar? [cerrado]

7

El kernel de Linux a menudo aparece como una base de código que se recomienda leer e, incluso si está mal comentado (o los archivos que he consultado han sido todos), tiene un código realmente bueno.

Ahora, dejando de lado el kernel de Linux, ¿qué otros kernels de sistemas operativos recomienda que estudien las personas interesadas en la programación de sistemas y / o sistemas operativos? ¿Por qué? ¿Qué tiene de bueno el código base? ¿Le mostraría enfoques muy diferentes de los que ha tenido el kernel de Linux? ¿Utilizan tecnologías interesantes? ¿Algo más ...?

Que los núcleos están bajo una licencia de código abierto es más o menos necesario.

    
pregunta Anto 23.03.2011 - 21:01

4 respuestas

10

Un gran núcleo es MINIX 3 explicado en detalle en el libro de Tanenbaum (existe en la edición de bolsillo): Diseño e implementación de sistemas operativos .

  

... Escrito por el creador de Minux, los programadores profesionales ahora tendrán el tutorial y la referencia más actualizados disponibles hoy.

     

Revisada para abordar la última versión de MINIX (MINIX 3), esta nueva edición simplificada y simplificada sigue siendo el único texto de los sistemas operativos que primero explica los principios relevantes, luego demuestra sus aplicaciones utilizando un sistema operativo similar a Unix como un ejemplo detallado. Ha sido especialmente diseñado para una alta confiabilidad, para su uso en sistemas integrados y para facilitar la enseñanza ...

    
respondido por el BenjaminB 23.03.2011 - 21:08
6

Singularidad de Microsoft Research . Un enfoque muy diferente para diseñar un sistema operativo. Basado en los avances en lenguajes de programación modernos, sistemas tipográficos, herramientas, análisis estático, compiladores y verificación de programas. De hecho, la mayoría del equipo ni siquiera provenía de la División de Sistemas Operativos de Microsoft Research, eran personas de lenguaje, herramientas, verificación y compilación.

La idea básica es que la tipificación y el análisis estáticos pueden ofrecer garantías mucho más sólidas sobre el aislamiento del proceso que la MMU de la CPU. Y puede ofrecer estas garantías en compile time en lugar de en tiempo de ejecución, lo que significa que los procesos son mucho más ligeros. De hecho, lo suficientemente ligero como para que cada controlador de dispositivo, cada sistema de archivos, cada subcomponente de una aplicación, pueda ejecutarse en su propio proceso de recolección de basura aislado, aislado, prácticamente sin gastos generales. (Un cambio de contexto es, en gran medida, simplemente lanzar un montón de punteros. No hay ninguna verificación involucrada, ya que todo eso ya se hizo en tiempo de compilación).

Las ideas en Singularity se llevan adelante en algunos otros sistemas operativos fuera de MSR: Midori (que se rumorea que es una implementación comercial de Singularity y un posible sucesor de Windows NT) y Helios (que tiene la idea de tener todos los dispositivos). controladores, servicios del sistema operativo y programas escritos en un lenguaje independiente del hardware y se aplican a un enfoque de varios kernels, donde diferentes partes del sistema operativo se ejecutan en diferentes CPU con posiblemente diferentes ISA).

    
respondido por el Jörg W Mittag 23.03.2011 - 23:44
6

Inferno : vale la pena echarle un vistazo, porque muchas de sus ideas, tarde o temprano, se convierten en "backported" para Linux / Unix. Es un sistema operativo experimental de Bell Labs, y continúa su trabajo en Plan9 .

La característica más interesante de Inferno es cómo hace que los recursos de red sean completamente transparentes para las aplicaciones:

  

Recursos transparentes

     

Inferno ofrece una completa transparencia de los recursos y datos utilizando una   Sencillo pero potente sistema de 'espacio de nombres'. Representando recursos como   archivos y tener un protocolo de comunicación estándar - 9P (Styx®) -   recursos tales como almacenes de datos, servicios y dispositivos externos pueden   Se puede compartir fácilmente entre los sistemas Inferno. Una interfaz de recursos puede ser   importados al sistema local y utilizados por las aplicaciones sin ellos   sabiendo, o necesitando saber, si es local o remoto.

    
respondido por el vartec 24.03.2011 - 00:56
5

Oberon. Los libros son The Oberon System: Guía del usuario y Manual del programador y Oberon de proyecto: el diseño de un sistema operativo y compilador

Oberon es una prueba de existencia de la afirmación de que los grandes sistemas operativos de estaciones de trabajo no tienen que ser grandes. En un momento en que Unix requería muchos megabytes solo para cargar (y una de las primeras distribuciones de Linux no se cargaría en menos de 8 megabytes), Oberon proporcionó un sistema operativo de estación de trabajo completo con un espacio de memoria de aproximadamente 300 kbytes.

    
respondido por el John R. Strohm 23.03.2011 - 21:24

Lea otras preguntas en las etiquetas