小白 发布的文章

在 2021 年,Linux 中国启动了线下聚会的活动,我们希望在疫情当下的时刻,仍能为大家提供面对面相互交流的机会。然而随着大流行病的发展,LLUG 仅仅组织了两次活动,便暂时按下了暂停键。

而今天,我们正式宣布,LLUG 2023 正式重新启动了,今年的 LLUG 活动主题是“在一起,学技术”,我们希望能够通过 LLUG 将大家重新聚集在线下,和我们一起聊聊天,看看最近又用到了什么不错的软件,有什么有趣的发行版,一起研究一下社区里的最新技术。

2023 年,我们将在全国的多个城市举办 LLUG 线下聚会,与我们的老朋友和新朋友们,在线下相见,重温人与人线下交流的温暖。同时,我们也要向大家介绍一下本次 LLUG 2023 的联合主办方 —— OpenAnolis 社区,来自 OpenAnolis 社区的贡献者们将和我们一起,在全国各地与大家相见。

OpenAnolis 社区是国内的顶尖 Linux 发行版社区,我们希望在普及 Linux 知识的同时,也能让中国的 Linux 发行版,为更多人知晓,推动国产发行版的发展和进步。

LLUG 2023 的第一站,将从北京开始。

6 月 11 日 ~ 12 日,Linux 中国将在北京召开的开放原子全球开放峰会现场,组织 LLUG 2023 线下活动,与大家一同聊聊开源、聊聊 Linux ,聊聊社区当中的那些最新的技术。

我们将在 LLUG 2023 北京场和各位分享 Linux 中国在生成式 AI 上的新实践,以及我们对于通过开源推动 Linux 中国翻译组的持续发展的一些想法和探索。此外,我们还邀请到了 OpenAnolis社区的几位大咖来给大家分享他们在技术前沿的经验和总结。

具体议程如下:

议程安排

活动信息

活动主办方:Linux 中国

联合主办方:龙蜥社区(OpenAnolis)

活动支持:人民邮电出版社

活动地点:北人亦创国际会展中心 · 开放原子 2023 国际峰会 · 阿里云展台 · 龙蜥动手实验室

活动时间:2023 年 6 月 11 日、12 日,下午 13:00~16:00

报名方式:点此链接或扫描下述二维码,免费报名参与开放原子 2023 国际峰会,即可来到现场和我们一起面对面沟通

扫码报名

如果你要来现场,不妨扫码加群,和我们更早的交流起来。到时候,咱们现场见!

LLUG 2023 交流群

One More Thing

我们将会在活动现场举办线下抽奖,如果来到现场,别忘了参与互动,进行线下的抽奖哦~我们为大家准备了小米音箱、屏幕挂灯、背包、充电头等精选好物,期待在现场当中见到你哦~

除了北京,你还希望 LLUG 在哪里举办呢?在下方留言说出你的城市,说不定下一次,LLUG 就在你所在的城市举办~

从千禧年间走过来的人,必然都经历过盗版的 Windows XP 满天飞的时代。而在那个时代,也有这么一撮儿 Geek,他们选择不与盗版共行,但又希望能够使用一个正版的操作系统,开源免费的 Linux 成为了最终的选择。毕竟,选择使用盗版虽然免费,但难免有风险。开源免费的 Linux 看起来也不错,还没有任何心理负担。何乐而不为?作为一个倒腾计算机比较早的人,我也有幸经历过那段时间,装过机,玩过 Linux 。我曾不止一次试图将 Linux 作为我的主要的操作系统,但都败在了当时国内软件对于 Linux 操作系统生态支持不佳的问题上

毕竟,作为一个年轻人,如果连 QQ 都不能在 Linux 上使用,不亚于断网造成的困扰。你可能可以用 Linux 来写完工作的文档,但你无法将其传递给你的同事们;你可能需要使用 FTP 将其上传到自己的网站上,再给同事链接,让同事去下载,抑或是使用海外的 Skype、Slack 等产品。虽然你连接着互联网,但你仿佛就是断网

但那个时候,腾讯尚未为 Linux 提供 QQ 应用。虽然有人通过其它的一些变通方式可以勉强在 Linux 上使用 QQ,但效果差强人意。直到 2009 年,腾讯才正式推出了 QQ 1.0 版本。随后的十年里,Linux 上的 QQ 就再无动静,一直到 2019 年,QQ 才 再次更新 了 2.0 版本。

图片来自 OSChina

但这个新的 2.0 版本,其应用界面却还停留在 10 年前。而随后,QQ for Linux 并为见到持续的更新。虽然缓解了部分 Linux 用户使用 QQ 的难处,但几年来,并未引来更多反响和改进。

