Ejemplo muy básico de arranque con grub y solicitar un modo de gráficos de 32 bits con multiboot 1024 x 768 x 32
El propósito de esto es una muestra básica de usar un arranque de grub y solicitar un modo gráfico con multiboot, y luego hacer algunas funciones de dibujo muy básicas.
Se incluye una fuente sin fidelidad, con un ejemplo de uso para que pueda escribir cosas para detectar su sistema operativo.
La idea es que será una referencia para las personas que han creado su propio sistema operativo y desean agregarle gráficos, y desean usar Multiboot para resolverlo en lugar de codificar todos los pasos requeridos.
Probado y trabajando con Virtualbox 7.0 y QEMU en Windows 11 usando WSL 2.
El multiboot funciona estableciendo valores específicos en compensaciones específicas en el archivo ejecutable de arranque, por lo que estamos solicitando el modo gráfico con lo siguiente:
.set WIDTH , 1024 / * requested width * /
.set HEIGHT , 768 / * requested height * /
.set DEPTH , 32 / * requested depth * /Grub leerá esos valores y establecerá el modo de gráficos antes de entregar la ejecución a nuestra aplicación, por lo que cuando se inicia nuestra aplicación, si el modo solicitado es válido, ya estará en ese modo.
Grub también pasará a través del encabezado Multiboot que contiene lo que se establece el modo gráfico y otros valores de interés.
FrameBuffer_addr es donde escribirá sus operaciones de gráficos.
Cosas a tener en cuenta, solicite un modo gráfico válido, en el menú Grub [https://askubuntu.com/questions/16042/how-to-get-to-the-grub-menu-at-boot-imento] Cli El videoinfo enumerará los modos disponibles y válidos.
Recomendaría trabajar con gráficos de 32 bits, es más simple y habría pensado tan rápido o más rápido que otras opciones. Antes de pensar, pero los gráficos de 8 bits lo medirán más rápido.
La fuente 8x8 básica se creó en Templeos utilizando el ejemplo de Fonted.
Necesita ser construido en Linux (probé WLS pero no crea la imagen ISO) El script Make creará un ISO,
g++
binutils
libc6-dev-i386
VirtualBox
grub-legacy
xorriso
Cree una nueva máquina virtual en Virtualbox Monte el arranque ISO
No tiene controladores para nada, ni gestión de memoria, ni teclado ni mouse io, ni disco IO, nada.
sudo apt install gcc g ++ haz grub-pc-bin xorriso
Una vez que VirtualBox está configurado, hay un perfil que creé bajo una versión anterior de VirtualBox y simplemente vuelve a probar en 7.0 en los lanzamientos
Desde el símbolo del sistema (vboxManage.exe se instalará en una ubicación diferente para usted) /mnt/d/virtualbox/vboxmanage.exe startvm multiboot