2024年3月13日发(作者:)
关于银河麒麟操作系统的说明
国防科技大学计算机学院银河麒麟项目组
2006 年 2 月
最近,本论坛中有不少网友对银河麒麟的知识产权问题提出了一些质疑,特别是提到了
银河麒麟和 Linux、FreeBSD 的关系问题。首先,银河麒麟开发组感谢大家对银河麒麟的关
注和关心,并就此机会对一些相关问题做出说明。
一、银河麒麟操作系统的发展历史
银河麒麟操作系统采用的是一种层次式的内核结构,该结构介于单一模块内核结构(如
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 为原型 /afs/cs/project/mach/public/www/,并
结合 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 内 核 技 术 正 在 不
断 兴 起
(),已成为 Mac OS X 的内核,具有非常鲜明的技术特色,
它的基本内核基于 Mach3.0,系统服务主要基于 FreeBSD 内核,桌面环境是 Apple 公司自己
开发的,因为是面向桌面领域,Darwin 没有强调安全性、高可用性和实时性等特点。这种
通过基本内核层和系统服务层来提供操作系统运行环境的作法,以前 OSF/1 采用过,
Windows NT 的早期实现中也曾经采用过,微软还曾设想通过不同的系统服务层同时实现
Unix 和 Windows。此外军方的许多定制装备,尽管不需要一个完整的复杂的操作系统环境,
但对系统的安全性评估要求很高,对实时性的要求也很高,采取层次式内核结构能较好地确
保基本内核的高安全性和强实时性。基于以上种种因素的考虑,银河麒麟操作系统仍旧选择
了层次式内核结构这个技术路线。
二、银河麒麟操作系统的主要工作
一个操作系统版本,并非仅仅是一个内核,还包含大量的配套工具软件等。银河麒麟
操作系统的主要研发工作,除了层次式内核结构外,还在 Linux 目标代码兼容、安全、性能、
高可用、实时、环境友好性等方面进行了大量的研发工作。在承担的 863 课题验收时,科技
部曾组织总装武器装备论证中心(代表军口)和中国软件评测中心(代表民口),对银河麒
麟进行了长达 2 个月的全面详细测试,既发现了银河麒麟操作系统存在的一些 Bug,也充分
肯定了银河麒麟操作系统在性能、安全性、高可用性、实时性方面的工作成效。
1、基本内核层和系统服务层的改进。近年来随着硬件的不断更新换代,原来的基本内
核层已经无法满足新的硬件体系结构,为此我们在处理器亲和的调度优化、基于 RDMA 的
Mach 的 Port 通信机制、基于对象的存储管理等方面进行了大量改造和升级。此外基于 Unix
SVR4.2 的系统服务层对 SMP 对称多处理器的支持能力较差,并由于 Unix 影响力的逐年下
降,应用支持的丰富性也在不断下降,课题组通过评测和分析,认为当时正在研发中的
FreeBSD 5.0 具有比 Unix SVR4.2 更好的发展势头,特别是 SMPng 项目的开展,为 FreeBSD
5.0 支持 SMP 对称多处理器系统奠定了良好的基础,因此银河麒麟操作系统的系统服务层
从 SVR4.2 升级到当时正在研发中的 FreeBSD 5.0。由于银河麒麟的系统服务层是基于
FreeBSD 5.0,而内核显示出来的绝大部分信息(dmesg)是系统服务层向外提供的,并且银
河麒麟的根文件系统采用了 BSD 的 UFS 文件系统(UFS 的性能不如 Ext3,但因为 Ext3 是
GPL 规则的,做根文件系统会违背 GPL 规则),设备命名管理也采用了 BSD 的模式,所以
银河麒麟的对外风格类似于 BSD。
2、Linux 目标代码兼容层的实现。一个操作系统没有配套的丰富工具软件和应用软件,
是不可能在市场上生存的。目前以 Linux 为代表的开源软件已经构成一个完整的软件体系,
为了能充分利用 Linux 上丰富的工具软件和应用软件,银河麒麟操作系统采用了和 Linux 目
标代码兼容的技术路线,完成了内核中的 Linux 目标代码兼容层的研制,向用户提供了标准
的 POSIX 接口,符合 LSB 规范,从而保证 Linux 的应用能够在银河麒麟上无缝执行。这样,
银河麒麟的核外软件,大部分是直接采用 Linux 的核外软件。由于 Linux 版本众多,内核发
展也非常迅速,期望全面兼容 Linux 不同发行版和不同内核版本是不现实的。为了比较全面
地兼容 Linux 应用,银河麒麟开发组设计实现的 Linux 兼容层以符合 LSB 规范和 UNIX’03
国际标准为目标,通过了美国自由标准组织(Open Group Standard)的 LSB 1.3 认证,具体
详见 /lsb/cert/cert_?CALLER=,其兼容能力超过
Solaris 的 Janus、IBM 的 K42 和 Montery 以及 FreeBSD 的 Linux 二进制兼容模式,是国际上
首个通过 LSB 认证的非 Linux 内核操作系统。至于 uname 信息显示包含”Linux”,主要是出
于支撑银河麒麟中部分 Linux 应用软件包编译的需要,具体的解释已经在“银河麒麟版本说
明”论坛版块中说明。


发布评论