从共享机器的实际问题出发
巴特勒·W.兰普森(Butler W. Lampson,1943年生)出生于华盛顿,1964年取得哈佛大学物理学学士学位,1967年取得加州大学伯克利分校电气工程与计算机科学博士学位。他的研究横跨硬件、操作系统、程序语言、计算机安全和分布式系统,1992年获得图灵奖。
1964至1967年,他与梅尔·珀特尔、韦恩·利希滕伯格、彼得·多伊奇等人在伯克利设计实现 SDS 940 分时系统。分时让多个使用者共享计算资源,也让隔离、调度和保护成为基础要求。后来参与 Cal TSS 时,他承担设计工作,但在自己的项目记录中明确说明未编写该系统代码;设计与实现贡献需要分别看待。
Alto 与网络化个人计算
在施乐帕洛阿尔托研究中心,兰普森参与 Alto 个人计算机的设计。他的记录特别注明,查尔斯·撒克尔是主要设计者,埃德·麦克赖特和鲍勃·梅特卡夫等人也参与其中。兰普森还设计 Alto 操作系统,并与同事共同实现,使硬件成为可使用的软件环境。
他与查尔斯·西蒙尼设计的 Bravo 文本编辑与排版系统,能够持续在屏幕上呈现多字体等文档效果,实现所见即所得编辑。实现由西蒙尼等人完成。Alto、网络、打印和编辑软件共同构成实验环境,不能把 PARC 的全部成果压缩成某一个人的发明,也不能将研究原型与后来商品化产品直接等同。
参考:[2]
用保护域和访问矩阵表达权限
1971年的《Protection》将许多不同保护机制放入统一的抽象框架。保护域表示一个计算活动能够行使的权限环境,对象可以是文件、进程或其他受保护资源。访问矩阵以域为行、对象为列,每个格子记录允许的操作,例如读、写或唤醒。
例如,一个域对某文件有读权限,却没有写权限,系统便可在读写请求之间作出不同决定。权限的复制、增加和撤销也需要明确规则,而非只检查一次登录身份。矩阵是描述模型,并不要求实现真的保存一张庞大二维表;论文讨论了能力表和按对象组织的控制方式,使模型能够联系实际存储及检查成本。
参考:[3]
设计原则不是万能配方
1983年的《计算机系统设计提示》从多个真实系统提炼经验。兰普森强调,接口包含各部分为了证明自身正确性而对其他部分作出的假设。接口既要简洁、功能足够,又要能够以合理的大小和速度实现,这些目标常常互相牵制。
因此,功能更多不一定意味着设计更好。过度承诺会使实现复杂,也可能把不可预测的成本传给调用者;清晰分工和稳定的基本接口则有助于系统演进。文章刻意把这些经验称为提示,而非无条件成立的定律。兰普森的贡献在于持续把抽象方法与可运行系统对照,而不是用几条格言替代工程判断。
参考:[4]