直到最近,QQ for Linux 又有了 新的动作,先后推出了 3.0、3.1,并且比之前的版本有了突破性的改变,真正让 QQ For Linux ,成为一个可用的选项。

QQ For Linux 3.1 — 完成度堪比 Windows/macOS 版本的新版

之所以让我感受到 QQ For Linux 3.1 成为可用的,是它在功能和 UI 上的完备。和 2.0 的老式用户界面不同,QQ For Linux 3.1 使用了和 Windows QQ 和 macOS QQ 相同的 UI。

在产品的功能上,QQ For Linux 3.0 和我们所熟悉的 Windows QQ 、macOS 做到了常用功能的对标提供。诸如群管理、QQ 空间、甚至是最新的群频道,都已经在 QQ for Linux 当中提供。可以说,作为一个普通的 QQ 用户,这些功能已经可以满足你 90% 的需要了。

如果过去 QQ 是一个阻拦你选择 Linux 的拦路虎,如今这个拦路虎已经不复存在

从技术的角度来看,采用跨平台框架 Electron 的设计确实为 QQ For Linux 的开发带来了便利,不仅可以实现多平台兼容性,还可以大大降低开发人员的工作量。同时,采用跨平台框架也可以提高开发效率和质量,减少开发成本和维护成本。这种技术方案设计的优势不仅可以在 QQ For Linux 中得到体现,未来,还可以引导更多的国产应用提供对于 Linux 的支持。

稍有瑕疵,但进展迅速

QQ For Linux 3.1 并不是横空出世,其实在 2022 年 12 月底,QQ 便对外放出了 QQ For Linux 3.0 ,但 3.0 版本的 QQ For Linux 还有不少的问题,存在功能不完整。比如登录时每次都要扫码(在 3.1 版本已经修复)、不支持语音、视频(3.1 仍不支持)。

不过,多年来 QQ 团队在 Linux 上的懈怠,确实让社区用户对于 QQ 不敢抱有太高的期待,Linux 中国的贡献者们对于 QQ For Linux 的评价多是”腾讯能支持 QQ,已感激不尽“、”首先不折腾不闪退,可以平滑打字看图片我就算满意了。毕竟我也不会使用太多群功能。但是如果能过像 Windows qq 一样提供文件夹一键下载就好了,而且打开群聊也查看不到群Q号,不知道是不小心还是故意没放”。

多年的懈怠,使得大家不敢对腾讯抱有太高的期待,但 3.0 发布的一个多月后,QQ For Linux 便推送了新的 3.1 版本,其迭代速度,也让大家真的可以期待一下,相信腾讯 QQ 团队也在快速迭代,或许要不了多久,我们就可以在 QQ For Linux 上使用完整的 QQ 能力。

生态支持广泛,但可更进一步

Linux 生态和 Windows、macOS 生态有一个很大的不同,它有多种不同的发行版和包管理器机制。虽然可能底层的二进制完全相同,但对于普通的用户来说,自己去解包,再重新打包依然是一个不靠谱的方案。

这一点,QQ For Linux 已经完成了大部分工作:QQ For Linux 提供了 RPM、DEB、AppImage 方式的安装包,对于绝大多数主流的发行版都已经提供适配。

对于 QQ For Linux 来说,要想让更多的 Linux 用户方便地使用,确实需要更多的努力。QQ For Linux 虽然已经预装在一些国内常用的 Linux 桌面发行版,但目前还没有进入更多主流的 Linux 桌面发行版的官方仓库。这对于使用 Linux 桌面的更多用户来说,不能方便的在官方的软件仓库、软件中心中便捷的安装,还是稍显麻烦,也不利于 QQ 在 Linux 用户群体中的推广。

除了 QQ ,我们更值得关注背后的中国 Linux 生态

QQ For Linux 的出现,对于我们每一个 Linux 用户来说,是一件好事、大事。细想一下,这其实是中国 Linux 生态在不断变好的佐证。作为一个专注于 Linux 和 Linux 周边生态的技术人,近几年来,我们在不断感受到国产 Linux 的变化,开始逐渐丰满、完善。

从层出不穷的国产 Linux 发行版,到各个行业和领域开始使用 Linux 作为面向用户的主要界面系统,再到如今我们看到最重要的 QQ For Linux 也与时俱进的发布了新版。作为一名 Linux 老用户,我认为,用 Linux 作为日常办公,已经被搬开了最后一块石头

这对于整个中国的 Linux 生态来说,也起到了带头的作用。以往我们在说 Linux 的时候,常常说没有 QQ 、微信, 不可能推广下去的,但如今 QQ 已经入局参与到 Linux 生态的建设了,其他的厂商相信很快也会随之涌入,帮助大家可以在获得自由的同时,也与世界密切相接。

除了 x86,还有 ARM64 和龙芯,为国产芯注入强心剂

