¿Cuáles son algunos buenos recursos para aprender a desarrollar un sistema operativo simple?

Creo que la mejor opción para esto es un pequeño sistema operativo llamado Xinu (sí, eso es Unix al revés). Es un pequeño sistema operativo basado en microkernel diseñado para fines educativos en los años 80. Es pequeño, fácil de entender y escrito en C.

Lo sugeriría para que lo estudies por tu cuenta, ya que es lo suficientemente pequeño como para ser un proyecto en el que puedes trabajar, ampliar, reemplazar, etc. Puedes obtener el código fuente aquí:

La página de Xinu

Si usted es serio acerca de esto, sugeriría hardware simplificado para aprender Ya existe una versión de Xinu que ejecuta la placa de desarrollo Intel Galileo como Intel Galileo Gen 2 Board Module para Arduino. Si está más familiarizado con Arm o solo quiere trabajar en un sistema ARM, puede usar el BeagleBone Black. La opción más barata es el Linksys WRT54GL WAP como hardware (Enrutador de banda ancha inalámbrico-G Linksys WRT54GL con Linux). Este es un enrutador de sistema abierto que ejecuta un Linux incorporado en un MIPS (todavía uso dos de estos como mi proveedor de servicios inalámbricos con mi propio sistema operativo basado en Xinu, bastante a prueba de piratería, ya que es único en su clase). Puede reemplazar el Linux con Xinu incrustado. Tendrá que realizar una modificación de hardware en el enrutador que requiera algunas habilidades de hardware decentes. Se verá así cuando hayas terminado:

Las tecnologías que necesitará conquistar son obtener el hardware, modificarlo si usa el software Linksys, compilación cruzada, tftp y obtener herramientas de comunicación en serie.

El creador original de Xinu (Xinu no es Unix) tiene un libro de segunda edición sobre diseño y creación de sistemas operativos llamado Diseño de sistemas operativos: el enfoque de Xinu, Segunda edición: Douglas Comers, que sugiero encarecidamente, ya que lo guiará a través de la teoría y la codificación. del sistema operativo. Hay un libro electrónico, pero un papel real impreso es un bono aquí.

¡Buena suerte!

No importa el lenguaje, sobre todo si es ensamblador. Ese es un concepto completamente diferente y en gran medida no relacionado. El diseño o el sistema operativo Unix es un tomo popular relacionado con un sistema operativo en particular. El libro de texto que acompaña al sistema operativo en tiempo real de uC / OS, uC / OS-II y uC / OS-III es revelador y lo suficientemente pequeño como para digerirlo.

No es necesario utilizar lenguaje ensamblador. El proyecto original MINIX de Andy Tanenbaum está en C, y recomendaría su libro que cubre todos los aspectos fundamentales: Diseño e implementación de sistemas operativos.

Sistema operativo – Libros en Google Play