SerenityOS
SerenityOS (Eigenschreibweise, engl. serenity „Gelassenheit“) ist ein freies Desktop-Betriebssystem, das sich seit 2018 in der Entwicklung befindet. Das Projekt wurde vom schwedischen Entwickler Andreas Kling begonnen und inzwischen ist eine Community an Hobbyprogrammierern daran beteiligt. Das System unterstützt den x86-Befehlssatz in den 32- und 64-Bit-Varianten (IA-32, x64) und baut auf einem monolithischen präemptiblen Kernel auf. Seine Benutzeroberfläche versucht, die Ästhetik der Oberflächen der späten 1990er-Jahre nachzubilden, und es gibt (mit Ausnahme des Compilers) keine Abhängigkeit von externer Software.[1][2]
SerenityOS | |
---|---|
Entwickler | Andreas Kling und die Entwickler des SerenityOS-Projekts |
Lizenz(en) | BSD-Lizenz |
Erstveröff. | 10. Oktober 2018 |
Kernel | Monolithischer Kernel |
Architektur(en) | IA-32: x86-32 u. x86-64 |
Kompatibilität | POSIX |
Installationsmedium | keine; muss vom Benutzer selbst kompiliert werden |
Sprache(n) | Englisch |
serenityos.org |
Geschichte
Projektgründer Andreas Kling begann das Projekt im Oktober 2018, nachdem er eine Drogenrehabilitation erfolgreich beendet hatte und nach einer Möglichkeit suchte, seine Suchterholung zu unterstützen und sich sinnvoller zu beschäftigen. Der Name „Serenity“ leitet sich daher vom Gelassenheitsgebet, englisch Serenity Prayer, her.[3] SerenityOS begann als eine Sammlung an Einzelkomponenten, die er im Oktober 2018 zu einem System zusammenfügte.[4]
Im Januar 2019[5] begann Kling, Videos seiner Arbeit am System, aber auch Demos und später monatliche Änderungsberichte („Updates“), auf YouTube hochzuladen. Die relative Bekanntheit seines Projekts rührt auch maßgeblich von der relativen Bekanntheit seines YouTube-Kanals und seiner Videos her.
Seit Mai 2021 ist Kling, der damals angab, durch freiwillige Spenden etwa 2200 $ im Monat zu verdienen, in Vollzeit mit der Entwicklung des Systems beschäftigt.[3] Anfang Oktober 2021 berichtete Projektverwalter Linus Groh, der projekteigene Browser habe in der JavaScript-Kompatibilität die früher in Microsoft Edge eingesetzte Chakra-Engine überholt.[6]
Aufbau und Softwarephilosophie
SerenityOS ist vollständig (Ausnahme: Teile der Startsequenz) in einer Variante von modernem C++ geschrieben, die von den Entwicklern als „Serenity C++“ bezeichnet wird.[7] Ein modifizierter Compiler (momentan: GCC oder Clang) kommt zum Einsatz. Es werden keine Ausnahmen verwendet und die normale Standardbibliothek ist nicht vorhanden, da sie durch eigene Bibliotheken ersetzt wird. Dies gilt in ähnlicher Weise für das gesamte Projekt: Jede einzelne Komponente des Betriebssystems, vom Kernel über die Bibliotheken bis zum Webbrowser, wird vom SerenityOS-Projekt selbst erstellt.[2] Kling begründet dies mit der Art und Weise, wie er die Softwareentwicklung bei Apple erlebt habe: enge Integration, Flexibilität der Entwickler und die Experten für jeden bestimmten Teil der Software seien schnell erreichbar.[3] Zugleich werden jedoch existierende Standards verwendet: Der Kernel zielt auf POSIX-Kompatibilität ab, der Terminal-Emulator ist teilweise ANSI-kompatibel, es werden ELF für Kompilationseinheiten und das Ext2-Dateisystem genutzt.
Der Kernel ist ein monolithischer Kernel mit präemptiblem Multitasking; Benutzerprozesse kommunizieren mittels Systemaufrufen mit dem Betriebssystem.[8] Zwischen Benutzerprozessen dient ein eigenes IPC- bzw. RPC-Protokoll basierend auf Unix Domain Sockets zur Kommunikation. Die Systemdienste werden „Server“ genannt und von einem Systemd-ähnlichen „SystemServer“ gestartet und verwaltet.
Die Benutzeroberfläche ist von der Ästhetik der Betriebssysteme der späten 1990er-Jahre inspiriert und es gibt eine Vielzahl an Designs, die spezielle Oberflächen wie Windows 2000 oder System 7 nachzubilden versuchen. Das Betriebssystem beabsichtigt gemäß POSIX-Ideen, dem Benutzer möglichst viel Kontrolle über die Hardware und den Systembetrieb zu erlauben.
Die Entwicklung folgt keinem Veröffentlichungszyklus; demnach gibt es keine Veröffentlichungen oder Versionen. Weiterhin werden keine vorkompillierten Softwarepakete zur Verfügung gestellt und von Interessenten wird erwartet, dass sie das System selbst bauen.
Funktionen und Anwendungen
Die eigenen GUI-Programme gruppieren sich zum aktuellen Zeitpunkt um die Aufgaben Systemverwaltung und Softwareentwicklung. Die komplexesten Anwendungen sind der eigene Browser, der einfache Webseiten laden kann, sowie eine integrierte Entwicklungsumgebung mit einem C++-Unterstützungs-Sprachserver. Eine Reihe an Werkzeugen existieren, die größtenteils Befehlszeilenprogramme sind und übliche POSIX-Tools implementieren oder nachbilden (z. B. pls für sudo, sdb für gdb).
Eine Reihe an portierter Software mit variierender Funktionalität ist verfügbar.[9] Darunter befinden sich auch eine Vielzahl an Computerspielen insbesondere aus der Ära, deren Desktopoberflächen das System nachzubilden versucht, z. B. Doom oder Quake.
Rezeption
Im August 2021 erhielt das Projekt einige Aufmerksamkeit durch einen Artikel von Jim Salter auf Ars Technica.[10] Salter kritisierte als ihm unliebsamster Teil das Dateisystem, da Ext2 veraltet und unsicher sei. Das System sei weiterhin durch eine momentan fehlende Mehrprozessor-Unterstützung nicht für Anwendungen in der echten Welt geeignet. Er lobte die bessere Zugänglichkeit im Vergleich zu anderen Hobbysystemen wie TempleOS, wies aber darauf hin, dass es noch nicht für den täglichen Gebrauch geeignet sei.
Internationale mediale Resonanz gab es insbesondere nach oder in Antwort auf Klings Vollzeit-Ankündigung[11][12][13][14][15][16], darunter Gnu/Linux.ch[17][18][19]. Kling und andere Entwickler erschienen bei diversen Podcasts[20], so z. B. beim CppCast[21][22], und bei Systems with JT, einem Rust-Kernentwickler[23].
Bereits mehrfach wurde SerenityOS auf Hacker News verbreitet[24][25][26][27][28] und erhielt dort neben variierender Aufmerksamkeit öfters zustimmende Kommentare. Häufig werden Design und Aussehen gelobt. Ein ebenfalls häufiger Kritikpunkt der Nutzer ist das fehlende Vorhandensein von vorkompilierten Systemabbildern, da ihnen das eigene Kompilieren zu schwer sei.[29] Es wird bemängelt, dass das System sich in einem instabilen, unfertigen Zustand befinde, durch welchen es kaum benutzbar sei. Zu einem solchen Schluss kommen auch viele der anderen hier genannten Kritiken: Das Projekt sei ein „Spielzeugprojekt“ ohne Aussicht auf praktische Anwendungsmöglichkeiten. Einige Benutzer kritisieren weiterhin, dass C++ an sich ein Sicherheitsrisiko darstelle und mit einem solchen neuen Projekt die Gelegenheit verpasst worden wäre, eine als sicherer geltende Sprache wie Rust einzusetzen.
Weblinks
Einzelnachweise
- SerenityOS. Abgerufen am 7. Oktober 2021 (englisch).
- SerenityOS. In: GitHub. SerenityOS, 7. Oktober 2021, abgerufen am 7. Oktober 2021 (englisch).
- Andreas Kling: I quit my job to focus on SerenityOS full time. 28. Mai 2021, abgerufen am 7. Oktober 2021 (englisch).
- Andreas Kling: Import all this stuff into a single repo called Serenity. · SerenityOS/serenity@5a30055. In: GitHub. 10. Oktober 2018, abgerufen am 7. Oktober 2021 (englisch).
- Andreas Kling: OS hacking: Implementing chmod(). In: YouTube. 29. Januar 2019, abgerufen am 7. Oktober 2021 (englisch).
- Andreas Kling, Linus Groh: Linus Groh zum Test262-Score in „SerenityOS update (September 2021)“. In: YouTube. 30. September 2021, abgerufen am 8. Oktober 2021 (englisch).
- Documentation/CodingStyle.md. In: GitHub. SerenityOS, 7. Oktober 2021, abgerufen am 7. Oktober 2021 (englisch).
- Kernel/Syscall.cpp. In: GitHub. SerenityOS, 7. Oktober 2021, abgerufen am 7. Oktober 2021.
- serenity/Ports at master · SerenityOS/serenity. Abgerufen am 7. Oktober 2021 (englisch).
- Jim Salter: Not-a-Linux distro review: SerenityOS is a Unix-y love letter to the ’90s. 18. August 2021, abgerufen am 7. Oktober 2021 (amerikanisches Englisch).
- 2.5 Admins 53: Unexpected Root – 2.5 Admins. Abgerufen am 7. Oktober 2021 (amerikanisches Englisch).
- Lee Mathews: SerenityOS offers a Unix-like experience with 90s computing vibes. In: Liliputing. 17. August 2021, abgerufen am 7. Oktober 2021 (amerikanisches Englisch).
- SerenityOS: Unix-подобная операционная система с кастомным ядром и графическим интерфейсом в стиле 90-х. Abgerufen am 7. Oktober 2021 (russisch).
- Juan Ranchal: SerenityOS, un UNIX gráfico que transmite las sensaciones de los 90. 18. August 2021, abgerufen am 7. Oktober 2021 (spanisch).
- Rob Beschizza: A refined 90s-style operating system you can actually use. 17. August 2021, abgerufen am 7. Oktober 2021 (amerikanisches Englisch).
- TuxJam 91 - Stellar Serenity. In: TuxJam. 26. Oktober 2021, abgerufen am 28. Oktober 2021 (britisches Englisch).
- SerenityOS: Ein grafisches Unix-artiges Betriebssystem. Abgerufen am 7. Oktober 2021 (Schweizer Hochdeutsch).
- SerenityOS arbeitet an Multi-Monitor Unterstützung. Abgerufen am 7. Oktober 2021 (Schweizer Hochdeutsch).
- SerenityOS wird zum Vollzeit-Job. Abgerufen am 7. Oktober 2021 (Schweizer Hochdeutsch).
- Samantha: S14E26 – Amid Navigable Impulses. In: Ubuntu Podcast. 2. September 2021, abgerufen am 7. Oktober 2021 (britisches Englisch).
- CppCast Episode 278: SerenityOS with Andreas Kling. Abgerufen am 7. Oktober 2021 (deutsch).
- Learning C++ With Serenity. 2. September 2021, abgerufen am 7. Oktober 2021 (amerikanisches Englisch).
- Interview with Andreas Kling, creator of SerenityOS. Abgerufen am 7. Oktober 2021 (deutsch).
- SerenityOS: Graphical Unix-like operating system with classic 90s UI | Hacker News. Abgerufen am 7. Oktober 2021.
- SerenityOS – a graphical Unix-like OS for x86, with 90s aesthetics | Hacker News. Abgerufen am 7. Oktober 2021.
- Serenity: x86 Unix-like operating system for IBM PC-compatibles | Hacker News. Abgerufen am 7. Oktober 2021.
- I quit my job to focus on SerenityOS full time | Hacker News. Abgerufen am 7. Oktober 2021.
- SerenityOS: Writing a Full Chain Exploit | Hacker News. Abgerufen am 7. Oktober 2021.
- The author seems to be against providing ISOs, which is a shame, I'd love to try... | Hacker News. Abgerufen am 7. Oktober 2021.