今年有个话题一直很热,就是操作系统国产化的问题。这个问题从我开始学电脑就开始争论,到现在也有20多年了吧。这些年国产系统已经说不清是屡败屡战,还是屡战屡败。总之一点,就没赢过。很多人感慨,说这么多年了,中国都没有自己的操作系统。我其实也一直疑惑,我们要操作系统做什么?

要操作系统做什么,其实并不是一个反问。这是一个实际问题,而且可能是关于操作系统争论中最重要的一个问题。20年前,这个问题并不清晰。我们谈到操作系统时,说的更多都是桌面操作系统。服务器操作系统大多数人都没有接触过,也无意中忽视了这块——大部分服务器任务,其实Windows上装个软件也不是不能用嘛。但是今天,这个问题其实非常明显。目前操作系统三到四分天下。桌面领域Windows占据绝对优势,服务器操作系统领域Linux独领风骚,手机类由Android和iOS相持。如果中国要做一个自己的操作系统,那么第一个问题就是,做什么?是专攻某个领域,还是全领域开花?

这个问题可能各人有各人的理解。但,如果你的答案是上面任何一个领域,或者其叠加,恐怕中国的操作系统就注定了败亡的结局。这个错误,我们早在20年前就犯过,但似乎失败的经验并没有传承。

做一个操作系统不难,难的是为操作系统定下准确的生态位(niche),并建设相应的生态系统。

什么叫生态位?什么叫生态系统?Wiki百科是这么解释生态位的:“一个物种所处的环境以及其本身生活习性的总称”。“每个物种都有自己独特的生态位,借以跟其他物种作出区别”。在系统角度来说,一个系统所适应的需求方向,决定了系统自身应当具有什么特性。而具有的特性,又决定了系统适应什么需求方向。两方互相影响,决定了一个需求领域。最适合这个领域的系统特性大致相近。例如桌面领域,Linux为何不能替代Windows?原因很多,但最致命的是两点。一,在早期Linux搞不定花样百出的硬件驱动。大部分硬件都只为Windows编写驱动。而这些驱动又无法通过开源协作搞定。早期用过Linux的人应该有体会,经常不是显卡驱动有问题,就是无线网卡驱不起来。最后虽然有一些能搞定,但所需的技术能力远远超出“一般用户”这个级别。二,没有适合当时桌面的应用。在1998-2008,桌面系统最火的10年里,其主要应用领域又细分为三个主要方向。以各种游戏为主的游戏主机方向,以Office为主的办公方向,以上网/看电影/写信/听音乐为主的轻娱乐方向。这三个方向里,游戏是Windows的重头领域,Windows吸引了相当多的游戏开发商。微软甚至还专门出了游戏业务和游戏机硬件。这点上,Linux上虽然不是没有游戏,但远远不能抗衡。而Office直到今天仍然占据办公市场的主流,地位无可替代。Linux下的替代品OpenOffice也好,WPS也好,都只能跟在后面亦步亦趋,远远称不上及格。在轻娱乐方向,Windows和Linux表现相差不多。Windows下的软件更加好看一些,Linux下的软件更专业一些,但不是绝对无法替代。然而坑爹的是网页浏览方面,Microsoft有一个绝对标准——IE6。IE6的统治甚至催生了一批不是标准但却通行的“HTML标准”。综合上述三个领域,一台Windows可以满足办公/游戏/轻娱乐的所有需求,一台Linux只能拿来听歌看电影,而且还要先解决驱动问题。除非用户每天大量工作必然用到Linux,否则Windows是一个自然而然的选择,无可争议。这也是为什么很多程序员选择Linux,而其他用户觉得他们在装X。其实只是这些程序员每天工作的大部分时间都是在Linux下做各种开发,主要工作软件同时有Linux和Windows版,甚至Linux版更好用的关系。

而微软一旦取得相对优势,就很难被超越。时至今日,Linux桌面其实并不是一个那么不切实际的选项。首先,当前很多硬件已经有了驱动,甚至是发行内置驱动。其次,大量内容的网页化,使得系统只要能运行浏览器就差不多。而两款主流浏览器,Chrome和Firefox,都有Linux版。IE已经不再是主流浏览器了。最后,游戏方面,Steam有Linux支持,并且可以运行相当数量的游戏。微软自身也因为Windows下游戏破解和盗版过于严重,导致相当比例的游戏流失到主机领域。主机不限定电脑使用什么系统,因此Linux桌面其实只差办公软件生态。然而,即便是一个并不使用Windows办公的人,也会选择安装Windows,而非Linux。因为首先,支持Windows的服务人员多,社区支持也更好一些。其次,也是最重要一点。Windows用习惯了。

