3 ポイント 投稿者 GN⁺ 2024-01-04 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-01-04
Hacker Newsのコメント
  • プロジェクトへの支持に感謝

    • このプロジェクトには多大な努力が注がれており、開発者にとって大きな意味がある。
    • 現在、ウェブサイトが非常に遅いかダウンしている。予想外に多くのトラフィックがあり、DoS攻撃も疑われる。
    • 帰宅したらサイトの改善を試みる予定。今は仕事のためあまり注意を向けられない。
    • ご不便をおかけして申し訳ないが、プロジェクトを評価してくれたことはうれしい。
  • すばらしい小規模プロジェクトについての意見

    • Linuxのシステムコールの3分の1も実装していないのに、ここまでブートできることに驚く。
    • まだ実装されていないシステムコールのほうが、より複雑だろうと推測される。
    • たとえば、TTYレイヤーは現時点ではかなり基本的に見える。これを正しく実装するのは大変な作業になるだろう。
    • したがって、Maestroが今後3年以内にLinuxアプリケーションを動かすとは期待しないほうがよい。
  • セキュリティ/ペネトレーションテストについての意見

    • このプロジェクトはRustで開発されているため、ハッカーが脆弱性を見つけられるかどうかのセキュリティテストを見てみたい。
  • Kerlaプロジェクトへの言及

    • Kerla(Linux ABI互換を目指すRust製のモノリシックカーネル)もあったが、ここ数年は活動がない。
  • C言語使用の欠点とOS開発の難しさについての意見

    • 欠点や難しさの大半はデバッグにある。
    • Rustに移行することで特定のメモリエラーのクラスは排除されたが、デバッグは依然として難しいのか、それとも移行後はデバッグの必要が減って楽になったのか気になる。
  • Kerlaプロジェクトの中断への言及

    • すでに試みられていたプロジェクトであるKerlaが中断されたことに触れている。
  • コンピュータの複雑さについての意見

    • コンピュータは人類が作った最も複雑な道具の一つだ。
  • 技術的負債の返済についての助言

    • 学校のプロジェクトとして始めたときは時間の制約から手を抜いた部分もあったが、今は技術的負債を返済する時期だと認識し、そのマインドセットを保つよう勧めている。
  • Gourceへの関心

    • 著者がコントリビューション動画の作成に使ったGourceというツールに非常に興味を持っている。以前に似たようなアイデアを考えたことはあるが、独自の発想ではなかったようだ。
  • カーネル構築への関心

    • 学習目的でカーネルを構築するというアイデアがとても好きだ。カーネルやOS全般を理解するために使った資料に興味がある。