openEuler 在 QEMU 上的 RISC-V 编译与运行探索

背景概述:

RISC-V 作为一个开放、现代的指令集架构,正在快速崛起,成为继 x86 和 ARM 之后计算世界的第三极。操作系统对其支持的成熟度,是其生态发展的关键。openEuler 社区早已前瞻性地完成了对 RISC-V 架构的适配。本文旨在通过 QEMU 全系统模拟环境,从零开始搭建一个可运行的 openEuler for RISC-V 系统,并对其进行核心的编译能力与系统基准性能评测,用数据量化 openEuler 在这一前沿"自主创新"架构上的支持水平与性能表现。

一、搭建 RISC-V 模拟环境 (QEMU)

由于物理的 RISC-V 服务器尚不普及,我们将使用强大的开源模拟器 QEMU 来创建一个虚拟的 RISC-V 64位开发环境。本次操作在 x86 架构的 openEuler 主机上进行。

1. 安装 QEMU 及依赖

openEuler 的软件源中包含了我们需要的 QEMU 版本。

复制代码
# 安装 QEMU RISC-V 模拟器及固件
sudo dnf install -y qemu-system-riscv64 edk2-rv64

# 验证安装版本
qemu-system-riscv64 --version

2. 下载 openEuler for RISC-V 镜像

我们需要从 openEuler 社区获取预构建的 RISC-V 架构系统镜像和内核文件。

复制代码
# 创建工作目录
mkdir -p ~/riscv-openeuler
cd ~/riscv-openeuler

# 下载镜像文件 (注意:请使用社区发布的真实链接)
wget https://repo.openeuler.org/openEuler-22.03-LTS/RISC-V/QEMU/openEuler-22.03-LTS-riscv64.qcow2
wget https://repo.openeuler.org/openEuler-22.03-LTS/RISC-V/QEMU/fw_payload_oe_uboot.elf

# 查看下载的文件
ls -lh

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


二、启动并配置 openEuler for RISC-V 虚拟机

万事俱备,现在我们来点燃这个虚拟的 RISC-V 世界。

1. 编写启动脚本

为了方便管理 QEMU 的复杂参数,我们将其写入一个启动脚本。

复制代码
cat > start_riscv_vm.sh << 'EOF'
#!/bin/bash
qemu-system-riscv64 \
  -nographic \
  -machine virt \
  -smp 4 \
  -m 4G \
  -kernel ./fw_payload_oe_uboot.elf \
  -bios none \
  -drive file=./openEuler-22.03-LTS-riscv64.qcow2,format=qcow2,id=hd0 \
  -object rng-random,filename=/dev/urandom,id=rng0 \
  -device virtio-rng-device,rng=rng0 \
  -device virtio-blk-device,drive=hd0 \
  -device virtio-net-device,netdev=usernet \
  -netdev user,id=usernet,hostfwd=tcp::10022-:22 \
  -append "root=/dev/vda1 rw console=ttyS0"
EOF

chmod +x start_riscv_vm.sh

2. 首次启动并登录

复制代码
# 启动虚拟机
./start_riscv_vm.sh

你将看到熟悉的 Linux 启动日志在屏幕上滚动。等待片刻,系统将进入登录界面。

  • 默认用户名:root
  • 默认密码:openEuler

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3. 系统基础信息验证

登录后,我们立刻检查系统信息,确认我们正身处一个真实的 RISC-V 环境中。

复制代码
# (在 RISC-V 虚拟机内部执行)

# 检查操作系统版本
cat /etc/os-release

# 检查 CPU 架构,确认是 riscv64
uname -m

# 查看 CPU 信息
lscpu
三、编译能力体验

编译是评估处理器和操作系统协作能力的重要场景。我选择了一个中等规模的 C 项目------libpng,在 RISC-V 架构的 openEuler 系统中进行完整编译。通过观察编译速度、CPU 占用和多核并行效果,可以直观了解系统在实际开发工作负载下的表现。

1. 安装开发工具

复制代码
# (在 RISC-V 虚拟机内部执行)
dnf install -y gcc make tar

2. 下载并编译 libpng

复制代码
# (在 RISC-V 虚拟机内部执行)
wget https://download.sourceforge.net/libpng/libpng-1.6.37.tar.gz
tar -xzf libpng-1.6.37.tar.gz
cd libpng-1.6.37

# 配置并执行编译,使用 time 命令记录耗时
./configure
time make -j4
四、系统综合基准体验

接下来,我使用 nbench------一个经典的 Linux 系统综合性能工具,来观察系统在 CPU 计算能力和内存处理效率上的表现。通过实际运行各项基准任务,可以直观感受 openEuler 在 RISC-V 架构下的多核算力和内存管理能力。

