Inhaltsverzeichnis

Lyx OS

UEFI • x86-64 • In Lyx geschrieben • Kein fork() • Kein errno • Kein Root • KI als Kernel-Primitiv
Version v0.1
Sprache Lyx + NASM Assembly
Target lyxc –target=lyxos
Plattform x86-64, UEFI, QEMU
Autor Andreas Röne
Status M1–M4 abgeschlossen, M5–M10 in Entwicklung

Was ist Lyx OS?

Lyx OS ist ein bare-metal x86-64-Betriebssystem, das vollständig in der Lyx-Sprache und NASM-Assembly geschrieben ist. Es startet direkt über UEFI — ohne Linux, ohne GRUB, ohne externe Laufzeitumgebungen.

Drei fundamentale Design-Entscheidungen unterscheiden Lyx OS grundlegend von bestehenden Systemen:


KI als Kernel-Primitiv

KI-Inferenz ist in Lyx OS kein Userspace-Daemon und kein HTTP-API — sie ist ein schedulierter Kernel-Workload. Ein Sprachmodell wird einmal in Kernel-verwaltetem Shared Memory geladen; alle Prozesse nutzen es ohne Kopie und ohne IPC-Roundtrip. Der sys_ai_infer-Syscall (Gruppe 0x0800) ist genauso normal wie sys_read.

Das ermöglicht die langfristige Vision Lyra: eine KI-Besitzerin des Betriebssystems, die in CPU-Idle-Zyklen aktiv weiterdenkt und Ressourcen semantisch verwaltet — nicht als App auf einem OS, sondern als integraler Bestandteil des Kernels.

fn main(): int64 {
    // Modell laden (OS-weit geteilt, kein doppelter Speicher)
    var model_fd: int64 := sys_ai_model_load(AT_CWD, "/models/lyra-7b.gguf", 0);
    var ctx_fd:   int64 := sys_ai_ctx_create(model_fd, 0, 0);

    // Synchrone Inferenz — blockiert bis Completion
    var result: [4096]uint8 := [];
    sys_ai_infer_sync(ctx_fd, "Was ist 2+2?", 12, ^result[0], 4096, null);
    PrintLn(^result[0] as pchar);

    return 0;
}


Automatische Parallelität

Der Programmierer denkt in Tasks, nicht in Cores. sys_task_spawn erzeugt leichtgewichtige Arbeitseinheiten; ein Work-Stealing-Scheduler verteilt sie auf alle verfügbaren Kerne ohne Programmiereingriff. lyxc mit @parallel-Annotation generiert die sys_task_spawn-Calls automatisch:

// Jede Iteration läuft auf einem beliebigen Core — ohne manuelles Threading
@parallel for i in range 0..1000 {
    result[i] := process(data[i]);
}


Aktueller Stand

Meilenstein Inhalt Status
M1 — Boot & Bare-Metal UEFI-Bootloader, ELF-Loader, Kernel-Einstieg ✅ Abgeschlossen
M2 — Kernel-Kern PMM, VMM, IDT/Exceptions, SMP ✅ Abgeschlossen
M3 — Runtime & Scheduler Laufzeit-Primitive, Prozessmodell, Mutex/Semaphor ✅ Abgeschlossen
M4 — I/O ATA, FAT32, VFS, Keyboard, Ring-3-Shell ✅ Abgeschlossen
M5 — Ring-3 & Shell Vollständige Userspace-Shell, sys_spawn Offen
M6 — Netzwerk TCP/IP-Stack, Syscall-Gruppe 0x0600 Offen
M7 — Lyra-Agent Kernel-KI-Subsystem, Lyra-Basisschicht Offen
M8–M10 Semantic OS Layer, Aerospace Safety, Distribution Offen

Was heute funktioniert:


Schnellstart

# Repository klonen und bauen
git clone https://github.com/lyxos/lyx-os.git
cd lyx-os
bash bootloader/build.sh

# In QEMU starten
bash bootloader/run.sh

Erwartete Ausgabe:

Lyx OS v0.1 - Kernel running
PMM: init... free pages: 65432
VMM: identity map + CR3 load... CR3=0x200000 OK
Exceptions: IDT loaded (256 gates)
SMP: 4 CPUs detected, APs started
ATA: disk ready  |  FAT32: init OK  |  VFS: mounted  |  Keyboard: ready
Lyx Shell v0.1 - Ring-3 active

Vollständige Anleitung: Voraussetzungen, Build-Schritte, Debugging


Eigene Anwendungen

Ring-3-Programme für LyxOS werden mit –target=lyxos kompiliert. Das Target löst alle Builtins (PrintLn, mmap, open, …) direkt auf LyxOS-Syscalls auf — keine libc, kein CRT0.

fn main(): int64 {
    PrintLn("Hallo von Ring-3!");
    return 0;
}

lyxc --target=lyxos hello.lyx -o hello.elf

Anwendungen entwickeln — Dateisystem, Speicher, Prozesse, Fehlerbehandlung


Syscall-ABI

Lyx OS definiert 137 Syscalls in 13 Kategorien. Das Design-Prinzip: ein Syscall = eine Operation, kein polymorpher Wildwuchs wie Linux ioctl/fcntl.

Kategorie Bereich Anzahl
Prozess & Threads 0x0000–0x000D 14
Speicher 0x0100–0x0105 6
Dateisystem & VFS 0x0200–0x0215 22
IPC & Synchronisation 0x0400–0x040C 13
Sicherheit & Capabilities 0x0700–0x0708 9
KI & Semantik 0x0800–0x0812 19
Task & Parallelität 0x0B00–0x0B09 10
… weitere 0x0300–0x0C04 44

Vollständige Syscall-Referenz — alle Kategorien, Signaturen, Fehlercodes


Dokumentationsübersicht

Thema Seite
LyxOS starten (QEMU-Setup, erster Boot) Erste Schritte
System-Architektur & Kernel-Aufbau Architektur
Eigene Anwendungen für LyxOS schreiben Anwendungen entwickeln
Syscall-ABI v1.0 — alle Gruppen & Signaturen Syscall-Referenz
Kernel-Interna für Beitragende Kernel-Interna

Letzte Aktualisierung: 2026-06-09