设计OS抽象层

时间:2009-10-31 04:55:46

标签: abstraction operating-system layer

在为多模块系统开发OS抽象层时,应采用哪种方法:

  1. 创建OS服务的共享库,并构建每个模块以使用它并作为单独的进程运行。        OR
  2. 只创建一个抽象层实例,它提供内存,计时器服务,并且单独生成所有模块实例。
  3. 这些方法的优点和缺点是什么?如果可能的话还要放下其他人吗?

1 个答案:

答案 0 :(得分:1)

当我的工作是建筑,管理和领导(主要是做的;-)这样的层,我有一个轻松的时间决定:一些操作系统(VMS,然后全新的Win-NT)非常重量级的过程产生(所以它真的需要大量的挑衅来产生一个新的过程! - ),而在另一个极端的其他(如BSD 4.3及其全新的vfork! - )积极鼓励您生成尽可能多的进程,并且这样做的开销很小。因此,我判断给应用程序员留下是否产生的决定是不负责任的 - 我们(“基础库”组)真的必须提供一个抽象层,它将产生或不产生,具体取决于底层操作系统。它工作得很好......但它也是15/20年前,在某种类型的机器(工作站)上有各种各样的操作系统,但在内存,核心方面有相当统一的禀赋(一个:当时没有多核! - )之类的。

如果我今天要做同样的工作,我首先会推动利益相关者(顶级管理,产品营销或任何人)明确定义我们必须支持的平台范围 - 操作系统,范围(硬件禀赋。如果 - 正如我所怀疑的那样 - 那时它的方式与当时一样广泛,我的架构在隐藏应用程序员的过程产生概念方面也是类似的。但也许目标范围不同,例如“智能手机和便宜的上网本”,这将使选择更加简单......虽然抽象流程创建远离应用程序程序员是安全的选择,只有当你愿意承担所述应用程序员的风险时才应该公开这一层一般技能以及在您的平台范围内可以依靠现在的一致性,将来保持相当稳定! - )