Monkos es un sistema operativo experimental de 64 bits para procesadores Intel y AMD. Es una mezcla de C y lenguaje de ensamblaje y es un trabajo en progreso. Actualmente, consiste en un cargador de arranque del BIOS, un sistema de consola virtual, un sistema de manejo de interrupciones, un administrador de memoria en declive, un asignador de montón, algunos controladores de dispositivos simples y una carcasa interactiva primitiva. El cargador de arranque está diseñado para iniciar el sistema operativo desde un CDROM.
El sistema operativo actualmente se construye en Linux utilizando un compilador cruzado. Hay dos formas de construirlo: (1) instalando todas las herramientas necesarias en su sistema y ejecutando make , o (2) mediante el uso de un contenedor Docker listo que contiene todas las herramientas de compilación que necesitará.
Para construir con herramientas instaladas en su sistema local, deberá tener el siguiente software ya instalado:
La mayoría de estas herramientas están disponibles en los administradores de paquetes de Linux estándar. El compilador cruzado, sin embargo, no lo es. Para construir un compilador cruzado, consulte las instrucciones en esta página. Asegúrese de seguir también el libgcc sin instrucciones en la zona roja.
Una vez que haya instalado todas las herramientas y se haya asegurado de que el compilador cruzado esté en su camino, ejecute make .
$ make Esto da como resultado un archivo ISO CDROM de arranque llamado monk.iso en su subdirectorio de compilación.
Debido a que puede ser una molestia construir e instalar un compilador cruzado, se ha preparado un contenedor Docker, lo que le permite evitar construir el compilador cruzado usted mismo. Para ejecutar la compilación basada en Docker, asegúrese de tener una versión reciente de Docker instalada en su sistema, agrégase al grupo de usuarios Docker de su sistema y luego escriba lo siguiente:
$ make docker Esto reducirá el contenedor Docker ( brett/monkos-build ) si aún no lo tiene, ejecutará la compilación dentro del contenedor y genere el archivo ISO (y todos los demás archivos de salida intermedios) en su subdirectorio de compilación. Se comporta casi exactamente como si ejecutara make utilizando un compilador cruzado instalado localmente en su sistema.
Hay varias formas de ejecutar monkos una vez que tenga el archivo ISO. La primera y más lenta forma es quemarlo en un CD o ROM DVD que usa su utilidad quemada favorita. Esta es la única forma de probar monkos en un sistema de metal desnudo.
Alternativamente, puede iniciar el sistema operativo utilizando el software de máquina virtual como VMware o VirtualBox.
O puede ejecutar el sistema operativo en un emulador basado en Linux como QEMU o BOCHS. El Monkos Makefile hace que esta alternativa sea particularmente fácil al proporcionar una regla de construcción simple para lanzar el sistema operativo en QEMU:
$ make testTambién puede usar el makefile para comenzar una sesión de depuración del kernel en QEMU y GDB. Primero, inicie QEMU en modo de depuración:
$ make debugLuego comience una sesión de depurador GDB adjuntando GDB al punto final del depurador QEMU:
$ gdb
(gdb) set arch i386:x86-64
(gdb) symbol-file build/monk.sys
(gdb) target remote localhost:8864
(gdb) layout src
Ejecute make docs para construir documentación bien formateada para Monkos. Necesitará Doxygen instalado en su sistema para hacer esto.
$ make docs Los documentos de Doxygen aparecerán en el subdirectorio docs/monk . Para verlos, lanzarlos en su navegador (en este caso Firefox):
$ firefox docs/monk/index.htmlPara crear etiquetas de código para una fácil búsqueda de símbolos dentro de su editor, use el makfile para ejecutar la utilidad exuberante de etiquetas:
$ make tags Esto produce un archivo .tags en su directorio Monkos.
Para limpiar todos los archivos intermedios, use la compilación limpia:
$ make cleanPara limpiar todos los archivos de dependencias generados, use la compilación CleanDeps:
$ make cleandepsConsulte la documentación con formato de Doxygen, que forma parte del conjunto de documentación de Monkos.
Estos son algunos de los recursos en los que he confiado en mi intento de comprender mejor los numerosos y diversos aspectos del desarrollo del cargador de arranque y el sistema operativo:
El uso de este código fuente se rige por una licencia de estilo BSD que se puede encontrar en el archivo de licencia.