国产操作系统这盘棋不简单

01

    话题    

昨天写了国产芯片的发展路线,很多同学留言要求讲了芯片再讲讲国产操作系统呗,那就说说。实际上国产操作系统的情况比国产芯片还要错综复杂。

芯片是硬功夫,固定关卡。确实很难闯过,但是一旦闯关成功,掌握了这项技术就永远的掌握了,而且可以以此为基础继续攻关。有点像打仗时攻城略地,拿下一地是一地。

然而操作系统是回合战。你这一局玩得好,下一局当然有优势,但是下一步鹿死谁手犹未可知。所以从这个角度讲国产操作系统其实比国产芯片更容易突破,但是坏处是更难占住。

本文对国产操作系统的论述观点会比较新颖,重点就在“回合战”这三个字,希望能对大家有所启发。

02

何谓操作系统

操作系统其实是个计算机软件概念。非计算机专业且没有编程理念的人很难理解。我这里做个类比,让大家可以更容易理解操作系统。

你把一台计算机(核心就是一个CPU+内存+其他外设硬件)类比为一个公司,公司有大小,而计算机有复杂简单。

最小的公司就老板一个人,其实管理决策是他,干活也是他。这样的公司其实可以说没有管理者,全是劳动者。这样的公司对应最简单的计算机(譬如51单片机),里面运行的每一句程序代码都是用来干活的,没有用来管理的。

公司再大点人就多了,譬如有30个人,这30个人里有25个完全是干活的,不参与任何管理。而剩下5个是管理者(老板和管理层),只管理其他25个人,并不直接干活。为什么这样?因为公司人多了不管理一团乱,有管理就能提升整体效率。所以25个干活的加5个管理的整体效率更高。这是很显然的道理。

实际上计算机软件也是这样。当计算机性能越来越强,配置参数越来越高,内存越来越多时,如果所有的计算机程序都用来干活其实整体效率很低下,甚至是无法有效工作(大家你想象一下一个1万员工的公司全是干活的,没有任何管理者,所有人平级,那是什么状况?)。所以在复杂的计算机系统中一定需要有一部分程序软件是不干活,而用来管理的。

管理谁?公司的管理者需要管理人力资源(员工)、资产(厂房、机器等)、营销和战略、仓储等各个环节。计算机软件则需要管理计算资源(其实就是CPU的计算时间)、存储资源(就是内存单元)、IO资源(就是各种外设,譬如负责网络通信的网卡,譬如负责打印机通信的打印口,譬如USB接口等)。

是的,你没有猜错,操作系统其实就是计算机软件中的管理者。譬如你的智能手机,现在最流行的智能手机操作系统就是苹果的iOS和谷歌的Android。其实你平时使用手机并不会直接使用到操作系统,你使用的其实是一个个的app。所以在智能手机这个“公司”里,app其实就是直接劳动者(给你提供某种功能和服务,譬如淘宝app给你提供购物服务,微信app给你提供社交服务,它提供服务时就是在劳动),而iOS和Android系统本身则是手机硬件的管理者,它只需要给app提供运行环境即可,并不直接给手机使用者带来任何功能和作用。

03

做操作系统为什么困难

在我看来,做起来一款操作系统至少有以下3个难点,且一个比一个难。

第一层是技术难。操作系统开发可以说是难度最高的一类软件开发了,所以操作系统开发者的薪资都很高(我们之前有一篇文章曾经写过国内某top10互联网大厂年薪百万招物联网操作系统架构师,而物联网操作系统比手机和电脑操作系统其实要简单很多,详见:年薪百万招不到物联网操作系统架构师)。

技术难倒不是说做不出来,而在于第一你很难做的很优秀,第二你成本很高。所以研发并维护一款操作系统绝对是天价投资。而且风险很大,搞不好就是几个亿打水漂了。所以下决心去做好一款操作系统并不容易。

第二层是生态难。Windows之所以很多人用并不纯粹是因为Windows本身优秀,而是有很多运行在Windows上的优秀软件我们离不开。同理,如果Android上没有微信,没有支付宝,没有淘宝京东等购物app,没有你喜欢玩的那些游戏,那你还会买这个Android手机吗?所以一款操作系统有没人用关键取决于有没有大量第三方应用开发者基于这款操作系统去开发app。所以一款新的操作系统很难做起来,起步太难了,越没人用越没人去开发app,越没有app越没人用,这个起步期恶性循环很难跳出去。

第三层是盈利难。Windows那个年代还可以收授权费(虽然个人很难收但是政府和大公司都交钱了的),但是Android就免费开源了。为什么?因为玩法和套路变了,时代也变了,再想就操作系统本身收钱根本玩不开了,只能通过增值服务(譬如谷歌Service和广告等)来盈利了,可以预见,以后新出的操作系统盈利模式会更加艰难,甚至我用你的操作系统不但不给你钱你还得给我钱这种听上去很不合理的“反收费”都会成为常态。

