浅谈国产操作系统

今天看了csdn一篇文章《地狱→炼狱→天堂”,国产OS成功路上的必经过程》 http://www.csdn.net/article/2014-11-03/2822430。
浏览后门的评论,看到这样一个发言:
“韩国这个国家总是出乎我的意料,真希望国产系统也可以兼容微软的office软件,这样系统份额就可以提升了,用户多了,再努力开发自己的办公软件可能就容易多了。原谅我这个小白发表这样的言论,求大神解释。”
其实本人也是小白,但作为一普通软件从业人员,我认为概念清晰很重要。我不敢说自己的概念就一定清晰,但对于概念模糊、空对空的议论实在是有些担心。当然,对于揣着明白装糊涂、糊弄非专业人士谋利的真正专家,则我没有话说,但请专家们先回答前面那位自称小白者的初级问题。
下面我想谈三个方面内容:①、国产OS的概念界定不清,②、我们差距在哪里?③、我们路在何方?
一、国产OS的概念界定不清
按照我对开篇所提文章的理解,我认为作者其实是想说中国发行的、通用的、运行于PC上操作系统。非通用的操作系统,如实时操作系统,据我所知国产的早就出现了。文章所列举的大部分操作系统,比如基于Linux内核的系统,我认为并不能称得上国产二字,或许称呼比较合适:在中国发行的XX Linux操作系统。实际上,一个独立的操作系统往往是一个大的生态系统。一个独立的操作系统生态系统,按照我所认知的工程复杂度,依次由三部分构成:操作系统+基础外围软件+庞大的应用软件。
1、操作系统,一般包括内核和外壳。作为通用(非实时内核)的内核而言,目前全球占主导的就是开源的Linux内核(目前版本已到3.18)和闭源的Windows NT内核(目前版本已到6.4)。根据前面提到文章的劳动,罗列的大部分国产OS都是基于Linux内核。作为操作系统外壳的图形用户界面外壳(如开源的KDE、GNOME和闭源的Win32子系统)文章并没有说是否我国独立开发(即国产)。如果内核和外壳都不是国产的话,称国产操作系统恐怕太勉强了。
2、基础外围软件。最基础当然是编译器工具链,比如基础中的基础:C/C++编译工具链。其次还包括操作系统内核映像之外各种可加载驱动模块,比如文件系统驱动、网络协议栈驱动、各种外围设备的驱动等。请问这些软件有多少是国产的?
3、应用软件。普通用户使用操作系统其实主要是与应用软件打交道,这其中面向一般用户关心的办公软件、浏览器、社交类软件,反而是目前国产化率较高的了,虽然作为重要软件的浏览器的核心代码未必是国产的。
所以,如果要喊国产OS,首先要给大家讲明白,你这个国产到底那些是国产的?至少不要把主要工作放在图形用户界面外壳定制、汉化别的操作系统的系统就宣传为国产OS,这很不严谨,也会让外国人笑话。
二、我们差距在哪里?
1、内核。据作为学术小白的我所知,虽然在内核具体工程实现上可能有一些创新,其实通用操作系统内核的基础理论已经成熟几十年了。总体来说,虽然一个稳定、多种CPU平台移植的内核需要时间来考验,但在有这么多现实参考的条件下,实现一个新的内核真不是一个工程浩大的事情,凭我国那么多软件学术界精英、民间技术高手,搞这样全新的内核并不是难事。但最主要的问题还是是否有必要,如果真有必要,恐怕国家早就组建国家队来搞了。其次的问题是,利用主流的开源Linux内核并不是什么丢人的事情,只不过如前所述要加上国产两个字还需慎重。至于图形用户界面外壳,其核心源码是国产的系统我还真没听说过。
2、基础外围软件。据我所知,经典的编译器基础理论也已经成熟很多年了,复杂的面向对象语言如C++编译器实现上也成熟很多年了,但恕我孤陋寡闻,国产编译器我还没怎么听说过。原因也不复杂,目前中国缺少具有自主知识产权指令集CPU,CPU指令集是外国的,用国外现成的编译器是必然的选择。文件系统、网络协议栈等方面属我国内自主源码实现的我也很少听说,虽然它们是相对轻量级的软件。不过欣喜的是,网上说大型国产数据系统已经逐渐成熟起来。
3、应用软件
应用软件内容最为丰富,我就不归类列举了,读者有空可以查看腾讯软件管家或360软件管家的软件列表,那里面倒是有不少国产应用软件。下面罗列几种目前我了解的、较大型的软件与国外的差距情况。
1)、浏览器,国产浏览器倒是不少,但核心源码实现居我所知主要是国外的贡献。
2)、搜索引擎。众所周知,无论国产搜索引擎相比国外功能如何,但目前在国内来说还是达到了可替换国外搜索引擎的水平,虽然是政府正在帮忙实现这一可替换,不多说,你懂的。
3)、办公软件Office软件系列,目前国产软件在功能上也基本上达到了可替代水平,但还有差距。
4)、系统工具。目前国产安全、杀毒软件和国外水平差不多了。但一些大型虚拟机软件,目前还存在较大差距。
5)、游戏、娱乐与社交。本人不怎么玩游戏,我国大量的游戏玩家们心里肯定有数,国产游戏软件和国外游戏软件差距到底怎么样,特别是那种对显卡要求比较高的游戏。音视频软件国产软件和国外软件好像没什么差距。社交方面,软件不是重点,重点在平台,这个咱们差距不大,甚至有人口数量的优势。
6)、专业软件,比如专业图形图像处理,目前和国外差距比较大。这里特别提提我所从事的芯片行业,芯片产业是IT产业的基石,专业软件EDA软件与国外差距相当大,EDA软件好比是硬件的编译器,基础地位不言自明。
7)、身处网络时代,当然不能忘了Web开发者们,由于Web开发的本地化特点,这没有好说的,国产网站当然国人完成,所以世界排名前十的互联网公司我国占据三席。
那么我们差距在哪里?我认为我们的差距不只在操作系统内核,而是基础软件方面整体较差,而且差距还很大。
三、我们路在何方?
既然我们基础软件方面整体差距较大,想要赶超,我认为在国家层面,需要培养重基础的氛围,长远规划,不搞大跃进。两弹一星式的集中国力追赶的模式在市场经济条件下并不太适合民用领域。
对于个人和企业来说,面向市场,脚踏实地,不断积累,就是最正确的选择,如果有创新那最该被鼓励。我特别提一点是:不能轻视上层应用,应用直接与最终用户接触,使用习惯的培养和固化恰恰是应用来完成的,基础虽然重要,从某种意义上来说,对最终用户而言,反而是可替换的!
另外我想谈谈兼容的重要性和信息安全担心。
1、兼容
软件产业的一个特点:作为智力成果的源码是可以直接继承和复用的,可复用是软件工程的一个重要思想。本文开始提到的那个自称小白的网友恰恰提到了可复用的重要方面——兼容。兼容包括用户习惯的兼容,实际开发过应用软件人都知道,用户接口(UI)中大有学问,也就是说每一种流行的用户习惯背后一定有形成这种习惯的合理过程。所以兼容其实是尊重这种合理过程。
我这里举正反两方面的例子来阐述兼容的重要性。Linux是一个类似Unix的系统,Unix传统上是给专业人士使用的,字符界面是它的主要界面。Windows主要面向普通用户的,所以图形界面是它的主要界面。但现在的Linux,如颇受欢迎的Ubuntu发行,图形界面成了它很重要的方面。同样,Windows为了照顾追求自动化、高效率的专业用户,也推出了PowerShell。Intel风光很多年一个很重要的原因就是对自己曾经产品的兼容性,8086指令在最新的x64架构上仍然正常运行,尽管这让Intel背上了复杂指令集的包袱,但在PC市场上却获得了巨大成功,如今x64架构甚至主宰了超级计算机市场。Microsoft的Win32 API在进入了64位时代后的基本形式与20年前比,并没有大的变化。
反面例子,Intel最初在64位市场上另起炉灶搞一个不不兼容x86的安腾(IA-64)架构,结果让AMD抢了先。AMD推出兼容x86的x64架构后,市场反应良好,迫于压力,Intel放下领导者的架子,从兼容AMD开始做起。现如今,IA-64对市场的意义或许还比不上它对CPU体系结构的学术意义。Microsoft在Windows 8上取消了开始菜单,不照顾(也可以说是不兼容)广大鼠标用户的感受,结果要在Windows 10上回归开始菜单。虽然说肉是烂在锅里,用户不积极选择Windows 8还是停在了Windows 7上,但这对Microsoft而言也是一个教训。
强调兼容并不意味着不要创新,但创新一般来说,是建立在深入发掘未激发的潜在需求基础上的。
2、信息安全担心
如今,全球一体化的进程还在继续,相互融合,国与国之间你中有我、我中有你的趋势也越来越明显。如果对“我中有你”的态势有担心,最好的方法不是闭关——我中无你,而是努力做到你中有我,这一点看看我们开遍世界的孔子学院吧,扯远了,呵呵。中国作为一个大国可能并不满意目前在国际产业链中的位置,但要想提升,只能一步一步来。
把“国产操作系统”与国家信息安全紧密挂钩其实是经不起简单推敲的。即使你的操作系统、编译器、应用软件全部是国产的,也最多保证没有“敌国”恶意设置的机关、后门,但如果还是要与外界进行网络互联的话,那还是不能做到真正安全。真正需要安全保密的环境,如军方系统,我认为唯一可行的办法是物理隔断。没有经过广泛、长期用户使用考验,完全国产的系统固然可以防止别人的恶意机关与后门,但却有可能被自己的缺陷(bug)所害。

你可能感兴趣的:(浅谈国产操作系统)