自作OSで学ぶマイクロカーネルの設計と実装 マイクロカーネルの深淵を知り、骨太なスキルを身に付ける
発売日:2023年6月
- ページ数
- 415p
- ISBN
- 978-4-7980-6871-8
- 著者情報
- 怒田 晟也(ヌタ セイヤ)
筑波大学情報学群情報科学類卒業、筑波大学大学院リスク工学専攻修士課程修了。現在は、CDNにおけるエッジコンピューティング技術の開発に従事
セブン-イレブン受取り(送料無料)
発送目安
発売日(発売日以降は当日)~2日で発送
宅配(送料¥550税込)
発送目安
発売日(発売日以降は当日)~2日で発送
交通状況・天候の影響や注文が集中した場合等、お届けにお時間をいただく場合がございます。
商品説明
OSはもっと自由だし、その舞台裏はずっと楽しい!自作OS(HinaOS)と実用OS(MINIX3、GNU Hurd、seL4)のソースコードを紐解き、ユニークなアイデアと先進的なテクニックを探究しよう!
マイクロカーネルOSは、「美しい設計ではあるものの、遅い実装」というイメージを持たれることがありますが、それは過去の話です。現在では、目立たないところで実用的なOSとして使われ、世界を支えています。
本書では、マイクロカーネルOSの概念からその実例まで、機能ごとに分けて説明しています。本書全体としては、基礎知識、マイクロカーネルの解説、その上で動くソフトウェア部分(ユーザーランド)の解説、そして発展的内容の4つのパートから構成されており、それぞれのパート内の章は、概念の解説部分と、その概念をどのように実装しているかを解説した実装部分に分かれています。
各章の実装例として、本書のために筆者が開発したマイクロカーネルOS「HinaOS」を用いて、わかりやすく解説しています。HinaOSは、エミュレータ上で動かすことを想定した教育目的のOSですが、OSの実装を学ぶのに必要となる最低限の機能を備え、ソースコードもシンプルにです。
また、HinaOSでの実装例のほかに、MINIX3、seL4、GNU Hurdという3つの実用マイクロカーネルOSによる実例も解説しています。複数のOSについて紹介しているのは、それぞれに特徴があり、それを比較してほしいという理由からです。「マイクロカーネルOSとは、こういうものである」という固定観念を持たず、マイクロカーネルであるからこその柔軟さ、そして設計の自由さを味わってください。OSはコンピュータの使い方をガラッと変えられる、いわば新しいソフトウェアの世界を創れる土台なのです。
本書を読み終えたら、自分でOSを作ってみてください。OSの仕組みを理解していても、実装することで新たな発見があるものです。ゼロからOSを作るのではなく、HinaOSを拡張するのもよいでしょう。HinaOSには、実装が面倒な基本機能が既に備わっています。このようにOSを拡張しやすいのもマイクロカーネルの特徴の1つです。
本来、OSはとても自由なソフトウェアです。特定のCPUにしかない変わった機能を活用した移植性ゼロのOSを作るもよし、極限まで小さくしたOSを作るもよし、自由な発想で自分の世界を創り上げることができる最高の題材なのです。
本書を手に、マイクロカーネルの深淵をのぞき込んでみてください。その舞台裏を楽しんでいるうちに、OSやアーキテクチャにとらわれないコンピュータの深い技術も身に付いているはずです。
目次
第1部 基礎知識
Chapter 1 本書について
1.1 本書に向いている人
1.2 本書で学べないこと
1.3 本書の構成
1.4 データ量の表記
Chapter 2 マイクロカーネル入門
2.1 カーネルとは
2.2 マイクロカーネルとは
2.3 マイクロカーネルの機能
2.4 マイクロカーネルの長所と短所
2.5 本書で取り上げるマイクロカーネル
2.6 ソースコードを読むにあたって
Chapter 3 教育用マイクロカーネルOS「HinaOS」入門
3.1 なぜHinaOSなのか
3.2 HinaOSの特徴
3.3 ソースコードの入手
3.4 コードリーディングのための予備知識
3.5 データ構造
Chapter 4 RISC-V入門
4.1 CPUの基本動作
4.2 特権命令
4.3 インラインアセンブリ
Chapter 5 プロセスとスレッド
5.1 プロセスの中身
5.2 スレッド
5.3 マルチタスク
5.4 カーネルレベルスレッドとユーザーレベルスレッド
5.5 スレッドの中身
5.6 実装例:HinaOSのプロセス・スレッド
5.7 スレッドの状態
5.8 コンテキストスイッチ
5.9 スケジューリング
5.10 アイドル状態
5.11 実例:MINIX3のプロセス・スレッド
5.12 実例:seL4のプロセス・スレッド
5.13 実例:Machのプロセス・スレッド
5.14 まとめ
Chapter 6 メモリ管理
6.1 仮想メモリとは
6.2 仮想メモリのメリット
6.3 物理アドレス空間の構造
6.4 仮想アドレス空間の構造
6.5 ページング
6.6 ページフォルト
6.7 実装例:HinaOSのページフォルト処理の実装
6.8 物理メモリ割り当て
6.9 実例:MINIX3のメモ ほか
商品詳細
- 出版社名
- 秀和システム新社
- サイズ
- 24cm
- 対象年齢
- 一般
- フォーマット
- 単行本
注意事項
- 本の帯に関して
- 帯つきでの出荷はお約束しておりません。
商品ページに、帯のみに付与される特典物等の表記がある場合でも、確実に帯つきでの出荷はお約束しておりません。
また、帯は商品の一部ではなく「広告扱い」のため、帯の有無・破損による交換や返品は承っておりません。 - 版・表紙について
- 版・表紙(カバー)のご指定は承っておりません。ご注文いただくタイミングによっては、お届けする商品の版や表紙が商品ページ上のものとは異なる場合がございます。
また、初版にのみにお付けしている特典(初回特典、初回仕様特典)がある商品は、商品ページに特典の表記がされている場合でも、無くなり次第終了となります。