2.1 KiB
Build Toolchain
BoredOS is built cross-compiled from a host system (such as macOS or Linux) to target the generic x86_64-elf platform.
Prerequisites
To build BoredOS, you need the following tools:
-
x86_64 ELF GCC Cross-Compiler:
x86_64-elf-gcc: The C compiler targeting the freestanding overarching ELF environment.x86_64-elf-ld: The linker to combine object files into the finalboredos.elfkernel binary and userland variables.
-
NASM:
- Required to compile the
.asmfiles insrc/arch/andsrc/userland/crt0.asm. It formats the output aself64objects to be linked alongside the C code.
- Required to compile the
-
xorriso:
- A specialized tool to create ISO 9660 filesystem images.
- Why?
xorrisopackages the compiled kernel, Limine bootloader, and asset files (fonts, images, userland binaries) into the final bootableboredos.isoCD-ROM image.
-
QEMU (Optional but highly recommended for testing):
qemu-system-x86_64is used for rapid emulation and testing.
Installation (macOS)
You can easily install the complete toolchain using Homebrew:
brew install x86_64-elf-binutils x86_64-elf-gcc nasm xorriso qemu
Installation (Linux)
Depending on your distribution, the installation commands vary. Note that some distributions may require you to build the x86_64-elf cross-compiler from source if it isn't available in their default repositories.
Debian / Ubuntu
sudo apt update
sudo apt install build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo nasm xorriso qemu-system-x86
(Note: You will need to build the x86_64-elf cross-compiler from source or find a compatible PPA, as it is not in the default Debian/Ubuntu repositories.)
Arch Linux
Arch Linux provides the regular tools in its standard repositories and the cross-compiler via the AUR:
sudo pacman -S nasm xorriso qemu-full
yay -S x86_64-elf-gcc x86_64-elf-binutils
Fedora
sudo dnf install make gcc gcc-c++ bison flex gmp-devel mpfr-devel libmpc-devel texinfo nasm xorriso qemu