OS的核心类型(来源:http://hactech.51.net/article/ostype.html) 一般来说OS的核心有以下几种: 1.单块核心(MONOLITHIC KERNEL) 将所有OS功能放入核心.UNIX就是这种结构. 2.环状核心 分为核心,任务,用户几级,如MINIX.LINUX 也有这种特征,大家也许注意到,LINUX增加某些种类的服务时不像UNIX,必须重新启动.这就是这种结构比UNIX先进的地方. 3.无内核: 不区分核心和用户程序的分别,这样省去了状态切换的时间,这种模式适合WEB服务器. 4.微内核 微内核将许多OS服务放入分离的进程,如文件系统,设备驱动程序,而进程通过消息传递调用OS服务.微内核结构必然是多线程的,第一代微内核,在核心提供了较多的服务,因此被称为'胖微内核',它的典型代表是MACH,它既是GNU HURD也是APPLE SERVER OS 的核心,可以说,蒸蒸日上.第二代为内核只提供最基本的OS服务,典型的OS是QNX,QNX在理论界很有名,被认为是一种先进的OS .1 我个人认为第二代微内核应该是我们的选择.下面是我的一个操作系统模型 前言: 任何操作系统在设计上若没有一个简化的模型(蓝图)做为整个大方向的引导,就很容易陷入一种混淆的局面------程序代码无组织的交相混杂在一起,甚至导致失败。模型就象大楼的骨架,先有健全的骨架,然后继续填土,粉刷等修饰的工作会变得比较容易。所以提出一个操作系统模型(Operating System Modal)势在必行。 有人称,早期的MS-DOS,WINDOWS3.X等产品还称不上操作系统,而只是文件操作和图形界面的“程序组”,因为和那些登得上大雅之堂的所谓理论上的模型比较之下,它们还差“真正的”操作系统一大截,所以我们的操作系统模型应该是个满足“学术理论模型”的操作系统,甚至应较理论上的更强些。 论题一:操作系统模型 在操作系统理论上,有较常见的三种模型:单体模型(Monolithic Model),层状模型(Layered Model),主从模型(Client/Server Model)。在确定操作系统模型之前,先对现有其它操作系统模型有个简单的介绍(附模型图3张): 单体模型(Monolith):单体模型把该有的功能都整合于一个整体,其中分不出明显的模块,也无集中排程,主要掌控的程序负责对内,外的联系,需要什么样功能就由应用程序直接呼叫,操作程序内部之间的关系就像炒大锅菜一般,或者用藕断丝连来形容它,其中的函数呼叫来,呼叫去,很难分割出单独的个体,如MS-DOS。 这种模型的最大特点就是牵一而发全身,所以更新,升级困难。 层状模型(Layered):层状模型的主要特色是一种由上而下的多层阶梯结构,与应用程序越有关的东西摆在越靠近应用程序的地方(较上层),与应用程序越无关或不希望应用程序直接碰触到的东西则摆在距离应用程序较远的地方(较下层),命令则一律由上往下层发送,执行,不允许跨层或任意方向发送至其它层。与单体模型比较,层状模型主要有两个优点,一,操作系统按功能模块化使得子系统(模块)的更新,除错容易,二,应用程序仅接触到操作系统的最上层应用程序界面(API)部分,不易对整个系统造成伤害,API是由操作系统提供的较低层的成套函数或切入点,程序设计者于其程序中呼叫种种API以获得各种内建于操作系统的功能,如开放文件,读挡,移动游标位置等等。 主从模型(Server/Client):当我们在网络方面说到主从模型时,一般指的是一部负责提供数据的服务器及另一部取得数据的工作站,其中所分享的数据通常是文件和打印机。操作系统的主从模型也很类似,但所分享的数据是系统所提供的种种服务,当然也负责提供服务的程序及所接受服务的程序,WindowsNT采用的操作系统架构就是主从模型。这两个主从模型在抽象上都有个服务器及客户机主体,只是形式不一样,换言之,透过这种机制,可将操作系统主体设计成分散于一群机器的分散式操作系统,应用系统扮演客户端角色,操作系统本身则作为服务器,应用程序向操作系统要求服务,操作系统则提供服务。 论题二: 兼容性 根据过去的经验,新的操作系统若打算在现有的市场占有一席之地,则和现有软件的兼容性是最重要的关键,无论这个新的系统是多么强而有力。所以我们必须注意到现有的文件系统,网路系统,甚至不同的CPU。这里我认为有必要向微软学习一下“统一”哲学, WindowsNT的环境子系统(Environment subsystem)观念允许操作系统模拟不同的操作环境,甚至不同的CPU,如WindowsNT的DOS窗(环境子系统实际上是一个程序,负责让被执行的程序感觉就像在它所熟悉的操作环境下工作,它拦截并解释在该模拟环境下的执行程序和机器指令,并转交主系统处理,执行)。且WindowsNT有效的模块化特性使NT很容易扩充出新的环境子系统。 论题三: 系统核心 系统核心是整个操作系统的基础,应是微核心的一种,需包括1。程序及线程的排程和发派,系统核心的日常工作即是将各个程序或线程发派给CPU执行。 2.多处理能力,即当存在几个CPU时,操作系统对CPU的使用逻辑(典型有两种,一为对称式Symmetric Multi-Processing,此时应用程序共享所有CPU,另一为非对称式Asymmetric Multi-Processing,此架构中,操作系统有一颗专属的CPU,应用程序有其它CPU。 3.处理硬件中断,包括键盘,计时器,串列行及其他各种硬件中断来源。 4.例外处理,象非法写入保护记忆区等例外。 5.当电源意外中断时,于再次重启前做好重新启动系统的准备。 论题四: 硬件抽象化 硬件抽象化的目的是透过操作系统本身的设计的设计将硬件因素降到最低,软件本身牵涉到的硬件因素越少,则其跨平台的可能性越高,而硬件抽象化的最直接作法即是将操作系统本身与硬件有关的部分集中成一个模块,利用此模块将操作系统及应用程序与硬件界面相隔绝。 论题五:安全机制 橘皮书对可信赖系统的定义是这样:一个由完整的硬件及软件所组成的系统,在不反映存取的情况下,它能同时服务不限定个数的用户,并处理从一般机密到最高机密等等不同范畴的咨询。WindowsNT是C2级安全等级,UNIX(或clone)未经测试时,一般认为是C1,也有人认为是C2. 论题六:文件系统格式 NT文件系统(NTFS) DOS档案配置表(FAT) OS/2的高效文件系统(HPFS) FAT格式有许多限制,如每个硬盘的分割容量不能超过65535Cluster,仅支持长8.3的件名格式,无存取权限的设置等。 NTFS与FAT比,提供了更多包括256字元的件名,具C2等级的文件安全管理,文件修复还原能里等。 HPFS是IBM OS/2的文件系统格式,包括254字元的件名,允许额外的档案注解,简单的错误修正能力等。 论题七:错误容忍 保护数据免遭各种意外造成损失的能力称为错误容忍(Faulit Tolerance),如支持磁盘映射(disk mirror),不断电系统(UPS)等。 磁盘映射技巧引自容余廉价磁盘陈列概念(RAID),简单的提一下,包括RAID 0 –平行储存,RAID 1—磁盘映射,RAID 2—位元容错平行储存,RAID 3—大单位容错平行储存,RAID 4—改良式容错平行储存,RAID 5—高效率容错平行储存。 论题八:多任务,多线程处理能力 |