Unix 的健壮

Unix 至少设立了三层内部边界来防范恶意用户或有缺陷的程序。一层是内存管理:Unix 用硬件自身的内存管理单元(MMU)来保证各自的进程不会侵入到其它进程的内存地址空间。第二层是为多用户设置的真正权限组——普通用户(非 root用户)的进程未经允许,就不能更改或者读取其他用户的文件。第三层是把涉及关键安全性的功能限制在尽可能小的可信代码块上。在 Unix 中,即使是 shell(系统命令解释器)也不是什么特权程序。

操作系统内部边界的稳定不仅是一个设计的抽象问题,它对系统安全性有着重要的实际影响。

彻头彻尾的反 Unix 系统,就是抛弃或回避内存管理,这样失控的进程就可以任意摧毁、搅乱或破坏掉其它正在运行的程序;弱化甚至不设置权限组,这样用户就可以轻而易举地修改他人的文件和系统的关键数据(例如,掌控了 Word 程序的宏病毒可以格式化硬盘);依赖大量的代码,如整个 shell 和 GUI,这样任何代码的 bug 或对代码的成功攻击都可以威胁到整个系统。