Thanks for your interest in contributing! NovusKernel is a 64-bit x86 kernel built from scratch in C with a custom UEFI bootloader. Whether you’re new to OS development or just want to help improve documentation, you’re welcome here. Every contribution counts!
Clone the repo and build it:
git clone https://github.com/Nullora/NovusKernel.git
cd NovusKernel# make sure you are in the root directory (/NovusKernel)
make clean # clean previous build files
make # build kernel and bootloader
make r # run in QEMU
make flash # flash onto USB (MAKE SURE TO CHANGE VARIABLE <usb> TO YOUR USB NAME)Or if you're using the .nub file (thanks if you're using it!)
# make sure you are in the root directory (/NovusKernel)
nub c # clean previous build files
nub # build bootloader and kernel
nub r # run in QEMU
nub f # flash onto USB (MAKE SURE TO CHANGE VARIABLE <usb> TO YOUR USB NAME)
nub g # push to github (if youre planning to contribute or you forked the repo)
nub i # install all dependencies. might take a few secondsAnd if you're not using NUB, you can find it here!!!
- WARNING: The bootloader and kernel have been tested on real hardware. Running them on your machine may cause problems. QEMU is recommended for testing.
Look inside the /kernel/src/ directory or /kernel/include/ directory. Do not start in kernel.c, as that’s just a playground for testing. Good starting points: memory.c, tty.c, gdt.c, etc.
If you’re new to os dev, start with small tasks like:
- Adding comments to memory.c or tty.c functions
- Fixing typos in code or README
- Adding small utility functions or helpers
- Make your changes in small, testable pieces.
- Build and test your changes using QEMU (make run).
- Include proof of testing:
- Screenshots of QEMU output
- Optional: GIFs or video if it’s a visual feature
- Submit a pull request, referencing the issue number (if any). Wait for review, I respond quickly!
Even small contributions like documentation improvements are appreciated!!
Some of the upcoming features I plan to work on:
- Keyboard input handling
- Timer interrupts
- Paging / virtual memory
- Simple CLI / shell
- Basic file system support
- Additional TTY / display improvements
Contributors can pick tasks from this list or suggest their own ideas.
All contributors will be added to Contributors.md Top contributions may be featured on Reddit / DEV.to posts
Your name will be credited, everyone’s help counts!
If you need help:
- Comment on GitHub Issues
- Send a message via Reddit (u/nullora0)
I reply quickly and im more than happy to guide new contributors.