- Maestroは、Rust言語でゼロから書かれたUnixライクなカーネルおよびオペレーティングシステム。
- 当初はC言語で実装されていたが、コードベースをクリーンに保つことが難しくなったため、Rustへ移行した。
- Rustは、プロジェクトをゼロから再開し、CでLinuxに似たカーネルを書くよりも革新的であり、Rustの安全性を活用してカーネルプログラミングの難しさを軽減するのに役立つ。
プロジェクトの現状
- Maestroは現在、x86(32ビット)アーキテクチャのみをサポートするモノリシックカーネル。
- 執筆時点で、Linuxのシステムコールの約31%にあたる135個が大まかに実装されている。
- OSには、カーネルのほかに、ブートシステム兼デーモンマネージャのSolfège、システムユーティリティコマンドのmaestro-utils、パッケージマネージャのblimpなどの構成要素がある。
- musl(C標準ライブラリ)、bash、一部のGNU coreutilsコマンド、neofetch(パッチ適用版)などのサードパーティ製ソフトウェアがOS上で動作することがテストされている。
実際に試してみよう!
- OSはまだ開発初期段階にあり非常に不安定なため、重要なデータがあるマシンへのインストールは推奨されない。
- 主にQEMU、VMWare、VirtualBoxでテストされている。
- OSをインストールする方法は2つある。事前ビルド済みの.isoファイルをダウンロードする方法と、ISOを直接ビルドする方法。
- インストールされたパッケージはディスクではなくRAM(initramsfs)に保存されるため、十分なRAM(1GB以上)が必要。
このブログについて
- このブログの目的は、OSの作り方に関するチュートリアルを書くことではなく、より高度なテーマを探求し、問題の解決方法を共有し、コンピュータやオペレーティングシステム、インターネットなどの仕組みを発見すること。
- osdev.orgとPhilipp Oppermannのブログは特におすすめ。
次に来るもの
- コードベースの整理とパフォーマンス最適化が必要。
- メモリリークの修正とパフォーマンス最適化は、ブログ記事のテーマになりうる。
- パッケージマネージャがOS上で完全に動作するようにすることが次の目標。
- ネットワーク対応と共有ライブラリ対応が必要。
役立てる方法
- Githubリポジトリにスターを付けたり、ニュースレターの購読、RSSフィードのチェック、Discordへの参加を通じてつながりを保てる。
GN⁺の見解
- MaestroプロジェクトはRust言語で書かれたUnixライクなオペレーティングシステムであり、カーネル開発における安全性と革新性を追求している点が重要。
- このプロジェクトは、オープンソースコミュニティに貢献したい開発者にとって興味深い機会を提供し、実際のハードウェアとソフトウェアの相互作用を理解する助けになる可能性がある。
- Rustを使ったシステムプログラミングの利点と限界を実際に体験したい初級ソフトウェアエンジニアにとって、有益な学習資料になりうる。
1件のコメント
Hacker Newsのコメント
プロジェクトへの支持に感謝
すばらしい小規模プロジェクトについての意見
セキュリティ/ペネトレーションテストについての意見
Kerlaプロジェクトへの言及
C言語使用の欠点とOS開発の難しさについての意見
Kerlaプロジェクトの中断への言及
コンピュータの複雑さについての意見
技術的負債の返済についての助言
Gourceへの関心
カーネル構築への関心