在 QQ For Linux 的安装页面上,除了我们熟悉的 x86 平台,还有 ARM 平台和 LoongArch 平台。x86 自不必说, PC 主机的核心战场;而 ARM 平台也一直伴随着 Linux 用户,毕竟树莓派几乎是每一个玩 Linux 人必备的小主机。LoongArch 便是我们所熟悉的龙芯平台。作为国产操作系统和国产芯片的主要阵地,龙芯过去一直也缺少一些杀手级应用。QQ 对于龙芯的支持,让普通群众从 x86 芯片切换到龙芯也成为了一个可能。

在信创飞速发展的大背景下, 可以预见到,在未来的若干年里,我们的一些公共基础设施,可能都将会使用 Linux 来提供服务。普通用户所需要的核心软件,在 Linux 下也都得到了完善的支持。

可以预期的是,虽然普通用户还会在许多场景使用 Windows、macOS ,但在未来,Linux 已经可能成为用户无感知使用上的主流。

除了功能对齐,QQ For Linux 还可以是什么?

和 Windows 不同,Linux 的用户群体大多是开发者或者极客们。这样的大背景下,QQ For Linux 可以探索更多的功能和应用场景,特别是在 Linux 用户群体中,他们更加熟悉命令行和自动化工具的使用,这也为 QQ For Linux 提供了更广阔的应用前景。

  1. 支持通过命令行工具进行 QQ 聊天:将 QQ 的聊天功能通过命令行封装成一个命令行工具,用户可以通过命令行工具发送消息、接收消息等,方便用户在终端界面中使用 QQ 进行聊天,让在 Emacs 里聊天成为可能。
  2. 提供原生 API ,让用户可以通过脚本语言来控制 QQ :QQ For Linux 可以提供一些原生 API 接口,例如 Python API、JavaScript API 等,用户可以通过脚本语言调用这些 API 接口,实现对 QQ 的控制,例如通过 Python 脚本来定时发送消息、自动回复消息等。
  3. 结合自动化工具提供更丰富的应用场景:QQ For Linux 可以和常用的自动化工具如 Cron、Jenkins、Ansible 等结合,实现更丰富的应用场景,例如在 Cron 中定时发送消息、在 Jenkins 中实现自动化测试中的通知功能等。

而所有的这些都能够为用户提供更加便捷、灵活的应用场景和功能,为开发者群体提供更多的便利和灵活性。

距离全面迁移 Linux ,我们还差多少?

QQ 给大家开了个好头,而其他领域的软件,其实也很早就开始深耕 Linux 操作系统。我简单数了一下,我们日常使用的浏览器都是有 Linux 版本的;而办公用的 WPS Office,同样也有 Linux 版本。如果你需要做日常沟通,QQ 和邮箱,都有相应的客户端来满足你的需求。至于微信,QQ 珠玉在前,微信的新版,也指日可待。

在我看来,日常使用 Linux 已是坦途。

下载 QQ for Linux 3.1

在刚刚结束的 openEuler Summit 2022 上,华为服务器 OS 首席架构师、openEuler 社区技术委员会委员熊伟为广大开发者介绍了 openEuler 在过去 3 年的成就和成果。而其中最值得关注的是,openEuler 在云、服务器、边缘计算、嵌入式等四大场景下的八个技术方向的创新。

用熊伟博士的话来说,“在过去的三年里,openEuler 深入行业和产业,用八个技术方向的纵深创新,引领全场景的产业领先”。接下来,作为一个一直关注开源操作系统的技术人,我分享一下我的理解。

可编程内核:系统调度的极限追求

首先介绍一下可编程内核。

我们知道,内核是一个操作系统的核心。对于我们所熟悉的 PC 和服务器,由于对资源的消耗和性能的需求没有那么的敏感,无需毫厘必争,所以往往不太需要在内核层面做删减,正常使用即可。删减内核功能的成本可能远高于增加内存的成本。

但对于资源消耗和成本更加敏感的边缘计算、嵌入式设备来说,每一丝的资源占有,都是难以估量的成本。对于资源集群量级极大的云计算场景而言,每 0.1% 的性能优化,对于整个集群而言,都是十分可观的收益。一个可编程的内核相比于模块化的内核,为生产环境下的优化提供了更多的可能性 —— 工程师可以根据业务的实际变化,随时调整内核的实现和策略,从而优化系统的性能。

在这种情况下,对于内核进行组装,支持可编程能力,就变得极其重要。openEuler 创新性地借鉴了社区当中 eBPF 的思想,并在此基础之上,将内核的机制和框架进行了分离,将框架内置到内核,实现的功能和策略则可以在开发完成后,注入到内核中即可实现对内核二次编程的效果。

说起来简单,但在具体落实层面,openEuler 做了不少的工作来达成这个目标:

