索引 / 001 JA
Modern Operating Systems(モダン オペレーティングシステム) cover

コンピュータサイエンス

コンピュータサイエンス

Modern Operating Systems(モダン オペレーティングシステム)

Andrew S. Tanenbaum; Herbert Bos

英語原題: Modern Operating Systems

学部のオペレーティングシステムの授業で標準的に使われる教科書で、アンドリュー・タネンバウムがハーバート・ボスとともに執筆している。プロセス、メモリ、ファイルシステム、入出力、セキュリティの原理を説明し、Linux・Android・Windows の詳しい事例研究によって裏づけ、最新の研究と設計上のトレードオフにも目を配る。

前提知識: C などによる最初のプログラミングの授業と、コンピュータ構成論の入門。

難易度レベル
中級
学術レベル
学部
operating systemsprocesses and threadsmemory managementfile systemssecurity教科書

01 / 読書ガイド

読書ガイド

引用

Tanenbaum, A. S., & Bos, H. (2022). Modern Operating Systems (5th ed.). Pearson.

章の要約

第5版は1,100ページあまり(版により目録上のページ数は1,101と1,184に分かれる)で、Pearson は13章を章題のみで掲げている。Pearson は、この版の変更点を、Windows 11 に関する新しい章、セキュリティの新しい扱い、フラッシュメモリを使ったソリッドステートドライブ(SSD)の重視と要約している。出版社のチラシによれば、さらに永続メモリが論じられ、Linux と Android のケーススタディが最新の内容に更新され、各章に新しい問題が加えられている。

第1章:序論

最初の章は主題を紹介する。Pearson の概要は、プロセス、スレッド、メモリ管理、ファイルシステム、入出力、デッドロックを本書の詳しく扱う話題として挙げており、続く章はこの順に取り上げている。

第2~3章:プロセスとスレッド、メモリ管理

個別の話題を扱う最初の2章で、ファイルシステムや入出力より前に置かれている。2章合わせて、プロセスとスレッドによる実行、およびメモリという、概要が最初に挙げる2つの対象を扱う。

第4~5章:ファイルシステム、入出力

第4章はファイルシステム、第5章は入出力を扱う。チラシによれば、新版ではフラッシュメモリ型のSSDと永続メモリが詳しく論じられており、これは特にこの2章に関わる。

第6章:デッドロック

デッドロックだけで1章が立てられている。Pearson の概要は、これを本書の詳しい話題の一つに挙げている。

第7~8章:仮想化とクラウド、マルチプロセッサシステム

オペレーティングシステムが現在動作する場面を扱う2章。仮想化とクラウド、および複数のプロセッサを持つシステムである。チラシは、仮想化とクラウドを、新しい動向を反映した話題の一つに挙げている。

第9章:セキュリティ

セキュリティには独立した章がある。チラシによれば、更新された扱いはオペレーティングシステムの設計と構造に直接関係する話題に焦点を当て、ハードウェアの進展、ソフトウェアの脆弱性、攻撃と防御を論じ、ウイルス、ワーム、マルウェアも取り上げる。

第10~11章:ケーススタディ1:Unix、Linux、Android、ケーススタディ2:Windows 11

章全体を使った2つのケーススタディ。最初のものは Unix 系、Linux、Android を扱い、チラシによれば、現行版の Linux と Android の新しい展開を含む。2つ目は新設の Windows 11 の章で、チラシは、Microsoft の NT オペレーティングシステムの最新の主要リリースを探究するものと説明している。

第12~13章:オペレーティングシステムの設計、参考文献一覧と文献目録

設計の章が本文を締めくくる。第13章は推薦図書と参考文献をまとめたもので、チラシによれば、それらは最新のオペレーティングシステムを反映している。

主要概念

第1~6章:原理

  • プロセスとスレッド:オペレーティングシステムが生成し管理する実行の単位。
  • メモリ管理:プログラムにメモリを割り当て、共有させる方法。
  • ファイルシステムと入出力:永続的な記憶装置やデバイスをプログラムに見せる方法。この版ではフラッシュ型SSDと永続メモリが重視される。
  • デッドロック:プロセスが互いを妨げて止まる状況で、独立した章で扱われる。