对于一个像Windows和Android这样的成熟操作系统当然没什么,然而对于新出现的国产操作系统这个就更加加大了做起来的难度。

04

我们需哪些国产操作系统

很多非计算机专业人士可能没注意过,操作系统实际上不是一个东西,而是一种东西。不同的场景和不同的产品使用的操作系统是不一样的。

个人电脑(台式机和笔记本电脑)有个人电脑的操作系统,目前这个领域用的最普遍就是Windows了。服务器有服务器的操作系统,最常用是Linux和Unix,当然Windows也占不少比例。智能手机有手机的操作系统,占比最高就是iOS和Android了。汽车有汽车的操作系统,当然都是你没听过名字的专门做汽车控制的厂家才关心的专用操作系统。工业控制和军工等也有自己常用的操作系统,譬如Windriver的Vxworks(已经被Intel收购了)系统。所以你讨论国产操作系统之前,首先得搞清楚你讨论的是哪个场景。

其实大部分情况下,我们提及国产操作系统都是针对的个人电脑场景。为什么?中国人多嘛,万物以人为本嘛。普通大众能关注到的肯定是自己眼睛能看到的,很多人可能根本不知道也不关心汽车里面有没有操作系统的。

国产个人电脑操作系统并不是没有,深度、中标麒麟等多家公司其实一直在做这些,只是没那么好用罢了。去年国产操作系统风潮来临时,对这个行业也有一定促进作用。成立了统信软件,其实就是由多家国产电脑整机和系统开发公司联合成立的。目的很明显就是联合起来,统一力量和方向,一起打造一款技术优秀,生态强盛的国产操作系统。

值得一提的是,目前的国产操作系统都是基于Linux来开发的,类似于Ubuntu、CentOS、RedHat Linux等你可能听说过的Linux发行版。

很多人质疑这样的系统到底是不是国产的?到底是不是安全可控的?实际上不用担心,这样的系统完全可以成为国产操作系统,而且绝对安全可控。因为Linux Kernel从法律上保证了他开源免费的授权,毫无法律风险,也没有被断供的可能。而且从技术上Linux是开源的,我们都是从源代码级别去复用,不用担心有后门。所以是足够安全可控的。

为什么不从零开始去做而要基于Linux去开发?因为没必要浪费那个人力物力去从零开始做,Linux内核有多年积累,而且有足够长时间去验证他的优秀和稳定,为什么不用呢?非要重新去开发一个是完全没必要的。

那用了Linux内核是不是自己就不用做什么了?Naive。实际上自己要做的事多着呢,Linux系统的只是一个操作系统内核,你还得自己去开发图像界面框架,去移植和构建各种app和生态,真正麻烦的事才刚开始。所以这就好像你要盖房子,linux内核只是帮你把地基打好柱子和墙壁、屋顶做好了,你后面硬装和软装才是真正花钱花时间花精力的事儿。

前面说了那么多其实都是行业内普遍性常识,稍微关注国产操作系统的人都知道,我写上只是作为背景。下面开始才是我真正要讲的东西。

05

操作系统的概念其实已经过时

时代一直在发展,曾经你所听过的经典和真理,都会随着时间变化而变化,甚至成为错误。巴菲特活了88岁只见过1次美股熔断,然而在他89岁的时候半个月就见了4次...

操作系统这个概念从出现到现在也大半个世纪过去了,曾经以DoS和Windows叱咤风云做了多年首富的比尔盖茨都退休了。一个时代过去了,操作系统的概念其实也在慢慢过时,或者说发生变化。

传统典型的操作系统,其实就是封装了计算机硬件底层的资源(包括计算资源和存储资源、IO资源等),并且合理管理,再给应用层app提供一个统一化的运行环境,让app能够自由自在的运行。然后app给用户提供各种直接服务。这个设计本身没错,而且也会一直需要,我相信没有任何人想自己绕过操作系统去直接操作CPU和内存。

问题是以前这就够了,但是现在,以及正在到来的万物互联物联网时代,这不够。

以前操作系统是计算机中的绝对核心,因为每个计算机是独立工作的。虽然我们的电脑和手机也能上网,但是上网更多是一种外部连接,而不是一种内生必须。也就是说你的手机必须上网才能淘宝购物,但是你的手机不上网也能正常运行,并不会存在手机断开网络后无法开机,也不会存在手机断开网络后彻底瘫痪,或者酿成重大灾难和损失这种问题。

所以,在传统非万物互联阶段,单体计算机是主流,所以操作系统的管理作用非常重要。可以说操作系统就是计算机的七寸,把握住操作系统你就站在了计算机行业的制高点上,完全是挟天子以令诸侯。所以你看到前有微软,后有谷歌,都是全球IT界top大厂。

然而近几年你去看美股,IT大厂市值排名第一的不是微软和谷歌,而是亚马逊。为什么?因为云计算。而且微软前几年本来已经显著式微,这几年能重新振作起来也得益于调整策略重视云计算等新业务而轻Windows那些传统业务。这就是时代的脉搏,这就是趋势。