可编程内核

openEuler 在系统内核层面,提供了编写用户态策略的基础库函数和可配置的调度策略模板,可以帮助用户快速理解内核的编程方式。支持用户快速编排和扩展,降低用户对内核实现调整时的成本,降低上手的门槛。在具体的管理机制方面,则提供了对任务 / 进程 / 组 / 用户等对象的自定义拓展标签,从而承载了用户态与内核态、内核态组件之间协同调度的语义,实现了整个内核的统一调度,确保力往一处使。此外,openEuler 还在内核层面提供了丰富的钩子点位和辅助函数,从而支持对 CFS 调度类的选核、选任务、抢占流程的自定义策略注入。

对于普通的开发人员来说,也可以基于 openEuler 提供的可编程框架,来实现针对不同的应用场景来开发自定义策略,动态加载到内核执行,提升内核的执行效率,为整个业务系统降本增效。

除了内核级别的资源调度,在 openEuler 操作系统中,还实现了两种不同层面的混合部署:在线/离线业务混部和软硬实时混部。从这个角度看,openEuler 志在实现更多更大场景的统一管理和运筹。我们先来看一下在线/离线业务混部:

在线/离线业务混部:资源利用率和系统性能的极限平衡追求

对于任何规模化的业务来说,必然会存在波峰和波谷。如何平衡不同业务之间分配的资源从而实现资源的最大化利用,是一个极为重要的课题。

在 openEuler 当中,你可以使用可编程的内核来完成内核级别的资源调度;而在更上一层,openEuler 提供了完整的在线/离线业务混部能力。openEuler 为开发者提供了三层不同的层次的资源调度能力

在内核层,基于内核优先级隔离调度技术,对于 CPU、内存、IO/NET 等资源维度实现干扰隔离,从根源上优化资源调度和隔离的能力。在用户态,为用户提供了基于 Rubik 的动态配置和拓扑编排能力,同时配合新一代 QoS 感知资源调度器 Skylark 所提供的资源调度能力,从而实现为不同的 QoS 要求的混部业务提供合适的资源调度。

在线/离线业务混部

Rubik 为开发者提供了基于应用画像的应用调度机制,来实现自动的资源调度能力。通过自动注入技术,来实现业务的自动画像和自动分析,得出不同业务负载对于资源的敏感度和压力度。再基于画像和标记,对各节点的资源进行调度(如 CPU、内存带宽、缓存带宽、磁盘带宽、网络带宽等)和数据收集,并基于历史数据二次调度资源,均衡各不同业务对于资源的平均利用水平。

在应用调度之上,Rubik 还会基于业务指标进行一定程度上的节点资源超卖。通过对业务资源维度的采样,预测可压缩资源的使用情况,从而实现基于预测情况的超卖。在为在线业务准确预留所需资源,保障其 QoS 的同时,将未使用资源尽可能多地分配给离线业务,最大化离线业务的吞吐率,提升节点的资源利用率。

通过引入 Rubik 在离线混部解决方案,在保证业务 SLA 不下降的情况下,资源利用率从业界平均的 15% 提升到 35%。

Rubik 混部解决方案

除了在线/离线业务混部之外,openEuler 还支持软硬件层面的实时混部:

软硬实时混部:多层次确定性时延需求满足

在 openEuler 当中,集成了一个新的硬实时内核 uniProton,帮助开发者磨平底层的硬件平台的差异,提供一套标准统一的操作系统平台。uniProton 支持任务管理、事件管理、队列管理、硬中断管理等管理方式,兼容 POSIX 标准接口的开发,降低了开发者的开发成本。

而对于开发者而言,更重要的是 uniProton 是鸿蒙系统和 openEuler 共同支持的内核。开发者可以开发一套应用,同时运行在 openEuler 计算设备和鸿蒙设备上,降低了开发者的开发成本。

对于需要硬实时方案的开发者来说,配合 uniProton 和 openEuler 的系统镜像裁剪能力,可以实现 KB 级的系统镜像调度时延 < 3us;而可以接受软实时方案的开发者则可以选择基于内核自旋锁和信号量优先级继承机制,配合周期性、Workqueue 延时、负载均衡等任务驱逐机制,实现 20us 中断响应。

通过软硬实时方案的混部能力,openEuler 实现了 CPU 、内存等全域资源的隔离分区,满足了数控机床、传统工业场景下对于多层次确定性时延的需求,帮助 openEuler 开发者可以进行传统工业场景的开发。

openEuler 除了和鸿蒙系统共建 uniProton,还提供了一个更有价值的特性 —— 多芯片架构的支持。

异构互联:泛架构算力存储统一调度

