自作OSで学ぶマイクロカーネルの設計と実装―マイクロカーネルの深淵を知り、骨太なスキルを身に付ける [単行本]
    • 自作OSで学ぶマイクロカーネルの設計と実装―マイクロカーネルの深淵を知り、骨太なスキルを身に付ける [単行本]

    • ¥3,960119 ゴールドポイント(3%還元)
    • 在庫あり2025年6月28日土曜日までヨドバシエクストリームサービス便(無料)がお届け
100000009003702818

自作OSで学ぶマイクロカーネルの設計と実装―マイクロカーネルの深淵を知り、骨太なスキルを身に付ける [単行本]

価格:¥3,960(税込)
ゴールドポイント:119 ゴールドポイント(3%還元)(¥119相当)
フォーマット:
お届け日:在庫あり今すぐのご注文で、2025年6月28日土曜日までヨドバシエクストリームサービス便(無料)がお届けします。届け先変更]詳しくはこちら
出版社:秀和システム
販売開始日: 2023/05/19
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可
店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

自作OSで学ぶマイクロカーネルの設計と実装―マイクロカーネルの深淵を知り、骨太なスキルを身に付ける の 商品概要

  • 要旨(「BOOK」データベースより)

    OSはもっと自由だし、その舞台裏はずっと楽しい!自作OS(HinaOS)と実用OS(MINIX3、GNU Hurd、seL4)のソースコードを紐解き、ユニークなアイデアと先進的なテクニックを探究しよう!
  • 目次

    第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のメモリ管理
      6.10 実例:seL4のメモリ管理
      6.11 実例:Machのメモリ管理
      6.12 まとめ
     Chapter 7 割り込み・例外
      7.1 割り込みと例外
      7.2 実例:RISC-Vの割り込み処理
      7.3 タイマー処理
      7.4 カーネルパニック
      7.5 実例:MINIX3の割り込み処理
      7.6 実例:seL4の割り込み処理
      7.7 実例:Machの割り込み処理
      7.8 まとめ
     Chapter 8 メッセージパッシング
      8.1 メッセージパッシング
      8.2 非同期 vs. 同期的
      8.3 通知IPC
      8.4 大きなデータの転送
      8.5 デッドロック
      8.6 優先度の逆転問題
      8.7 高速化技術
      8.8 実例:MINIX3のIPC
      8.9 実例:seL4のIPC
      8.10 実例:MachのIPC
      8.11 まとめ
     Chapter 9 システムコール
      9.1 システムコールの種類
      9.2 実装例:HinaOSのシステムコール処理の流れ
      9.3 ユーザー空間からのメモリコピー
      9.4 実例:MINIX3のシステムコール
      9.5 実例:seL4のシステムコール
      9.6 実例:Machのシステムコール
      9.7 まとめ
    第3部 ユーザーランド
     Chapter 10 ユーザーランド
      10.1 サーバ
      10.2 機構と方針の分離
      10.3 シングルサーバOSとマルチサーバOS
      10.4 サーバの種類
      10.5 実装例:HinaOSのサーバ構成
      10.6 実例:MINIX3のサーバ構成
      10.7 実例:seL4のサーバ構成
      10.8 実例:Hurdのサーバ構成
     Chapter 11 API(Application Programming Interface)
      11.1 API
      11.2 メインループ
      11.3 IPCスタブ
      11.4 ステートフルなリクエスト
      11.5 非同期メッセージパッシング
      11.6 動的メモリ割り当て(malloc)
     Chapter 12 デバイスドライバ
      12.1 デバイスの例
      12.2 デバイスドライバの仕組み
      12.3 virtioデバイス
      12.4 実装例:HinaOSのvirtio-netドライバ
      12.5 実例:MINIX3のデバイスドライバ
      12.6 実例:seL4のデバイスドライバ
      12.7 実例:Hurdのデバイスドライバ
     Chapter 13 ファイルシステム
      13.1 ファイルシステムの要素
      13.2 ファイルシステムの構造
      13.3 ファイルシステムの機能
      13.4 ログ構造ファイルシステム
      13.5 疑似ファイルシステム
      13.6 Filesystem in Userspace(FUSE)
      13.7 実装例:HinaFSの設計
      13.8 実装例:HinaFSの実装
      13.9 実例:FATファイルシステム
      13.10 ファイルシステムサーバ
     Chapter 14 ネットワーク(TCP/IP)
      14.1 TCP/IP階層モデル
      14.2 IPv4
      14.3 TCP
      14.4 UDP
      14.5 アドレスの解決
      14.6 mbuf
      14.7 実装例:HinaOSのパケット送受信処理
      14.8 実例:MINIX3のTCP/IPサーバ
      14.9 実例:HurdのTCP/IPサーバ
    第4部 発展的話題
     Chapter 15 マルチプロセッサ対応
      15.1 マルチプロセッサの形態
      15.2 カーネルのマルチプロセッサ対応
      15.3 スピンロック
      15.4 プロセッサ間割り込み
    Chapter 16 仮想化とエミュレーション
      16.1 ハイパーバイザ
      16.2 OS互換レイヤ
      16.3 コンテナ
     Chapter 17 信頼性とセキュリティ
      17.1 「マイクロカーネルはモノリシックカーネルより安全」という主張
      17.2 高い信頼性のために必要なこと
      17.3 サーバの自動再起動
      17.4 ライブアップデート
      17.5 「ステートの漏出(state spill)」問題
      17.6 HinaOSの脆弱性からみるOSのセキュリティ
     Chapter 18 ソフトウェアによるプロセス隔離
      18.1 プロセス隔離の必要性
      18.2 ハードウェアによるプロセス隔離
      18.3 ソフトウェアによるプロセス隔離
      18.4 実装例:HinaVM
      18.5 ソフトウェアによる隔離は安全か?
     Chapter 19 ブート処理
      19.1 ブートローダ
      19.2 HinaOSのブート処理
      19.3 MINIX3のブート処理
      19.4 seL4のブート処理
      19.5 Hurdのブート処理
     Appendix 付録
      Appendix 1 HinaOS開発環境の構築
      Appendix 2 HinaOSのデバッグ
      Appendix 3 参考文献
  • 出版社からのコメント

    マイクロカーネルOSのソースコードを紐解き、ユニークなアイデアと先進的なテクニックを探求しよう!
  • 内容紹介

     マイクロカーネル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やアーキテクチャにとらわれないコンピュータの深い技術も身に付いているはずです。

    図書館選書
    自作OS(HinaOS)と実用OS(MINIX3、GNU Hurd、seL4)のソースコードを紐解き、シンプルでエレガントにOSの機能を実現するマイクロカーネルのさまざまな手法を解説します。
  • 著者紹介(「BOOK著者紹介情報」より)(本データはこの書籍が刊行された当時に掲載されていたものです)

    怒田 晟也(ヌタ セイヤ)
    筑波大学情報学群情報科学類卒業、筑波大学大学院リスク工学専攻修士課程修了。現在は、CDNにおけるエッジコンピューティング技術の開発に従事
  • 著者について

    怒田晟也 (ヌタセイヤ)
    筑波大学 情報学群 情報科学類 卒業、筑波大学大学院 リスク工学専攻 修士課程 修了。現在は、CDNにおけるエッジコンピューティング技術の開発に従事。OSカーネルやハイパーバイザといった低レイヤのソフトウェアが好き。趣味でLinux ABI互換カーネルをRustで書いてみたり、自身のWebサイトを自作OSで提供してみたりして遊んでいる。
見て納得。写真で解説。
マイクロカーネルの手法について自作OSと実用OSで学び、アイデアとテクニックを探求しよう!

自作OSで学ぶマイクロカーネルの設計と実装―マイクロカーネルの深淵を知り、骨太なスキルを身に付ける の商品スペック

商品仕様
出版社名:秀和システム
著者名:怒田 晟也(著)
発行年月日:2023/06/01
ISBN-10:4798068713
ISBN-13:9784798068718
判型:B5
発売社名:秀和システム
対象:専門
発行形態:単行本
内容:電子通信
言語:日本語
ページ数:432ページ
縦:24cm
横:18cm
厚さ:3cm
他の秀和システムの書籍を探す

    秀和システム 自作OSで学ぶマイクロカーネルの設計と実装―マイクロカーネルの深淵を知り、骨太なスキルを身に付ける [単行本] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!