第7~13章:現代のシステムと設計

  • 仮想化とクラウド、マルチプロセッサシステム:オペレーティングシステムが置かれる現代の場面。
  • セキュリティ:オペレーティングシステムの構造に関わる攻撃と防御。
  • ケーススタディ:Unix、Linux、Android が1章、Windows 11 がもう1章。
  • オペレーティングシステムの設計:システムの設計を扱う最終の本文の章。

批判的分析

長所

  • 1冊の幅広さ。 13章が古典的な中核(プロセス、メモリ、ファイル、入出力、デッドロック)に加え、仮想化とクラウド、マルチプロセッサシステム、セキュリティの独立した章まで扱う。
  • 実在する2つのシステム。 Unix 系と Linux・Android、および Windows 11 の章全体を使ったケーススタディにより、原理を学んだあとに2つの異なる設計の流れを比べられる。
  • 設計の章。 本文は「オペレーティングシステムの設計」という題の章で終わっており、既存のシステムの説明にとどまらない。
  • 練習問題と文献案内。 チラシは各章に新しい問題があるとしており、第13章は参考文献一覧と文献目録を提供する。
  • 現在のハードウェア。 チラシはSSD、永続メモリ、64ビットアーキテクチャを強調しており、記憶装置の章は回転式ディスクだけに限定されない。

短所

  • 分量。 1,100ページを超え、1学期分より多くの読み物を含むため、授業では章を選ぶ必要がある。
  • 概念が先。 出版社の資料は、説明、ケーススタディ、問題を強調しているが、プログラミング課題には触れていない。システムプログラミングの演習を求める読者は、別の資料か授業のプロジェクトが必要になる。
  • 宣伝文は一部が一般的。 Pearson の説明には今も「インタフェース設計」と「マルチメディア」が挙がっているが、目次にその名の章はない。チラシはマルチメディアファイルシステムに触れているが、どこで扱われるかは書かれていない。これらの話題を当てにする前に、節レベルの目次を確認するとよい。

コースにおける位置づけ

Tanenbaum と Bos の本は、標準的な学部のオペレーティングシステム講義向けの、包括的な教科書兼参考書である。Silberschatz、Galvin、Gagne の Operating System Concepts はこの一覧にあるもう一つの幅広い教科書で、Linux、Windows、macOS、Android、iOS の例と短いプログラミング課題を備える。どちらも主教材になりうるので、選択は文体と、授業がどれだけプログラミングを求めるかによる。

Operating Systems: Three Easy Pieces は、仮想化、並行性、永続性を軸に整理した、より絞った道筋をとる。より短い概念的な説明が役に立つときの併読書になる。Ward の How Linux Works は実践的な補完で、シェルからカーネルまで実在する Linux システムを説明し、第10章と自然に組み合わさる。Saltzer と Kaashoek の Principles of Computer System Design は、単一のオペレーティングシステムを越えて、抽象化、モジュール化、命名、保護、通信を扱い、第12章のあとに読むとよい。

本書の使い方

以前にプログラムを書いたことのある学生向けである(出版社の資料は予備知識を明示していない)。オペレーティングシステムの最初の本格的な講義と、その後の参照用に最も役立つ。

実践的な進め方:

  • 中核: 第1~6章を順に読む。第2章と第3章を講義の中心とし、第4~5章で記憶装置とデバイスを学ぶ。
  • 現代的な話題: 第7章(仮想化とクラウド)、第8章(マルチプロセッサ)、第9章(セキュリティ)を、講義に応じて選ぶ。
  • ケーススタディ: 原理の章のあとに第10章か第11章を、できれば動作しているシステムを手元に置いて読む。伝統の比較のために両方を読む。
  • 仕上げ: 設計の第12章を読み、続編として第13章の文献一覧を使う。

章末の問題は飛ばさずに解き、How Linux Works のような実践的な資料か、プログラミングのプロジェクトを併用する。出版社の資料にはそのようなものの記載がないためである。