NOTE: Zeptux is on hold for the time being as I am busy working on the memory management book. I plan to return to it at a later date.
Zeptux is an in-development, opinionated, UNIX-like kernel which may or may not target POSIX conformity.
It is, rather unfashionably, implemented in C and assembly.
It is released under an MIT license.
- Implement interrupt handler and enable interrupts.
- Page fault handling.
- Implement interrupt-driven serial port interface for early kernel I/O.
- Implement kernel ring buffer (outputting to serial interface to start with).
- Implement virtual file system support.
- Implement correct, possibly trivial disk I/O driver.
- Implement processes both userland and kernel.
- Implement scheduler.
- Load init userland process.
- Add basic system calls.
- Implement trivial shell.
Make sure you have gcc, binutils, python 3, go and qemu installed.
$ ./build
To run under qemu:
$ ./build qemu
To run under qemu using a graphical output:
$ ./build qemu-vga
To execute all tests, run:
$ ./build test
This will generate a test kernel image which will then be executed under qemu.
-
Design concepts - a rough draft document on zeptux design concepts.
-
Memory map - a description of the physical and virtual memory maps within zeptux.