对中国系统软件发展的思考与建议(一)


1. 引言
此原文成稿于2004年并发布于系统计算研究所网站上,并被许多网站转载,转眼近四年过去。现重读此文,颇有感慨。现校订整理发表于此,对一些学术和技术观点做了一些相应的补充或修改 。

关于中国系统软件的评论已经不少。大多数是从爱国主义与民族产业的角度来阐述的。本文试图从技术的角度来探讨系统软件,并提出中国系统软件方面的问题,更为重要的是,中国的机会所在。另外对要达到长远战略目标所应该做的一些准备提出一些不成熟的建议。

2. 系统软件与操作系统

系统软件是一个比较大和泛的概念,很难有一个具体的定义。一般而言,我们可以认为:操作系统(OPERATING SYSTEM),编译器与工具链(COMPILER AND TOOL-CHAIN),编程环境(特别是高性能编程环境, 如PVM, MPI, GLOBUS等等),中间件(MIDDLEWARE, 如CORBA, DCOM)等都属於系统软件的范畴。

其中,操作系统是系统软件中的一个重要部份。编程环境和中间件技术都是与操作系统非常紧密结合在一起的。

一个国家在软件技术方面的强弱基本上可以通过其系统软件技术,或操作系统的水平来体现。

换句话说,一个国家在计算机软件方面的发展战略,必须对操作系统的研发,使用规划等等有一个清晰的认识和定位。不能绕过或有意规避。否则,对其它方面,如应用系统,是把握不住发展脉络的。

操作系统按应用的领域划分,一般可以分为:桌面操作系统、服务器操作系统、嵌入式操作系统等。比较典型的例子是:
× 桌面操作系统: Microsoft Windows Series、 Linux、 BSD、和其他的一些UNIX的变种。

×服务器操作系统:高档Microsoft Windows和配套的Cluster。Linux/BSD/Solaris服务器和相应的Cluster技术等, 比较熟悉的系统应用如:Google的LINUX机群系统,Yahoo的BSD 服务器机群系统等等。

*嵌入式操作系统:从概念上来讲,这是一个比较模糊和混乱的灰色区域。从传统操作系统方面(如LINUX,BSD等), 工业界和开源社区花了很多力量力图将非实时(real-time)的LINUX系统向嵌入式领域靠拢,典型的如:Monta Vista IncFSMLabs,另外VXWORKS也有很多的装机量。这些操作系统一般都应用在中低档嵌入式系统方面;或高档系统控制平面(CONTROL PLANE)上。

从嵌入式设备公司的角度,对嵌入式操作系统的理解与经典的操作系统理解不一样,如华为,中兴,Cisco, Juniper, Foudry等在路由器,交换机公司。从这些大型通信设备公司的角度,其操作系统包括更广泛的内容,如CISCO的IOS和最近的HFR/CSR, JUNIPER的JUNOS等等,传统的操作系统在这些大型的嵌入式系统中扮演着一个内核或基础的地位,并且被人为的修改以满足高档嵌入式系统,特别是高 端系统特殊的需要。 当然有一点可以肯定:即使对於CISCO和JUNIPER这样的技术力量非常雄厚的公司而言,他们在传统操作系统方面的能力也不强,这也是为什么他们系统 的基础仍然是传统的操作系统,比如CISCO 的HFR建立在QNX/NEUTRINO微内核(Micro-Kernel)的基础上。JUNOS的控制平面建立在BSD的基础上,数据平面(DATA PLANE)软件部分建立在一个微内核上。有一点要注意:CISCO和JUNIPER的重点是在其数据平面。但是控制平面软件工作量和复杂性更大,要求更 高。

在嵌入式操作系统方面,另外一个巨大的使用领域是Mission Critical Systems. 比如,美国宇航局(NASA)的火星探索器上的软件系统,大型军事监控系统, 航空控制系统等等。这方面要注意的公司是Green Hills Inc. (www.ghs.com). 笔者认为,NASA目前仍然没有放弃VXWORKS的主要原因是代码的历史遗留(Legacy)问题。目前在军事方面的OS应用,Green Hills已经取得了主导地位。Green Hills RTOS系统的核心是ARINC-653。在这方面,开源的LINUX,BSD 等等向ARINC-653方面发展的可能性不大,即使IBM在LINUX后面出钱出力。单靠自由软件的力量在Mission Critical系统方面有所作为可能性不大。

从上述各个方面的阐述分析,我们要考察的是我们的贡献在哪里?更重要的是,我们的重点应该放在哪里?

对中国系统软件发展的思考与建议(二

对中国系统软件发展的思考与建议(三)

对中国系统软件发展的思考与建议(四)

Leave a Reply