01 / 経典教科書推薦
経典教科書推薦
引用
Saltzer, J. H., & Kaashoek, M. F. (2009). Principles of Computer System Design: An Introduction. Morgan Kaufmann.
なぜ重要か
コンピュータシステムは、互いの複雑さを隠す複数の層から構成される。本書は、層がいつ機能し、いつ破綻するのか、また設計者が境界をどう明確にできるのかを問う。
核心となる考え
抽象化とモジュール化
抽象化は、実装の細部をすべて見せずに有用なインターフェースを提供する。モジュール化は、一部を変更しても他が期待する動作を保てるようにする。
名前付けと保護
名前は利用者やプログラムを資源に結び付け、保護は誰がどの条件で資源を使えるかを制御する。両者がシステムの安全性と使いやすさを形作る。
エンドツーエンドの推論
機能によっては、中間層よりシステムの端点に実装した方が信頼性が高い。この原理はネットワーク、ストレージ、分散アプリケーションの設計を理解する手がかりになる。
障害と復旧
堅牢な設計は、部品、リンク、入力が故障し得ることを前提にする。明確な契約、冗長性、隔離、復旧手順によって局所的な障害の拡大を防ぐ。
読み方の手がかり
それぞれの設計原理にあるトレードオフを探す。複雑さがどこへ移り、どんな仮定が必要で、仮定が破られたときシステムがどう振る舞うかを考えたい。
まとめ
『コンピュータシステム設計の原理』は、システムがなぜそのように組み立てられているのかを学ぶ本である。プログラミングと、OS、ネットワーク、安全な基盤を支える設計上の推論をつなぐ。