Про разработку под UEFI на osdev:
http://web.archive.org/web/202507231641 … v.org/UEFI
(напрямую у меня почему-то не открывается)
«UEFI firmware loads an arbitrary sized UEFI application (a relocatable PE executable file) from a FAT partition on a GPT or MBR partitioned boot device»
«The application can return control to the firmware, which will continue searching for another boot device or bring up a diagnostic menu.»
т.е. если один компилятор (т.е. транслятор, генерирующий код) создаст другой компилятор и выйдет, то можно сделать так, что запустится следующий компилятор.
Нужен демонстрационный пример. Такой пример есть, но его понимания нет.
«When UEFI firmware calls a UEFI application's entry point function, it passes a "System Table" structure, which contains pointers to all of the system's ACPI tables, memory map, and other information relevant to an OS.»
Тут надо выяснить, как ось вызывает функции из UEFI, в частности для работы с дисками, FAT, файлами, чтобы не реализовывать их самостоятельно.
«UEFI firmware establishes many callable functions in memory, which are grouped into sets called "protocols" and are discoverable through the System Table.»
«Functions are called with a standardized, modern calling convention supported by many C compilers»
x86-64 UEFI functions - Microsoft's 64-bit calling convention
x86 UEFI functions - cdecl
ARM UEFI functions - SMC
«You can still get interfaces not covered by POSIX-UEFI (such as GOP) by installing the EFI headers from GNU-EFI or EDK2.»
«a slight learning curve to become familiar with the UEFI development environments, using the System Table, and accessing UEFI-provided protocols (functions)»
one of three development environments:
EDK2
GNU-EFI
POSIX-UEFI
«A good starting point is writing a UEFI application that uses the System Table to fetch a memory map, and uses the "File" protocol to read files from FAT-formatted disks.»
Отредактировано Лис (2025-08-15 18:28:12)