Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

Stella981
• 阅读 572

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

作者 | Just

出品 | CSDN(ID:CSDNnews)

回顾计算机发展的历史,任何一个计算架构的成功都离不开强大的硬件,但这背后更需要繁荣的软件生态。

1960年的集中式计算出现后,诸多基础软件应运而生,随后进入“Win-tel”独霸PC的时代,近年来,Intel和Linux又带来了分布式计算的高潮。

如今,随着5G的到来,移动互联网业务进一步发展,大数据、物联网、人工智能等创新应用场景层出不穷,应用场景的多样性催生出数据的多样性,导致原有的单一计算架构明显跟不上庞杂的业务需求,业界对提出一种全新计算架构的呼声愈烈。

很快,华为瞄准了多样性算力架构。在去年9月的华为全联接大会上,他们提出了“鲲鹏+昇腾”的双引擎计算战略以应对算力需求的爆发式增长。

这是一个全栈协同创新的过程,需要硬件提供算力,软件释放算力,尽最大可能让上层应用使用算力,并且最终创造价值。硬件是整个生态的基础,但决定多算力架构能否取得成功的关键枢纽是软件,这是华为需要啃下的另一块硬骨头。

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

四大基础软件再升级

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

要想充分释放硬件的算力,需要先了解其瓶颈究竟是什么。

华为鲲鹏计算领域副总裁江大勇告诉CSDN,在硬件方面,ARM这样的主流处理器从百核甚至到千核的多核方向发展,但问题在于,核数的线性增长并不意味着算力的效能会随之增长,因为算力的分配和调度复杂度的增加反而会消耗一部分算力的效能。与此同时,端边云协同的趋势对ARM计算架构也提出了相应需求,而X86、ARM和xPU的异构计算框架的趋势也正在形成。

如此,多核多算力的硬件架构转变相应地迫使基础软件架构做出调整。

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

去年以来,趁着国内开源的热烈气氛,华为也相继开源了四大基础软件:openEuler(欧拉)操作系统、openGauss(高斯)数据库、openLooKeng(罗庚)高性能数据虚拟化引擎,以及MindSpore全场景AI计算框架。

 

操作系统是所有计算机系统软件的“根”,但目前的操作系统并不能很好地支持多样性算力和ARM等架构。华为则希望面向未来的场景,通过openEuler创建一个创新平台,能够全面支持ARM,X86,RISC-V 等现在主流计算机架构。openEuler已于去年12月31日正式开源。

而在9月24日的HC大会分论坛上,江大勇发布了openEuler 20.09版本,包括极致性能、安全可信、生态引擎三大特点,背后提供支撑的项目主要是轻量级虚拟机StratoVirt 1.0和云原生容器iSula 2.0,secGear机密计算框架和IMA完整性度量架构,自动化测试平台Compass-CI和UKUI桌面。OpenEuler21.03及后续版本,将在云、边、端全场景协同上持续创新,支持应用一次开发,多场景部署。

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

目前,openEuler操作系统,代码量超过100万行,代码贡献者数量已超过1000个,下载量超1.4万次,社区访问量超过150万次,已有多家伙伴基于openEuler做了商业应用。

同样,数据库是基础软件皇冠上的明珠,也是客户业务系统的核心,所有应用软件的运行和数据处理都要与其进行数据交互。虽然以MySQL, PGSQL为代表的开源数据库已成为主流选择,但真正的企业级用户对企业关键数据、核心业务的承载体,有着性能、安全和运维的更高要求。江大勇认为,现在开源的数据库没有完全达到企业级的能力。

今年6月已经开源的openGauss数据库则具备企业级性能,包括高性能、高可用、高安全三大特性。openGuass第一个开源版本聚焦在与鲲鹏协同性能优化上,基于2路鲲鹏服务器,性能可达到150万tmpC,相对业界主流产品的性能超过50%。

而在今年12月底,openGauss还会进一步迭代企业级特性,包括行列混合存储引擎,支持混合负载,內存引擎MOT达到250W tmpC,有512个功能参数推荐的智能运维以及安全审计。明年3月底,openGauss则会关注企业安全,实现全密态数据库和智能增强功能。江大勇称,未来,openGauss将在每6个月发布一个新版本,每年发布一个稳定版本。

面向海量数据,尽管目前有HBase、Hadoop、Hive,MySQL等各种数仓,但缺乏统一的SQL接口,支持多数仓的软件,这是大数据使用的一大难题。

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

