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/

相关推荐
国科安芯4 天前
小卫星综合电子系统中RISC-V抗辐射MCU的功能安全与多接口集成架构分析
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
论迹复利4 天前
PendSV与RISC-V trap——上下文切换的两种设计哲学
内核·freertos·risc-v
hongmai6668886 天前
竖插专用:ESP8684-WROOM-07-H2X模组上手记录
笔记·单片机·嵌入式硬件·物联网·risc-v
dozenyaoyida7 天前
LittleFS 嵌入式文件系统机制拆解与某 RISC-V MCU 实测配置
单片机·嵌入式·文件系统·risc-v·littlefs·flash存储
hongmai6668887 天前
把玩ESP8684-WROOM-04C-H4X:一颗耐高温的RISC-V小钢炮
笔记·单片机·嵌入式硬件·物联网·risc-v
硅农程序猿15 天前
从需求到硅片| 一文讲清数字芯片设计流程
arm开发·硬件架构·risc-v
hongmai66688820 天前
ESP32-WROVER-B-N8R8:8MB PSRAM加持的经典双核模组,现在还值得选吗?
单片机·嵌入式硬件·物联网·智能路由器·risc-v
hongmai66688820 天前
GK7205V300芯片深度解析:H.265低功耗视觉主控,助力安防监控高效选型
arm开发·嵌入式硬件·物联网·智能家居·h.265·risc-v
2301_8059629322 天前
在昉星光2(RISC-V)上构建每日短视频自动生成器
音视频·risc-v
hongmai66688823 天前
聊聊ESP32-C3-WROOM-02-N8这颗8MB Flash的RISC-V模组
笔记·嵌入式硬件·物联网·智能路由器·risc-v