Основной пример загрузки с Grub и запросом 32 -битного графического режима с помощью MultiBoot 1024 x 768 x 32
Целью этого является основная выборка использования загрузки Grub и запроса графического режима с помощью MultiBoot, а затем выполнение некоторых основных функций рисования.
Включен шрифт без лояльности, с примером использования, так что вы можете писать материал для экрана в своей ОС.
Идея состоит в том, что это будет ссылка для людей, которые создали свою собственную ОС и хотели бы добавить в нее графику, и хотели бы использовать MultiBoot, чтобы выяснить их для них, а не кодировать все необходимые шаги.
Протестировано и работая с VirtualBox 7.0 и QEMU в Windows 11 с использованием WSL 2.
Multiboot работает, устанавливая конкретные значения в определенных смещениях в исполняемом файле загрузки, поэтому мы запрашиваем режим графики со следующим:
.set WIDTH , 1024 / * requested width * /
.set HEIGHT , 768 / * requested height * /
.set DEPTH , 32 / * requested depth * /Grub будет читать эти значения и установить графический режим перед передачей выполнения в наше приложение, поэтому, когда наше приложение запустится, если запрашиваемый режим действителен, он уже будет в этом режиме.
Grub также пройдет через многофункциональный заголовок, содержащий то, что определяется режим графики, и другие интересующие значения.
Framebuffer_addr - это то, где вы напишете свои графические операции.
Что следует отметить, запросите действительный графический режим, в меню Grub [https://askubuntu.com/questions/16042/how-to-get-to-grub-menu-at-boot-ime] cli. В videoinfo перечислит доступные и действительные способы.
Я бы порекомендовал работать с 32 -битной графикой, это проще, и я бы подумал так быстро или быстрее, чем другие варианты. Прежде чем задуматься, но 8 -битная графика будет быстрее измерить ее.
Основной шрифт 8x8 был создан в Templeos с использованием примера с фондами.
Нужно построить под Linux (я попробовал WLS, но он не создает изображение ISO). Скрипт Make создаст ISO,
g++
binutils
libc6-dev-i386
VirtualBox
grub-legacy
xorriso
Создайте новую виртуальную машину в VirtualBox Mount the Iso Boot
У него нет драйверов ни для чего, нет управления памятью, нет клавиатуры или мыши, а не диска, ничего.
sudo apt install gcc g ++ make grub-pc-bin xorriso
После того, как VirtualBox будет настроен, есть профиль, который я создал в рамках более ранней версии VirtualBox и только что повторился в 7.0 в выпусках
В командной строке (vboxmanage.exe будет установлен в другом месте для вас) /mnt/d/virtualbox/vboxmanage.exe multiboot startvm