为什么一个领域,在存在一个系统的情况下,都很难做出一个新的操作系统?因为目前已经有一个生态系统占据了。在新的生态系统挑战原本生态系统时,原本生态系统中的一切都会参与反抗,甚至用户都会参与反抗。例如Linux抢占桌面市场时,显卡厂商就很难配合。因为显卡和游戏关系紧密,而Linux下又没有足够的游戏份额,所以显卡厂商兴趣缺缺。而Linux要吸引游戏厂商?先不提一个开源的,用户有足够黑客精神的操作系统对游戏厂商来说意味着什么(想想Windows下游戏被破解的情况吧,Linux只会更严重)。单是份额问题,就足够没有吸引力了。更糟糕的是,大量用户已经熟悉一个系统的前提下,推出一个功能大致相仿的新系统大家根本没动力追。花成本学习了老系统的技术人员更没有动力去跟。到不如说他们只会产生阻力。新系统必须要提供远远超出原有系统的功能才有吸引力,与此同时,又要防备老系统跟进。一个成熟领域哪有那么多功能可以推出?因此在一个生态位已存在一个操作系统生态的情况下,后来者很难超越并占据主动。历史上的操作系统超车,基本是两种情况。一,原系统作死,二,占据新的生态位。前者例如Unix。如果Unix不出现版权问题,调整为限制性开源。那么就没有后面Linux的事了。即便Linux依然能出现,现在的影响力恐怕比Unix要小的多。大概率会成为一种小众的,不是那么主流的服务器操作系统。而占据新的生态位,最典型就是Android和iOS。Windows其实并不是输在了操作系统上,而是输在了“移动设备超越了桌面设备”上。我可以顺便说。如果Office不努力适应移动办公环境,那么Office一样早晚会被某种新的办公系统所超越。

那么,为什么Windows不能适应新的生态位呢?或者换个说法。为什么不能将Windows做一定修改,移植到移动设备上,凭借Windows上庞大的现存程序,打败iOS呢?

其实这件事,微软也不是没有干过。微软很早就出过平板。后来还基于WinCE出过很多移动设备。我在05年的时候就用过一款WinCE的PDA。在毕业前夕,宿舍电脑运回家的情况下,替代桌面使用了很久,完全没有问题。当时我觉得,这个就是移动设备的未来了。直到Mac家的设备出来后,我发现自己太天真了。移动设备和桌面相比,有很多不同的特性。例如移动设备要更多考虑驻留和激活问题。移动设备的内存(注意,我说的是真的内存,不是手机里“机身存储空间”的意思)更小,存储访问速度更慢,算力和电力更加宝贵。做不到所有应用都铺在内存里,然后用内存交换来解决切换。而移动应用的驻留需求更强。也不像Windows那样,主要程序就一两个,其他程序不开也行。用手机的应该可以理解,如果微信一退就没法收消息,这台手机基本就没法用了。而如果你要用的(连带通知在内)所有程序都在内存里,那么这手机也基本没法用了。这只是当时面对的众多问题中的一个。在新生生态位中,微软携带的庞大软件生态是其优势。但是已存机制是个庞大的负担。微软要保留现有软件生态,就不大可能抛弃现有概念去和新生系统竞争,必然要带着“窗体”,“缩放”这些在移动设备上没什么意义的概念战斗。因此就给了新生系统弯道超车的机会。

