12 ステップで作る
組込みOS自作入門
- 著者 坂井 弘亮
- 判型 B5変型判、544頁
- 本体価格 4,200円
- ISBN 978-4-87783-239-1
「組込みOSセット」販売のご案内
本書で扱った開発用のキットを書籍とセットにして販売します。
詳細はこちらから
最新の追加情報
書籍のサポートページ上で最新の情報を発信しています。
とくに第1章の開発環境の構築で問題が発生する場合には、
ぜひサポートページを参照してみてください。
http://kozos.jp/books/makeos/
開発環境を構築済みのVMイメージを配布しています。
第1章の環境構築がうまくいかない方はご利用ください。
http://kozos.jp/books/makeos/index.html#vmimage
VirtualBoxなどのVM環境をインストールし、VMイメージをインポートすることで、開発環境をインストール済みの環境が利用できます。
本書について
本書は「組込みOS」を自作するための本です.
何もないゼロの状態から,12回のステップに分けて,実際に動作する組込みOSを徐々に自作していきます.OSを起動するための「ブート・ローダー」さえ,自作します.
本書は,誰かによって作られた既存のOSを入手して動かすための本ではありません.すでに動いているOSの上でプログラムを書いて動かすための本でもありません.本書でやるのは,OSの自作です.いまこの本を手に取っている,あなたが作るのです.
OS自作というのは,たとえ他人が見れば些細なことだとしても,発見と驚きと感動の連続です.何もないゼロの状態からひとつひとつステップを踏んでいくことで,徐々に動くものができあがっていくという「ものづくりの楽しみ」を味わってほしいと考えて本書を執筆しました.とくに
「OSというものを作ってみたい中学生や高校生,パソコン部の生徒」
「OSを勉強したい大学生や入社したての新人」
「OSに興味のあるアマチュアプログラマ」
といった方々にぜひ読んでいただきたいと思います.
もちろん,すでに実務についているプロの方々も歓迎いたします.その場合にはぜひ「OSを自作するなんて,面白そうだなあ」「ああ,やっぱりものづくりは楽しいなあ」という新鮮な気持で読んでいただければと思います.
目 次
第1部 ブート・ローダーの作成
- 1stステップ●開発環境の作成
- 1.1 開発環境の構築
- 1.2 「Hello World」のソース・コード
- 1.3 「Hello World」を動かしてみよう!
- 1.4 まとめ
- 2ndステップ●シリアル通信
- 2.1 メモリマップドI/O
- 2.2 内蔵シリアル・コントローラ
- 2.3 ライブラリ関数の追加
- 2.4 プログラムの実行
- 2.5 スタート・アップ
- 2.6 まとめ
- 3rdステップ●静的変数の読み書き
- 3.1 メモリ構成
- 3.2 静的変数の書き換えの対応
- 3.3 プログラムの実行
- 3.4 まとめ
- 4thステップ●シリアル経由でファイルを転送する
- 4.1 ブート・ローダー
- 4.2 シリアル経由でのファイル転送
- 4.3 XMODEMを実装する
- 4.4 プログラムの実行
- 4.5 アセンブラ・プログラミング
- 4.6 まとめ
- 5thステップ●ELFフォーマットの展開
- 5.1 オブジェクト・ファイル・フォーマット
- 5.2 ELF形式
- 5.3 プログラム・ヘッダによるメモリ展開
- 5.4 プログラムの実行
- 5.5 論理回路
- 5.6 まとめ
- 6thステップ●もう一度,Hello World
- 6.1 プログラムのロード
- 6.2 「Hello World」の作成
- 6.3 プログラムの実行
- 6.4 CPUの動作原理
- 6.5 まとめ
第2部 OSの作成
- 7thステップ●割込み処理を実装する
- 7.1 割込み処理
- 7.2 H8/3069Fの割込み処理
- 7.3 ブート・ローダーに割込みハンドラを実装する
- 7.4 プログラムの実行
- 7.5 まとめ
- 8thステップ●スレッドを実装する
- 8.1 OSの概要
- 8.2 OSの実装
- 8.3 プログラムの実行
- 8.4 まとめ
- 9thステップ●優先度スケジューリング
- 9.1 優先度ベースのスケジューリング
- 9.2 優先度の実装
- 9.3 プログラムの実行
- 9.4 まとめ
- 10thステップ●OSのメモリ管理
- 10.1 OSの役割
- 10.2 メモリ管理の概要
- 10.3 メモリ管理の実装
- 10.4 プログラムの実行
- 10.5 まとめ
- 11thステップ●タスク間通信を実装する
- 11.1 タスク間通信
- 11.2 関数の再入と排他
- 11.3 メッセージ通信の実装
- 11.4 プログラムの実行
- 11.5 まとめ
- 12thステップ●外部割込みを実装する
- 12.1 割込みとスレッド
- 12.2 コマンド処理の実装
- 12.3 プログラムの実行
- 12.4 まとめ