SerenityOS - 90年代GUIで実装したUnixライクOS
(serenityos.org)-
1990年代末のWindows/MacのUIと2000年代末の*nixコアを組み合わせたようなOS
-
1人プロジェクトとして始まり、3年間コミュニティの支援を受けて成長中
-
カーネルからWebブラウザ/IDEまで、すべて「外部ライブラリなしでゼロから手作業で開発」
-
システム自体はSerenity C++で開発されている。
→ 独自の標準ライブラリを持つ最新C++の派生形
Repo : https://github.com/SerenityOS/serenity
- カーネル機能
→ プリエンプティブマルチスレッディングをサポートするx86(32bit) / x86_64(64bit)カーネル
→ IPv4スタック (ARP, TCP, UDP, ICMP)
→ ext2ファイルシステム
→ POSIX signal対応
→ /procファイルシステム対応
- システムサービス
→ Launch/session daemon (SystemServer)
→ Compositing window server (WindowServer)
→ Text console manager (TTYServer)
→ DNS client (LookupServer)
→ Network protocols server (RequestServer and WebSocket)
→ Software-mixing sound daemon (AudioServer)
→ Desktop notifications (NotificationServer)
→ HTTP server (WebServer)
→ Telnet server (TelnetServer)
→ DHCP client (DHCPClient)
- ライブラリ
→ C++ templates and containers (AK)
→ Event loop and utilities (LibCore)
→ 2D graphics library (LibGfx)
→ OpenGL 1.x compatible library (LibGL)
→ GUI toolkit (LibGUI)
→ Cross-process communication library (LibIPC)
→ HTML/CSS engine (LibWeb)
→ JavaScript engine (LibJS)
→ Markdown (LibMarkdown)
→ Audio (LibAudio)
→ Digital Signal Processing/Synthesizer Chains (LibDSP)
→ PCI database (LibPCIDB)
→ Terminal emulation (LibVT)
→ Out-of-process network protocol I/O (LibProtocol)
→ Mathematical functions (LibM)
→ ELF file handling (LibELF)
→ POSIX threading (LibPthread)
→ Higher-level threading (LibThreading)
→ Transport Layer Security (LibTLS)
→ HTTP and HTTPS (LibHTTP)
→ IMAP (LibIMAP)
- Userland機能
→ Unixライクなlibcとユーザーランド
→ パイプとI/Oリダイレクトを備えたシェル
→ オンラインヘルプシステム(ターミナル版とGUI版の両方)
→ Web browser (Browser)
→ C++ IDE (HackStudio)
→ Desktop synthesizer (Piano)
→ E-mail client (Mail)
→ Various desktop apps & games
→ Color themes
1件のコメント
趣味で作るOSの中でも、かなりユニークなものだと思います。あれだけ多くのライブラリやアプリを実装して組み込んでいるのも驚きです。
作者のAndreas Klingが2018年に3か月間の薬物依存リハビリプログラムを終え、自分の時間が増えたため、時間を過ごす目的で始めたプロジェクトです。
彼は以前、AppleとNokiaでWebKit開発をしていた開発者でした。Appleで働いていた経験から、外部パッケージなしですべてを自前で開発することを志向しているそうです。
今年5月からは支援金が十分に増えたことで、現在はフルタイムでSerenityOSを開発しています。
GitHub Sponsorsでは現在232人が支援しています。https://github.com/sponsors/awesomekling
Patreonでは279人です。https://www.patreon.com/serenityos
コントリビューターは500人を超えており、YouTubeチャンネルには毎月OSアップデートも投稿しています。
https://youtube.com/playlist/?list=PLMOpZvQB55bfp6ykOLayLqLrjcpv_Sw3P
2019年初頭は10分単位でしたが、最近は30〜40分の長さにアップデート動画が長くなりました。
Diablo 1をリバースエンジニアリングしたDevilutionを、SerenityOS上で動くように1時間で移植した動画も有名です。
https://github.com/diasurgical/devilution
https://www.youtube.com/watch?v=ZOzZ8R4gphE