sistemas sistema operativos operativo hacer días desde cómo crear como cero basico c++

operativos - Escribir un sistema operativo en C++



cómo hacer un sistema operativo en 30 días. (9)

Aquí hay un montón de información que eventualmente necesitará, las temidas preguntas frecuentes de programación del sistema operativo.

¿Cuál es una forma de crear mi propio sistema operativo usando c ++? He sido creado gestor de arranque (usando nasm, qemu) pero no tengo conocimiento de agregar un kernel a este gestor de arranque.


No estoy familiarizado con los detalles, pero por lo que sé, BeOS fue escrito en C ++. Las fuentes deben estar disponibles de manera gratuita, así como la documentación.



Puede considerar mirar MINIX, que es un sistema operativo pequeño para sistemas x86. Originalmente fue diseñado como un proyecto de enseñanza y se ha convertido en algo que pretende ser útil en el mundo real.


También para agregar, este libro de Tanenbaum, donde explica los detalles de implementación de minix.


Un sistema operativo utilizable se puede desarrollar en la parte superior de L4 , incluso por un solo estudiante en un semestre junto con otros cursos (pero con todos los problemas del controlador ya resueltos). Si esta es una gran aventura, el microkernel L4 también está avanzado.


puedes echar un vistazo al código fuente de minix 3. es un sistema operativo muy simple, creado con el propósito de comprender cómo funciona el sistema operativo.

también puedes estudiar todo el libro de tanenbaum sobre os. todos son muy completos y recuerdo que un libro tiene la fuente completa de minix adjunta y comentada



Tenga cuidado, C ++ es bastante pesado para un kernel de sistema operativo.

  • Existen servicios como excepciones que deberá soportar con una biblioteca de tiempo de ejecución.
  • No se sentirá como C ++ hasta que agregue un montón.
  • Los kernels son muy sensibles a dónde se asignan los objetos; el modelo de un solo montón generalmente utilizado en C ++ no es realmente adecuado.
  • Acoplamiento de API a estructuras de datos es una mala idea. BeOS tuvo problemas con esto. Necesita ocultar el tamaño de sus estructuras internas a los usuarios, y eso significa saltar a través de aros (Pimpl, constructor privado, funciones virtuales) cuando las API son funciones miembro.

Parece que ya estás más avanzado que la mayoría, así que sigue haciendo preguntas y probablemente termines en un lugar agradable. :enfermedad venérea