龙蜥开发者说:社区首个支持 LoongArch架构的操作系统构建之路 | 第 9 期

简介: 第一次真正走完OS构建全套流程是参与 LoongArch SIG 组以后,这给了我一个很好的机会,让我尝试从0到1去做一个系统。


「龙蜥开发者说」第 9 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者张文龙来分享「社区首个支持 LoongArch 架构的操作系统构建之路」。


欢迎阅读上期故事《龙蜥开发者说:首次触电,原来你是这样的龙蜥社区?| 第 8 期》。开发者说系长期活动,对于积极投稿、多次分享的童鞋,我们还有神秘大礼鼓励!诚邀开发者们分享真实体验,以文会友、共同学习、一起进步。

张文龙.png

本期故事主角:张文龙,「 龙蜥社区 2021 年度突出贡献奖」获得者;龙蜥社区 LoongArch SIG 核心成员,负责 Anolis OS LoongArch 版本移植开发工作,专注于 LoongArch 架构下服务器操作系统及云计算生态建设。


回想起来,我从开始接触 Linux 到现在已经有好几年了。最早我的工作仅限于写写代码、跑一些服务或者为 Linux 做一些安全加固,从来没有考虑过自己使用的操作系统是怎么来的,毕竟 CentOS 等主流 Linux 系统可以免费使用,谁还会想着去重新构建一套呢,所以我也就抱着“已经有成品,何必再造轮子”的想法就这样一直工作着。但随着操作系统的迅速发展,国内自主指令集的诞生,新架构下的操作系统也提上议程。

以前使用 Linux,基本上是在 x86 架构下,但后来由于日常工作环境需要,所以要切换到 MIPS,再到现在的 LoongArch 架构下。相比之下,MIPS、LoongArch 的生态环境明显是比不过 x86 的。一开始使用的时候我很不习惯,因为以前在 x86 上能够安装并正常使用的各种软件包,现在在 MIPS、LoongArch 环境下却不能使用。因为刚开始使用,所以很不习惯,会有一种“摔键盘”的冲动,但冷静下来又不得不接受这样的现状。慢慢地我就想,既然我改变不了使用 MIPS、LoongArch 的现状,自己为什么不能尝试做做改变呢?


很快我就转变思路,从没有现成的就自己创造开始,到逐渐主动去尝试自行进行移植开发,从新鲜到习惯,有种“自己动手丰衣足食”的感觉。比如 MIPS,从零开始,边用边学,MIPS 寄存器、汇编、指令集,开始为 MIPS 造轮子、拓生态。“逢山开路、遇水架桥”,慢慢地可以直接安装的软件包变多了,生态也起来了。后来我们推出了自主 LoongArch 指令集,由于有了 MIPS 相关移植经验,拓宽 LoongArch 生态便没那么发愁了。


像在城市中铺路、像在河流上架桥、像把白纸写满黑字,新架构下生态建设速度明显加快。大概用了半年多的时间,LoongArch 架构下我们内部推出了基于 Debian 的桌面操作系统 Loongnix 20、基于 CentOS 的服务器操作系统 Loongnix Server 8.3 和基于 Alpine 的轻量级 Linux 发行版,直到现在 kernel、gcc、ffmpeg、golang 等核心组件已经在上游社区稳步推进,而且周边好多软件也逐步进入社区,LoongArch 架构下操作系统及云计算生态水平已经基本对齐并超过 MIPS,相信不久的将来,LoongArch 会在上游社区遍地开花。

640.png 图/部分可在LoongArch下运行的云计算相关的组件)


仔细回顾,与其说以前是从事操作系统相关工作,不如说我好像只是一个部分环节的参与者,实际上并没有走过完整的流程。现在想想,第一次真正走完操作系统构建全套流程是从参与龙蜥社区 LoongArch SIG 组之后才开始的,这给了我一个很好的机会,让我尝试从 0 到 1 去做一个系统。记得最初要给社区提供一个 LoongArch 架构的最小编译环境,这个过程完全跟以往在 x86 平台下的操作系统重构不一样,要做的是一个全新指令集的编译环境,刚开始社区 LoongArch 架构下一个软件包都没有,有种无从下手的无力感,但后来静下心来查找资料、整理思路,自己梳理了构建流程,从构建 LFS(Linux From Scratch) 开始,到移植开发操作系统软件包、软件源创建、解依赖、软件签名,再到做 rootfs、最小 iso、qcow2,整个过程做了个遍,一步步实现了操作系统从 0 到 1 的转化。

640 (15).png

 (图/LoongArch 版本发布)


其实刚开始做的时候挺痛苦,因为最初所有工作不能并行,都是一环套一环,好多工作需要只能一个人参与,遇到问题只能自己去查资料,这方面的资料又不是很多,个别问题一卡好几天,只能硬着头皮自己做,直到后来其他人才慢慢参与了进来。Anolis LoongArch 版本也慢慢地从刚开始一片荒漠的样子,进步到可以使用,从最初的一个 rootfs 环境,到后来的预览版,再到正式版就这样第一个支持 LoongArch 的社区操作系统诞生。


