1760167850
2025-10-11 05:00:00
В этом видео наш хакер [Inkbox] показывает нам как создать компьютерную игру, которая работает непосредственно на компьютерном оборудованиибез операционной системы!
[Inkbox] кратко объясняет, что такое BIOS, а затем рассказывает, как его заменяет UEFI. Он рассказывает о зарождении UEFI от Intel в конце 90-х. После того, как реализация UEFI от Intel стала открытой, ее подхватили ТианоКоре сообщество, создающее такие инструменты, как Тианокор Эдк II.
[Inkbox] объясняет, что реализация UEFI предоставляет службы загрузки и службы времени выполнения. Службы загрузки включают в себя такие вещи, как загрузка средств управления памятью или запуск других приложений UEFI, а службы времени выполнения включают в себя такие вещи, как доступ к системным часам и сброс системы. В дополнение к этим службам доступно множество других протоколов UEFI.
[Inkbox] сообщает нам, что при загрузке процессора x64 он переходит на адрес памяти 0xffffffff0, который содержит инструкции по инициализации, которые перейдут в защищенный режим, проверят прошивку, инициализируют память, загрузят драйверы хранилища и графики, а затем запустят диспетчер загрузки UEFI. Диспетчер загрузки UEFI, в свою очередь, загрузит соответствующее приложение EFI, например приложение диспетчера настроек встроенного ПО («Настройки BIOS»), диспетчер загрузки Windows или GRUB. В этом видео мы создаем собственное приложение EFI, для загрузки и запуска которого можно настроить диспетчер загрузки UEFI.
Система, используемая для разработки и тестирования, имеет AMD Ryzen AI 9 HX 370 Процессор и 32 ГБ оперативной памяти DDR5.
Объяснив, как все начинается [Inkbox] Далее объясняется, как написать и развернуть программу на языке ассемблера, которая будет загружать игру и запускать ее. [Inkbox] показывает, как читать и писать в консоль, и упоминает, что он проводил тестирование QEMU с изображением на внешнем флэш-накопителе USB. Далее он показывает, как использовать системные возможности времени и даты для получения текущего месяца. При попытке считать наносекунды с системных часов ему пришлось обратиться к Спецификация УЕФИ Версия 2.10 (последняя на момент написания статьи 2.11).
В остальной части видео [Inkbox] выполняет некоторые арифметические расчеты по времени, использует LocateProtocol для загрузки поставщика вывода графики, настраивает соответствующий видеорежим, записывает на экран с помощью операций BLT и заставляет программу работать на нескольких ядрах ЦП (в используемом ЦП их 24). Наконец, с помощью простого графического программирования и ввода с помощью мыши, [Inkbox] удается запустить Space Game для x86.
Если вы хотите узнать больше о UEFI, лучше всего начать с раздела «Как дела с UEFI?».
#Программирование #космической #игры #для #X86 #сборке #без #операционной #системы
Продолжение темы

