2022 年上游社区的各项工作在积极推进中,截止到目前,可用于构建操作系统发行版的组件大部分已经进入上游,并且陆续出现一些基于上游社区的发行版。
上游社区提交情况
今年进入上游社区的软件很多,比如内核、工具链、qemu等等,由于软件数量过多,不再一一进行列举,以下仅说明目前仍在积极向上游提交、审核中的关键组件情况:
llvm/clang: 积极提交补丁中,预计 16 版本将直接支持 LoongArch
grub: 积极提交补丁中,预计 2.12 版本将直接支持 LoongArch
rust: 已有部分模块进入上游,主分支依赖于 llvm 先支持
Haskell/ghc: 积极提交补丁中,预计等 llvm 16 发布后可用
…
上游社区发行版情况
Archlinux
Archlinux 是首个提供安装光盘的上游发行版,首次对外发布版本为2021.07 ,后经过多次重构,先后又发布了 2022.03 、2022.09 等版本,从 2022.09 版本开始,上游用户态ABI趋于稳定,开始滚动升级,目前已经升级到 2022.12 版本。
开发者: 武老师
源码仓库: https://github.com/loongarchlinux
仓库地址: https://mirrors.wsyu.edu.cn/loongarch/archlinux
下载地址: https://mirrors.wsyu.edu.cn/loongarch/archlinux/iso/
主要特性:
- 基于 v2.0 ABI 的新世界系统
- 滚动更新,组件和 Archlinux x86_64 保持一致,通常会晚于 x86_64 一个月左右。
- 提供 debuginfod 服务,运行 gdb 时自动从远程服务器下载 debug 包
- 提供 setup 中文 TUI 安装界面
- 不定期发布 snapshot iso 镜像,安装建议使用最新版本。
- 目前已有 xfce4、mate、lxde、lxqt、cinnamon 等桌面环境,其它桌面环境会陆续补充完整。
- 提供预安装的 qemu qcow2 体验镜像 ,用户名和密码均为 loongarch
- 增加 laur 仓库,提供 LoongArch 架构典型应用
- 完全清理了 python2 软件包
- 支持二进制翻译应用(有彩蛋)
CLFS
CLFS 是 LoongArch 架构上游社区当之无愧的的第一个发行版,其他发行版都直接或间接地借助于 CLFS 完成了 bootstrap。
CLFS 为 LoongArch 工具链、内核等重要基础组件提供了测试验证环境,并持续进行重构,为基础组件尽快推进上游提供了坚实的基础。
开发者: 豹老师
下载地址: https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases/tag/7.0
主要特性:
- 基于 v2.0 ABI 的新世界系统
- 提供交叉编译工具链
- 提供启动系统包
- 提供基础系统包
- 提供图形登录管理器
- 提供LXDE桌面环境
Debian(开发中)
移植进度: https://wiki.debian.org/Ports/loong64
Fedora(开发中)
开发者: 豹老师
源码仓库: https://github.com/fedora-remix-loongarch
仓库地址: https://mirrors.wsyu.edu.cn/fedora/
下载地址: https://github.com/fedora-remix-loongarch/releases-info/releases
主要特性:
- 基于 v2.0 ABI 的新世界系统。
- 采用Fedora的rawhide仓库滚动更新,软件版本较新。
- 软件仓库中提供的可安装文件已超过5万个。
- 提供与Fedora主流架构相同的安装和使用方式。
Gentoo(官方发布)
Gentoo 移植开始于2021年08月11日,是首个采用 ARCH=loong
的新世界发行版,也是首个由上游直接发布 LoongArch 架构的发行版。
开发者: 白老师
源码仓库: https://gitweb.gentoo.org/
下载地址: https://www.gentoo.org/downloads/#loong
主要特性:
- 基于 v2.0 ABI 的新世界系统
- Gentoo 官方发布
Slackware
开发者: 史老师
源码仓库: https://github.com/slackwarecn/slackware-loongarch64
仓库地址: http://pkg.iloongarch.cn/slackwareloong/slackware64-current
下载地址: http://pkg.iloongarch.cn/slackwareloong/iso
主要特性:
- 基于 v2.0 ABI 的新世界系统。
- 目前已有 xfce4 桌面环境,其它桌面环境会陆续补充完整。
嵌入式和教学操作系统
除了上述通用的Linux发行版,一个完善的软件生态中还需要许多面向不同领域的嵌入式系统以及一些专门为了教学而生的教学操作系统,2022年社区在这方面也取得了较大的进展。
mit xv6-loongarch
xv6 是MIT开发的一个类Unix教学操作系统,与Linux或BSD不同,xv6非常简单,足以在一个学期内讲完,但仍包含Unix的重要概念和组织结构。xv6被全世界很多高校用于操作系统教学。
开发者: 深圳大学罗老师
仓库地址: https://github.com/skt-cpuos/xv6-loongarch-exp
主要特性:
- 基于v2.0 ABI的新世界系统
- 仓库含OS代码、实验代码、实验指导书和PPT演示资料,可以直接用于操作系统教学
mit xv6-labs
本项目是xv6-labs-2021相关实验在LoongArch平台的参考实现。具体的实验设计参见xv6主页 的labs标签页。
实现者: 邓老师
仓库地址: https://github.com/Fan33oo/xv6-labs-loongarch
主要特性:
- 完成utils,syscall,pgtbl,trap,cow,thread,mmap实验
- net实验,pci设备支持,有待完善
- lock实验,龙芯qemu还不支持多核
- fs实验,龙芯qemu内存限制,有待完善
uCore
uCore OS清华大学计算机系开发的教学操作系统。本项目基于ucore-thumips ,现移植到LoongArch 32。并成功跑通了所有的用户进程。
开发者: 重庆大学陈老师
仓库地址: https://github.com/cyyself/ucore-loongarch32
实验指导书: https://cyyself.github.io/ucore_la32_docs
主要特性:
- 基于v2.0 ABI的新世界系统
- 可运行在LoongArch开源Soc平台
- 成功跑通所有的用户进程
- 实验环境有Docker镜像支持,使用
docker pull chenyy/la32r-env
进行安装,在该容器编译
rCore
rCore是清华教学操作系统的rust版本。2022年全国大学生操作系统大赛上北理工陈同学将其移植到LoongArch平台。
开发者: 北理工陈老师
仓库地址: https://github.com/Godones/rCoreloongArch
主要特性:
- 基于v2.0 ABI的新世界系统
- 支持ch0-ch8实验
- 支持简易内核栈回溯
- 项目荣获2022年全国大学生操作系统大赛-功能挑战赛二等奖。
MaQueOS
本项目是用于兰州大学的教学操作系统,兰州大学相关团队为其编写了教材《MaQueOS:基于龙芯LoongArch架构的教学版操作系统》。
开发者: 兰州大学周老师团队
仓库地址: https://gitee.com/dslab-lzu/maqueos
主要特性:
- 基于v2.0 ABI的新世界系统
- 项目有配套教材
- 实验丰富,12章实验涵盖内存管理、文件系统、设备管理等
Yocto
Yocto是用于定制嵌入式Linux系统的主流工具之一。龙芯相关团队基本完成了yocto的LoongArch支持工作,可以在x86平台和LoongArch平台从零构建定制的Linux/LoongArch嵌入式系统,并生成相应的SDK。基础支持部分已经进入上游yocto社区。
开发者: 龙芯团队
参考仓库地址:
- https://github.com/foxsen/poky(openembedded 参考系统) + https://github.com/foxsen/meta-loongson(LoongArch相关BSP层)
- https://github.com/yoctoproject/poky
主要特性:
- 基于v2.0 ABI的新世界系统
- 基于上游开源软件构建
seL4
seL4是首个经过形式化验证的微内核,是经典的L4系列微内核的一种实现,具有安全、高性能、高可靠等特色。已在2022年移植到了LoongArch架构,并通过了其自带的所有测试。
开发者: tyyteam
主仓库地址: https://github.com/tyyteam/la-seL4
主要特性:
其他进行中的工作
Fuchsia kernel
zircon是Google fuchsia系统的微内核。基于PanQL 分离的zricon代码 ,龙芯相关同学完成了向LoongArch架构的初步移植。
开发者: 徐老师 耿老师
仓库地址: 代码完善后即将公开
主要特性:
- 基于v2.0 ABI的新世界系统
- 目前进度:可以shell,支持简单的cd,ls等命令
NuttX
NuttX是完全兼容Posix和ANSI标准的嵌入式实时系统,有着轻量级、定制化的特点,已被广泛应用在成熟的商业系统或软件中,如小米Vela系统、三星Tizen RT系统、px4飞行控制软件。
开发者: 刘老师
仓库地址: https://github.com/LA-NuttX
主要特性:
基于v2.0 ABI的新世界系统
正在移植flat build模式的nsh64程序
计划移植kernel build模式
计划移植knsh64、smp64、net64程序