BamOS
This project is focused on developing an operating system (currently just the kernel).
Its primary features include a focus on optimization, clean code, structured design, and good documentation.
The goal is to create a concise and optimized general-purpose OS, with plans to support multiple ABIs between the kernel and user space in the future (such as GNU/Linux, Windows, etc.).
Current state
- x86-64 architecture
- Device subsystem (devices, drivers, buses)
- Interrupt subsystem (IRQ, MSIs)
- Virtual memory managment
- Logging (text-output, serial port)
- PCI/PCIe, NVMe drivers
- VFS (in progress)
A bit more about the project:
What started as a hobby project initially written in C has grown considerably. As expected for a general-purpose OS, it’s a large software product where architecture is the main challenge. Good architecture takes time, and like perfection itself, it’s an endless process—it will continue to be refined and improved. After an initial draft in C, which already included memory management, a file system, drivers, processes, a scheduler, and partial support for GNU/Linux syscalls, it was time to work on a more polished implementation. Thus, the project fully transitioned to Zig.
Currently, the project has taken on its overall shape, and several subsystems have been implemented—though there’s still much more to develop.
I’m publishing this now to invite You to explore the project and, hopefully, contribute to its growth. I believe this is a good time, as building from scratch can be exhausting, while just fixing minor issues in a big project may not be engaging enough.
I have spent time documenting the code itself and writing an overview of the core subsystems, so that anyone interested can understand its internal structure. Moreover, solid documentation is one of the project’s goals.
So, I invite everyone to check out the project on GitHub! It’s currently in active development, and everyone is welcome to contribute or critique what’s already in place.