回到我们原本的话题。如果我们要发展自己的操作系统,那么目标和定位究竟如何?如果要——按照某些人说的——摆脱美国霸权。那么我们需要做一个或者多个操作系统,全面覆盖上面的游戏/办公/上网/轻娱乐/服务器/移动开发/嵌入式等多个领域。首先我不大相信一个操作系统能在全领域做的很好,或者我们能同步发展N个操作系统覆盖全领域。其次即便开发出来,也不可能推行到全球使用。仅仅是重新培训技术人员就几乎是一个不可能完成的任务,何况还有政治因素掺杂在里面。即便只是在国内自己用,也不大可能。在任何一个子领域,通过行政手段干掉世界主流操作系统,等于斩断全世界在这个领域已经形成的积累,以一个国家的力量重新做一遍。这个性价比之低,可谓不言而喻了吧。这并非没有先例。日本凭借PC-98系列,和世界脱节十多年。结果03年停产。手机上也类似,日本凭自己独特的软硬件一体设计,走和世界分离的路线。结果在iOS进入日本后,一泻千里。

那么中国是否可能有自己的操作系统呢?还是有可能的。有三种比较可能的途径。

一,任意一个原本的操作系统霸主犯错。而且还是动摇根本的大错。这种是运气,我们先暂且不提。 二,在一个独特的现存生态位,因为时间的进步,原本的主流和实际需求有微妙的脱节。同时这个生态位的系统生态环境比较小。例如Cisco的ios系统(是的,也叫ios,但是OS不大写)。之前的路由器和现代需求有微妙的脱节,SDN需求强势加入了路由器领域。同时路由器操作系统的生态并不广阔,上下游硬件并不是通过系统独有API和路由器交互的。而是通过配置和网络标准协议。在这个领域,如果有中国公司(例如华为)做一个自己的操作系统,整一套软硬件体系,全面替换Cisco。还是可能的事。Cisco的路由器生态系统虽然庞大,但还比不上操作系统生态(尤其是Windows操作系统生态)那么大。华为要全实现一遍的可能性更大一点。当然,目前由于政治因素,华为即便做出来了,也没有可能在世界范围替代ios。 三,占据新的生态位。这就意味着中国公司需要自身结合技术,形成新的需求和体系。但目前来看,中国公司生成新的需求的能力比较差。中国互联网界很火,但是实际能输出到国际的基本只有抖音/TikTok。外卖的世界翻版Grab发展一般,Wechat更多是为了和国内通讯才发展起来,支付宝也是需要对接国内游客才申请。而TikTok没有独立的操作系统需求。

那么有人就会说了,你这个是“造船不如买船,买船不如租船”的新买办主义,还和我举出五眼联盟。实际上,虽然五眼联盟确实存在,但是对大多数人而言,只是无伤大雅的小事——如果你真的很在意隐私问题的话,首先就应该卸载所有商业应用,再把手机卖掉。因为几乎所有商业应用,无一例外都在做数据监控和挖掘。不止国产应用,外国主流厂商也在做这些事,其程度远非五眼联盟可比。五眼联盟最多关心你是不是参加了恐怖主义。要关注你财务动向首先你得是成功人士,否则连被监视的资格都没有。你说你一个一没离岸账户二没七位数存款的人,人家关心你财务状况干嘛?而主流厂商则关心你生日,关心你血型,关心你交友情况,关心你婚姻状态。一切的一切都是为了能够从中获得利益。我毫不怀疑,未来某一天,你正在开车,突然车窗被飞过来的棒球打碎。你靠边停车。刚停好,手机就响了起来。上面二三十个通知如烟花般绽放:“先生没受伤吧。受伤可来我们医院,地址xxxxx”,“先生有参加保险么?我们提供合适保险,点击以下链接购买xxxxxx”,“先生要修车么?我厂4s店提供拖车服务,最近门店联系电话xxxxxx”,“太太没受伤吧….”。嗯??太太??你想起上周让女朋友连接了一下车辆蓝牙…

我始终认为,特别安全问题要特别解决,不能为了部分人的安全问题,绑架所有人使用一个不合用的系统。我曾经去某部委办事,当时旁边工作人员在讨论技术问题(姑且算技术问题吧)。他们的网络是内外断线的,控制很严。但是工作人员在讨论是否可以用Gmail来收发单位信件。我当时就不好了——你们一个涉密单位用一套总部在美国的邮件方案?在我来看,为了防止五眼集团开发自己的操作系统,甚至不惜以行政手段强推就类似这个情景。不过正好反过来。为了防止部分涉密人员用Gmail收发单位邮件,要求全国都必须使用同一套保密邮件系统。这无疑是另一个角度的矫枉过正。