写点什么

数千万次下载、百万行开源代码贡献,优麒麟如何打造中国开源操作系统新名片? | 卓越技术团队访谈录

  • 2022-04-15
  • 本文字数:4713 字

    阅读完需:约 15 分钟

数千万次下载、百万行开源代码贡献,优麒麟如何打造中国开源操作系统新名片? | 卓越技术团队访谈录

作者 | 凌敏

采访嘉宾 | 余杰博士、刘晓东博士

 

20 世纪末,中国掀起操作系统本土化浪潮。在随后的 20 余年时间里,依托开源生态以及政策东风,这股浪潮愈加猛烈,也涌现出了越来越多好用的国产操作系统。

 

作为能让计算机正常运行的根基,操作系统扮演着不可替代的角色,然而,开发操作系统却是一个艰难的旅程。本文中,InfoQ 采访了优麒麟项目负责人余杰博士、开发负责人刘晓东博士,希望他们的实践经验能给大家带来一些启发和思考。

2013-2022,优麒麟 9 年的变迁与升级

 

2013 年,Canonical、CSIP 和 NUDT 三方成立非营利性组织 CCN 开源软件创新联合实验室,优麒麟项目正式启动。同年 4 月,优麒麟首个 13.04 版本正式发布,面向全球免费下载并开放所有源代码,正式成为 Ubuntu 官方认可的衍生版。

 

自优麒麟诞生至现在,在漫长的发展长河中,有三个不得不提的重要举措。

创建独有桌面环境 UKUI:融入中国特色,更有科技感、时尚感

 

为计算机用户提供最好的 Linux 体验是团队开发优麒麟的初衷,也是团队一直坚持和努力的方向。从建立之初,优麒麟团队就着手以桌面环境为起点去打造一款具有更佳用户体验的 Linux 发行版。这是因为桌面环境作为操作系统的重要组件,是用户使用操作系统最直接的入口,一个好用的桌面环境可以大幅降低用户使用 Linux 的门槛,甚至可以直接提升操作系统的使用人数。

 

然而桌面环境的实现并不轻松,基础实现难度较大。因为桌面环境覆盖了很多基础组件,如开始菜单、文件管理器、控制面板等,工作量较大;同时,桌面环境还要对底层硬件进行管理控制,对上层应用提供支撑,技术难度也较高。

 

在经过了大量的用户调研和自主设计后,优麒麟开发出了全新的桌面环境 UKUI,并在其中融入中国特色,比如 2017 年 4 月发布的 UKUI 2.0 就遵循了中华民族美学核心——观物取象,主色调采用了源自大自然的中国传统颜色,而图标及默认壁纸则是拟物化和扁平风结合统一的形式。

 

2018 年,UKUI 桌面环境正式进入主流发行版 Debian 的官方仓库,成为第一款由中国团队主导开发并进入两大国际主流社区的桌面环境。2020 年,首个 UKUI 3.0 预览版发布。UKUI 3.0 作为 UKUI 的第三个大版本,使用 Qt 开发,并新增了诸多新特性,如跨平台支持,兼容 x86、ARM64 等多种主流架构;4K 支持,采用 SVG 格式图标,并通过 DPI 设置,支持 100%-300% 的整倍缩放。2021 年,UKUI 被 openSUSE 和 Gentoo 社区仓库收录,成为其可选桌面环境之一。

 

