Sehr grundlegendes Beispiel für das Booten mit GRUB und Anfordern eines 32 -Bit -Grafikmodus mit Multiboot 1024 x 768 x 32
Der Zweck davon ist ein grundlegendes Beispiel für die Verwendung eines GRUB -Starts und die Anforderung eines Grafikmodus mit Multiboot und dann einige sehr grundlegende Zeichenfunktionen.
Enthalten ist eine Loyalitäts -kostenlose Schriftart, bei der Beispiele verwendet werden, damit Sie Dinge auf den Bildschirm in Ihrem Betriebssystem schreiben können.
Die Idee ist, dass es sich um eine Referenz für Menschen handelt, die ihr eigenes Betriebssystem erstellt haben und Grafiken hinzuzufügen möchten, und Multiboots verwenden möchten, um es für sie herauszufinden, anstatt alle erforderlichen Schritte zu kodieren, die sie selbst selbst kodieren.
Getestet und arbeiten mit VirtualBox 7.0 und QEMU in Windows 11 mit WSL 2.
Das Multiboot funktioniert, indem bestimmte Werte in bestimmten Offsets in der ausführbaren Startdatei festgelegt werden, sodass wir den Grafikmodus mit Folgendes anfordern:
.set WIDTH , 1024 / * requested width * /
.set HEIGHT , 768 / * requested height * /
.set DEPTH , 32 / * requested depth * /GRUB wird diese Werte liest und den Grafikmodus festgelegt, bevor die Ausführung an unsere Anwendung weitergegeben wird. Wenn unsere Anwendung gestartet wird, befindet sich der angeforderte Modus, wenn er gültig ist, bereits in diesem Modus.
GRUB wird auch den Multiboot -Header durchlaufen, der den Grafikmodus enthält und auf andere interessierende Werte gesetzt ist.
In der FrameBuffer_ADDR werden Sie Ihre Grafikoperationen schreiben.
Beachten Sie im GRUB-Menü [https://askubuntu.com/questions/16042/how-to-get-the-groub-mu-at-at-to-boot-time] cli Die videoinfo listet die verfügbaren und gültigen Modi auf, einen gültigen Grafikmodus anzufordern.
Ich würde empfehlen, mit 32 -Bit -Grafiken zu arbeiten. Es ist einfacher und ich hätte so schnell oder schneller gedacht als andere Optionen. Bevor Sie denken, aber 8bit -Grafiken werden es schneller messen.
Die grundlegende 8x8 -Schriftart wurde in Templeos unter Verwendung des felzierten Beispiels erstellt.
Muss unter Linux erstellt werden (ich habe WLS ausprobiert, aber es erstellt das ISO -Bild nicht). Das Skript erstellt eine ISO.
g++
binutils
libc6-dev-i386
VirtualBox
grub-legacy
xorriso
Erstellen Sie eine neue virtuelle Maschine in Virtualbox Mount montieren Sie den ISO -Boot
Es hat keine Treiber für irgendetwas, keine Speicherverwaltung, keine Tastatur oder Maus -IO, keine Festplatten -IO, nichts.
sudo apt installieren GCC G ++ Machen Sie grub-pc-bin xorriso
Sobald VirtualBox konfiguriert ist, gibt es ein Profil, das ich unter einer früheren Version von VirtualBox erstellt habe und die gerade in den Veröffentlichungen in 7.0 erneut getestet wurde
In der Eingabeaufforderung (vboxmanage.exe wird an einem anderen Ort für Sie installiert) /mnt/d/virtualbox/vboxmanage.exe startvm multiboot