BIOS or UEFI? Let me start from the beginning.
Code.
Code at its atomic level is a codex provided by 80x86 in terms of 80x86 compatible machines.
You cannot run 80x86 on a plain device, you first need an (O)perating (S)ystem, more specifically you need a (P)ortable (E)xecutable like file format.
The (PE) is made up of DATA and CODE.
DATA consists of:
- Headers
- Fields Sizes Addresses and Ordinals
- Import and Export tables
- Other stuff I am too basic to be familiar with
CODE consists of:
BINARIES, mostly in functional format, where upon copying them and jumping at the beginning of them you can in a sense provide arguments and make them do stuff.
Finally booting, unlike a (P)ortable (E)xecutable the booting process should be as easy a loading a custom binary onto the system, as little as 512 bytes.
(UEFI) Unified Russian Firmware Interface is everything but simple.
Steps to boot from UEFI include:
- Download EFI or EFI2 or UEFI github project for windows whose apparent author appears to be a tranny company by the name of Tianocore
- After the download run the SETUP
- After the the SETUP run the BUILD
- After the BUILD run something I forgot what it is
- If you do not get a single error, you're the luckiest individual in the entire fucking world
- Finally locate the .lib files
- Create C/C++ EFI/UEFI entry point which appears to have multiple variations
- Include the library in various C/C++ fields in your IDE
- After wasting whole bunch of percentages of your life, build
- If the build is successful, which it should be if you closely synchronized your actions with ChatGPT
- You should have an actual file from which you can boot from
- Your UEFI only BIOS still won't be able to process it cause it is not signed by an authority certificate
Welcome to 2023, enjoy the good times.