做一个国产操作系统到底有多难?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做一个国产操作系统到底有多难?相关的知识,希望对你有一定的参考价值。
参考技术A
近日,多家媒体报道称,俄罗斯境内用户现已无法正常下载Windows 10和Windows 11系统安装程序。同时,俄用户也无法下载用于安装操作系统的Media Creation Tool应用程序。这给外界敲响了警钟,关键技术国产化、自主创新发展的重要性和紧迫性已愈发凸显。
当前,“缺芯少魂(“芯”是指芯片,“魂”是指操作系统)”仍是我国亟待解决的技术难题。那么,做一个国产操作系统的难点在哪里呢?对此,民生证券指出,对国产软硬件的推广来说,一次性地投入资金购买并非难事,建立国产软硬件的应用生态才是能否持续成长的关键。
“打造生态的难点在于,怎么样让更多相关的伙伴共同去做一个事情,这块大家要有共同的目标,同时,和本身商业上以及从他们的产品方向上有一致性,并激发相关开发者的兴趣,保证大家的意愿和投入。”OpenCloudOS社区TOC(技术监督委员会)主席、腾讯云副总裁郭振宇日前在线上对包括《每日经济新闻》记者在内的媒体说道。
图片来源:每日经济新闻 谭玉涵 摄(资料图)
打造一款操作系统难在哪里
就市场格局而言,国内桌面操作系统方面,Windows、macOS处于绝对主导地位,虽然近5年在国内市占率逐步下滑,不过仍占据超过90%市场份额,而国产操作系统在Linux分类,占比不足5%,市占率有待提升。
现阶段,我国市场上的国产操作系统达10种以上,其中主流的包括UOS(统信软件)、麒麟OS、普华软件、中兴新支点、凝思、中科方德、华为欧拉OpenEuler等,但它们大多是以Linux为基础的二次开发。
操作系统按应用领域可以划分为四种:桌面操作系统、服务器操作系统、移动操作系统和其他操作系统(云、嵌入式、物联网操作系统等)。
如今大家对Windows、安卓、ios等操作系统都习以为常,但实际上开发一个操作系统的工作量非常大。
举例来说,Windows XP有代码4000万行,Windows 7有代码5000万行,3.6版本的Linux 内核代码就有1590万行,而Linux的发行版Debian系统代码行数达6500万行,而且这些代码还都是经过软件厂商反复精简的结果。如果对几千万代码行数的工作量没有概念,可以参照一个案例:“WPS代码大约在百万行这个级别,而雷军执掌的金山软件重写WPS用了3年时间。”
庞大的工作量和漫长的开发周期导致操作系统研发成本高昂。以操作系统Windows为例,自1985年推出Windows1.0以来,Windows系统已经经历了三十多年的变革。从最初运行在DOS下的Windows3.0,到后来风靡全球的WindowsXP、Windows7、Windows8等历代演进迭代、才于2021年推出Windows11。
在资金投入上,微软开发Vista所花费的研发费用超过了200亿美元,而Linux仅内核,如果根据人员投入的规模,据测算也耗资数十亿美元。这种规模的资金和人力是国内操作系统厂商目前难以企及的。相比之下,国内做操作系统的公司的开发人员,大一些的有几百人,小的甚至不足百人。
另外,操作系统的成功同样离不开硬件,尤其是芯片的支持。早在IBM于1981年推出业界第一台个人电脑前,微软和英特尔就开始了合作。两家公司强强联合,软硬件之间良好的协同发展使得WinTel联盟迅速崛起,在上世纪80年代后期逐步占据市场主导地位。
民生证券表示:“基础软硬件产业链非常庞大,除本身参与的厂商外,运维和服务人员、二次开发、开源社区、基于生态的软件应用都是实现国产软件自立的重要参与方。”
虽然很难,但好消息是,目前国产操作系统在几个细分赛道或者客户群方面已经有所突破。
图片来源:每日经济新闻(资料图)
政企用户市场,国产桌面操作系统已“破冰”
桌面操作系统(Operating System)是配置在计算机硬件上的第一层基础软件,管理计算机系统的全部硬件资源,分为闭源和开源两类。国产桌面操作系统大多是以开源项目Linux内核为基础,由中国本土软件公司自主对内核代码进行一定的修改和补充,加入GUI(图形界面)、应用等部分,形成了相应的应用于桌面端的Linux操作系统发行版。
全球市场,桌面操作系统中Windows占比高达75.5%,尽管Windows一家独大,但其在全球的市场份额正不断下降,2012年其全球市场份额为90.0%,2022年4月仅为75.5%,而苹果OS X市场份额不断上升,从2012年的7.5%上升到2022年4月的15.5%。
中国市场,桌面操作系统中Windows占比达85.6%,苹果OS X从2012年的1.1%上升到2022年4月的5.9%,Linux从2012年的0.19%上升到2022年4月的0.71%。凭借较高的占比,业内也流行着“微软之下,寸草不生”这一软件业的“诅咒”,中国自主软件产品在过去几十年的发展中也曾被微软轻易地扼杀在了摇篮。
不过,在党政市场,近几年,国产桌面操作系统方面已经涌现出统信软件(诚迈科技持股32.31%)、麒麟软件(中国软件持股34.93%)等厂商,给市场带来活力的同时,也在不断影响着市场表现和竞争格局。
公开资料显示,统信软件由诚迈科技(SZ300598,股价40.45元,市值64.74亿元)与武汉深之度联合成立,其操作系统品牌为UOS,UOS产品基础为武汉深之度的操作系统Deepin。目前,以统信软件等为代表的国产操作系统已趋于成熟。今年5月,诚迈科技董事长王继平在业绩说明会上表示:“据统信软件内部统计,统信软件桌面操作系统去年底在党政市场市占率约为65%,在行业市场约为80%。和2020年差不多。”
此外,6月24日,麒麟软件还宣布,中国首个桌面操作系统根社区openKylin正式发布上线。所谓根社区,是指基于Linux内核和其他开源组件而构建,不依赖上游发行版的社区。而该社区的组建也能更好地加速我国自主化操作系统的进程,提升我国的信息安全性。
受政策利好影响,桌面国产操作系统似乎“迎来了春天”,但真实情况也不容客观。近年来,统信软件总体规模和营业收入虽然保持较高的增长水平,但公司净利润却大多为亏损状态。2019年~2021年,统信软件的净利润分别为-36.44万元、2035.91万元和-23843.80万元。2022年一季度,统信软件实现营业收入3517.45万元,净亏损1.84亿元。与2021年同期相比,一季度营收同比下降45.91%。
对于亏损额增加的原因,公司解释称,统信UOS操作系统为技术密集型产品,在产品研发、生态适配、市场推广等方面需要较大的投入,同时,整体员工数量较成立之初也已大幅增加。另外,当前统信软件产品下游应用领域主要为党政信创市场,客户类型较为单一,并且不同地区政府采购信创产品(包括国产操作系统)的节奏不同,导致公司营业收入的增长不及营业成本的短期快速增长。
服务器操作系统已取得初步成效
手机操作系统方面,主要分为安卓和iOS系统,壁垒较高。不过,在服务器操作系统领域,我国已有厂商取得初步成效。
“中国操作系统企业正从开源的使用者向贡献者,甚至是技术的引领者转变。”6月22日,在2022 OpenCloudOS社区开放日上,国产开源操作系统OpenCloudOS发布了首个源社区(L1)项目及首个全量软件包(L3)版本,并首度披露其技术研发路线图。这意味着,OpenCloudOS将成为中国首个具备全链路国产化能力的服务器操作系统,可以为国内企业提供自主可控的上游版本,和满足企业级稳定性需求的软件供应版本。
2020年12月,美国RedHat宣布,自2022年1月1日起停止维护CentOS 8服务器操作系统,并将于2024年6月30日停止维护CentOS 7。停服后,CentOS无法获得官方升级和补丁,用户将面临严重的网络安全威胁。此事曾在业内引发广泛关注和热议。
不过,OpenCloudOS社区理事、中兴操作系统产品总工、操作系统专家委员会委员徐立锋表示,“今年1月,OpenCloudOS的首个版本初步满足了业界对CentOS替代的需求”。据介绍,目前,OpenCloudOS源社区已完成数百个软件包的构建工作。后续,OpenCloudOS还将发布首个源社区正式版本(OpenCloudOS Stream 22.12)及第二个社区大版本,满足企业自主可控的需求。
此外,在OpenCloudOS社区之前,OpenHarmony、OpenEuler、龙蜥等开源社区相继成立。
6月15日,在华为伙伴暨开发者大会2022上,华为公司副总裁、计算产品线总裁邓泰华在线上对包括记者在内的媒体表示:“截至目前,欧拉商业装机量累计超过170万套,新增市场份额达到19%,预计到今年底将达25%,明年的目标是做到中国新增市场份额第一。”
他进一步称,欧拉的发展是非常快的。“操作系统的生态构建非常(有)挑战(性),欧拉在2020年初开源,如果年底做到25%,可以说处于第一梯队,三年时间生态得到快速发展在中国是第一次,这意味着欧拉在服务器和云的操作系统上走出一条路。未来,我们希望把欧拉的经验都分享出来,产业链能够共建一个生态扩大市场份额。
OpenEuler的定位是面向数字基础设施的开源操作系统,支持服务器、云计算、边缘计算、嵌入式等应用场景,这在一定程度上和OpenCloudOS的定位有所重合,如何看待二者的关系,双方会不会展开合作?
对此,郭振宇在线上对包括《每日经济新闻》记者在内的媒体表示,对于国产操作系统的大目标,相信所有中国操作系统开源社区是一致的,共建国产操作系统生态的大方向是一致的。而且大家在源头上,基于Linux内核和一些开源软件的生态也是一致的。这奠定了我们可以和更多其他国产开源社区进行进一步合作的基础,未来我们也希望能够在一定条件下,一起推动操作系统相关标准的统一。在标准统一下,用户可以更加方便地在不同产品之间切换,甚至共同研发。”
他认为:“不同操作系统社区只要大的方向和标准是统一的,通过不同社区、不同方向的合作,能够进一步促进国产操作系统社区的活跃度,同时也能迸发出更多的创新。”随着产业生态的迅速发展,操作系统国产化进程有望提速。
气象业务系统监控到底有多难?
业务一线的工作人员,对新开发的气象业务系统进行测试和监控,发现问题并解决问题,这件事到底有多难?很难!非常难!工作量大、协调任务重、问题繁多、解决周期长等等,真的很难!为什么会这样,这可能和气象行业本身的特点有关系。今天从我作为业务人员的亲身体会角度跟大家聊聊这个话题,也为一线业务人员碰到类似的问题提供一点解决思路。
无论是气象探测、预报还是服务的业务系统,要正式业务化之前都需要业务人员进行测试,让真正的使用者从业务应用的角度去感受一下系统开发的如何,是否可以真的进行业务化。让业务值班人员进行系统测试,和软件系统开发的测试工程师不同,那都测试些什么呢?
针对新上线的气象业务系统,业务值班员是使用最多的用户,所测试的系统可能是值班员未来每天要面对的系统,所以好不好用,最直观的感受就是用户体验,特别是系统的交互能力。用户体验包含的内容比较多,牵扯到使用习惯、个人偏好、认知、情感等等,主观性非常强,因此要让系统满足不同值班人员的用户体验,是不可能做到的,这个时候就需要收集业务值班员的测试意见,交由系统设计和开发人员进行统一分析,寻找个折中的解决方案。还有个问题,在系统建设之初的需求以及开发要求往往不是来自于业务值班人员,而是管理者,这就造成用户需求上的偏差。一个业务系统,既要好看,来满足管理者追求高大上的科技感,又要实用,来提升业务值班员的工作效率,这本身就是一个“不可能完成的任务”,所以在上线前的测试活动,会提出很多开发工程师们“意想不到”的问题,这都是因为用户体验测试所站的角度不同。
一个气象业务系统,建设出发点是为了提升业务水平和工作效率的,因此功能测试就显得尤为重要。功能测试既简单又复杂,同样是个不容易让各方都满意的事情。说它简单,是因为业务系统在建设的时候就已经设定好了包含哪些功能,按部就班的测试就好了;说它困难,是因为业务值班人员眼中的功能和软件开发人员眼里的功能不是一回事儿。举个简单例子,比如气象服务系统中有个站点天气实况显示的功能,对于软件开发人员来说只要给我实况数据,我在页面上显示就算实现了,至于这个实况是分钟监测还是小时监测并不关心,或者说开发人员也并不清楚。但是气象业务值班人员从自己的气象专业和值班需求角度出发来测试这个功能的话,就会提出一大堆的问题,风力或风级没标注清楚、监测时效没写明白、显示的是2分钟平均风还是10分钟平均风呢?甚至是这个实况显示要多个时次的时序图,不要单点显示要出色斑图更好用等等,如果开发过程中不和业务值班员仅仅绑定只闷头开发,最后一测试肯定会把开发人员整蒙了、也得吓坏了。所以,进行气象业务系统开发,一定得有个既要了解气象业务、还需要懂得软件开发的气象技术人员全程并深入参与!
气象业务系统的使用效果,简单来说就是可用否、好用否、能用否!这和用户体验还不同,用户体验更多的是使用者的主观判断,而使用效果既有主观因素也有客观因素。主观测试业务系统的使用效果,主要测试的是系统整体布局、可视化效果、功能设置是否合理;客观测试的指标包含用户响应速度、产品制作的流程是否全部覆盖、出图或者数据显示是否正确等等,能不能业务化应用首先要保证气象数据采集的要正确、产品加工制作流程要完整、该自动化的就不要人工干预。业务系统使用效果上的测试,更像是一项综合测试,也是衡量业务系统能否按时业务化的重要参考依据。从业务值班员的角度来测试系统的使用效果,主要考虑的是能否快速看到我想看到的信息,我对某个功能的操作能否简单直观,我加工的产品是否按照我的要求实现。再有就是我用这个系统是不是比没使用时工作效率提高了,这就是值班员测试使用效果过程中更多关注的问题,那么最后测试结果“能用否”也是从这些测试中综合得来的。
说到气象业务系统监控,行业外的人可能会有些迷惑。如今大数据人工智能发展这么迅速,系统监控不是可以很容易自动实现吗?而事实并非如此,甚至我们目前气象业务系统的监控还离不开人工!这可能也是气象行业的一大特点。最近,开发与运维的小伙伴们深受系统监控之苦,接下来就一起聊聊气象业务系统监控的痛点。
气象业务系统,首先气象的特征不可忽略,但这一点是我们监控中最容易实现的一点,所以放在最开始讨论。气象探测的数据实时性要求比较高,而且当前的探测技术都可以实现逐分钟的采集数据并呈现。这里所说的及时性就是到报率!探测数据从采集到展示出来需要多长时间?特别是逐分钟的数据,从数据采集、处理、入库到前端显示,当然是时间越短越好,但是时延问题在当下还是不可避免的。我们在进行及时性监控时,最关心的就是探测数据的时延问题。不止是实况,预报数据也会有这个问题,只是预报的制作频率没有这么高,那么显示的及时性要求也就相对要低一些。及时性监控上可以通过自动加人工结合的方式,因为中间环节比较多,完全自动化监控难度比较大,上下游的消息通知也没有那么及时,所以人工监控有时候也起到很大的辅助作用。
气象业务系统最核心的就是对气象数据的处理,这恰恰也是自动监控最难解决的问题,这个合理性监控和后面要讨论的准确性监控是有关联的,但合理性的范围更大。举个例子来说。多个观测站点同时进行风速显示,有一个点的值明显比周边的值要高,这合理吗?从直观感受来说肯定认为是奇异值,不合理,但没有调查清楚就不要轻易下结论。这就牵扯到数据质控的问题,后面的准确性监控来讨论。再比如:我们取客观模式预报进行显示,(模式数据都是高精度的网格数据)日的预报精度是要保留小数点的还是不保留小数点更合理呢?另外合理性监控还要关注数据显示的位置、频次等,特别是基于GIS地图的显示方式,位置标注不合理就会造成显示效果上的误差。合理性监控更侧重前端监控,但查出问题就需要逆向追溯问题源头,整个流程非常耗时耗力,这也是自动化监控解决不了的问题,即使靠AI技术,还是需要大量的训练样本来建立监控模型,可这个合理性的问题往往是偶发的,需要气象业务监控人员细心观察才可以。
准确性监控,也是气象业务系统监控的一大难点。无论是探测、预报是服务产品,展示出来的是不是准确,同样是我们气象业务系统监控的重点。但是依靠自动化技术还是难以实现,人工监控往往是发现准确性问题最有效的方式。为什么这么说呢?这也是我们气象行业的一大特点。气象业务系统监控的流程长、环节多,从系统前端进行准确性监控非常困难。还是举个例子来说明。在对雨量的分级标准中,0.0代表微量降水,而0代表的是无降水,但是软件开发人员在设置数据类型时为了考虑通用性,往往就设置为保留一位小数的实数型,于是前端显示时就根本无法区分0.0和0了。没有降水时,0是准确的,而0.0就是错误的,这些细节问题依靠自动化监控是很难实现的。我们气象数据在正式使用之前都需要做质量控制,可很多问题都出在标准的设定上太具气象行业特征了,质控算法根本无法覆盖到。所以我说准确性监控上一样离不开有责任感又细心的气象业务人员。
随着气象业务的发展,规模越来越大,流程也越来越长,出问题的概率就越来越大,业务的全流程监控就成为快速发现问题和解决问题的关键。于是近几年,很多省级气象部门都在大力建设气象业务系统的全流程监控,来提升气象业务能力和服务能力。这是一项比较复杂的工程,有很多难点和痛点,今天也借着这个话题一起讨论一下。
现在的业务,在统筹集约原则指导下,都是集中处理,因此同类业务就不在单独建设了,有好处的同时也让业务线延长了很多。还是拿探测数据来说,从探测设备采集后先到探测中心,然后传输到信息中心,经过质量处理和解码入库,再发布数据接口为多个业务系统服务,中间环节就很多。业务线的延长,势必带来监控上的开销增大,从数据采集到服务接口发布,需要多个环节联合监控,可见监控的复杂度有多大。
业务线的延长、中间环节的增多,涉及到部门之间的协调也多了,一个数据从采集到最终的呈现上,要设计多个部门之间相互协调,无论是哪个部门发现了问题,都需要上下游多部门沟通,导致沟通成本增加。由于业务覆盖范围增大,不仅是省市气象部门内部协调,还会涉及到跨省协调共享的问题,这样的监控着实让业务监控人员感觉到力不从心,解决监控问题也变得异常艰难。
全流程监控的初衷是为了快速发现问题、定位问题并解决问题,但事实上问题解决的响应周期却延长了,这和业务线延长、多部门沟通成本增加息息相关的。软件系统解决的是一些固定的重复性的操作,但是涉及到问题响应就需要制度和政策来支撑了。目前做全流程监控还缺少一个总体设计与协调的部门或者技术人员,从制度和流程设计上来考虑,依靠需求驱动各部门流畅配合并不现实。
流程层级是一个技术层面的问题,但也是制约全流程监控平稳落地的瓶颈。所谓流程层级,就是业务流程并不是一条线单向发展,而有的时候还需要双向反馈处理。例如预报制作这个流程,有时候为了特定任务,预报制作是不定时的,预报制作完成后向外发布,信息部门接收并进行接口发布,服务部门对接并对外服务,貌似很顺畅,但是中间缺少了一个关键环节,消息通知,怎么能让预报制作部门第一时间发消息通知到服务部门呢?服务部门发现的预报问题怎么能第一时间反馈到预报部门呢?中间还有一个层级,很难直接对接,这就造成全流程监控很难达成上下一致。
以上四点都是我在实际业务中遇到的问题,讨论的并不全面,当然有些问题并不是解决不了的,只是解决的难度比较大,需要投入更多的时间和精力,还需要业务管理人员和业务开发人员在思想上达成统一。
说到这里,文章已经有点太长了,其实还有两个问题,就是在当前条件下,作为气象业务人员,我们如何更好的开展业务系统的测试和监控工作,保障气象业务系统真正实现高效的业务化运行,同时全流程监控的工作如何优化监控流程才能让业务系统的监控实现全覆盖,广大气象人可以先思考一下,以后我们再继续讨论。
以上是关于做一个国产操作系统到底有多难?的主要内容,如果未能解决你的问题,请参考以下文章