- x86オペレーティングシステムを自分で開発する方法についての実践的なガイド
- 技術的な詳細を提供しつつ、コード例やサンプルを通じて過度に多くの情報を公開しすぎないように構成
- オペレーティングシステムの理論や、特定のオペレーティングシステムの動作方式については説明しない
- 序盤の章では詳細かつ具体的に説明し、コード作成にすばやく慣れられるようにしている
- 後半の章では概念と要件を概説し、実装と設計は読者自身が行うよう促す
- オペレーティングシステム理論の学習が必要なら、Andrew Tanenbaum の Modern Operating Systems を推奨
主な章の内容
- 序盤の章
- 2〜3章: 開発環境の設定と仮想マシンでのOSカーネル起動 → C言語でのコード作成を開始
- 4章: 画面出力とシリアルポート出力
- 5章: セグメンテーション
- 6章: 割り込みと入力処理
- 機能的なカーネル開発後の工程
- 7章: ユーザーモードアプリケーション対応の準備
- 8〜9章: ページングによる仮想メモリ設定
- 10章: メモリ割り当て
- 11章: ユーザーアプリケーションの実行
- 高度なトピック
- 12章: ファイルシステム
- 13章: システムコール
- 14章: マルチタスキング
本の背景と開発過程
- この本とOSカーネルは、スウェーデンの Royal Institute of Technology の上級個別課程を通じて開発された
- 著者たちは以前にOS理論の授業を履修していたが、実際のカーネル開発経験は不足していた
- 理論を実際に実装し、より深く理解するために新しい課程を開設し、この本を執筆した
- x86アーキテクチャは長年にわたり最も広く使われてきたハードウェアアーキテクチャであり、膨大な参考資料とエミュレータが存在する
- ハードウェアの詳細に関する文書は複雑で、理解しにくいことが多かった
開発方式
- 約6週間、フルタイムで作業
- 小さな段階ごとに実装し、各段階で手動テストを実施 → バグの原因を把握しやすい
- ペアプログラミング(pair programming) によって大部分のコードを作成 → バグ削減効果を期待
対象読者
- 次のような背景知識を持つ読者に適している:
- UNIX/Linux およびシステムプログラミングに慣れている
- C言語に慣れている
- コンピュータシステムや16進表記法などについて理解がある
- 初心者も学習ツールとして利用できるが、難易度は高い
1件のコメント
Hacker Newsのコメント
osdevが大好き。最終目標は分からないけれど、作りたいものを作れるのが本当に素晴らしい
多くの人が自分の好きな代替案を勧めているが、私は今でもProject Oberonの大ファンだ
この本には、osdevチュートリアルにありがちな典型的な欠点がある
私のお気に入りのOS本はOperating Systems: Three Easy Piecesだ
ありがとう! このテーマに関する素晴らしい資料のように見える
このコメントは2000年代へのノスタルジーを呼び起こす
本は良い。GitHubのissueを見ておくとよい
日本のOS開発本2冊が英訳されればいいのにと思う
小さな赤いOS本のマニュアルはどこにあるのだろう
OS開発について言えば、ゲームは学習を楽しくしてくれる