1 Punkte von GN⁺ 2024-07-15 | 1 Kommentare | Auf WhatsApp teilen

Fusion OS

Fusion ist ein für x86-64 entwickeltes Hobby-Betriebssystem, das in Nim implementiert wurde. Der Entwicklungsprozess wird unter https://0xc0ffee.netlify.app dokumentiert.

Screenshots

  • UEFI-Bootloader
  • GUI ( Hinweis: Dieser Screenshot stammt aus dem noch in Arbeit befindlichen graphics-Branch.)
  • Booten des Fusion-Kernels

Funktionen

Derzeit implementierte Funktionen:

  • UEFI-Bootloader
  • Physischer Speicherverwalter
  • Virtueller Speicherverwalter
  • Einzelner Adressraum
  • User Mode
  • Präemptives Multitasking
  • Systemaufrufe
  • ELF-Loader
  • Timer-Interrupts

Geplante Funktionen:

  • Demand Paging
  • Interprozesskommunikation
  • Festplatten-I/O
  • Dateisystem
  • Tastatur-/Mauseingabe
  • Shell
  • GUI
  • Netzwerk

Build

Um Fusion zu bauen, müssen die folgenden Abhängigkeiten installiert werden:

  • Nim
  • LLVM (clang und lld)
  • Just

Fusion wird mit dem folgenden Befehl gebaut:

just build

Ausführung

Fusion läuft derzeit in QEMU, daher muss QEMU zunächst installiert werden. Mit dem folgenden Befehl wird Fusion ausgeführt:

just run

Lizenz

MIT

Zusammenfassung von GN⁺

Fusion OS ist ein für x86-64 entwickeltes Hobby-Betriebssystem, das in Nim implementiert wurde und für Menschen nützlich ist, die den Entwicklungsprozess eines Betriebssystems erlernen möchten. Derzeit sind grundlegende Funktionen wie ein UEFI-Bootloader, physische und virtuelle Speicherverwaltung sowie User Mode implementiert. Künftig sollen verschiedene Funktionen wie Demand Paging, Interprozesskommunikation und ein Dateisystem hinzukommen. Da es sich leicht über QEMU testen lässt, eignet es sich gut für Entwicklung und Lernen. Ähnliche Projekte sind xv6 und OSDev.

1 Kommentare

 
GN⁺ 2024-07-15
Hacker-News-Kommentare
  • Der Autor hier. Ich bin bereit, Fragen zu beantworten.
  • Dein Blog/deine Doku ist hervorragend. Der Blog und die Dokumentation sind großartig. Die Balance zwischen Vorführen und Erklären ist perfekt.
  • Schön, ich sehe so etwas gern. Ich habe über die Jahre hinweg immer mal wieder am Nim-Ökosystem teilgenommen. Es freut mich, dieses kleine Projekt weiter voranschreiten zu sehen.
  • Clever! Es macht Spaß, ELF-Module so leicht lesen zu können. Irgendwann würde ich gern ein RTOS in Nim schreiben. Ich schreibe gern Embedded-Programme in Nim, und auch ein RTOS zu bauen, klingt nach Spaß.
  • Was ist Nim, und was ist das übergeordnete Designziel von Fusion? Ich hoffe, das ist keine allzu grundlegende Frage, aber ich habe zu diesem Thema überhaupt kein Vorwissen und würde mich freuen, wenn es jemand erklären könnte.
  • Entwicklungstagebuch des Fusion-Autors: Hier wird der Link zum Entwicklungstagebuch des Fusion-Autors geteilt.
  • Wie verhält sich das im Vergleich zu TempleOS? Mich würde interessieren, worin die Unterschiede zu TempleOS liegen. Wegen des Single-Address-Space klingt es ähnlich.
  • Das Problem, das Nim hat und weshalb viele sich nicht an Nim herantrauen, ist die Unempfindlichkeit gegenüber Groß-/Kleinschreibung und Schreibstil.
    • Beispiel: Is_land == island == IsLaND == is-land
    • Das ist in Teamumgebungen oder realen Projekten problematisch.
    • Mich würde interessieren, wie sich die Situation derzeit entwickelt. Als ich zuletzt nachgesehen habe, hatte der Hauptentwickler entschieden, keine Maßnahmen gegen die Popularitätsabstimmung auf GitHub zu ergreifen.
    • Davon abgesehen sind das Fusion-OS-Projekt und die Dokumentation hervorragend.