• 一个像现代操作系统一样庞大而复杂的系统必须仔细设计,才能正常运行并易于修改。
  • 一种常用的方法是将任务分成小部件,而不是一个单一的系统。
  • 这些组件中的每一个都应该是系统的一个明确定义的部分,具有详细定义的输入,输出和功能
  • 系统设计人员如何组织这些组件?
  • 简单结构(或没有结构)
  • 分层结构
  • 微内核
  • 虚拟机

简单结构

  • 许多系统没有明确的结构。
  • 他们从小、简单和有限的系统开始,然后演变成复杂的系统。
  • eg. MS-DOS和Unix

分层结构

  • 操作系统分解成多个层,高层只能调用低一层的功能
  • 分层结构的主要难点在于:
  • 仔细定义每一层
  • 效率较低。
  • eg. The THE operating system by Dijkstra.

微内核

  • 随着Unix操作系统的扩展,内核变得庞大而难以管理。
  • 微内核方法通过从内核中删除所有非必要组件并将它们实现为系统级和用户级程序来构造操作系统。
  • 提供精简的内核。哪些组件应该保留在微内核中?
  • CPU管理
  • 内存管理
  • 通信设备
  • eg. ①卡内基梅隆大学的开源Mach(用作Apple Mac OS X和DEC Tru64 Unix的内核) ②QNX Inc.的QNX实时操作系统 ③Micorsoft Windows NT / XP

虚拟机

  • 从微内核进一步迈进:
  • 低级真实的硬件被“克隆”到几个相同的虚拟机中。
  • 虚拟机提供的接口与底层裸机相同。
  • 然后,操作系统功能建立在虚拟机之上。
  • eg. ①IBM VM/370 ②VMware ③Microsoft Virtual PC ④Sun microsystem’s Java Virtual Machine (JVM).Sun微系统的Java虚拟机
  • 虚拟机的优与劣
  • 虚拟机概念提供了对系统的全面保护。因为每个虚拟机都与其他所有虚拟机隔离开来。
  • 然而,这种隔离不允许直接分享资源
  • 虚拟机系统是操作系统研究和开发的理想工具
  • 虚拟机的概念很难实现,因为需要准确地为底层机器提供一个完全相同的副本。

政策和机制

  • 政策:做什么
    eg. 用户应该无法读取其他用户的文件。
  • 机制:如何做
    eg. 在打开的系统调用中检查文件权限。
  • 政策与机制的分离是一个非常重要的原则。
  • 如果政策决定以后将改变,它可以提供最大的灵活性。
  • 两个极端:
  • 微内核:所有机制,几乎没有政策
  • Apple Macintosh:策略和机制绑定在一起