Import ExectOS Web Site
All checks were successful
Builds / ExectOS WebSite (push) Successful in 15s

Reviewed-on: #1
Reviewed-by: Piotr Likoski <likoski@noreply.codingworkshop.git>
Co-authored-by: Rafal Kupiec <belliash@codingworkshop.eu.org>
Co-committed-by: Rafal Kupiec <belliash@codingworkshop.eu.org>
This commit is contained in:
2024-06-18 23:00:02 +02:00
committed by CodingWorkshop Signing Team
parent 83270c38d4
commit 3e1a7c1932
49 changed files with 1096 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
+++
title = 'Installation Guide'
date = 2024-06-17T16:41:29+02:00
+++
ExectOS is in early development phase and thus it is NOT suitable for daily use, especially on real hardware. It is
recommended to run it in a virtual machine like Qemu or VirtualBox. Otherwise, you act at your own risk!
### Running in Qemu
Running ExectOS in Qemu is straight-forward, as our build pipeline produces a disk image, that is ready to use in Qemu.
Once you download it and extract, you can use below commands to run the virtual machine, depending on the target CPU
architecture of the image. For x86_64 use:
```
qemu-system-x86_64 -cpu host -enable-kvm -m 2G -hda disk-amd64.img -serial stdio \
-drive file=sdk/firmware/ovmf_code_amd64.fd,if=pflash,format=raw,unit=0,readonly=on \
-drive file=sdk/firmware/ovmf_vars_amd64.fd,if=pflash,format=raw,unit=1
```
And for i686 use:
```
qemu-system-i386 -cpu host -enable-kvm -m 1G -hda disk-i686.img -serial stdio \
-drive file=sdk/firmware/ovmf_code_i686.fd,if=pflash,format=raw,unit=0,readonly=on \
-drive file=sdk/firmware/ovmf_vars_i686.fd,if=pflash,format=raw,unit=1
```
Above commands require an UEFI firmware to be available. It can be found in the
[ExectOS GIT repository](https://git.codingworkshop.eu.org/xt-sys/exectos/src/branch/master/sdk/firmware).
### Running in VirtualBox
VirtualBox is commonly used for running the system in an isolated environment. In this case, the same disk image as
for Qemu can be used. However, it needs to be converted to QCOW2 format, that is supported by VirtualBox. This can be
done with the following command:
```
qemu-img convert -O qcow2 disk.img disk.qcow2
```
Once, the disk image is converted, you can create a new virtual machine. As an Operating System, you can choose either
32-bit or 64-bit Windows&reg; 10, depending on ExectOS disk image architecture. Just make sure, that EFI support is
enabled.
### Running on Bare Metal
It is recommended to not install, nor run ExectOS on a real hardware. Otherwise, installation should be
straight-forward and self descriptive:
* Download a binary package or build XTOS yourself.
* Prepare a pendrive or USB stick. It should have at least first partition formatted as FAT32.
* Copy all binaries to USB drive, keeping the existing directory structure. Contents of the archive, or contents of
`build/output/binaries` is the root of your drive. Do NOT paste them into any subdirectory.
* Reboot the computer.
* Enter Firmware Setup or Boot Selection menu and choose your USB drive.
* Viola, enjoy!
In case of any problems, take a photo of your screen and contact with ExectOS developers.

View File

@@ -0,0 +1,62 @@
+++
title = 'XT Boot Loader'
date = 2024-06-16T23:43:56+02:00
+++
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.
![XTLDR Boot Menu](/images/exectos/xtldr_boot_menu.png)
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.