LF OS

Author
Mara Sophie Grosch
Project active since
Language
C
Kernel type
Microkernel
Platforms
x86-64
User interface
GUI
License
MIT

This is the 5th attempt at writing an operating system from scratch, where "attempt" means: starting from zero.

Development mainly happens on Gitlab at https://praios.lf-net.org/littlefox/lf-os_amd64 - check it out!

It can run Doom!

Design

This will be a microkernel providing the following inside the kernel

  • base system initialization (CPU, physical memory, common bus systems)
  • memory management for processes (virtual memory)
  • inter-process communication facilities
    • mostly via shared memory and message queues
    • later also via helper userspace programs to make communication between processes A and B over an arbitrary channel between C and D, where A, B, C and D may run on different computers
    • IPC between different computers will be transparent to processes in a later version
  • service registry
    • processes announce services (file system, block device, character device, ...)
    • other processes need services
    • ask kernel for process implementing service x
    • IPC to process for service x

All drivers for special hardware (everything not attached to a common bus) are userspace programs that will be designed to recover after crashed. They can store a small amount of information in the kernel (like hard disk x is fully initialized, just read from address $y and port $x) and when they crash, they are just restarted.

Since IPC between processes running on different computers is planned to be transparent, it's actually possible to run a single instance of LF OS on a whole data center (or bigger, but latency).

Console

Add new comment