openEuler 全版本支持 x86、ARM、申威、龙芯、RISC-V 等五大架构,并支持英特尔、AMD、兆芯等多款 CPU 芯片,支持多个硬件厂商发布的多款整机型号、板卡型号,对于开发者来说,可以轻松完成多个不同型号的设备之间的互联和统一调度。

异构融合统一调度

配合分布式软总线,可以实现鸿蒙设备和 openEuler 系统设备之间的即插即用、高效传输。开发者可以无需关注设备的发现机制,借助分布式软总线提供的通信机制,快速完成设备的发现、组网、连接和传输能力。开发者可以通过使用分布式软总线提供的 API 实现设备间的高速通信,无需关心通信细节,进而实现业务平台的高效部署与运行能力。

SysMaster: 安全可靠机制可靠的服务管理系统

除了上面介绍的各种内核、硬件方面的技术突破以外,openEuler 还在开发者最熟悉的初始化系统上做了一些探索和改进。

SysMaster

我们过去熟悉的初始化系统(比如 sysVinit、systemd、upstart),大多是使用 C 写的,且往往因为设计复杂,功能大一统等有违 UNIX 传统思维的做法而广受诟病。openEuler 社区为社区提供了一个全新的、采用 Rust 编写的初始化系统 —— SysMaster。

和 systemd 相比,由于 SysMaster 采用 Rust 语言编写,原生地规避了内存泄漏问题,开发者无需担心内存泄漏导致的 1 号进程挂掉。而从零构建的 SysMaster,也摒弃了之前的初始化系统中存在问题,为开发者提供了新一代的初始化系统

SysMaster

相比于过去的初始化系统,SysMaster 提供了全新的架构设计,分为 SysMaster Core 和 SysMaster Extend 两类。SysMaster Core 提供了极度轻量的调度方式,占用更少的资源,以及更快的启动速度。拆分的架构则可以支持拓展多种服务类型,实现 1+1+N 的架构,满足初始化系统的多样化诉求。而它的生态兼容工具,则可以让开发者可以自由选择 systemd 和 SysMaster,无需担心被生态绑定。

总结

openEuler 的技术创新覆盖的场景相当地丰富和深入,以至于我无法在一篇文章中逐一分析和披露所有细分场景和技术创新点。在撰写这篇文章时,给我的最大感受是“他们居然实现了!

对于一个产业的研发人员来说,毫无疑问,openEuler 的这些技术创新,将帮助产业和行业的开发者节省大量的时间,用更短的时间完成应用的建设,将精力投放在产业和业务当中,产生价值。

从过去的“要打造根社区”,到如今的“成为根社区,并从根出发,进入纵深领域创新”,openEuler 给我了太多的惊喜。假以时日,我相信,openEuler 还给我带来更多的震撼。

6 月 2 日晚上八点,鸿蒙召开了 2.0 的发布会,发布了鸿蒙 OS,以及一大批的新品。这两天想必大家也都看到了不少。这篇文章不想讨论鸿蒙系统本身的体验层面的变化,而是将会将精力更多的投放在鸿蒙的生态发展中。

鸿蒙想要的是什么?

从 2019 年鸿蒙发布,有几个关键词就是核心,分布式、全场景、自主研发,其中自主研发比较好理解,而分布式、全场景一直是我无法理解的,直到看了发布会,我才意识到鸿蒙真正想要的是什么。

由于我近几年来,使用的都是苹果的生态,使用 Macbook Pro 办公,使用 Homepod 听歌,出门会使用 Airpods Pro 来降噪。所以,在看鸿蒙发布会的时候,我时常有一个想法:这个功能苹果生态里已经有了啊? 或者是这个功能的 UI 交互确实是新的,但核心的体验我在苹果生态中也已经体验了啊?

也正是这一刻,我悟了,鸿蒙想要的分布式、全场景,其实就是过去我在苹果生态一直体验的那些东西,不同的是,鸿蒙的分布式、全场景,是超出了苹果生态所给予我的东西。

鸿蒙的 1 + 8 + N 战略

鸿蒙的产品架构是 1+8+N,1 指的是手机,8 指的是 PC、平板、智慧屏、手表、智能音箱、车机、耳机、AR/VR,N 则是更多的生态。

对比着我们来看苹果的生态,1 指的是 iPhone,8 指的是 Macbook Pro、iPad、Apple TV、Apple Watch、Homepod、Apple Car、AirPods 以及不知道有没有的 VR/AR 产品。

截止到这一步,鸿蒙和苹果看起来都很像,那为什么我又说华为超越了苹果生态?

原因在于 8 加的 N。

在鸿蒙的描述中,N 是指更多的 IoT 设备,他们可以通过鸿蒙系统借助 4G/5G/HiLink 等方式,和核心的 8 个产品进行连接,沟通,从而提升产品的智能性,让用户真正感受到产品的智能特性。

