概要
os-tutorial は古く、設計や技術面で課題があるプロジェクト。 OS開発の基礎を短時間で学びたい人向けの実践的なチュートリアル。 理論よりも実践重視で、各レッスンは5~15分で完了可能。 順番に進めることで、OSの基礎から応用まで段階的に学習可能。 貢献やフォークも歓迎されているが、公式メンテナンスは停止中。
os-tutorialの概要
- os-tutorial は古く、現在は メンテナンスされていない プロジェクト
- 技術的・設計的な課題点が README に明記
- OS開発を ゼロから始める ためのチュートリアル
- 既存カーネルの読解ではなく、 自作のブートセクタ から開始
- OSDev wiki や他のドキュメントに触発された構成
- 理論よりも 実装重視 のアプローチ
特徴
- 低レベルプログラミング に興味がある人向け
- Linuxカーネル全体を読む時間がない人に最適
- 理論説明は最小限、必要な理論は自分で調査
- 理論の過剰な説明は学習の妨げになるという思想
- 各レッスンは 5~15分で完了 できる設計
- 小さなステップで着実に進行
チュートリアルの進め方
- 最初のフォルダから順番に 進めることを推奨
- 前のレッスンのコードに依存するため、順序を守る必要
- 各READMEの 最初の行 で前提知識を確認
- 2行目 で各レッスンの目標を把握
- README全体 を読んだ後、コード例を参照
- コードは 詳細なコメント付き
- (任意) コードを自分で書いてみる、または 改変・実験 して理解を深める
進行中・今後の内容
- 完了済み
- 独自ブート・32bitモード移行・アセンブリからCへの移行
- 割り込み処理・画面出力・キーボード入力
- 小規模なlibcの実装
- 今後の目標
- メモリ管理
- ファイルシステムの作成
- シンプルなシェル実装
- ユーザーモード対応
- (余力があれば) テキストエディタ・プロセス管理・スケジューリング
- (さらに挑戦的な内容) BASICインタプリタ・GUI・ネットワーク対応
コントリビューションと今後
- 個人の学習プロジェクト として公開
- 長期間更新されていないが、今後再開の可能性もあり
- バグ報告・プルリクエスト に感謝
- 対応には時間がかかる可能性あり
- フォークや派生プロジェクト は歓迎
- メインとなるフォークがあればREADMEからリンク予定
参考資料
- the little book about OS development
- JamesM's kernel development tutorials
- OSDev wiki