Import XTLDR documentation
This commit is contained in:
parent
544d0815d0
commit
5cb58ec854
63
content/documentation/xtldr.md
Normal file
63
content/documentation/xtldr.md
Normal file
@ -0,0 +1,63 @@
|
||||
+++
|
||||
title = 'XT Boot Loader'
|
||||
date = 2024-06-16T23:43:56+02:00
|
||||
draft = true
|
||||
+++
|
||||
XTLDR (abbreviation of XT Loader) is the boot loader dedicated for XTOS. It is the first program launched by the Unified
|
||||
Extensible Firmware Interface (UEFI) of the computer and is responsible for loading the rest of ExectOS. The procedure is
|
||||
quite different for UEFI and BIOS systems. However currently, legacy BIOS boot procedure is not supported by ExectOS.
|
||||
|
||||
### UEFI
|
||||
The Unified Extensible Firmware Interface (UEFI) has support for reading both the partition table as well as file systems.
|
||||
UEFI does not launch any boot code from the Master Boot Record (MBR) whether it exists or not, instead booting relies on
|
||||
boot entries in the NVRAM. The UEFI specification mandates support for the FAT12, FAT16, and FAT32 file systems, as well
|
||||
as ISO9660 for optical discs. Any conformant vendor can optionally add support for additional file systems.
|
||||
|
||||
UEFI launches EFI applications, e.g. boot loaders, boot managers, UEFI shell, etc. These applications are usually stored
|
||||
as files in the EFI system partition (ESP). The applications can be launched by adding a boot entry to the NVRAM or from
|
||||
the UEFI shell.
|
||||
|
||||
### Startup Process
|
||||
When a PC is powered on its UEFI firmware initializes the hardware components of the system. This includes CPU, memory,
|
||||
and device initialization. Firmware has its own boot manager, which is responsible for loading UEFI applications stored
|
||||
in the EFI System Partition (ESP), a dedicated partition on a data storage device, formatted with any from the supported
|
||||
filesystem and attempts to load the selected EFI application (usually an OS bootloader) into memory and transfers control
|
||||
to it.
|
||||
|
||||
XTLDR accesses the file system on the ESP partition and reads the xtldr.ini file to determine what Operating Systems are
|
||||
present. Also additional configuration, like debugging options is loaded. Afterwards, XTLDR loads additional modules, in
|
||||
order to extend its functionality as well as to support additional file systems, that are normally not supported by UEFI.
|
||||
This allows to boot Operating System kernel from the partition other to ESP. Then boot loader menu is presented to the
|
||||
user.
|
||||
|
||||

|
||||
|
||||
After a user choose the position from the list, or timeout exceeded, XTLDR continues with loading additional modules,
|
||||
specific to the chosen Operating System. If a non XTOS is selected, XTLDR loads the associated kernel file listed in the
|
||||
configuration file and gives it control. Otherwise, if XTOS is selected, boot loader loads registry HIVE data, kernel
|
||||
and boot drivers. Finally, starts the kernel, passing to it all the necessary information.
|
||||
|
||||
### XTLDR Configuration
|
||||
XTLDR's first action is to read the xtldr.ini file. It describes whole configuration for the boot loader as well as allows
|
||||
the user to choose which Operating System to boot from at the menu. it also allows the user to pass preconfigured options
|
||||
to the kernel. Regardless an OS, the location of the Operating System is written as an ARC (Advanced RISC Computing) path.
|
||||
Below is an example of the xtldr.ini file:
|
||||
```
|
||||
[XTLDR]
|
||||
Debug=COM1,115200
|
||||
Default=ExectOS
|
||||
KeepLastBoot=TRUE
|
||||
Modules=beep
|
||||
Timeout=10
|
||||
Tune=400 880 2 988 2 783 2 392 2 587 3
|
||||
|
||||
[ExectOS]
|
||||
SystemName="ExectOS Operating System"
|
||||
SystemType=XTOS
|
||||
BootModules=xtos_o
|
||||
SystemPath=multi(0)disk(0)rdisk(0)partition(1)/ExectOS
|
||||
KernelFile=xtoskrnl.exe
|
||||
Parameters=DEBUG=COM1,115200
|
||||
```
|
||||
A full list of configuration options with their descriptions can be found in the [example configuration](https://git.codingworkshop.eu.org/xt-sys/exectos/src/branch/master/bootdata/xtldr/xtldr.ini)
|
||||
file in project's GIT repository.
|
BIN
static/images/exectos/xtldr_boot_menu.png
Normal file
BIN
static/images/exectos/xtldr_boot_menu.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.1 KiB |
Loading…
Reference in New Issue
Block a user