Lo que debe hacer es diseñar el sistema operativo. Incluso si, por ejemplo, decide que debería ser un sistema similar a UNIX, todavía hay muchas decisiones que tomar. ¿Qué tanto quieres que sea UNIX? ¿Qué partes de UNIX te gustan y cuáles crees que necesitan mejorarse?
Si no está decidido a que sea similar a UNIX, terminará con aún más preguntas por responder: ¿deberían los procesos formar un árbol o son "planos"? ¿Qué tipo de comunicación entre procesos desea apoyar? ¿Desea que sea multiusuario, o simplemente multitarea (o posiblemente una sola tarea)? ¿Quieres que sea un sistema en tiempo real? ¿Qué grado de aislamiento desea proporcionar entre tareas? ¿Dónde quieres que caiga en la escala monolítica vs. micro-kernel? ¿En qué medida (si corresponde) desea que sea compatible con la operación distribuida?
En general, aconsejaría no estudiar el kernel de Linux como inspiración. Eso no es nada en contra del kernel de Linux en sí mismo, sino un simple hecho de que Linux está destinado principalmente para uso de producción, no para educación. Tiene mucha optimización, trucos de compatibilidad con versiones anteriores, etc., que son extremadamente útiles para la producción pero es más probable que distraigan que eduquen.
Si puede encontrarlo, una copia del libro de Lion ( Comentario de los Leones sobre la 6ta edición de UNIX , con código fuente , de John Lions) es un punto de partida mucho más fácil. La sexta edición de UNIX todavía era lo suficientemente pequeña y simple como para leerla y comprenderla con bastante rapidez, sin ser un sistema de juguete demasiado simplificado.
Si planea apuntar al x86 (al menos principalmente), es posible que también desee mirar MMURTL V 1.0 de Richard Burgess. Esto presenta un sistema para el x86 que utiliza el hardware x86 mucho más de lo que los diseñadores de la CPU pretendían originalmente, algo que la mayoría de los sistemas reales evitan a favor de la portabilidad a otras CPU. Como puede suponer, esto tiende a orientarse mucho más hacia el final del hardware. Las copias impresas parecen ser caras y difíciles de encontrar, pero puede descargar el texto y el código de forma gratuita.
Afortunadamente, también hay muchas más posibilidades: diseño e implementación del sistema operativo , por Andrew Tanenbaum y Albert Woodhull, por ejemplo.