oxos is a monolithic kernel that can run tic-tac-toe. Its process model is static and is based around a batch loader. It can only support one process at a time and the order of programms is set before boot. oxos has a synchronous interrupt-based Kernel API. Programms can use kernel functions by interacting with the oxos system library. The kernel offers syscalls for GPIO, display and UART.
Building and running oxos requires the following packages to be installed:
- qemu (aarch64)
- cargo & rust (nightly)
- cargo binutils (repo can be found here)
- python3
Build OXos by running:
makeLaunch oxos by running
make gpio # in a seperate shell (or append "&")
make qemuDebug oxos in gdb
make gpio # in a seperate shell (or append "&")
make qemu-debug
# in gdb
add-symbol-file ./kernel8.debug
target remote localhost:1234
break kernel_mainThis repository is made up of multiple directories.
ext houses all userspace files.
kernel hosts the kernel source code.
docs contains some documentation, but is largly out of date at this point.
utils contains helper scripts used in the construction of the binary and emulating gpio.
This project wouldn't be possible without a number of resources. The most important ones include:
