魏永明:四谈操作系统之国产七宗罪

Posted 开源操作系统百家谈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了魏永明:四谈操作系统之国产七宗罪相关的知识,希望对你有一定的参考价值。

首先声明:笔者并不反对要有国产的、自主的、可控的操作系统,但我们要做自己的操作系统,必须尊重市场规律,必须放眼未来,在正确的操作系统开发方法论基础上去迭代和演进。我们已经失去了太多,不能一错再错。

另,本文所说国产操作系统,特指国产桌面操作系统。

国产操作系统嚷嚷了二十年,我们得到了什么?

这个问题有点敏感,会动很多人的奶酪。但这个问题不得不谈,因为在错误的方向上,我们不仅仅浪费了大量的资金,还浪费了二十年时光,而参与其中的为数不少的年轻工程师,把青春献给了这个“事业”。他们或彷徨,或失望,然时光如梭,黑发已成白头。

2000年左右,中国突然冒出来一批打着国产操作系统旗帜的公司,其中笔者曾供职过的中科红旗最为出名。后来,陆陆续续又出现了中标、普华、中科方德等公司。简单统计下,大概有二十多个公司先后以开发国产操作系统为业务开展经营活动。这些公司,有些已经折戟沉沙退出历史舞台,比如Bluepoint LinuxTurbo Linux 等;有些苟延残喘、艰难存活,如中科红旗,几年前的员工讨薪事件以及该公司和中科方德之间的恩怨,一度成为人们茶余饭后的笑谈;其他公司能坚持到现在还没有关门或者改行的,就已经是很不错的结果了。根据最新的统计,目前这个圈子(我不太愿意把这个圈子称为“行业”)里边仍然有八家公司。比较有意思的是,后来这个市场还出现了几个民营的软件公司,最为出名的是武汉的深度科技以及广西的一铭科技。

这么多公司搞出来的以 Linux 为基础的国产操作系统,其实就是桌面操作系统,其主要的目标市场是政府以及一些要害部门或者国企的办公使用,用来替换掉微软的 Windows。普通消费者和一般的企事业单位,根本就没有需求去使用基于 Linux 的桌面操作系统。一来,现在买电脑都预装了正版的操作系统;二来,盗版的成本仍然很低;三来,国产操作系统上没有那么多可以用的应用程序或者游戏可以满足普通消费者或者一般企事业单位的需求。

但其实,政府或者要害部门的办公使用的市场并不大,就算我们按照一年一百万台的装机量计算,500元一台的正版授权费,整个市场的容量也就是五亿,十家公司分,每家几千万元的收入,这点收入,连一百人规模的研发团队都养不起。再说,我上面估计的市场容量还是夸大的,政府并不敢大规模全部用国产操作系统来替代 Windows。真实的情况要除以 10,也就是说,差不多十家国产操作系统公司在分一个并不大的蛋糕,最后每家的真实年收入也就几百万,撑死一千万到头。

既然如此,为什么还有这么多公司前仆后继投入到这个行业?这其实很容易理解,这些公司主要靠政府的财政补贴或者扶持资金活着。

一开始,一些有强烈操作系统情结的老专家认为中国需要一个自己的操作系统,所以游说政府,说用别人的操作系统不安全,我们要用自己的操作系统,政府信了。然后就通过各种手段给这些公司输血,比如“核高基”项目,比如各种强制性的政府采购。于是,有背景的公司就很容易拿到国家撒的钱。但是,钱来得太容易就会有问题。这些公司没有几个是真心实意做操作系统的,勉强通过验收就行。这样一来,二十年过去了,国家该花的钱花了,该出的政策出了,没有一家公司从竞争中胜出,没有一家公司可以站出来跟 Windows 拼一拼市场。如此做的结果就是,这些公司基本都成了向政府要奶吃的巨婴公司。

如果是国资背景的公司,或者打着“中科”名号的公司参与这个行业,我是可以理解的,但我实在不明白为什么有那么几个民营公司也要进入这个市场?毕竟时间一长,这种圈子可能会滋生一个复杂的、有中国特色的利益链条。我们怎么能指望在这样一个利益链条上,出现可以让民营公司生存的土壤?

上个月,武汉深度科技的 CTO 王勇离职,在这个圈子里边引起了一些波澜。深度科技是个纯民营公司,一直在做 Deepin Linux 发行版,有一定的用户量,但坚持八年,并没有达到他们理想的目标。虽然王勇的离职有各种传说,但我认为八年的付出,并没有带来预期的效果(公司层面也好,个人层面也好,都是),这才是王勇离开的本质原因。

可以这么说,二十年间,我们在桌面操作系统领域并没有多少建树,用“裹足不前”来评价算是客气的了。

那么,国产桌面操作系统的问题到底出在哪里?

国产桌面操作系统七宗罪

1)错误的赛道,错误的方法

最根本的原因是找错了赛道。

国产桌面操作系统这个需求并不存在。因为桌面操作系统的霸主早在20年前就已经有了定论,微软 Windows 的地位无人撼动。就算在美国,也没有公司或个人说我要创业做个操作系统来替代 Windows,因为这是不可能的事情,如果你拿这个故事去找风险投资,没人会愿意出钱支持的。在我们国家,这个需求是因为一些老专家的个人情结,硬生生给创造出来的。如前所述,国产桌面操作系统对应的市场有,但不大,不值得花这么大的人力财力去开发一个所谓“自主可控”的国产桌面操作系统。

再谈谈方法问题。如果真的想要为政府专门做一个“安全”的操作系统,我们有很多种办法,比如:政府可以组织科研机构开发一个自己的加密文件系统,然后和操作系统供应商谈判,要求他们支持这个加密文件系统;类似地,我们可以将政府的涉密电脑,通过专有的私有网络连接在一起,或者使用私有的加密传输协议等等。

现实情况是,政府并没有采取类似的方法。相反,我们国产的操作系统,也并没有在解决安全方面有多少的研究和建树。比如,ios 在设计之初,为了提高系统的整体安全性,就让各种应用运行在自己的沙盒里边;试问国内的桌面操作系统,有哪个做了类似的设计?实际情况是,国产操作系统使用的仍旧是 Linux + X Window 这种三十年前的系统架构,而大量的开发力量被安排在了美化界面、硬件兼容性等脏活、累活上。

2)堂吉诃德式专家

现在仍然为国产操作系统奔走呼吁的老专家们,大多在上个世纪8090年代时达到了人生的顶峰。他们经历了微软从小到大,从 DOS 发展到 Windows,然后一骑绝尘,把其他软件公司一一打倒的整个过程。与此同时,中国的软件公司居然没有一个发展起来的。这未免让这些老专家们耿耿于怀,于是,要有国产的操作系统,就成了他们余生的追求。

市场已经变化,他们看不见。Intel 的战略,从联合微软转向了支持开源的 Linux,从 Wintel 联盟转向了 Lintel 联盟。而他们还将 Wintel 联盟作为他们的假想敌。

国产操作系统厂商的研发水平,他们不愿意深究。大量粗制滥造的国产桌面操作系统,仅仅做了几个设备驱动程序,做了一些本地化工作,抄了几个 Windows 或者 macOS 的界面,就觉得“国产桌面操作系统的发展喜人,达到可以用了的水平”。真实的情况是,几乎所有的国产桌面操作系统,都会在交付到用户手上时,要么被扔到一边应付检查,要么被卸载用盗版 Windows 替代。

类似地,专家们利用自己的话语权奔走呼吁,带来的竞争恶果和人力资源浪费,他们视而不见;技术在发展,操作系统的竞争战场早就变化,他们仍然痴心不改……

这和臆想自己带着千军万马,身披钢盔铁甲,手握坚盾长矛,把风车当成情敌去战斗的堂吉诃德有何区别?

3)刻舟求剑