截至目前,UKUI(项目地址:https://github.com/ukui)共有 177 位开发贡献者,累计项目代码量超 300 万行。

引入双内核解决方案:在稳定性、兼容性与最新特性间得到平衡

 

2021 年 4 月,优麒麟 20.04 LTS Pro 版本正式发布,这是基于 20.04 长期支持版本的更新,并将提供 5 年的技术支持。

 

优麒麟 20.04 LTS Pro 引入了双内核解决方案:集成最新 Linux 5.10 LTS 版本内核,同时提供 Linux 5.4 LTS 版本内核,用户可以在 Grub 界面选择任一版本内核进行体验,满足更多场景下的用户使用需求。

 

这种双内核的设计优势明显,Linux 5.10 LTS 版本内核能提供一些 Linux 最新的特性,带来了许多功能增强和更多的设备支持;Linux 5.4 LTS 版本内核具备更好的稳定性和兼容性。总的来说,这种双内核方案能够在稳定性、兼容性与最新特性间得到平衡。

 

目前,优麒麟社区(项目地址:https://github.com/ubuntukylin)已累计发行 18 个版本,下载量超过 3800 万次,向开源社区贡献代码数百万行,在全球范围内拥有数十万活跃用户。

拥抱 RISC-V:开展硬件模块化与软件模块化相融合的操作系统架构设计

 

近年来,以 RISC-V 为代表的开放架构指令集备受关注。

 

RISC-V 是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。与 x86、ARM 相比,RISC-V 可以完全自由免费使用,并容许添加自有指令集拓展以实现差异化发展。

 

目前,RISC-V 正赢得越来越多的支持者,成为后摩尔时代深刻影响芯片产业的重要变量。优麒麟也将 RISC-V 作为重要的战略方向。2021 年 12 月 29 日,优麒麟社区发布首个支持 RISC-V 架构的系统——20.04 Pro (RISC-V)版本。

 

RISC-V 有如此明显的架构优势,但与 x86 和 ARM 架构相比,RISC-V 短板也很明显,那就是应用生态系统不够完善。为了补足这一短板,优麒麟在 RISC-V 版本中自带 20+ 款自研软件,丰富了 RISC-V 应用生态系统。

 

此外,优麒麟也在生态兼容上下功夫。“生态兼容是操作系统厂商最绕不过去的一个槛,要么我们自己构建生态,要么兼容生态。我们希望能够把 x86 和 ARM 比较完善的应用生态,通过指令集转换和应用兼容运行环境的方式,兼容到 RISC-V 的生态上来。”刘晓东博士说道。

 

今年 2 月,英特尔宣布加入 RISC-V 国际基金会,这对 RISC-V 生态发展无疑是一大利好。不过也有专家指出,RISC-V 需要尽快逼近甚至超越 ARM 的性能,这需要来自硬件 IP、后端优化、封装优化、软件优化等多方面的支持。

 

不过,由于 RISC-V 本身是个可扩展架构,更多应用在 IoT 领域这种对性能要求不高的地方。当前国内虽然有多家厂商进军这一赛道,但更多是基于 RISC-V 开发面向低端场景的芯片。

 

“我们评估至少再花个三五年的时间, RISC-V 芯片才能在 PC 这种场景上比较成熟。今年我们会将 Web 版本作为优化的重点,目前国际上几个主流的发行版,比如 Debian、 Ubuntu 都有 RISC-V 的版本,但还缺乏对 RISC-V 芯片特征的针对性优化,比如它的模块化特性,这是我们今年的重要任务之一。”余杰博士表示。

 

除了在 RISC-V 上加大研发支持和投入,未来,优麒麟也会关注操作系统智能化,对用户习惯进行深入的学习和挖掘,提供智能语音助手等相应的功能,并增强对当前主流深度学习框架例如 TensorFlow 的支持。

 

回顾过往 9 年,优麒麟积累到的经验是,做开源项目尤其是开源操作系统,需要重点关注两方面:第一,重视开源规则;第二,重视代码质量。

 

开源操作系统不同于开源软件,它的整个仓库方案有三四万个软件包,这些软件包中各个功能、协议间的相互影响比较复杂,因此需要专门的人员来做合规性评估和审核,并重视工作规范,程序的正确性以及逻辑完备性上下功夫。

生态难题下,多端融合给了 Linux 操作系统弯道超车的机会

 

经过 20 余年的追赶,国产 Linux 操作系统与国外主流操作系统如 Windows 在性能上的差距正在逐步缩短,某些领域甚至可以实现反超。但桌面应用并不是性能为王,而是生态为王。目前,国产 Linux 操作系统在推广的过程中,遇到的核心的问题就是应用生态。而生态又不单单是仅靠金钱或人力投入就能解决的。

 

通常来说,丰富 Linux 应用生态有两种途径:在 Linux 上写原生应用,这是最理想的途径,但存在诸多不可控因素;兼容,把其他平台上用得好的软件也在 Linux 平台上运行起来。兼容有很多种不同技术,比较常见的是采用模拟器技术,即通过虚拟机扩大应用生态,但这种方式往往也会带来性能上的损耗和易用性的损失。

 

要想实现不同运行环境之间的互通,丰富 Linux 应用生态,还需要再添一把火。麒麟移动运行环境 KMRE 应运而生。2021 年 6 月 20 日,优麒麟新发布的 20.04 LTS Pro 版本首次宣布支持移动兼容环境, 通过麒麟移动运行环境 KMRE,实现桌面和移动端全面打通,极大地提升了优麒麟操作系统应用生态的丰富性。

 

2016 年开始,优麒麟团队展开技术攻关,创新开发 KMRE 架构。 

 

KMRE 的研发是一个系统性的工程,代码量大。它不同于虚拟机,架构通过共用内核,直接使用硬件,同时支持 ARM 和 x86 设备和多种 CPU、GPU,有效解决了显示性能损耗、多窗口运行、桌面共享、文件互通等问题,将 Linux 操作系统和 Android 操作系统“合二为一”。两个系统共用同一个内核,共享硬件资源,并且 KMRE 可以直接使用硬件资源。

 

技术实现上,KMRE 采用原生运行模式,从 Linux 内核到 Android 硬件抽象层,再到 Android 运行时库、应用运行框架实现打通。在硬件抽象层面,也需要进行相应的打通和适配,如电池、GPS、重力感应等等。此外,Android 操作系统的应用通常以单窗口的方式展现,而在 Linux 操作系统中,用户需要在多个窗口中打开不同的应用,这也是二者存在差异的地方。

 

“虽然 Android 起源于 Linux,但它主要运行在手机端,而 Linux 现在更多面向的是桌面和服务器端,二者的应用环境不同,软件栈也存在很大的差异,甚至进程间通信和共享内存的机制也是不同的。”刘晓东博士介绍道。

 

此外,KMRE 还提供了两种显示框架。第一种通用模式,针对所有显卡,包括开源和闭源的显卡,兼容性极高;第二种高性能模式,针对于开源驱动的显卡,能够直接访问硬件,做到零性能损失。

 

多端融合为操作系统带来了新的改变,极大地丰富了应用生态,满足用户更多的应用需求。近年来,越来越多的操作系统在多端融合上发力,如微软的 Windows 11 操作系统就带来了 Android 子系统,可直接运行 Android 应用,OpenHarmony 也将与 OpenEuler 能力共享、生态互通。

 

那么,多端融合是国产操作系统加速崛起的必然选择吗?

 

余杰博士认为,多端融合给了国产 Linux 操作系统一个弯道超车的机会。“在过去,如果我们想用 Linux 操作系统去替代 Windows 是一件比较困难的事情,因为 Windows 的应用生态已经非常成熟。现在,通过多端融合,我们可以用移动的方式来解决 Linux 此前无法处理的应用场景,降低替换难度。长远来看,多端融合给了我们一个崛起的机会。”

 

多端融合使得用户对于单个操作系统的依赖性正在减弱。随着物联网技术进一步发展,个人智能设备数量陡增,多端融合技术也可以让这些设备之间实现更好的联动,高效传输信息。可以预见的是,在未来,多端融合也会带来更多奇妙的反应。

从 80 分到 100 分的跨越

 

当前国内基础软件产业整体仍落后于国际领先的水平,中国市场也一直没有催生出世界级基础软件企业。究其原因,刘晓东博士认为,国内对于开源的理解以及重视程度还不够,从事开源软件开发的人数也比较有限。同时,国内缺少比较良性的社区运行模式,缺乏顶级的开源社区。

 

“比较好的一点是,我们可以看到国家在‘十四五’规划里对开源社区有了更多的重视,我认为在未来五年里,开源社区可以迎来发展机遇,会有更多的人参与到开源事业中来。”

 

至于一个开源项目如何才能更加持续、稳定地运营下去,从感性维度而言,需要的是“热爱”。“只要有一波人对着同一个开源项目有了足够多的热爱,就能够保证这个开源项目能够有持续性的投入,以及较高的活跃度,能够不断地去跟国际主流开源社区进行交流和碰撞,从而让这个开源事业走向成熟和稳定。”刘晓东博士说道。

 

从理性维度而言,则是需要“成熟的商业模式”。“有个成熟的商业模式,它才能够真正长久的走下去。”余杰博士说道。

 

在信创背景下,国产操作系统发展逐步驶入快车道,余杰博士认为,如果 Windows 是 100 分的话,那么国产操作系统已经达到七八十分的水平。

 

“目前在整个 Linux 桌面水平、生态,以及性能优化方面都做了很多工作,虽然和 Windows 分数差距没那么大,但从 80 分到 100 分需要极大的投入,甚至是整个行业的带动。与此同时,国产操作系统应该在用户体验上下功夫,可以借鉴苹果、安卓的设计思路,但也要做出自己的特色。”

 

从 80 到 100 分需要跨越多少江河,背后需要做出多少工作,这是留给每个从业者的难题。


长期征集|寻找中国卓越技术团队


2022 年第一季《中国卓越技术团队访谈录》即将上线,本期精选了包括腾讯云鼎实验室、优麒麟、PingCAP、西门子 Mendix、火山引擎 ByteHouse、搜狗输入法无障碍产品在内的优秀团队,敬请关注。同时,访谈录现开放长期报名通道,如果你身处传统企业经历了数字化转型变革,或者正在互联网公司进行创新技术的研发,并希望 InfoQ 可以关注和采访你所在的技术团队,抓住机会报名吧!

2022-04-15 10:162461

评论

发布
暂无评论
发现更多内容

Android Launcher——ui框架

android 程序员 移动开发

5月份,京东 Android开发面经分享!

android 程序员 移动开发

8年老Android开发谈:Context都没弄明白凭什么拿高薪?

android 程序员 移动开发

Android Framework学习笔记(五)应用程序启动过程

android 程序员 移动开发

【LeetCode】丢失的数字Java题解

Albert

算法 LeetCode 11月日更

关于调度器的一些思考

Rayjun

调度器 Go 语言

Activity详解与实现

android 程序员 移动开发

Android ImageView及其子类 介绍+实例

android 程序员 移动开发

Android JNI 入门(含完整Demo)

android 程序员 移动开发

linux几个不常用但是很有用的命令

入门小站

Linux

Android Jetpack架构开发组件化应用实战

android 程序员 移动开发

AndroiAndroid程序员最大的悲哀是什么?d程序员最大的悲哀是什么?

android 程序员 移动开发

Android 118道基础面试题,面试途中不卡题

android 程序员 移动开发

Android 12 启动画面-SplashScreen

android 程序员 移动开发

Android HTTP通信基础

android 程序员 移动开发

【译】Node.js Buffers 完整指南

废材壶

node.js 大前端

45天拿下字节跳动Android研发岗offer,竟然有个面试真题库,内幕首次公开!

android 程序员 移动开发

Andorid Studio 制作欢乐写数字(Timer启动+帧动画)

android 程序员 移动开发

Android 11 中的存储机制更新

android 程序员 移动开发

在线文本中插入符号工具

入门小站

工具

A015-布局之LinearLayout

android 程序员 移动开发

android Activity的Task Affinity lanchMode

android 程序员 移动开发

Android Gradle进阶配置指南

android 程序员 移动开发

Android ExpandableListView折叠菜单的三层嵌套实现

android 程序员 移动开发

Android Framework学习笔记(六)应用程序进程启动过程

android 程序员 移动开发

Android 6

android 程序员 移动开发

Java自定义注解

程序员架构进阶

Java 注解分析 11月日更

Android AsyncTask源码解析

android 程序员 移动开发

Android - 弹幕实现原理(附Demo源码)

android 程序员 移动开发

Android ANR:Application Not Responding详解

android 程序员 移动开发

Android JNI QQ 搞怪语音实战 (含完整 Demo)

android 程序员 移动开发

数千万次下载、百万行开源代码贡献,优麒麟如何打造中国开源操作系统新名片? | 卓越技术团队访谈录_文化 & 方法_凌敏_InfoQ精选文章