索引 / 001 ZH-CN
计算机系统设计原理 cover

计算机科学

计算机科学

计算机系统设计原理

Jerome H. Saltzer and M. Frans Kaashoek

英文原名: Principles of Computer System Design: An Introduction

讨论抽象、模块化、命名、保护、通信以及让复杂计算机保持可靠的系统设计原则。

难度等级
高级
学术层次
本科
计算机系统操作系统网络抽象系统设计可靠性

01 / 经典教材推荐

经典教材推荐

引用

Saltzer, J. H., & Kaashoek, M. F. (2009). Principles of Computer System Design: An Introduction. Morgan Kaufmann.

为什么重要

计算机系统由多个层次构成,各层彼此隐藏复杂性。本书追问这些层次何时有效、何时失效,以及设计者如何明确它们之间的边界。

核心概念

抽象与模块化

抽象让组件暴露有用接口,而不必暴露全部实现细节。模块化则使一部分能够被替换,同时保持其他部分所依赖的行为。

命名与保护

命名把用户和程序连接到资源,保护机制则控制谁能在什么条件下使用资源。两者共同塑造系统的安全性与可用性。

端到端推理

有些功能放在系统端点实现,比放在中间层更可靠。这个原则可以帮助理解网络、存储和分布式应用中的设计选择。

故障与恢复

健壮设计假设组件、链路和输入都可能出错。清晰的契约、冗余、隔离和恢复流程,可以防止局部故障扩散为系统性失败。

阅读方法

对每条设计原则都寻找它的权衡:复杂性被转移到了哪里,需要哪些假设,以及当假设被破坏时系统会如何表现。

结语

《计算机系统设计原理》适合希望理解系统为何如此组织的读者。它把编程实践与操作系统、网络和安全基础设施背后的设计推理连接起来。