
2025/12/26 21:59
レーナックス OS (ラーニクス オー エス)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
本書は、外部ライブラリを最小限に抑え(特にボイラープレートを削減するもののみ)、Rust だけで POSIX 準拠のオペレーティングシステムを構築する方法を読者に教えます。コードリポジトリを大いに活用し、カスタム Rust 文法ハイライトで分かりやすくしています。読者は基本的なアセンブリ(簡単な mov や算術)、ポインタ/メモリアドレス、および少なくとも1つのプログラミング言語を知っていることが前提です。深い Rust 専門知識は不要です。著者は OS 開発に典型的な低レベル視点を採用しながら、Rust の安全機能を活かしてボイラープレートコードを削減しています。詳細なロードマップが段階的に進めます:単体バイナリのコンパイル、ブートローダー、デバッグと CPU モード遷移、ページングとカスタム malloc 実装、割り込みディスクリプタテーブル(IDT)の設定、ファイルシステム・ドライブドライバの追加、プロセス管理、シェル構築、最初のプログラムとして Doom の実行、そして最後に仮想化について触れます。このハンズオンアプローチは、OS 開発者志望や Rust 愛好家を対象とし、学術界・産業界でオペレーティングシステムが教えられ構築される方法に影響を与える可能性があります。
本文
キーボードショートカット
- ← もしくは → を押して章間を移動
- S または
を押して本の中で検索/
を押すとこのヘルプが表示される?- Esc を押すとヘルプを非表示
LearnixOS の本
「簡潔に説明できないものは、十分に理解できていない」 – アルバート・アインシュタイン
こんにちは! この本では一緒にオペレーティングシステムについて書き、学んでいきます。
外部ライブラリを一切使わずに Rust だけで POSIX 準拠の OS を実装します。思考過程・コードスニペット・実装はすべてこことリポジトリで説明しています。
注: Rust コードの構文ハイライトは全て自作です。バグを発見したらコメントや issue で教えてください。
基礎知識
本書ではある程度のプログラミング経験が前提ですが、必ずしも Rust を使った経験が必要というわけではありません。
低レベルプログラミングに不慣れでも構いません。ただし以下を理解していることが望ましいです。
- アセンブリの基礎 – 単純な
命令や基本的な算術演算mov - メモリの基礎 – ポインタ、アドレス
- 少なくとも一つのプログラミング言語 – Rust の知識はあると便利ですが必須ではありません
- 動機付け – これは複雑なテーマです
もし前提が不明瞭だったり、理解しにくい箇所があれば issue を開いてください。より分かりやすく説明します。
ロードマップ
- スタンドアロンバイナリのコンパイル
- ブートローダー、デバッグ、ステージ、レガシー機能
- 重要な CPU モードと命令
- ページングと独自
の実装malloc - 割り込みディスクリプタテーブルの活用
- ファイルシステムとディスクドライバ
- プロセス観点で考える
- シェルを書く
- 最初のプログラムを走らせる(はい、Doom!)
- 続きは――仮想化と他 OS VM のロード
スター・ウォーズへの言及ではありません。
ボイラープレートコードを削減するだけのライブラリを使用します―それらも解説します。
これらは初期段階やいくつかの最適化に関連しています。集中した学習で十分です。