研发国产操作系统为何这么难

来源:观察者网

2017-11-16 07:47

科工力量

科工力量作者

提供对中国高新技术企业和产品的专业点评

在11月7日的“全球网络安全产业创新论坛”上,中国工程院院士倪光南表示:由于目前我们所使用的操作系统等核心技术,不是我们自己研发的,所以往往我们会处于被动的情况。倪光南院士呼吁研发国产操作系统,进而在网络空间斗争中掌握主动权。

目前,中国已经拥有数以百万计的程序员,并形成了一批以BAT为代表的互联网公司,中国人用上了国产的搜索引擎、支付软件、通信软件等产品,而曾经被基于厚望的红旗Linux却半途而废,为何开发一个操作系统就这么难呢?

开发操作系统资金和人力要求巨大

开发一个操作系统工作量非常大。举例来说,Windows XP 有代码4000万行,Windows 7 有代码5000万行,3.6版本的Linux 内核代码就有1590万行,而linux的发行版Debian系统代码行数达6500万行,而且这些代码还都是经过软件厂商反复精简的结果。可能大家对几千万代码行数的工作量没有概念。举个参照系,WPS代码大约在百万行这个级别,雷军执掌的金山软件重写WPS用了3年时间。

因此,要开发一个操作系统必须要有非常庞大的财力和人力才能胜任。

在资金上,微软在开发Vista所花费的研发费用超过了200亿美元,Linux仅内核据如果根据人员投入的规模,据测算也耗资数十亿美元。

在人力上,在开发Windows XP时,微软集中了5000余名程序员编写代码。Linux虽然不靠任何一个商业公司支持,但已经得到全世界程序员共同维护,红帽公司、Intel、IBM、甲骨文、微软等国际巨头也积极参与其中,同样具备丰富的人力资源。

(国产linux操作系统用户界面)

相比之下,国内做操作系统的公司的开发人员,大一些的有三、五百人,小的甚至不足百人。在资金投入上,国内公司更是捉襟见肘,而且还往往长期处于亏损状态——某家从事国产操作系统开发的公司就因为长期亏损,只有投入没有收入,被税务机关怀疑从事洗钱,还专门进行过检查。

软件产业虚胖 技术人才相对匮乏

诚然,中国软件产业和互联网企业创造了海量的GDP,演绎了一批造富神话,吸纳了大批就业岗位,但却存在产业虚胖、大而不强的问题。

正所谓“一流企业做标准,二流企业做品牌,三流企业做产品”,中国软件业从教学到产业基本上跟着西方的技术标准走,在一些关键技术上,根本无法实现独立自主。

就以大家每天都用的杀毒软件来说,国产浏览器都没有国人自己编写的浏览器内核。现在的国产手机的操作系统基本上是安卓系统的基础上增加了一个用户界面。某以杀毒软件起家的互联网公司,其杀毒软件用的是罗马尼亚的BitDefender引擎。不少厂商隔三差五就会出现于媒体聚光灯下的云解决方案,其实上也是国外开源软件的二次开发,有些厂商虽然也贡献了少量代码,但含金量远不及宣传中那么足......

(某手机厂商以安卓为基础开发的用户界面)

由于在标准制定上依附于西方的技术体系,国外巨头和中国各个大学堪称典范的“合作”关系下,使得我们大多数的学生只学习在西方搭好的技术框架下做“填空题”。这使中国有较为丰富的应用软件人才,可以给微软、苹果、谷歌做应用软件。但却缺乏开发操作系统等基础软件的人才。何况合适操作系统研发的人才,往往有很多更好的职业选择,很难长期沉淀在这个行业中。

此外,国内程序员有一个共识——就是不能写一辈子程序,必须向管理层转型,最后的目标就是做项目经理之类的职务。资深程序员转为管理层后,就不再从事一线开发或者很少从事一线开发,这又进一步加剧了技术人才匮乏的现状。

大公司无心研发自主操作系统

也许有人会问,以BAT为代表的互联网巨头市值非常吓人,公司非常有钱,而有钱就可以招募足够的技术人才,那么打造一个操作系统总是可以的吧?