而在苹果生态中,苹果是不做 IoT 设备的操作系统的。鸿蒙既做了手机、核心设备的操作系统,还做了嵌入式的操作系统,确实可以让 IoT 设备的操作体验,如同 8 个核心设备的体验,这一点是只制定标准,不下场做事的苹果所无法达到的

可以说,鸿蒙生态假设真的铺设起来了,体验、易用性,可能都要超过苹果生态目前能够提供给我们的

鸿蒙生态之乱象

鸿蒙作为一个看起来还不错的产品,为何近几年来饱受争议?我觉得主要是在宣传策略上的混乱。

鸿蒙系统近几年的搜索关注度

提起鸿蒙,数码圈的人往往说的是鸿蒙 OS;而互联网/科技圈的人说的往往是 OpenHarmony 操作系统。二者在宣传的过程中,往往都是被人称作是鸿蒙系统。

但实际上,鸿蒙 OS 是真正的鸿蒙 OS,OpenHarmony 仅仅是鸿蒙生态的一个基座,如果你将之与 Android 对比,便是 Android 与 AOSP 的区别。

OpenHarmony 架构图

我们真正在使用的鸿蒙系统,是一个完整的、加入了各项系统设定的操作系统,而我们所看到的源码的部分,只是一个操作系统的基座,你真正在使用的过程中,还需要做大量的修改和剪裁的版本。

不过,这样的区分是一件好事。Android 当年之所以能够盛行,AOSP 功不可没。OpenHarmony 同样承载了鸿蒙系统发扬光大的路线。

不过,OpenHarmony 本身也在宣传上有硬伤。

一直以来,OpenHarmony 都被称之为 Android 套壳,在我看来,是不完全准确的。OpenHarmony 在手机/平板/智慧屏部分,使用的是兼容 Android 的机制,而且兼容 Android 的路线也是没有问题的;但在覆盖面更广的嵌入式设备中,产生的价值的是 2012 年就开发的 LiteOS;对于一些特定的场景下,OpenHarmony 可能会使用 Linux Kernel 来完成自己的工作。OpenHarmony 不是 Android 套壳,而是基于 Android /LiteOS/Linux Kernel 的土壤所诞生出来的操作系统。

操作系统的研发一直以来都不是技术问题,而是生态问题,用户不太会裸用操作系统提供的基础功能,能够留下用户的,必然是操作系统之上的应用生态,对于 OpenHarmony 这样的一个后来者,一个最为简单高效获得生态的方式,就是与原有生态的兼容,所以 OpenHarmony 兼容 Android 生态是在我意料之中的事情,倘若鸿蒙真的将整个系统完全重写,那我反而不看好 OpenHarmony。

相比于说 OpenHarmony 套壳 Android,我更倾向于 OpenHarmony 编写了一个抽象层,磨平了 LiteOS 和 Android 的系统 API,从而使得一些功能特性可以更加容易的在两种系统之上来实现。而这些,也正是鸿蒙所宣传的 1 + 8 + N战略下的核心体验的由来。

但不得不说,在宣传上,OpenHarmony 做的很一般,甚至可能没有起到好的作用,而是一个坏的作用。

鸿蒙生态的未来

说完了鸿蒙想要的东西和鸿蒙生态的乱象,最后,我想聊一聊关于鸿蒙的未来。

鸿蒙生态看起来非常的不错,但,能否达到所预想的水平,又是另外一个问题,对于鸿蒙来说,前路依然坎坷。

在国内方面,鸿蒙如果希望进行推广,就必须要考虑合作伙伴的问题,鸿蒙生态的建设不仅仅是华为的事情,华为可以完成 1+8 的建设,可后面的 N,是需要无数的中小 IoT 设备生产厂商共同建设而来的。

但,国内的厂商可能要面临的问题就是,面对曾经的对手,是否还要继续合作?如果合作了,未来是否会被华为卡脖子?华为又是否会在 OpenHarmony 中为自家系统添加单独的优化?这些问题都会让国内的厂商在面临选择时产生困惑。

此外,国内的厂商在完成了接入后, 鸿蒙想要扩大生态范围,就必然需要进行出海,出海时就要正面与 Android、iOS 所构建的生态进行竞争,在海外生态不足的情况下,如何取得竞争的胜利,也是一个需要研究和探讨的话题。

不过,说了这么多困难,我还是想说,鸿蒙看起来真的很好,或许,有朝一日我会面临这样的选择“花 15000 元,获得完整的苹果生态体验;花 10000 元,获得完整的鸿蒙生态体验,可以实现苹果生态 80% 甚至是 120% 的体验”,你会怎么选?

鸿蒙之路,道阻且长。