今年3月,华为开源的openLooKeng则是一个数据虚拟化引擎,致力于为大数据用户提供极简的数据分析体验,让用户像用“数据库”一样使用“大数据”。

openLooKeng具备引擎归一、多样分析,生态引擎以及高可靠、易用性特点,可以进行跨格式、跨仓、跨域使用,让开发者做数据治理更加简单。江大勇称,百亿级的数据量可以做到10秒级的分析处理。未来,openLooKeng将在极致性能、全场景高效融合分析、批流交互式方面持续突破。

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

此外,华为正式发布了端边云全场景的AI计算框架MindSpore 1.0:支持模型、算子及硬件处理单元级全自动并行;对端边云设备如手机、摄像机、服务器等全场景自适配;开发流程极简,开发者可基于MindSpore快速实现模型导入、灵活调试。

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

为什么要开源基础软件

开源软件的商业模式早已被验证。华为也希望通过开源的方式快速构建上述基础软件能力,并繁荣软件生态。

事实上,在Linux最新的内核5.8版本中,华为在全球范围对内核的贡献排名第二,修改代码量全球排名第一。另外,华为还为ARM架构打通全栈能力,贡献了全球超过40+的主流开源社区。

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

这些基础软件能开源也主要得益于华为过去10多年的技术积累,比如openEuler、openGauss数据库在开源前,就已在运营商业务中广泛使用,背后凝结了数千名工程师的技术研发投入。

由此也不难看出,现在的华为在贡献开源和引领开源上是齐头并进。

当然,华为也并非能完全参考英特尔等厂商的开源模式。江大勇对CSDN称,与原来其他厂商做产品和解决方案不同,华为做计算产业更强调“生态”,这就决定了华为“有所为有所不为”。

这一点也让华为在基础软件的开源策略上更加清晰,华为所做的即是为开发者和合作方提供开发工具和应用实践等底层支持,帮助后者应用快速迁移到整个鲲鹏平台,以此促进计算产业的发展。

在江大勇看来,现在应用的发展已经远快于以前做应用标准的方式,所以开源可能是当下更能被认可和接受的一种趋势,而通过这种方式也更能促进社会效率的提升。更重要的是,通过开源社区的协作模式把底层的基础技术做好后,差异化应用也会更快落地,社会效益也会更大,这也会形成事实上的统一标准。

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

最具挑战的是开源意识

对华为来说,开源上述四大基础软件只是开始。因为应用、处理器、新的项目需求还在不断发展,江大勇认为,只开源这些软件并不足够。

“openEuler刚开放的时候大约有30多个SIG组,但现在已经有70多个,因为不断地有开发者提出了新的业务需求或创新想法,也有开发者主动把RISC-V等能力开放到了社区。”

他预计,在分布式方面,未来可能还会增加一些新的能力,在元函数方面,可能在今年年底或明年年初也会有相应能力开放。而要壮大软件功能和生态,更重要的是依靠开发者社区的力量。

作为一家公认的执行力强悍的企业,华为在社区建设上也卓有成效。近期的鲲鹏开发者活动首次进行18个城市同步联动,采用线下+线上的方式进行,吸引了上万名开发者参与。

在江大勇看来,中国的开发者软件开发者数量并不少,但需要形成一种活跃的开源社区文化,而不只是把社区当做代码托管的地方。

而通过华为在构建开发者社区和生态过程中的经历,他也总结了中国开源需要提升的地方:

首先,开源社区本身的代码托管等基础设施服务要加强;其次,中国需要有更适合的开源协议;最后,最具挑战的是拥有开源意识和文化,他认为,应该鼓励高校学生和研究机构参与到开源中,加快社会性的协同创新,持续性支持和发扬开源协作精神。最终,让中国开发者实现从贡献开源进一步在全球范围内引领开源。

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

Linux内核贡献全球第二,开源四大基础软件,为什么华为要啃下这块硬骨头

更多精彩推荐
☞为什么云原生+分布式是数据库的未来?

☞Swift、Flutter 共同瞄准 Windows!
☞不是“老赖”是“真还”!罗永浩 6 亿债务还了 4 亿

☞云原生安全模型与实践
☞AI视觉大牛朱松纯担任北大AI研究院院长,提出通过构建大任务平台走向通用AI
☞区块链+生鲜:杜绝“偷梁换柱”和“以次充好”

点分享点点赞点在看
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这