This repository contains the microkernel servers that implement drivers and external system call handlers for the lux microkernel. The microkernel and the servers, along with lumen, form the foundation of luxOS.
In brief, the lux microkernel provides minimal kernel-level services and relays almost all its system calls to external servers to be handled in user space. The only OS functionality implemented at the kernel level are memory management, scheduling, and interprocess communication. The microkernel, along with these servers, all depend on lumen, a user space router and init program that facilitates communication between the kernel and the appropriate servers.
The servers are broadly categorized into two main categories, devices
for device drivers, and fs
for file system drivers. A small library containing common message structures and helper functions that are repetitively used in all the servers, as well as in lumen, is also implemented in liblux
.
Below is an alphabetically sorted list of the servers implemented thus far, their purpose, and their server dependency, if any. Any server can have at most one direct dependency. Server dependencies are inherited, establishing a clear chain of command and line of communication between the servers, the microkernel, and lumen. For this reason, the server dependency relationships may also be visualized in a tree-like structure.
Server | Dependency | Purpose |
---|---|---|
devfs | vfs | Implementation of the /dev file system |
kbd | devfs | Generic keyboard device interface /dev/kbd |
lfb | devfs | Generic linear frame buffer interface /dev/lfbX |
lxfs | vfs | File system driver for lxfs, a custom 64-bit FAT-like file system with native support for Unix file permissions, long file names, and Unicode |
nvme | sdev | Device driver for NVMe SSDs |
pci | devfs | Device driver for the PCI bus |
procfs | vfs | Implementation of the /proc file system |
ps2 | kbd | Device driver for PS/2 keyboards |
pty | devfs | Driver for Unix-style pseudoterminal devices /dev/ptmx and /dev/ptsX |
sdev | devfs | Generic storage device interface /dev/sdX |
vfs | None | Implementation of a Unix-like virtual file system |
The lux microkernel and its servers are free and open source software released under the terms of the MIT License.
Made with 💗 from Boston and Cairo