如前所述,当我们还在苦苦发展国产桌面操作系统的时候,操作系统的主战场已经发生变化。2007 年,苹果公司和谷歌公司,先后推出了 iOS android 系统,全面布局移动操作系统领域,等我们回过神来,发现我们又一次落后。那个时候,我们的老专家和巨婴企业们还在为了国产桌面操作系统那点“市场”在努力。而他们一直视为对手的微软,其战略也早已经从桌面转向了云计算和人工智能。

我很佩服他们二十年来的痴心不改,但在笔者看来,他们的行为无异于刻舟求剑。

4)扭曲的市场和竞争关系

政府非市场的补贴行为,助长了这个圈子的歪风邪气,大量华而不实、粗制滥造的项目存在,其目的就是为了获得政府的补助资金。因为利益分配不均,某些企业之间甚至出现互相撕逼的情形。最终的结果是,钱花出去了,政府也好,整个产业也好,并没有得到想要的东西。

5)FUD

FUD,是FearUncertaintyDoubt 的简写,分别是害怕、不确定和怀疑的意思。他们充分利用了“自主可控不一定安全,但不自主可控一定不安全”这句话,大量散播 FUD,让没有多少实际价值的国产桌面操作系统以高达千元的单台装机许可费卖给了某些部门,这个价格,甚至超过了 Windows 10 的零售价!

另外,他们为了忽悠政府,还把桌面操作系统称为“通用操作系统”,好像做出来之后在哪儿都能用一样。看看,稍不留意,就会丢进这个圈子设下的圈套里边。其实,压根就没有什么通用操作系统!

他们还放大桌面操作系统的目标市场,希望所有普通消费者和一般的企事业单位都能使用国产的桌面操作系统。现实是,消费者绝对不会因为政府的一句话而改变自己的选择,而这个圈子所能影响的范围,只有政府或者一些要害部门。他们夸大市场的唯一目的,就是忽悠政府加大投入。

6)几乎无任何核心技术积累

2018年,深度 CTO 王勇的离职事件爆出时,我曾问过深度的工程师:“这八年来,你们发展了什么核心技术?”他们回答:“桌面”。我又问:“桌面是拿什么开发的,内核是 Linux,基础设施是 X Window,框架是 Gtk 或者 Qt,这其中哪个是你们发展的?”对方无语。

可悲的是,笔者之前提到的这前前后后二十多家国产操作系统厂商,没有一家以发展生态为目标,扎扎实实积累自己的核心技术的。他们要么使劲模仿Windows,要么通过 WINE 这样的模拟器兼容 Windows,要么兼容 Android……

甚至连他们自己提出的安全问题,也没有哪个厂商提出来一个好的解决方案。

7)阻碍了中国基础软件产业的发展

2000年之时,AndroidiOS 还没出现,Linux 刚刚传播到中国,如果方向正确、方法得当,十年后,我们还可能在某个方面跟美国一较高下。但国家大量的补助被花在不切实际的“通用”操作系统之上,大量人力、物力被浪费在毫无价值的项目之上。于此同时,我们的专家并未给我们指出一条更加正确的道路。

可以这么说,过去的 20 年,是国产基础软件“遗失的”二十年,国产桌面操作系统这个圈子起了很大的反作用。想想就知,我们压根就不应该寄希望于“刻舟求剑的堂吉诃德们”!

那些现在还在忽悠政府要不惜血本发展国产通用操作系统,且要求政府“允许大面积”失败的人,应该被“关进笼子”面壁反省。

新的操作系统仍有机会,但不在桌面上,也不在智能手机上

下面谈谈新操作系统的机会。

新的操作系统,往往在计算机应用到新的市场领域时出现。比如,原来计算机主要用在军队、科研等领域,后来出现了巨大的个人电脑市场,而这个市场让微软通过 MS-DOS 赚到了第一桶金,之后微软顺理成章地开发了Windows 系统并最终成为桌面电脑操作系统的霸主。后来,计算机结合通讯技术应用到了移动通讯领域,出现了面向消费者的智能手机,而这一新的市场催生了 iOS Android 操作系统。再比如,互联网的兴盛给 Linux 以发展机遇,使其成为了互联网时代名副其实的服务器端操作系统之王。

