龙蜥开发者说:社区首个支持 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

相关文章
|
12天前
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
18天前
|
运维 持续交付 API
从零构建微服务架构:一次深度技术探索之旅####
【10月更文挑战第28天】 本文记录了作者在从零开始构建微服务架构过程中的深刻技术感悟,通过实战案例详细剖析了微服务设计、开发、部署及运维中的关键要点与挑战。文章首先概述了微服务架构的核心理念及其对企业IT架构转型的重要性,随后深入探讨了服务拆分策略、API网关选型、服务间通信协议选择、容器化部署(Docker+Kubernetes)、以及持续集成/持续部署(CI/CD)流程的设计与优化。最后,分享了在高并发场景下的性能调优经验与故障排查心得,旨在为读者提供一套可借鉴的微服务架构实施路径。 ####
55 3
|
20天前
|
存储 人工智能 运维
|
8天前
|
传感器 算法 物联网
智能停车解决方案之停车场室内导航系统(二):核心技术与系统架构构建
随着城市化进程的加速,停车难问题日益凸显。本文深入剖析智能停车系统的关键技术,包括停车场电子地图编辑绘制、物联网与传感器技术、大数据与云计算的应用、定位技术及车辆导航路径规划,为读者提供全面的技术解决方案。系统架构分为应用层、业务层、数据层和运行环境,涵盖停车场室内导航、车位占用检测、动态更新、精准导航和路径规划等方面。
43 4
|
6天前
|
Kubernetes API Docker
构建高效后端服务:微服务架构的深度实践与优化####
本文深入探讨了微服务架构在现代后端开发中的应用,通过剖析其核心概念、设计原则及实施策略,结合具体案例分析,展示了如何有效提升系统的可扩展性、可靠性和维护性。文章还详细阐述了微服务拆分的方法论、服务间通信的最佳实践、以及容器化与编排工具(如Docker和Kubernetes)的应用技巧,为读者提供了一份全面的微服务架构落地指南。 ####
|
17天前
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。
|
20天前
|
人工智能 测试技术 Anolis
英特尔携手龙蜥,共筑未来操作系统
英特尔与龙蜥社区的合作成果、未来计划。
下一篇
无影云桌面