| Zeile 1: | Zeile 1: | ||
{{Infobox OS | {{Infobox OS | ||
| − | | Name = LF OS (LittleFox' | + | | Name = LF OS (LittleFox' Operating System) |
| − | | Version = | + | | Version = - |
| Entwickler = LittleFox | | Entwickler = LittleFox | ||
| − | | Lizenz = | + | | Lizenz = MIT |
| Kernel = Microkernel | | Kernel = Microkernel | ||
| − | | API = Nativ, | + | | API = Nativ, später POSIX als lib auf der nativen API |
| Binaerformat = [[ELF]] | | Binaerformat = [[ELF]] | ||
| Sprache = [[C]], [[C++]], [[Assembler]] | | Sprache = [[C]], [[C++]], [[Assembler]] | ||
| − | | Plattform = | + | | Plattform = [[x86-64]] |
| − | | IPC = | + | | IPC = Vor allem shared memory |
| − | | Homepage = [ | + | | Homepage = [https://praios.lf-net.org/littlefox/lf-os_amd64 https://praios.lf-net.org/littlefox/lf-os_amd64] |
}} | }} | ||
| − | LF OS ist ein | + | 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 | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
[[Kategorie:Betriebssystem]] | [[Kategorie:Betriebssystem]] | ||