Realmente me gustaría entender cómo funciona un sistema operativo detrás de escena. Sin embargo, creo que el núcleo de la mayoría de los sistemas operativos de código abierto es demasiado complejo para fines de aprendizaje, incluso para un programador de tiempo completo para aprender. ¿Hay algún sistema operativo "simple" hecho solo para fines de aprendizaje?
operating-systems
DotNetStudent
fuente
fuente
Respuestas:
El Minix de Andrew Tanenbaum (consulte Diseño e implementación de sistemas operativos ) está destinado exactamente a este tipo de propósito. Otra posibilidad (aunque bastante anticuada) es leer Lion's Book , que cubre Unix V6 (Unix completo, pero una versión lo suficientemente antigua que todavía es lo suficientemente simple como para un estudio bastante fácil). Las desventajas obvias de este último es que el C que usa es bastante obsoleto, por lo que incluso los programadores de C bastante experimentados pueden encontrar partes algo difíciles de leer, y no puede planear que un compilador moderno digiera el código.
fuente
Debería considerar un Unix-a-like moderno, el sistema operativo Xv6, utilizado en un curso de sistema operativo en el MIT. Parece tener algún material del curso asociado también.
Se ejecuta en emuladores Bochs y Qemu x86. Yo hice esa parte. Fue divertido.
fuente
Minix es una gran opción y se describe en una de las otras respuestas.
Xinu
Considere también XINU - XINU no es Unix.
También se escribe UNIX al revés.
Hay un libro de Douglas Comer que pensé que estaba bien escrito, bien ilustrado y bien delimitado.
Hay un Xinu integrado y un sitio web sobre la enseñanza con Xinu.
http://xinu.mscs.mu.edu/Teaching_With_Xinu
FreeRTOS
Otro sistema operativo más pequeño que recibe mucho amor en estos días es FreeRTOS. Se ejecuta en casi todo. Si viniste de Marte y tuviste un procesador o una placa de evaluación donde no se ejecuta, podrías leer unas 10 páginas de documentación, modificar unos cinco archivos relacionados con interrupciones, temporizadores y UART y estarías ejecutándote.
http://www.freertos.org/
Afirman que admite 31 arquitecturas y 18 cadenas de herramientas. Mi experiencia a fines de 2009 fue buena, y escuché que ha mejorado mucho desde entonces.
Otros enlaces
Aquí se encuentra una pregunta similar que podría tener información útil para usted:
/programming/254149/how-do-you-write-a-basic-operating-system
Linux y muchos otros diseños de sistemas operativos están influenciados por UNIX, por lo que este video donde los diseñadores originales (Kernigan, Richie y Thompson y otros) es informativo y obtiene las ideas de diseño directamente de la fuente.
http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System
Existe un libro de texto clásico pero a menudo revisado sobre sistemas operativos:
Silberschatz, Galvin, Gagne: Conceptos del sistema operativo, 7a edición
Puede haber ediciones más nuevas también. Rara vez hago un enlace a un libro a través de un vendedor de libros, pero la vista previa es muy generosa, así que para obtener más información sobre los sistemas operativos, consulte:
http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720
fuente
En mi universidad hemos aprendido NachOS . Es un gran sistema operativo de código abierto para el aprendizaje. También puedes encontrar muchos ejercicios de universidades en NachOS para aprender.
fuente
Eche un vistazo a KOS (Kid OD) y SOS (Simple OS). Ambos son sistemas operativos diseñados para enseñar lo interno de un sistema operativo. KOS es el "padre" de SOS, y fue construido en base a la experiencia obtenida de KOS.
Estos proyectos fueron la base de muchos artículos educativos en Linux Magazine France.
En el sitio web de KOS, también puede encontrar una página donde puede descargar las fuentes de otros sistemas operativos simples.
fuente
Si te gusta la familia de tecnologías .NET, puedes consultar Singularity . No se ha actualizado desde 2008, pero se puede descargar en formato fuente e ISO desde CodePlex aquí .
fuente
La gente puede entender todas las versiones de CP / M y DOS anteriores. Después de eso, las cosas se salieron de control y ya nadie lo sabe todo. No fueron diseñados para aprender cómo funciona un sistema operativo, pero muchas personas lo aprendieron de ese sistema operativo.
fuente
Ve a leer un libro sobre programación en ensamblador. No tiene que ser competente en eso, pero le enseñará mucho sobre el funcionamiento interno de una computadora.
fuente