¿Cómo desarrollar un sistema operativo?
Como sabes que la computadora inicialmente se ejecuta en modo real y toda la máquina está controlada por el BIOS, tu tarea es principalmente escribir primero un cargador de ensamblaje (sí, como lilo o grub ;p ), solía saltar del modo real al modo protegido, luego cargar el núcleo del sistema operativo y finalmente transferir el control al sistema operativo. Por supuesto, su cargador debe ser puramente binario y no otro formato ejecutable como ELF.
El siguiente paso es la implementación del kernel del sistema operativo. Esto es más complicado, me temo que la mayor parte del almacenamiento de la página inicial y cosas similares deben realizarse en ensamblaje, y luego en multitarea, sistemas de archivos o. Se pueden utilizar discos duros escritos en C puro. Si escribe un kernel macro, es más fácil de implementar. Algunos microkernels tienen encabezados lógicos muy grandes, lo que dificulta la implementación de un kernel encima del kernel.
No entiendo la implementación específica. La estoy repitiendo ahora y no tengo tiempo para hacerlo. Una vez solo escribí un ensamblador que saltó del modo real al modo protegido y lo expandí a. 500 líneas de puntos de operación. La memoria de video sigue siendo un problema. Si estás interesado, puedes probarlo tú mismo.
En cuanto al método de desarrollo, por supuesto que se desarrolla de esta manera. Utilizo nasm para la compilación de ensamblados, gcc para la compilación de C y gdb y objdump para otros. Por supuesto, también puedes usar tu desarrollo favorito. entorno, el que más le convenga.
En cuanto a la máquina virtual, uso qemu. A muchas personas les gusta usar bochs para ejecutar y depurar sus propios sistemas operativos, pero no sé cómo compilar algunas bibliotecas de las que carece bochs, así que las uso. qemu para compilar Unos diez minutos, no lo olvides. La opción de depuración que se ve en /configure--help debe estar activada; de lo contrario, su máquina virtual solo puede ejecutar y no depurar su sistema operativo. La sensación de depuración es similar a gdb.
Por cierto, déjame hacer un anuncio. El editor recomienda vim y el sistema operativo recomienda slackware linux. Se siente mucho mejor que distribuciones como fedora o ubuntu. El formato de partición recomienda reiserfs y kill. text*;p
p>Por cierto, ¿puedes agregar más? :D