华为去年发布的新的 Linux 发行版 openEuler 在过去的一年里发生了巨大的变化,而明天,openEuler 的年度社区盛会 —— openEuler Summit 将会盛大召开。

作为国内著名开源社区、Linux 爱好者聚集地Linux 中国也受邀前往参与本次的 openEuler 大会。不仅如此,我们特别向大会组委会申请,希望可以采访到 openEuler 团队的开发者,和 openEuler 的开发者们一起聊聊开源,讨论讨论 Linux 发行版。

经过组委会协调,我们将会和 openEuler 的技术委员会主席,来自华为中央软件院的胡欣蔚一起坐下来,畅聊开源、Linux 和 OpenEuler

如果你对于 openEuler 有什么问题,欢迎你在下方留言,我们将选出其中的好问题,带到现场,和胡欣蔚一起聊一聊。

如果你希望来到现场,参与到 openEuler 大会,体验 openEuler 的新奇特性,可以长按识别下方二维码,报名参加本次活动!

拥有一个很萌的头像的 DIYgod 是一个当前任职于 B 站的年轻开发者,他是在 GitHub 拥有一万星标(本文发表时)的 RSSHub 的创始人,也是 APlayer(4.4k 星标)、DPlayer (8k 星标)等开源项目的创始人。在我所认识的开源开发者当中,DIYgod 是一个很优秀的开源社区贡献者,所以今天我们邀请到了 DIYgod 来参加我们的穿山甲专访。

DIYgod 很有 B 站风格的头像


问:您可以先自我介绍一下么?

DIYgod:Hi,大家好,我是 DIYgod,一名爱好开源的 JavaScript 开发者 —— 写代码是热爱,写到世界充满爱。我的梦想是成为一名可以养活自己的自由职业者

问:目前你已经是自由职业状态,还是说仍然在企业工作呢?

DIYgod:现在在哔哩哔哩(B 站)做前端。

问:能否向读者介绍一下你的开源项目 RSSHub 呢?

DIYgod:RSSHub 是一个用来生成 RSS 订阅源的工具,它可以给任何奇奇怪怪的内容生成 RSS 订阅源,实现万物皆可 RSS。RSSHub 正在借助于开源社区的力量快速发展中,目前已适配了数百家网站的上千项内容。使用时只需要简单的编辑下地址即可获得需要的订阅源。

问:对于目前的很多人来说,RSS 已经鲜为人知,现在很多新生代的互联网用户已经不再使用 RSS,他们可能更习惯于使用信息流应用。你当初因为什么原因选择做了 RSSHub ,是有什么契机么?

DIYgod:我本身是一个 RSS 重度用户,之前关注了几个有意思的微博博主,但经常打开微博去刷更新太麻烦了,就写了个简单的 Node.JS 脚本生成 RSS 加到自己的订阅里,后来又写了哔哩哔哩的 RSS、网易云音乐的 RSS,越来越多,最后就干脆把它们合成了一个项目,取名 RSSHub。

问:说起来,你其实是将微博的信息流推送的形式,借助于自己的编程能力,转化为 RSS 的被动拉取的形态。那对于 RSS 和 现在的信息流应用,你有什么看法么?

DIYgod:信息流应用基本都有自己的一套推荐算法,受益于此,可以获得更轻松愉快的阅读体验;但另一方面来看,用户丧失了内容选择的主动权,看到的不一定是自己真正想看的,稍不注意也会消耗自己大量的时间,阅读效率更低。RSS 可以选择自己真正想看的内容,阅读效率更高,但这也导致使用门槛比信息流应用高了很多。信息流应用的另一个问题是它无法集中地收取信息,时不时地打开微博、Twitter、YouTube、哔哩哔哩,去翻看我关注的人有没有更新,实在是一件痛苦的事。最后是 RSS 可以做到没有遗漏地收取信息,而信息流应用很容易遗漏。

问:可以看出来,你是一个重度的 RSS 用户,不仅仅是用户,更是为 RSS 生态添砖加瓦。你自己平时都是怎么样应用 RSS 的呢?

DIYgod:大家都知道 RSS 是一种用来做消息聚合的格式规范,有着更高的阅读效率、更好的阅读体验、可以掌握主动权等等优点,但它的用途一直被大家低估,除了最常用的在 RSS 阅读器里使用,还可以通过 BT 客户端实现自动的 BT 下载用来追美剧或动漫、通过播客客户端订阅和收听播客、通过 IFTTT 与各种各样的东西联动等等。

我平时除了常规的使用 RSS 阅读器订阅,还会在群晖的 BT 客户端里订阅美剧的 RSS,这样美剧更新后 BT 客户端就会自动把最新一集下载到硬盘里,晚上下班回家打开电视就可以直接看了。

