LF OS

Aus Lowlevel
Wechseln zu: Navigation, Suche
LF OS (LittleFox' Operating System)
Entwickler: LittleFox
Akt. Version: -
Lizenz: MIT
OS-Eigenschaften
Plattform: x86-64
Kernelart: Microkernel
Sprache: C, C++, Assembler
API: Nativ, später POSIX als lib auf der nativen API
Binärformat: ELF
IPC-Methode: Vor allem shared memory
Homepage
https://praios.lf-net.org/littlefox/lf-os_amd64


Seit bald einem Jahrzehnt schreibe ich nun schon immer mal wieder an Betriebssystemen (meist LF OS). Seit bald einem Jahr schreibe ich mehr oder weniger regelmäßig (quasi jede Zugfahrt und manchmal noch einfach so) an der aktuellsten Variante.

  • amd64
  • UEFI
  • Microkernel

Der Plan ist, quasi alles in Userspace-Prozesse zu packen. Alle Prozesse können Dienste bereitstellen, diese werden im Kernel registriert. Andere Prozesse können sich dann Dienste erfragen und bekommen dann PID und Channel ID für IPC um mit dieser Instanz des Dienstes zu kommunizieren. Dienste sind z.B. Blockdevice-Treiber, FS-Treiber, Grafikserver, Terminals, ...

Wenn Dienste von Prozessen implementiert werden und diese Forken, werden die Dienste direkt als Standardimplementierung im fork verwendet. So kann ein Terminal-Emulator z.B. den Terminal Dienst implementieren und in eine Shell forken, die dann automatisch auf diesen Terminal Emulator rendert.

Bis das so weit läuft wirds aber wohl noch etwas dauern ... gerade funktioniert schon

  • UEFI Loader
    • lädt Kernel und init
    • bereitet sinnvolle initiale Speichermappings vor
    • Holt Framebuffer vom UEFI für Konsole
  • Kernel
    • physische Speicherverwaltung mit linked lists
    • virtuelle Speicherverwaltung unter Verwendung der Datenstrukturen die die CPU selbst verwendet
      • es gibt ein Mapping des gesamten physischen Speichers an eine virtuelle Adresse
      • das ist meine aktuelle Baustelle