HN vorgestellt: Mein selbst geschriebenes Hobby-OS läuft endlich auf einem alten IBM ThinkPad
(github.com/joexbayer)- 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 compileundmake imgdie Image-Datei erzeugen - Mit dem Befehl
make qemuden 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 qemuoderqemu-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-Anwendungenbin: Binärdateienboot: Bootloader-Quellcodedrivers: Kernel-Treiberfs: Dateisystem-Codegraphics: Grafikverarbeitungs-Codeinclude: Header-Dateienkernel: zentrale Kernel-Quellenlib: Bibliothekennet: Netzwerk-Coderootfs: Root-Dateisystemtests: Test-Codetools: 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
Hacker-News-Kommentare