- A module loader/interface
- An initrd driver
- A VFS
- PS2 Keyboard driver
- AHCI Driver
- NVME Driver.
- A FAT driver.
- Ext2/3/4 Driver.
- POSIX Compatibility Layer
- Porting mlibc.
- A terminal.
- Support for USB.
- Support for ACPI power management.
- Making a GCC/Binutils target for the os.
- Porting binutils and GCC to the os.
- Porting CMake and Make.
- Porting tar.
- A network stack.
- An audio stack.
- A GUI.
- Porting python.
- Porting 7zip.
- Porting a browser and curl.
- Porting qemu.
- CMake
- Ninja
- Make
- xorriso
- An x86_64-elf-gcc cross compiler if you are building for x86_64.
- WSL2 if you are on windows.
- Open a terminal (or WSL if on windows), and clone the GitHub repository with these commands:
git clone https://github.com/oberrow/obos.git
cd obos
git clone https://github.com/limine-bootloader/limine.git --branch=v5.2023-20241006.0-binary --depth=1
You can ignore any warnings.
2. Configure cmake with this command:
cmake --toolchain src/scripts-toolchains/x86_64/toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja .
- Finally, build the kernel with these commands:
make -C limine
ninja -j 0
The iso image will be stored in out/obos.iso
If you have qemu installed, you can run a virtual machine with the os by running scripts/launch-qemu.sh