Add README.md

This commit is contained in:
jstefanelli 2025-02-05 23:23:29 +00:00
parent 7a1f072e4a
commit 8191b97a99

56
README.md Normal file
View file

@ -0,0 +1,56 @@
# OS3
Hobby bootable software suite for x86 (NOT x86_64) systems.
## Building
This repository needs 2 separate compilers to function:
- a generic C/C++ compiler for the "host" (whatever architecture that may be)
- a i686-elf GCC/Binutils cross-compiler accessible in the path (i686-elf-gcc, i686-elf-objcopy, etc...)
It also needs mkfs.vfat (or newfs_msdod on macOS).
The build system is cmake.
First, generate the host utilities:
cmake -S host -B build/host
cmake --build build/host
Then, generate the bootable image:
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=CMakeToolchain.txt
cmake --build build
The image might run (the `main` branch is not a stable one) via qemu and the following command:
qemu-system-i386 --hda build/kernel.img
## Components
In order of dependency:
### libfat
Library for handling FAT32 file systems. Can be built for both kernel or host.
### os3_common
Common headers shared between host tools and kernel code.
### host
A collection of host tools required to build the bootable image
### mbr
Stands for "Master Boot Record". It's an assembly file designed to be bootable from MBR x86 systems. (EFI Incompatible).
### stage1
Stage 1 bootloader. Written in C. Should initialize most required drivers (USB, Disks, ACPI, Video). Currently not done.
### rawimg
Disk image. It's built in multiple stages via various host tools.