写点什么

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

  • 2022 年 7 月 18 日
  • 本文字数:2155 字

    阅读完需:约 7 分钟

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


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



本期故事主角:张文龙,「 龙蜥社区 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 会在上游社区遍地开花。



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


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



(图/LoongArch 版本发布)


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


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



(图/获得龙蜥社区 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/


—— 完 ——

用户头像

还未添加个人签名 2021.07.20 加入

OpenAnolis龙蜥社区 由国内外头部企业联合建立的操作系统开源社区。加入我们,一起打造面向未来的开源操作系统。 社区官网:openanolis.cn|微信公众号:OpenAnolis龙蜥

评论

发布
暂无评论
龙蜥开发者说:社区首个支持 LoongArch架构的操作系统构建之路 | 第 9 期_开源_OpenAnolis小助手_InfoQ写作社区