12 Punkte von xguru 2021-10-12 | 1 Kommentare | Auf WhatsApp teilen
  • Ein OS, das sich anfühlt wie eine Mischung aus der UI von Windows/Mac aus den späten 1990ern und einem *nix-Kern aus den späten 2000ern

  • Begann als Ein-Personen-Projekt und wächst seit 3 Jahren mit Unterstützung der Community

  • Vom Kernel bis zum Webbrowser/IDE alles „von Grund auf selbst entwickelt, ohne externe Bibliotheken“

  • Das System selbst wird in Serenity C++ entwickelt.

→ eine moderne C++-Variante mit eigener Standardbibliothek

Repo : https://github.com/SerenityOS/serenity

  • Kernel-Funktionen

→ x86- (32bit) / x86_64- (64bit) Kernel mit Unterstützung für präemptives Multithreading

→ IPv4-Stack (ARP, TCP, UDP, ICMP)

→ ext2-Dateisystem

→ Unterstützung für POSIX-Signale

→ Unterstützung für das /proc-Dateisystem

  • Systemdienste

→ Launch-/Session-Daemon (SystemServer)

→ Compositing Window Server (WindowServer)

→ Textkonsolen-Manager (TTYServer)

→ DNS-Client (LookupServer)

→ Server für Netzwerkprotokolle (RequestServer and WebSocket)

→ Sound-Daemon mit Software-Mixing (AudioServer)

→ Desktop-Benachrichtigungen (NotificationServer)

→ HTTP-Server (WebServer)

→ Telnet-Server (TelnetServer)

→ DHCP-Client (DHCPClient)

  • Bibliotheken

→ C++-Templates und Container (AK)

→ Event Loop und Utilities (LibCore)

→ 2D-Grafikbibliothek (LibGfx)

→ OpenGL-1.x-kompatible Bibliothek (LibGL)

→ GUI-Toolkit (LibGUI)

→ Bibliothek für prozessübergreifende Kommunikation (LibIPC)

→ HTML/CSS-Engine (LibWeb)

→ JavaScript-Engine (LibJS)

→ Markdown (LibMarkdown)

→ Audio (LibAudio)

→ Chains für digitale Signalverarbeitung/Synthesizer (LibDSP)

→ PCI-Datenbank (LibPCIDB)

→ Terminalemulation (LibVT)

→ Out-of-process Netzwerkprotokoll-I/O (LibProtocol)

→ Mathematische Funktionen (LibM)

→ Verarbeitung von ELF-Dateien (LibELF)

→ POSIX-Threading (LibPthread)

→ Höherstufiges Threading (LibThreading)

→ Transport Layer Security (LibTLS)

→ HTTP und HTTPS (LibHTTP)

→ IMAP (LibIMAP)

  • Userland-Funktionen

→ Unix-ähnliche libc und Userland

→ Shell mit Pipes und I/O-Umleitung

→ Online-Hilfesystem (sowohl Terminal- als auch GUI-Varianten)

→ Webbrowser (Browser)

→ C++-IDE (HackStudio)

→ Desktop-Synthesizer (Piano)

→ E-Mail-Client (Mail)

→ Verschiedene Desktop-Apps & Spiele

→ Farbthemen

1 Kommentare

 
xguru 2021-10-12

Ich glaube, das ist eines der ungewöhnlichsten Hobby-OS-Projekte. Es ist auch beeindruckend, dass dort diese enorme Menge an Libraries und Apps implementiert und eingebaut wurde.

Der ursprüngliche Autor Andreas Kling begann das Projekt 2018, nachdem er ein dreimonatiges Reha-Programm wegen Drogenabhängigkeit abgeschlossen hatte und plötzlich viel freie Zeit hatte, die er füllen wollte.

Zuvor war er als Entwickler an WebKit bei Apple und Nokia tätig. Aufgrund seiner Erfahrungen bei Apple verfolgt er offenbar den Ansatz, alles ohne externe Pakete selbst zu entwickeln.

Seit Mai dieses Jahres sind die Spenden nun groß genug, sodass er Vollzeit an SerenityOS arbeitet.

Über GitHub Sponsors unterstützen ihn derzeit 232 Personen. https://github.com/sponsors/awesomekling

Bei Patreon sind es 279 Personen: https://www.patreon.com/serenityos

Die Zahl der Contributor hat 500 überschritten, und auf dem YouTube-Kanal werden jeden Monat OS-Updates veröffentlicht.

https://youtube.com/playlist/?list=PLMOpZvQB55bfp6ykOLayLqLrjcpv_Sw3P

Anfang 2019 waren diese noch etwa 10 Minuten lang, inzwischen dauern die Updates eher 30 bis 40 Minuten.

Bekannt ist auch ein Video, in dem Devilution, ein per Reverse Engineering nachgebautes Diablo 1, in nur einer Stunde auf SerenityOS portiert wurde.

https://github.com/diasurgical/devilution

https://www.youtube.com/watch?v=ZOzZ8R4gphE