此外是自动下载我的 B 站投币视频,整个流程是“投币操作 -> RSS 更新 -> IFTTT 触发 Webhook -> 服务器下载”,实现方法在我的博客里有介绍:https://diygod.me/download-webhook

然后还有我的 Telegram 频道: https://t.me/awesomeDIYgod ,它通过 IFTTT 监听了很多 RSS 更新,有 DIYgod 的博客更新、DIYgod 的 PSN 奖杯、DIYgod 的 Twitter 更新、DIYgod 喜欢的网易云音乐、DIYgod 的 bilibili 投币视频等等,几乎包括了我的全部动态。

问:说起来集中在一个地方收取信息,你怎么看曾经的“即刻”应用,即刻应用也可以关注特定的人、微博之类的,在一个地方查看所有的信息。

DIYgod:我非常喜欢“即刻”,在“即刻”倒闭之前也一直在使用它,早期很像一个 RSS 阅读器,甚至真的可以订阅 RSS,但后来这些功能越来越淡化直至去掉了,取而代之的都是 UGC 内容了。

问: RSSHub 里有非常多的“路由”,包括社交媒体、新媒体、论坛等。除了我们一般意义上的信息流转化 RSS 以外,RSSHub 还有非常多有意思的 Feed,比如高校教务处通知的 RSS Feed,就你自己而言,你最喜欢 RSSHub 中的哪一个条目?

DIYgod:那当然是 “RSSHub 有新路由啦”。

问:那么,除了 RSSHub,你还会使用哪些 RSS 生态中的工具呢?

DIYgod:除了 RSS 阅读器和支持 RSS 的 BT 客户端,还有 IFTTT 和 Tiny Tiny RSS 及其插件。

问:RSSHub 是一个基于 MIT 许可证开源的项目,你自己当初是怎么走上开源的“不归路”的呢?

DIYgod:刚学前端的时候,为了练手写了几个很简单的小项目,然后把它们传到了 GitHub 上想着找工作时候可以用到,没想到真的有人会去用自己写的东西,收获了第一个 提案 issue ,第一个星标,第一个拉取请求,就这样发现了其中的乐趣,打开了新世界的大门。

问:RSSHub 是中国的个人开发者开源的项目中首屈一指的项目,获得了非常多的星标 ,也有很多贡献者,对于开源,你有什么想要告诉大家的么?或者说,在你看来,想要做好开源,最重要的是什么?

DIYgod:希望大家没尝试过的都尝试一下,收获第一个星标,第一个拉取请求的快乐无法描述,不仅可以帮到别人,也可以快速地提升自己;最重要的是兴趣,开源项目需要投入大量的业余时间去更新维护,用爱发电,然后是持之以恒,挖一个坑很容易,但后续的更新维护也很重要。

问:RSSHub 项目的社区化非常的高,有 300 多位贡献者,很多社区开源项目都难以获得这么多的社区贡献者,你是如何让这些来自全国的开发者相互协同的呢?

DIYgod:我觉得这更多的是跟项目性质有关系,RSSHub 是一个需要大量人力来适配各种网站的规则的项目,可以参与的地方很多,参与门槛不高,又能获得非常积极的反馈。

  1. 可以参与的地方很多:每个 RSS 路由都对应一个脚本,可以让很多人参与进来。
  2. 参与门槛不高:脚本的编写难度不高,RSSHub 还有非常详细的开发文档,进一步降低了开发门槛,然后采用了统一代码规范,严格的自动化测试来避免出现问题。
  3. 积极的反馈:可以很方便地自己动手制作自己想要的 RSS 源并分享给很多人用,同时在文档对应的 RSS 源也标记了路由作者的名字。

问:现在有一个机会,你可以推荐一个东西给大家,你会推荐什么?可以是软件、可以是网络服务、可以是硬件,Everything is Ok.

DIYgod:PS4 和 Switch — “No Game No Life”;跟 RSS 相关的再推荐一下“快知 APP”。

问:大家在哪里可以找到你呢?

DIYgod:

  • GitHub:@DIYgod;
  • Twitter:@DIYgod;
  • 博客:diygod.me;
  • Telegram频道:@awesomeDIYgod

关于穿山甲专访

“穿山甲专访”栏目是 Linux 中国社区推出的面向开源界、互联网技术圈的重要领军人物的系列采访,将为大家介绍中国开源领域中一些积极推动开源,谙熟开源思想的技术人,并辨析其思考、挖掘其动因,揭示其背后所发生的事情,为关注开源、有志于开源的企业和技术人标出一条路径。

取名为“穿山甲”寓意有二:取穿山甲挖掘、深入之意来象征技术进步和表征技术领袖的作用;穿山甲是珍稀保护动物,宣传公益。

如果你希望加入到穿山甲计划专访中,请访问 https://jinshuju.net/f/9X8gvG ,填写报名表。