Pregunta

Estoy planeando escribir un sistema operativo y no sé mucho acerca de los sistemas operativos. ¿Hay buenos recursos o libros para leer para que yo pueda aprender? ¿Cuáles son tus recomendaciones?

¿Fue útil?

Solución

Utilizamos Sistemas operativos modernos de Andrew Tannenbaum en la universidad a la que asistí. Lo recomiendo ampliamente porque son explicaciones claras de las compensaciones inherentes a muchas de las decisiones de diseño con las que se encontrará. Este libro es un poco más " justo y equilibrado " que el libro de minix.

 texto alternativo

También recomiendo este libro porque, a pesar de su guerra de llamas de la red con Linus Torvalds , pocos de sus prejuicios aparecen en el libro. Además, es un escritor bastante decente, y el libro es realmente entretenido.

Otros consejos

Software de Prentice de Implementación de Sistemas Operativos

 texto alternativo

Este libro está escrito por Tanenbaum, el tipo principal detrás de Minix, en el que se basa Linux. Proporciona buenas descripciones generales de conceptos básicos del sistema operativo, como la gestión de la memoria, los sistemas de archivos, los procesos, etc. Los conceptos de este libro están íntimamente relacionados con ejemplos del sistema operativo Minix, lo que es bueno.

Creo que deberías empezar por algo así.

Os dev El sitio web es rico en información si desea comenzar a codificar su propio sistema operativo también,

Conceptos del sistema operativo es el libro que utilizamos en la Universidad. Es bastante feo, PERO la información interna está bien explicada (desde la administración básica de la memoria hasta cómo decidir el sistema operativo qué ejecutar o cómo evitar el interbloqueo). Bastante ancho.

 texto alternativo

Echa un vistazo a HelenOS , que es un sistema operativo basado en microkernel desde cero que pretende ser un sistema operativo completamente moderno. Disclamer, soy un colaborador, estoy trabajando en su shell desde cero.

HelenOS se ha portado a ia32 / 64, SPARC, ARM y más, está muy bien diseñado y es fácil de leer. Aún está en su infancia pero muestra un posible diseño que realmente aprovecha el diseño de microkernel y resuelve muchos problemas en una implementación de microkernel (como IPC).

También incluye scripts que configuran automáticamente una cadena de herramientas adecuada para la compilación cruzada. Es muy fácil de construir y se ejecuta muy bien en la mayoría de los simuladores (es decir, QEMU) o en metal desnudo.

También estudiaría L4, Minix3 y GNU HURD (basado en Mach), este último es una ilustración de las fallas del diseño cuando se trata de aprovechar un microkernel.

Si quieres ir por la ruta monolítica, solo estudia Linux.

Recomiendo encarecidamente que eche un vistazo a la clase de sistemas operativos MIT . Tiene muchas referencias útiles y un montón de ejercicios de laboratorio con los que puedes jugar (incluidos los guiones de calificaciones automáticos, por lo que no tienes que ser un estudiante del MIT para hacerlo).

libro de texto http://ecx.images-amazon.com/ images / I / 411E3CQQYZL._SS500_.jpg

Utilicé Sistemas operativos y middleware: Apoyo a la interacción controlada cuando estaba en la universidad. Probablemente sea uno de los mejores libros de texto sobre el tema.

Desarrollando su propio sistema operativo de 32 bits por Richard A. Burgess. Entré en grandes detalles sobre los cargadores de arranque, la configuración de esos extraños registros de gestión de procesos y memoria, etc. Fue una gran lectura en 1996 cuando pensé que me tomaría una molestia al escribir un sistema operativo simple desde el principio, pero puede ser fechado por ahora, lidiando solo con las primeras generaciones de CPU de clase Pentium.

Si recuerdo correctamente, la Powerup to Bash Prompt HOWTO contenía mucha información que parecía que sería útil para esto. También lo hicieron las versiones anteriores de Linux From Scratch HOWTO, pero en versiones recientes que se han eliminado.

También encontrará mucha información útil en Descripción del kernel de Linux .

Debería buscar en MINIX 3. Este es un sistema operativo que fue escrito en, creo, menos de 10,000 líneas. Puede obtener una muy buena idea de cómo funciona un sistema operativo con la ayuda de uno de los libros de Tanenbaum y comprender cómo funciona MINIX 3. Podría ir directamente a Linux, pero creo que esta es una tarea útil y realmente lo ayuda a ver cómo realmente no toma tantas líneas para construir un sistema operativo que funcione.

http://www.minix3.org/

Recomendaría mirar los sistemas operativos integrados y construir un sistema operativo integrado. Se ocupará de los conceptos básicos sin la sobrecarga de una CPU de escritorio moderna.

Escribí un sistema operativo integrado multitarea en la primavera pasada como un proyecto final, es más fácil de lo que piensas.

Además de los libros, hay muchos sitios que aprenden a desarrollar sistemas operativos
  BrokenThorn Entertainment está en este sitio web que aprende el desarrollo de sistemas operativos desde la base

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top