# 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.