从财力上看,国内互联网巨头是具备开发操作系统的实力的。但市场经济时代商业利益至上,上市公司需要像股东会负责,做一个独立自主、安全可控的操作系统在经济上是划不来的,与众多股东的利益相矛盾——在Windows、安卓、IOS等操作系统已经处于垄断地位的情况下,满怀理想的开发者会被残酷的现实撞得头波血流。

因此,互联网公司不可能选择长周期、高投入、高技术门槛的自主研发之路。为了跑马圈地,抢端口,赚快钱,基于安卓的二次开发就成为理所当然的选择,某互联网公司声称自主研发的操作系统,编写的代码仅限于重写了虚拟机。

(某互联网公司基于开源软件二次开发的操作系统)

同时,商业上的趋利避害又加剧了中国软件产业大而不强,应用软件强、基础软件弱的问题。比如中国写Java的程序员有上百万人,写JavaScript的程序员也有上百万人,写QT的也很多,但Java虚拟机、JavaScript引擎、QT库却没多少人干。

生态建设和市场推广难

虽然中国目前并没有采用自主内核的国产通用操作系统,但是基于Linux内核二次开发的国产操作系统,或者是一些领域的专用操作系统还是有不少的。

(基于linux二次开发的国产操作系统 为方便用户上手选择了类似Windows的用户界面)

这些操作系统不为人知,主要是因为与现有的建立在西方技术体系下的软件生态不兼容。举例来说,国产操作系统虽然有WPS这类办公软件,可以满足一些单位办公所需。但却无法玩大型电脑游戏,没有炒股软件,QQ、微信、支付宝等软件对国产操作系统的支持也不友好,这就限制了国产操作系统的普及。

由于市场占有率低,又会导致软件厂商不愿意给国产操作系统做软件,进而形成一个死循环——软件生态贫乏,导致操作系统用户数量很少,用户少又导致软件厂商不会主动帮忙适配软件。

这个死循环有多么坚固呢?即便像微软这样的巨头,也无法打破这个死循环。微软的WindowsPhone就是因为市场份额非常小,导致国内外软件厂商大多不愿意给它开发手机APP,而软件方面的不足又使更多的用户抛弃WindowsPhone,最终使WindowsPhone被市场淘汰。

而那些在特殊领域使用的操作系统,比如神威太湖之光超算使用的神威睿思系统,本身就有较强的专用性,不太适合在手机和个人电脑上推广。

技术研发只能迭代演进 一口气吃成胖子不现实

虽然今天大家对Windows、安卓、IOS等操作系统都习以为常了,但这些大家耳熟能详的操作系统,都是几十年技术积累、迭代演进和后来者站在先行者肩膀上的产物。

就以目前PC上跑的Windows操作系统来说,其实也是经过几十年技术演进后的产物。微软在1985年推出Windows1.0后,经过Windows2.0、Windows3.0、Windows3.1、Windows NT、Windows95、Windows98、Windows2000等操作系统演进迭代,才于2001年推出一代经典Windows XP。在之后的十多年里,微软又推出了Windows Vista、Windows 7、Windows 8、Windows 10等产品。

(操作系统发展演进)

大家手机上用的安卓系统和IOS,其实并非谷歌和苹果的原始创新,而是站在巨人肩膀上的产物——安卓系统是基于Linux的二次开发,而的IOS是基于FreeBSD/Unix的二次开发,如果追根溯源,Linux和IOS都源自Unix。可以说,Linux、FreeBSD也是以UNIX为基础,经过几十年的开发和更新,才发展到现今的水平。而安卓和IOS也是经过多年的发展和更新,才发展到现在的水平。

因此,在缺课太多,根基不扎实的情况下,我们需要的是循序渐进和厚积薄发,试图在短时间内实现赶超,妄图一口吃成胖子的科技大跃进显然是不现实的。

码关注微信公众号“科工力量”,中国工业科技新闻的权威观察家

责任编辑:宙斯
操作系统 软件
观察者APP,更好阅读体验

最后通牒?以色列放话“要么签,要么打”

“这把火怎么点着的?”

布林肯来华谈的怎么样?是否不虚此行?

“看看,这就是美国的警察”

习近平会见布林肯:中美应彼此成就,而不是互相伤害