igorov70 wrote:
Antti: How boot service provide UTF? It two level boot loader or UEFI?
There are many steps (e.g. master boot record, volume boot record) but the main logic is in the "actual" boot loader. In short, the boot loader is "a small OS" but there is no full Unicode support, obviously. It is not a modern OS because it does not control hardware. It reads databases and init files from disk and starts an "architecture specific" executable. All these are placed in "high memory" if possible. Init files are "/system/in_ia16.at", "/system/in_ia32.at", and "/system/in_x64.at". They run in real mode, protected mode (ring 3), or long mode (ring 3), respectively. All the time firmware (BIOS) is still in control.
There are boot services, like e.g. console output, keyboard input, serial ports, and block I/O. Also, basic things like the memory map (sorted and "processed") are provided. After init executables are ready, they call an "exit" function and then the boot loader removes itself and returns to ring 0 and init executables are "on their own". The whole layer is written (at least that was the intention) so that the UEFI boot loader will provide the same interface. That is not available yet and will not be in the near future.
At some point I can create a questions & answers topic. This topic is for screenshots!