documentation/build-instructions.md

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.