Sanos-GRUB

¿Sanos desde GRUB?, ¿qué es esto?, esto no es más que un pequeño “experimento” de como inicializar el sistema operativo Sanos desde el GRUB.

¿Qué es GRUB?
GRUB (GRand Unified Bootloader) es un gestor de arranque múltiple, o sea un gestor de arranque que permite cargar diferentes sistemas operativos instalados en un mismo equipo.
Más información: https://www.gnu.org/software/grub/

¿Qué es Sanos?
Sanos (Server Appliance Network Operating System) es un sistema operativo minimalista de 32-bit para la arquitectura x86.
Más información: http://www.jbox.dk/sanos/

En este “experimento”  ó “hack” lo que pretende es que Sanos inicialice desde GRUB, pero tengamos en cuenta que Sanos tiene su propio gestor de arranque (osldr), el cual cuando carga el kernel lo hace conociendo previamente cómo se organiza la memoria, tanto el directorio de páginas, así como la tabla de descriptores de segmentos y de interrupciones. Ahora bien, GRUB es un gestor de arranque genérico usando la especificación multiboot (https://www.gnu.org/software/grub/manual/multiboot/multiboot.html). En este caso dado que el kernel se carga en el primer megabyte de la memoria física, lo que se debe hacer es construir la tabla de descriptores de segmentos y un directorio de páginas que sea compatible con el kernel original.

O sea el gestor de arranque original de sanos cargará en kernel teniendo el punto de entrada en la función start(), con un manejo de la memoria de segmentado con paginación activado, en cambio GRUB, no. Cuando el kernel inicie desde GRUB al no tener la paginación activada tendrá este que activarla y auto-mapearse a sí mismo.

Para ver el código, documentación más específica, *.iso de ejemplo descargar:
https://mega.nz/#!dhNSXD6I!obMi_Zv0Af3ehuLGXH9n-hpq7smPxBGnDFz-JK6n3OI

Imágenes:

El kernel presentado aquí ha tenido varios cambios del original, pero con los archivos incluidos debería ser suficiente para modificar el kernel original para iniciar desde GRUB.

El *.iso tiene otras aplicaciones que se han podido portar desde aplicaciones originalmente escritas para Windows (usando WinCon) modificando el driver de la consola. Algunos ejemplos son:

atmt.exe (Proyecto hecho en la materia “Automatas y Lenguajes”)


treeview.exe (Proyecto hecho en la materia “Estructura de Datos y Algoritmos”)


agenda.exe

textedit.exe

testtui.exe









Ademas se ha implementado el driver de la SoundBlaster16 y una mini aplicación para reproducir audio:

This entry was posted in Sistemas Operativos. Bookmark the permalink.

Dejá un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *