4 Punkte von GN⁺ 2025-04-27 | 1 Kommentare | Auf WhatsApp teilen
  • RetrOS-32 ist ein 32-Bit-Hobby-Betriebssystemprojekt auf Basis der i386-Architektur
  • Es bietet Grafik-, Multitasking- und Netzwerkfunktionen und wurde auch auf echter Hardware getestet
  • Es ist in C, C++ und Assembly geschrieben und unterstützt plattformübergreifendes Kompilieren über Docker
  • Aufbau eines Benutzersystems, Ausführung in der QEMU-Emulation und Booten auf echter Hardware sind möglich
  • Das Projekt verfügt über ausgereifte Kernel-Funktionen und einen Netzwerk-Stack; laufend kommen neue Funktionen hinzu

Vorstellung des RetrOS-32bit-Projekts

  • Ein Entwicklungsprojekt für ein 32-Bit-Hobby-Betriebssystem auf Basis der i386-Architektur
  • Unterstützt eine grafische Umgebung, Multitasking und Netzwerkfunktionen
  • Projektstart: 12. Mai 2022

Standard-Login-Daten

  • Standard-Benutzerkonten: system, admin, guest
  • Das Passwort für admin ist admin, guest hat kein Passwort
  • Neue Benutzer können mit dem Befehl admin create <Benutzername> <Passwort> erstellt werden

Wichtige Entwicklungssprachen und Tools

  • C, Assembly: Kernel, Utilities, Build-System
  • C++: User-Space-Anwendungen
  • Make: Build-Automatisierung
  • Docker: Stellt eine plattformübergreifende Build-Umgebung bereit

Getestete Hardware

  • Lenovo x240
  • Asus Eee PC-Serie
  • Dell Optiplex 780
  • Samsung N150 Plus
  • Samsung NP-NC10
  • IBM Thinkpad a21p

Erste Schritte (Getting Started)

Benötigte Tools (Prerequisites)

  • Docker: plattformübergreifendes Kompilieren
  • QEMU: Emulation virtueller Maschinen
  • Linux/WSL-Umgebung: build-essential, gcc-multilib, grub2, xorriso, xxd
  • MacOS: Nutzung von Docker erforderlich (Einschränkungen beim 32-Bit-x86-Build)

Installation

  • Git-Repository klonen
  • Git-Submodule initialisieren
  • Mit den Befehlen make compile und make img die Image-Datei erzeugen
  • Mit dem Befehl make qemu den QEMU-Emulator starten

Unter MacOS und Windows wird die Nutzung von Docker empfohlen

Verwendung (Usage)

  • Die .img-Datei auf copy.sh v86 hochladen und dort ausführen
  • Direkte Ausführung mit QEMU möglich: make qemu oder qemu-system-i386 <Imagename>
  • Auf echter Hardware kann ein GRUB-basiertes ISO auf USB/CD geschrieben und davon gebootet werden

Projektstruktur (kurze Zusammenfassung)

  • apps: User-Space-Anwendungen
  • bin: Binärdateien
  • boot: Bootloader-Quellcode
  • drivers: Kernel-Treiber
  • fs: Dateisystem-Code
  • graphics: Grafikverarbeitungs-Code
  • include: Header-Dateien
  • kernel: zentrale Kernel-Quellen
  • lib: Bibliotheken
  • net: Netzwerk-Code
  • rootfs: Root-Dateisystem
  • tests: Test-Code
  • tools: Build- und Utility-Tools

Entwicklungs-Roadmap

  • Eigener Bootloader und GRUB-kompatibler Bootvorgang abgeschlossen
  • Präemptives Multithreading-Scheduling und Trennung von Kernel- und User-Space implementiert
  • Netzwerk-Stack: Ethernet, IP, ARP, UDP, TCP, DHCP, DNS abgeschlossen
  • Grafiksystem: Fenstermanager, Widgets, Double-Framebuffer-Rendering implementiert
  • Dateisystem: Ext2-ähnlich, FAT16-Unterstützung, Lesen/Schreiben möglich
  • Geplante nächste Schritte: Unterstützung für Webserver, FTP, IRC, SSH, Telnet, HTTP und HTML

1 Kommentare

 
GN⁺ 2025-04-27
Hacker-News-Kommentare
  • Solche Projekte sind viel schöner anzusehen als AI. Es wird sich vermutlich nicht verkaufen, aber hier arbeitet ein Techniker kreativ
    • Ich habe mich als älterer Teenager als Hobby viel mit OS-Entwicklung beschäftigt. Ich baue immer noch gelegentlich kleine Kernel (zuletzt habe ich meinem Partner mit einem kleinen RISCV-Kernel eine Nachricht ausgegeben)
  • Eines der beeindruckendsten Leidenschaftsprojekte, die ich seit Langem gesehen habe. Ich frage mich, warum ein eigener C-Compiler geschrieben wurde
  • Die Standard-Systemschrift sollte eine stärker komprimierte Variante sein. Das System würde viel ausgereifter wirken
    • Es ist klar, dass die Zeichen mehr horizontalen Raum brauchen. Jedes Zeichen sollte schmaler sein, und der Abstand zwischen den Zeichen sollte so gering wie möglich sein – bei der derzeit verwendeten Schriftgröße und Auflösung reicht etwa ein Pixel
    • Ich kenne mich mit Font-Systemen nicht gut aus, nehme aber an, dass es sich um eine Bitmap-Schrift mit fester Breite handelt. Ich weiß nicht, wie schwierig es ist, solche Änderungen in der Codebasis vorzunehmen, aber wenn das zu viel Arbeit ist, dann mach dir keine Sorgen
    • Ich baue gerade von Grund auf eine Web-OS-Seite und habe vor Kurzem die Font-Klasse komplett neu geschrieben. Deshalb beschäftigt mich dieses Thema
  • Großartig! Was würdest du heute anders machen, wenn du noch einmal von vorn anfangen würdest?
    • Wie denkst du über die Eignung von Sprachen für die Low-Level-Teile? (z. B. bei C bleiben oder ein einfaches Teilset von C++ oder eine der neueren Sprachen verwenden)
    • Wie hast du das Projekt interessant gehalten, ohne in einer Situation mit so vielen Ressourcen einfach den Code anderer Leute zu kopieren?
  • Glückwunsch! Als jemand, der 1977 einen Commodore PET 2001 benutzt hat, sieht das großartig aus. Ich habe mit KolibriOS und MenuetOSx64 herumgespielt, wollte aber mein eigenes OS bauen. Du hast es geschafft! Ich wünsche dir, dass du weitermachst
  • Ich wollte meine Glückwünsche aussprechen. Das Projekt hat mich tief beeindruckt. Ich war seit meiner Jugend ein Fan von OS-Entwicklung, und es freut mich, diese Leistung Wirklichkeit werden zu sehen. Ich frage mich, wie das Grafik-Subsystem initialisiert wird. Viel Erfolg
  • Wird es so groß und professionell wie GNU? :)
  • Könntest du erklären, wie dieser Compiler mit dem Betriebssystem interagiert? Mich interessiert besonders, wie Funktionen wie Structs behandelt werden und was die aktuellen Einschränkungen oder geplanten Verbesserungen in diesem Bereich sind
  • Es ist interessant, dass mehrere Projekte gleichzeitig Meilensteine erreichen. Es ist beruhigend zu sehen, dass es immer noch Menschen gibt, die tief mit Computern arbeiten und die Ergebnisse teilen
    • Ich wünsche dir, dass du weitermachst
  • Im Editor sehe ich Spuren von Turbo C/QBasic
    • Lob für das Projekt