SerenityOS:ゼロから構築した独立型デスクトップOS

多くの開発者がLinuxやmacOS上で環境を調整しようと試みましたが、デスクトップが十分に純粋でなく、アプリケーションの統合度が低く、さらに無関係なプリインストールソフトウェアに対処しなければなりません。SerenityOSはこれらの痛点に対処し、ある開発者がゼロから完全な従来型デスクトップオペレーティングシステムを構築しました。これは、懐かしいGUIを好むプログラマーや愛好者がシステムの底層を自ら探求することを目的としています。このプロジェクトは、単にクリーンな作業台を提供するだけでなく、ユーザーがカーネルからアプリケーションまでのフルスタック開発を体験できる生きたソフトウェアエンジニアリング実験室でもあります。

自作のLadybirdブラウザによる完全なウェブページレンダリングの実現

SerenityOSのユニークな点は、Ladybirdという名前のウェブブラウザを自ら構築し、HTML、CSS、JavaScriptエンジンをゼロから実装したことです。Ladybirdを開くと、ユーザーは一般的なウェブサイトを閲覧でき、ChromiumやGeckoエコシステムから独立したレンダリングエンジンを体験できます。この設計は、サードパーティのブラウザコアに依存することを避けるだけでなく、開発者がソースコードを直接修正し、レンダリングの挙動を調整できるようにします。例えば、FlexboxやGridレイアウトを含む現代のウェブ標準をサポートしており、小さなチームでもブラウザの独占に挑戦できることを証明しています。

SerenityOSのインターフェーススクリーンショット
SerenityOS公式ページのスクリーンショット

同様の製品の中で比較的珍しい点は、Ladybirdが単なるブラウザではなく、SerenityOSのデスクトップ環境に深く統合されていることです。ユーザーはシステム内で直接HTMLファイルを編集し、プレビュー効果が即座に更新されるため、フロントエンド開発者にとってカスタムエンジンをテストするのに適しています。このような自給自足のアーキテクチャにより、SerenityOSは商業OSのbloatwareから離れた理想的なサンドボックス環境となっています。

LibJSエンジンが現代のJavaScript標準開発をサポート

SerenityOS内では、LibJSがゼロから実装されたJavaScriptエンジンを提供し、ES2023標準をサポートしています。これにはProxy、BigInt、Temporal APIが含まれます。開発者はこのエンジンを使用して、複雑なスクリプトを実行したり、ゲームロジックやデータ処理をシミュレートしたりすることができ、V8やSpiderMonkeyに依存する必要がありません。このエンジンの設計哲学はモジュール化されており、各APIは独立したモジュールで、ユニットテストや拡張が容易です。

実際の使用時には、ユーザーがTextEditorを開いてJSコードを書くだけで、システムのターミナルで実行でき、デバッグツールも完備されています。他のホビーOSと比較して、LibJSの完成度は高く、実際のアプリケーションを構築するために使用できるようになっています。例えば、シンプルなウェブゲームやデータ視覚化ツールなどです。この点は、JSの実行時機構を深く理解したいプログラマーに特に魅力的です。

AKDオーディオシステムがマルチトラック再生とミキシングを処理

SerenityOSのオーディオサブシステムAKD(Audio Kernel Driver)は、マルチトラック再生と低遅延ミキシングを管理します。ユーザーは複数のオーディオアプリケーションを同時に実行でき、カクつくことはありません。このシステムはALSA互換インターフェースをサポートしており、開発者はリバーブやイコライザーなどのカスタムオーディオエフェクターを作成し、システムレベルで直接適用できます。

実際のシナリオでは、音楽プレーヤーとビデオエディタを開くと、AKDが自動的にリソースを割り当て、同期再生を確保します。この設計は従来のUnixオーディオモデルに基づいていますが、動的バッファ管理などの現代的な最適化が加えられています。マルチメディア開発者にとって、AKDはオーディオアルゴリズムをテストするための信頼できるプラットフォームを提供し、ハードウェアの互換性を心配する必要がありません。

Pixel PaintとImageEditorによる画像編集ワークフローの実現

画像処理に関して、SerenityOSにはPixel PaintとImageEditorが内蔵されており、レイヤー、フィルター、SVGインポートをサポートしています。ユーザーはこれらのツールを使用してピクセルアートを描いたり、写真を編集したりでき、すべての操作はネイティブに実装されており、追加のプラグインは必要ありません。Pixel Paintは特にゲーム開発に適しており、自動カラーパレット生成やアニメーションプレビューなどのツールセットを備えています。

このワークフローの利点は、システムファイルマネージャーとシームレスに統合されていることです。ユーザーは画像ファイルをドラッグ&ドロップするだけで、編集やエクスポートが可能です。商業ソフトウェアと比較して、これらのツールはより軽量で、起動速度が速く、組み込みまたはリソースが制限された環境に適しています。開発者はさらに拡張し、カスタムフィルターを追加して、LibGfxなどのグラフィックAPIをさらに探求することができます。

SerenityOSは単なるOSではなく、継続的に進化するオープンソースプロジェクトです。ユーザーはGitHubを通じてコードを貢献し、GUIからカーネルまでの開発に参加できます。システムプログラミングを学ぶためであれ、純粋なデスクトップ体験を求めるためであれ、このプラットフォームは独自の価値を提供しています。

製品名:SerenityOS
公式ウェブサイト:https://serenityos.org/

Nakumura
Nakumura
関連サイト:中文版 / TechRitualThe Base Principle