シンプルでエレガントにOSの機能を実現するマイクロカーネルの手法について、自作OSと実用OSで、それぞれの設計と実装を理解し、そこに込められているアイデアとテクニックを探求しよう!

この記事は約5分で読めます。
株式会社秀和システム(東京都・代表取締役会長兼社長 上田智一)は、2023年5月18日、新刊『自作OSで学ぶマイクロカーネルの設計と実装』を発刊します。本書は、自作OSおよび実用OSのソースコードを紐解き、マイクロカーネルOS の概念からその実例まで、機能ごとに分けて解説したものです。

OSの仕組みそのものに興味を持った人であれば、あるいは職業プログラマーであれば、OSの設計には「マイクロカーネル」と「モノリシックカーネル」という手法があり、Windowsを始めとする一般的なOSはモノリシックカーネルをベースに作られていることは知っているでしょう。そして、マイクロカーネルは「美しい設計ではあるものの、実装が難しく、実用的なパフォーマンスが出ない」と思っているかもしれません。しかし、本書で実例として取り上げているMINIX3、seL4、Machは、すでにさまざまなところで使われており、世界を支えている実用的なマイクロカーネルOSです。また、本書のために筆者が作成した学習用マイクロカーネルOS「HinaOS」はシンプルでわかりやすい実装ではありますが、マイクロカーネルを学ぶ上では十分な機能を備えており、最初の一歩として最適です。

本書では、マイクロカーネルOSの機能ごとに分けてソースコードを解説していますが、自作OSであるHinaOSだけを取り上げて「OSの作り方」を解説しているわけでもなく、実用OSの1つだけを取り上げて詳解しているわけでもありません。それは、「マイクロカーネルOSとは、こういうものである」という固定観念を持たず、それぞれのOSの考え方や書き方を比較してほしいという著者の考えによるものです。各OSの設計思想と実装を知ると、「なぜWindowsはこのような設計になっているのか」「なぜLinuxはあの手法を採用しなかったのか」など、作る側の考え方を理解できるようになります。そうすると、OSというソフトウェアがぐんとおもしろく見えてきます。

ただし、本書は「OSの作り方」を解説しているものではないので、本書を読んでもOSをゼロから作れるようにはなれません。とはいえ、OS開発に必要な知識の解説をしているため、副読本として、あるいは「とっかかり」としては十分に役に立つでしょう。

本書をきっかけに、マイクロカーネルのみならず、オペレーティングシステムという世界の自由さ、そしておもしろさを知っていただければ幸いです。そして、自分でマイクロカーネルOSを作ってみたいと思ったら、ゼロから構築するもよし、HinaOSをベースに拡張していくのもよいでしょう。いずれにせよ、そのときには各OSを比較して検討したことが役に立つはずです。

なお、本書のカバーで使われているのはエナガのイラストです。産まれてからすぐのエナガの雛は、親からエサをもらうために一列にギューッと体を寄せ合って、通称「エナガ団子」を作ることが知られています。本書のために著者が開発したマイクロカーネルOSの名前が「HinaOS」であることから、「小さなヒナが固まってエナガ団子を作る」=「小さなカーネルが集まってOSの機能を作る」となぞらえて、エナガ団子をモチーフに選びました。本書のことは、ぜひ「エナガ本」と呼んでください。エナガのイラストは、本書の中でも数カ所に登場しています。

■書籍概要

書名 自作OSで学ぶマイクロカーネルの設計と実装

著者 怒田晟也

定価 3,960円(税込)

発売日 2023年5月18日

Amazon https://www.amazon.co.jp/dp/4798068713/

楽天ブックス https://books.rakuten.co.jp/rb/17474603/

■目次

Part 1 基礎知識

 Chapter 1 本書について

 Chapter 2 マイクロカーネル入門

 Chapter 3 教育用マイクロカーネルOS「HinaOS」入門

 Chapter 4 RISC-V 入門

Part 2 カーネル

 Chapter 5 プロセスとスレッド

 Chapter 6 メモリ管理

 Chapter 7 割り込み・例外

 Chapter 8 メッセージパッシング

 Chapter 9 システムコール

Part 3 ユーザーランド

 Chapter 10 ユーザーランド

 Chapter 11 API(Application Programming Interface)

 Chapter 12 デバイスドライバ

 Chapter 13 ファイルシステム

 Chapter 14 ネットワーク(TCP/IP)

Part 4 発展的話題

 Chapter 15 マルチプロセッサ対応

 Chapter 16 仮想化とエミュレーション

 Chapter 17 信頼性とセキュリティ

 Chapter 18 ソフトウェアによるプロセス隔離

 Chapter 19 ブート処理

Appendix 付録

 Appendix 1 HinaOS開発環境の構築

 Appendix 2 HinaOSのデバッグ

 Appendix 3 参考文献

タイトルとURLをコピーしました