Skip to content

coditva/Jazz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

72ccb46 · May 15, 2021
Sep 8, 2019
May 7, 2021
May 12, 2019
May 22, 2019
May 15, 2021
May 6, 2021
May 8, 2021
Oct 12, 2019
May 6, 2021
May 12, 2019
May 8, 2021
Oct 17, 2018
May 2, 2021
Sep 8, 2019

Repository files navigation

Build CodeFactor

Jazz

A small hobby OS

About the project

Jazz is an Operating System that I have decided to write from scratch to understand an OS.

Design Goals

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.

Development

Build

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

Troubleshooting

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.

Debug

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.

Todo

The todo/plan can be found here.

License

MIT © 2018-present Utkarsh Maheshwari