Add README.md
This commit is contained in:
parent
7a1f072e4a
commit
8191b97a99
1 changed files with 56 additions and 0 deletions
56
README.md
Normal file
56
README.md
Normal 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.
|
||||
Loading…
Add table
Reference in a new issue