A small hobby OS
Jazz is an Operating System that I have decided to write from scratch to understand an OS.
The design goal of this project is to make a very light operating system with minimal microkernel. A light microkernel means an easy to maintain OS where each module is easy to test and update. This is also in line with the principle of separation of mechanism and policy.
make deps # to build cross-compiler
make kernel # to build kernel
make all # to build everything
Most of the work is in kernel itself and the standalone kernel can be built
from inside the kernel/
directory.
cd kernel/
make # build the kernel
make qemu # run the kernel on qemu
make gdb # run a gdb session with qemu
Building dependencies fails with error: make -j 8 g++: internal compiler error: Killed (program cc1plus)
This might be because you ran out of memory due to make
running build in
parallel. Try to change the option -j 8
to -j 2
and build again.
Aside from qemu
and gdb
, there is extensive logging on the serial port
which can be accessed at /tmp/jazz_serial1.log
file when qemu
is started
from the makefile as make qemu
.
The todo/plan can be found here.
MIT © 2018-present Utkarsh Maheshwari