オス開発メモ
この本はメモを集めたものとして始まり、オペレーティング システム カーネルをゼロから構築する手順を読者にガイドすることを目的としていました。各章は独自のカーネルを作成 (および再書き込み) しながら書かれており、ブートローダーの選択からユーザー空間でロードされた ELF の実行までのプロセスのステップをカバーしています。
ここで何か面白いものを見つけて楽しんでいただければ幸いです。
このリポジトリのコンテンツは印刷された書籍としても入手でき、Lulu 経由で購入できます。
- ペーパーバック:ここをクリック
- ハードカバー: ここをクリックしてください
最新のマスター リリースには、マスターから構築された PDF が含まれています。
現在の章:
- パート 0: はじめに
- パート 1: プロトコルの構築と起動
- カーネルの構築
- ブートローダーとブートプロトコル
- メイクファイル
- リンカースクリプト
- 起動可能な ISO の生成
- パート 2: アーキテクチャと基本ドライバー
- 概要
- こんにちは世界
- 上位半分のカーネル
- グローバル記述子テーブル
- 割り込み
- ACPIテーブル
- APIC
- タイマー
- PS2 キーボードの概要
- PS2 キーボード割り込み処理
- PS2キーボードドライバーの実装
- パート 3: ビデオ出力
- フレームバッファ
- フレームバッファ上にテキストを描画する
- パート 4: メモリ管理
- 概要
- 物理メモリ
- ページング
- 仮想メモリマネージャー
- ヒープ割り当て
- パート 5: スケジュール設定
- パート 6: ユーザー空間へのアクセス
- 概要
- モードの切り替え
- 更新された割り込み処理
- システムコール
- システムコール ABI の例
- パート 7: プロセス間通信
- パート 8: ファイル システム
- 概要
- 仮想ファイル システム
- Tar ファイル システム
- パート 9: ELF のロードと実行
- パート 10: 超えていく
- 付録: 付録
- 一般的なトラブルシューティング
- ヒントとコツ
- C言語
- NASM の使用
- クロスコンパイラのすべて
- デバッグ
- メモリ保護
- 役立つリソース
- 謝辞
私たちのプロジェクト
- DreamOs64: Ivan G によって最初から書かれた 64 ビット OS。
- Northport: SMP と riscv をサポートする別の 64 ビット OS!ディーン・T 著
- DreamOs: スクラッチから書かれた 32 ビット OS。このプロジェクトは中止されましたが、それでも言及する価値があります。こちらもイヴァン G.
著者
- Ivan G (dreamos82) - これらのノートの著者および作成者。
- Dean T (DeanoBurrito) - 作家。
ライセンス
このリポジトリのコンテンツ (コード、テキスト、およびその他のアセット) は、クリエイティブ コモンズ表示 - 非営利 4.0 パブリック ライセンスに基づいてライセンスされています。全文については、LICENSE ファイルを参照してください。
法的なアドバイスではありませんが、このライセンスは次のように要約できます。
- このマテリアルを任意の媒体または形式で自由に共有 (コピーおよび再配布) することができます。
- 素材を適応(リミックス、変換、構築)します。
次の制限の下で:
- 適切なクレジットを付与し、ライセンスへのリンクを提供し、変更が加えられたかどうかを示す必要があります。
- 素材を商用目的で使用することはできません。
いかなる種類の保証も提供されないことに注意してください。