到现在为止,参与到龙蜥社区已经有一段时间了,在这里我能够感受到自身成长的速度,明白需要学习的还有很多,也非常感谢社区对我过去工作的认可。一路走来,深切的感受到这是一个比较开放的大家庭,希望能有更多的开源爱好者能参与进来,也希望大家能在使用 LoongArch 架构的同时积极为社区贡献自己的一份力量。如果发现有不支持的软件,也能积极地参与移植开发,并贡献自己的代码到龙蜥社区或者上游社区,共建 LoongArch 生态大家园,为早日实现多架构同源异构添砖加瓦,这样一个真正的支持自主指令集的操作系统才能越发蒸蒸日上。

640 (16).png

(图/获得龙蜥社区 2021 年度「突出贡献奖」)


欢迎大家加入 LoongArch SIG 共建,SIG 地址:

https://openanolis.cn/sig/LoongArch

龙芯开源社区:
http://www.loongnix.cn/zh/

龙芯容器镜像仓库:
https://cr.loongnix.cn/search

Loongnix 操作系统新闻发布:
http://www.loongnix.cn/zh/loongnix/


更多龙蜥开发者的故事,可阅读往期开发者说:

【1】首次触电,原来你是这样的龙蜥社区?| 第 8 期

【2】不忘初心,方得始终 | 第 7 期

【3】我的操作系统之路,坚持从实践中来,到实践中去 | 第6期
【4】从零开始的创造,是动力也是挑战 | 第5期
【5】学无止境的 Linux ,以及我的第一个定制版本发布之路 | 第4期
【6】聊一聊我技术生涯的“三次迭代” | 第 3 期

【7】从入坑到入门 | 第 2 期

【8】做开源,兴趣是最好的源动力 | 第1期


—— 完 ——

加入龙蜥社群


加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!

公众号&小龙交流群.png

关于龙蜥社区


龙蜥社区(OpenAnolis)由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的Linux 上游发行版社区及创新平台。

龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。

目前,Anolis OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。

欢迎下载:

https://openanolis.cn/download

加入我们,一起打造面向未来的开源操作系统!

https://openanolis.cn

相关文章
|
18天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
1月前
|
安全 物联网 Android开发
构建未来:移动应用开发与操作系统的融合创新
在数字化时代的浪潮中,移动应用与操作系统是推动社会互联和技术创新的双引擎。本文将深入探讨移动应用开发的最新趋势,分析移动操作系统如何适应这些变化,并预测这两者之间相互作用的未来走向。通过对现有技术框架的剖析及新兴技术的考察,我们旨在为开发者提供一个清晰的发展蓝图,同时为读者揭示这一领域潜在的转型与机遇。
9 0
|
1天前
|
消息中间件 负载均衡 持续交付
构建高效微服务架构:后端开发者的终极指南
【4月更文挑战第25天】在当今软件工程领域,微服务架构已经成为实现可扩展、灵活且容错的系统的首选模式。本文将探讨如何从零开始构建一个高效的微服务系统,涵盖关键组件的选择、通信机制、数据管理以及持续集成和部署策略。通过深入分析与案例研究,我们旨在为后端开发者提供一个全面的微服务实践指南,帮助他们在构建现代化应用时做出明智的架构决策。
|
1月前
|
人工智能 搜索推荐 安全
构建未来:移动应用开发与操作系统的创新之旅
随着技术的不断进步,移动应用和操作系统已成为现代社会不可或缺的组成部分。本文将深入探讨移动应用开发的新趋势、移动操作系统的关键创新以及这些技术如何塑造我们的互动方式和业务模式。我们将分析跨平台开发工具的兴起、人工智能在移动应用中的角色、操作系统安全性的最新进展,以及5G网络对移动应用性能的影响。通过对未来技术的前瞻性思考,我们还将讨论开发者和企业在保持竞争力时必须考虑的策略。
13 2
|
1月前
|
Java Linux 编译器
Alibaba Cloud Linux 解锁云算力-软硬协同构建云上最佳操作系统体验
为什么需要做软硬件协同?在后摩尔时代,整个算力的提升逐渐放缓,那怎么提升计算机性能?
|
1月前
|
弹性计算 Java 关系型数据库
ARM架构和避坑指南|开发者分享会
今天分享的内容来自阿里云倚天ECS高级架构师张先国的“ARM架构和避坑指南”。本文内容主要从ARM架构、C和Java如何避坑 、等方面详细讲解。
|
2月前
|
IDE Linux 开发工具
DP读书:鲲鹏处理器 架构与编程(十三)操作系统内核与云基础软件
DP读书:鲲鹏处理器 架构与编程(十三)操作系统内核与云基础软件
67 1
|
2月前
|
Unix Linux iOS开发
操作系统透视:从历史沿革到现代应用,剖析Linux与网站服务架构
操作系统透视:从历史沿革到现代应用,剖析Linux与网站服务架构
56 0