云计算是物联网的一部分,是万物互联的关键节点。我们都说万物互联,连到哪里去?万物最终就是互联到云计算平台中去的。

那这和操作系统有什么关系呢?关系大了。实际上,万物互联时代云计算和物联网等新技术和新设计概念,对操作系统形成了降维打击。

简单说就是,操作系统还存在,还是干以前的活儿,只是他突然之间不是焦点了,竞争和胜负的关键不在操作系统了。这时候如果你还盯着操作系统,那你赢了又怎样?这就好像在国内2个人的财富之争,20年前A一辆宝马没有房,B没车但一套房,可能A更有钱。但是20年后的今天,A还是一辆宝马B还是一套房,但是B的房子一年涨价就能买几辆宝马了。宝马并没做错什么,宝马仍然是最好的汽车品牌之一,只是房地产战略性压到了汽车而已。

06

云管端一体化时代已经来临

取代操作系统成为竞争和胜负关键的是谁呢?目前还没有统一的行业名词,我暂且叫它“云管端一体化”吧。

实际上这个词也不是我发明的,行业人早有这个说法。从技术角度讲,一个物联网产品就包含三大部分:云端、通信管道、终端侧设备。简称云管端。

那什么是云管端一体化?就是说你只提供一个操作系统给别人是没用的,你得提供给他完整的云管端一体化的系统解决方案。

用汽车举个栗子吧。假如你要做一家高科技软件公司研发汽车软件,那么你去开发一个优秀的汽车控制操作系统是没用的。因为目前的车企都有这一块的解决方案,而且目前头部的车企在这一块都不差,你的汽车控制操作系统并不能增强车企的竞争力,所以就算你免费给别人用人家都不稀罕。

车企需要的是什么呢?是云管端一体化的物联网化新概念车解决方案。譬如华为推出的C-V2X就是这样一套体系,它的核心就是让汽车能够与周边万物形成通信网络(V就是vehicle,X是其他)。

如下图,通过5G通信技术,让汽车可以和周边的其他汽车,和马路上的行人,红绿灯,路基甚至车道线等各种交通参与者建立网络,进行统一协调和调配,就能让整个交通更加合理而有序,从而更高效同行,且避免交通事故。

这才是有竞争力的汽车,这才是车企需要的解决方案。然而车企只是擅长造车,并不擅长5G,也不擅长AI识别和算法,也不擅长嵌入式系统开发,所以车企需要有人能够帮他们提供这一整套的基础设施和基本解决方案,这才是万物互联时代的“操作系统”。

你甚至可以把这一套叫做“自动驾驶操作系统”,但是这里仍然把他叫云管端一体化,因为要实现这一套靠的是云计算、通信管道和终端嵌入式设备的联合。

07

国产操作系统之路

所以你现在已经清楚了,国产操作系统其实是分2条路的。一条是做面向个人用户,以取代或者至少是备份Windows和Android我目标的这种操作系统。而另一条是面向万物互联时代的云管端一体化操作系统。

这2条路不是鱼和熊掌的关系,而是兵分两路,必须都去做,必须都拿下的关系。

相对来说,面向个人的传统操作系统其实反而没那么紧急。因为个人电脑和手机等产业已经非常成熟了,Windows和Android的积累优势也非常明显,并非一时能拿下的山头。而且这些东西的油水年代已经过去了,拿下它更多是为了自主可控和安全考虑,而不是为了创造更大商业价值。所以你发现BAT和华为等大厂貌似都对这些不感兴趣,这是对的。

而面向万物互联时代的云管端一体化操作系统则不然,这是当下更是未来商业竞争的关键,重要性不亚于5G,可以说是决定未来全球科技产业链分工,决定中国制造2025等战略能否实现,决定中华民族伟大复兴能否实现的关键。所以是必争之地。

这也正是华为鸿蒙系统真正着眼的点,而且我相信BAT这些中国科技企业的领头羊们也都在做类似的事情。值得庆幸的是,在这方面国外的巨头微软谷歌亚马逊等也不比我们有优势,在5G、AI、区块链、云计算等万物互联的主要战场我们有足够底牌参与竞争。

一盘波澜壮阔场面宏大的棋已经拉开帷幕,国家和科技巨头企业也都在纷纷落子。

对于我们每一个人来说,不断学习提升自己,在自己的工作岗位上能创造更高的价值,就是对社会和这个时代最大的贡献了。

1.谈谈开源之后的µC/OS~

2.产业互联网时代,嵌入式技术别再低调了!

3.嵌入式软件程序HardFault异常的查找方法

4.STM32引起电源和系统异常复位的原因

5.深度:封杀中国半导体让美国“芯”走进了死胡同

6.“嵌入式与物联网开发技术” 线上分享系列课程开讲啦~

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值