1. 下载并编译 nbench

复制代码
# (在 RISC-V 虚拟机内部执行)
dnf install -y git
git clone https://github.com/kdlucas/byte-unixbench.git
cd byte-unixbench/nbench
make

2. 执行性能测试

复制代码
# (在 RISC-V 虚拟机内部执行)
./nbench

nbench 会执行一系列测试,包括整数运算、浮点运算、内存操作等,并给出一个相对于 "AMD K6-233" 的基准分数。

五、结果观察与总结

通过这次实践,我在 QEMU 上顺利运行了 openEuler for RISC-V,并记录了系统在多核计算、内存处理等方面的表现,为理解 RISC-V 架构下的 openEuler 系统能力提供了直观参考。

1. 性能数据汇总

评测项目 性能指标 结果 (QEMU 模拟环境)
编译性能 libpng 编译耗时 (real) [截图5数据]
CPU 性能 nbench 整数索引 [截图7数据]
CPU 性能 nbench 浮点索引 [截图7数据]
内存性能 nbench 内存索引 [截图7数据]

2. 核心优势分析

  • 生态完整性 :评测结果表明,openEuler for RISC-V 已经拥有一个功能完备的用户态环境。我们可以轻松使用 dnf 安装 gcc, git 等核心开发工具,并成功编译 libpng, nbench 等标准 C 项目。这证明了其软件生态的成熟度。
  • 架构的无缝支持:对于开发者而言,在 RISC-V 虚拟机中的操作体验(命令、工具、目录结构)与在 x86/ARM 上的 openEuler 几乎完全一致。这体现了 openEuler 优秀的跨架构设计,能够为开发者屏蔽底层硬件差异,提供一致的开发体验。
  • 性能前瞻:虽然本次测试是在 QEMU 模拟环境下进行,其性能无法与物理硬件直接对比,但它成功地建立了一个可量化、可重复的性能评测基线。这为未来在物理 RISC-V 硬件上进行性能优化和对比提供了宝贵的参考。

结论:

本次评测成功地在 RISC-V 这一前沿阵地上,验证了 openEuler 的技术实力和生态完整性。它不仅能"跑起来",更能提供一个稳定、可用、对开发者友好的软件环境。

随着 RISC-V 硬件生态的不断成熟,openEuler 凭借其在多样性算力支持上的前瞻性布局和深厚积累,无疑将成为这一全新赛道上的重要玩家,为构筑完全自主创新的计算体系提供坚实可靠的操作系统底座。

如果您正在寻找面向未来的开源操作系统,不妨看看DistroWatch 榜单中快速上升的 openEuler:https://distrowatch.com/table-mobile.php?distribution=openeuler,一个由开放原子开源基金会孵化、支持"超节点"场景的Linux 发行版。

openEuler官网:https://www.openeuler.openatom.cn/zh/

相关推荐
极创信息10 小时前
信创领域五种主流CPU架构(X86 / ARM / RISC-V / MIPS / LoongArch)
java·arm开发·数据库·spring boot·mysql·软件工程·risc-v
嵌入式小企鹅1 天前
CPU需求变化、RISC-V安全方案、DeepSeek V4适配、太空算力动态
人工智能·驱动开发·华为·开源·算力·risc-v
国科安芯3 天前
商业航天与航空安全场景下抗辐射 MCU 选型、应用实践及发展趋势
单片机·嵌入式硬件·无人机·cocos2d·risc-v
国科安芯3 天前
空间辐射环境下抗辐射 MCU 可靠性机理及航空安全应用研究综述
单片机·嵌入式硬件·macos·无人机·cocos2d·risc-v
国科安芯3 天前
航空安全关键系统抗辐射 MCU 加固技术、工程实现与典型应用
单片机·嵌入式硬件·无人机·cocos2d·risc-v
Captain_Data4 天前
AI 12小时设计CPU完整解析:从219字到RISC-V内核的技术突破
人工智能·python·ai·大模型·芯片设计·risc-v
圆山猫5 天前
[RISCV] 用 Rust 写一个 RISC-V BootROM:从 QEMU 到真实硬件(2)
rust·risc-v
嵌入式小企鹅5 天前
算力价值重估、AI编程模型齐开源、RISC-V融资15亿
人工智能·学习·ai·程序员·risc-v·前沿科技·太空算力
圆山猫6 天前
[Linux] 用 Buildroot 为 RISC-V QEMU 构建最小根文件系统
linux·运维·risc-v
圆山猫6 天前
[AI] [RISCV] 用 Rust 写一个 RISC-V BootROM:从 QEMU 到真实硬件
开发语言·rust·risc-v