Skip to content

Latest commit

 

History

History
43 lines (28 loc) · 4.42 KB

readme.md

File metadata and controls

43 lines (28 loc) · 4.42 KB

luxOS logo

License: MIT GitHub commit activity Build Status GitHub Issues Codacy Badge

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.

Overview

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.

Contents

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

License

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