2.0 KiB
NOXOS Build Instructions
DISCLAIMER: To build this project you need a linux system (WSL could work for Windows users, but I haven't tested it).
Workspace setup
First create a directory and name it something like noxos
.
Then clone at least the following repositories into that directory:
git clone https://git.nerdcult.net/noxos/kernel
git clone https://git.nerdcult.net/noxos/libraries
git clone https://git.nerdcult.net/noxos/userspace
git clone https://git.nerdcult.net/noxos/drivers
After that cd
into the kernel
directory.
There are a few tools required, that need to be installed:
- gcc - compiler
- ld - linker
- nasm - assembler
- cmake - build system
- xorriso - ISO creation tools
- qemu - emulator
- ovmf - UEFI firmware
you can check if you have all tools installed, with ./build.sh check
.
Compiling NOXOS
The build system is based on CMake and uses a bash script to automate the kernel, libraries and drivers compilation and image creation process.
You can run the script with the following command:
./build.sh
All temporary data will be written into a directory called build
.
If the Bootloader (limine) isn't downloaded yet, the script will download it.
The final ISO file will be written to the build
directory.
Running NOXOS
After compiling, you can run NOXOS using /run.sh
.
BIOS Emulation
To emulate a BIOS system, you can run ./run.sh bios
.
Debugging
Logs
When running through the script, qemu is configured to write the kernels logs to STDOUT and a file called noxos.log.
GDB
You can connect GDB to qemu.
To achieve this, run ./run.sh debug
.
QEMU will wait until you connect GDB to it as a 'remote' target on localhost:1234
.
gdb build/cmake/kernel/kernel
target remote localhost:1234
c
(note, that the last to commands have to be 'executed' in gdb not in your shell)
Warning: QEMU + GDB debugging seems to be kinda broken after an update.