Import ExectOS Web Site
All checks were successful
Builds / ExectOS WebSite (push) Successful in 15s
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:
committed by
CodingWorkshop Signing Team
parent
83270c38d4
commit
3e1a7c1932
50
content/documentation/install-guide.md
Normal file
50
content/documentation/install-guide.md
Normal 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® 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.
|
62
content/documentation/xtldr.md
Normal file
62
content/documentation/xtldr.md
Normal 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.
|
||||
|
||||

|
||||
|
||||
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.
|
Reference in New Issue
Block a user