01 / 经典教材推荐
经典教材推荐
引用
Saltzer, J. H., & Kaashoek, M. F. (2009). Principles of Computer System Design: An Introduction. Morgan Kaufmann.
为什么重要
计算机系统由多个层次构成,各层彼此隐藏复杂性。本书追问这些层次何时有效、何时失效,以及设计者如何明确它们之间的边界。
核心概念
抽象与模块化
抽象让组件暴露有用接口,而不必暴露全部实现细节。模块化则使一部分能够被替换,同时保持其他部分所依赖的行为。
命名与保护
命名把用户和程序连接到资源,保护机制则控制谁能在什么条件下使用资源。两者共同塑造系统的安全性与可用性。
端到端推理
有些功能放在系统端点实现,比放在中间层更可靠。这个原则可以帮助理解网络、存储和分布式应用中的设计选择。
故障与恢复
健壮设计假设组件、链路和输入都可能出错。清晰的契约、冗余、隔离和恢复流程,可以防止局部故障扩散为系统性失败。
阅读方法
对每条设计原则都寻找它的权衡:复杂性被转移到了哪里,需要哪些假设,以及当假设被破坏时系统会如何表现。
结语
《计算机系统设计原理》适合希望理解系统为何如此组织的读者。它把编程实践与操作系统、网络和安全基础设施背后的设计推理连接起来。