November 18, 2014
UEFI - The New Boot Operating System In Your Computer
LIU/Brooklyn System Architechture
EFI Byte Code
UEFI Standardized Virtual Machine and Programming Standards
Programming requires the use of efi and efilib headers and a complex linkage to cross compile to the efi binary code.
The UEFI standard includes the possible use of a shell in the preboot environment.
EFI binary files start with the symbol efi_main that has two parameters, EFI_HANDLE ImageHandle and EFI_SYSTEM_TABLE *SystemTable.
The UEFI shell allows for is the execution of:
preboot programs,
setup, operating system installation,
testing of hardware and software,
disk utilities, driver diagnostics,
configuration modifications,
moving files around and between the hard disk, floppy disk, CD-ROM, USB flash devices, and so on,
to load a preboot EFI driver in the system (has an .efi suffix) such as network stacks, tcpip drivers,
update old drivers in flash memory,
load new drivers for plugin cards,
and more.
Intel Manual on EBC writing and spcifications:
http://www.uefi.org/sites/default/files/resources/EBC_Driver_Presentation.pdf
GNU-EFI allows for compiling EFI native binaries across most platforms
GNU-EFI http://sourceforge.net/projects/gnu-efi/