历史的规律总结起来大致如此(当然这里省略掉了市场竞争,提到的基本只是最后胜出的操作系统)。从技术上讲,出现这一规律的深层次的原因是,当计算机技术应用到新的市场领域时,计算机系统的交互形态或者计算环境会发生相应的变化以适应这个市场的需求,这会使得操作系统的软件栈发生变化(一般是往上层堆叠),会催生出新的应用编程接口,而应用编程接口则是操作系统赖以构建生态系统的护城河。

所以,新的操作系统要想在竞争中胜出,就必须先他人一步去为新的计算机应用领域做准备。

其实,对这几年计算机技术的发展稍有了解的人都会明白,计算机正在快速应用到各个领域。看看这两年层出不穷的新名词或者新缩写就知道了:AIVR、大数据、物联网、工业互联网、智能机器人、边缘计算、区块链……

这些技术的出现,将带来人机交互方式的巨大变化:人们将通过更加复杂的方式感知计算机的输出,如语音、全息、裸眼三维等,而计算机可通过更加综合的方式获得来自人类的输入,比如语音、手势、表情、脑电波等。同时,计算机的计算环境也会发生重大变化:除了使用互联网/移动互联网、无线网络、云计算等基础设施之外,还会催生出自组网、标准化的人工智能服务接口等新的网络形态或计算环境。

新的操作系统要面向这些新的应用领域及计算形态进行设计,如果我们恰好有个好的设计被大家看好,被很多开发者采纳,那新的操作系统就可能在市场竞争中胜出。反过来讲,假如在某个市场领域中,没有玩家做操作系统,那只能说明这个市场太小,不值得花功夫做一个操作系统。

物联网就是一个足够大的市场,或许会成为下一个比肩个人电脑或者智能手机的大市场,巨头们已经进入并布局这个市场领域。2015年间,微软、谷歌、华为等大公司纷纷发布了自己的物联网操作系统,显然是看到了上面所说的趋势并积极布局以抢占先机。

然而,三年过去了,华为的 liteOS 也好,谷歌的Android Things/Brillio 也好,微软的 homeOS 也罢,都未有大的发展。这未免会让大家产生怀疑:物联网市场是否还不成熟?物联网市场是否会真的有那么大?

笔者看来,造成这种情况的原因有一部分原因是因为物联网的碎片化:物联网的产品庞杂,应用范围太广,几乎无法标准化描述。比如,有的物联网设备只有一个蓝牙芯片,而有的配有 WiFiNBIoT 甚至 4G;有的物联网设备强调低成本,内存有限,只能运行简单的 RTOS,而有的带有可触摸显示屏,运行的是复杂的 Linux 系统。如此等等,这给开发其上的操作系统带来了难度。

除此之外,笔者认为还有一个原因,就是这些巨头的布局仍然没有抓住本质。面对物联网应用,我们不能按照以前针对个人电脑、智能手机那样去设计操作系统,而需要从更高的层面去提炼物联网应用领域中的需求,要面对这些需求重新设计操作系统。


路人甲:“七爷骂人不吐脏字,嘴上功夫了得,就不知道有没有真才实学。”

路人乙:“这哥们啰啰嗦嗦说了半天,你倒是做个操作系统出来给我们看啊?”


最后来个广告,请点击原文链接:MiniGUI 3.2.0 正式发布,MiniGUI 官网更新!

以上是关于魏永明:四谈操作系统之国产七宗罪的主要内容,如果未能解决你的问题,请参考以下文章

开源软件之七宗罪以及背后的阴谋

魏永明: 三谈操作系统

Jetpack MVVM七宗罪 之二:使用 luanchWhenX 启动协程

yyds! 开源软件杰出贡献人物魏永明的又一力作

Jetpack MVVM 七宗罪之四: 使用 LiveData/StateFlow 发送 Events

Jetpack MVVM 七宗罪之四: 使用 LiveData/StateFlow 发送 Events