搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

银河麒麟操作系统的发展历史

  银河麒麟操作系统采用的是一种层次式的内核结构,该结构介于单一模块内核结构(如Linux)和微内核结构(如CMU 大学的Mach )之间。这种层次式结构从逻辑上来看,主要是由具有Mach 风格的基本内核层、具有BSD 风格的系统服务层和具有Windows 界面风格的桌面环境组成,前两层在核态运行。在系统服务层中,银河麒麟操作系统实现了支持POSIX 接口和LSB(Linux Standard Base )接口的Linux 应用兼容层,从而保证Linux 应用程序的目标代码在银河麒麟上能够直接执行。银河麒麟之所以采用这种层次式的内核结构,既有历史的原因,也有发展角度考虑的因素。

  国防科大计算机学院从1992 年开始,银河巨型机的体系结构从向量机巨型机向大规模并行计算机转变,因此银河巨型机操作系统的技术路线,也从专用的向量巨型机操作系统,转变为采用Unix 操作系统。由于巨型机采用大规模并行的体系结构,一台巨型机通常包含成百上千个CPU,一般分为计算节点、I/O 节点和服务节点。计算节点主要完成计算任务,功能单一,但对降低系统开销的要求十分高,最适合的操作系统是精简内核的操作系统。I/O 节点主要承担系统的输入输出工作,从操作系统角度,可以理解为一组专用的I/O 功能服务器,最适合的操作系统是一个定制剪裁的Unix 操作系统。服务节点提供用户上机所需的一切环境,最合适的操作系统是一个完整的Unix 操作系统,上层软件的支持要丰富。为了适应不同节点的功能需求,当时的银河机操作系统就采用了这种层次式内核结构,基本内核层以CMU 大学的Mach 为原型www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html ,并结合Open Software Foundation 的OSF/1 操作系统内核技术,在当时128 个MIPS R4000 CPU 上实现了全64 位的操作系统基本内核层,包括存储管理、并行优化调度、Mach 特有的Port通讯机制等。同时课题组还利用CMU 大学提供的BSD Server 实现了系统服务层,但在实际测试中发现当时的BSD Server 过于简单,而且还存在大量的Bug,只是提供了Mach 内核和BSD Server 对接技术,离实际应用还存在较大距离,而当时国际上USL(Unix System Laboratory )的UnixSVR4.2 操作系统已经产生了相当大的影响,并且具有丰富的应用软件,为此课题组与英国Unisoft 公司合作,一起完成了UnixSVR4.2 的移植工作,并最终自己实了Mach 的基本内核层与BSD 的系统服务层对接。这样银河操作系统内核中包含基于Mach 的基本内核和基于BSD 的系统服务,计算节点运行基本内核,I/O 节点运行基本内核和部分IO 功能服务,服务节点运行一个完整的操作系统。

  2002 年课题组承担863 “服务器操作系统内核”项目时,对操作系统内核采用何种技术路线也进行了深刻分析和调研,并对当时能够获得的操作系统都进行了评测。由于Linux内核采用GPL 规则,极大地限制了课题组的选择,虽然当时课题组核心开发人员也到加拿大渥太华参加Linux 的内核峰会,但在Linux 内核技术上没有主导权,不具备在Linux 内核中发展自己特色的实力,并且军方出于安全的需要,为了保护安全实现方面的一些特色技术,也强烈要求银河麒麟不能采用开源的形式。FreeBSD 操作系统因为配套应用不丰富、使用界面不好、对多处理器的支持能力较弱等因素,也没有选用。与此同时,课题组发现与我们银河操作系统采用同样技术思路的Apple 公司的Darwin 内核技术正在不断兴起(http://www.opensource.apple.com),已成为Mac OS X 的内核,具有非常鲜明的技术特色,的基本内核基于Mach3.0 ,系统服务主要基于FreeBSD 内核,桌面环境是Apple 公司自己开发的,因为是面向桌面领域,Darwin 没有强调安全性、高可用性和实时性等特点。这种通过基本内核层和系统服务层来提供操作系统运行环境的作法,以前OSF/1 采用过,Windows NT 的早期实现中也曾经采用过,微软还曾设想通过不同的系统服务层同时实现Unix 和Windows 。此外军方的许多定制装备,尽管不需要一个完整的复杂的操作系统环境,但对系统的安全性评估要求很高,对实时性的要求也很高,采取层次式内核结构能较好地确保基本内核的高安全性和强实时性。基于以上种种因素的考虑,银河麒麟操作系统仍旧选择了层次式内核结构这个技术路线。


相关文章:
© 2006   www.java-asp.net