这里记录一次linux期末实验作业的过程:
实验作业要求如下:
1.选择一个嵌入式CPU的模拟器下载并安装。推荐但不限于以下几个模拟器:
GEM5
QEMU
Spike
Sail
在该模拟器中运行RISCV(从零开始手写一个RISCV模拟器也可以)或LA64(Loongarch)或其他嵌入式cpu。
2.选择目标指令集架构:
RISCV(RV32 / RV64)
LA64(LoongArch 64 位)
或其他你感兴趣且有工具链支持的嵌入式架构。
3.在宿主机上安装所需软件环境:
对应架构的交叉编译工具链(如 riscv64-linux-gnu-gcc 等);
源码管理与构建工具(git、make等);
4.在模拟器上启动 Linux 内核
观察并记录启动日志。
若启动失败,进行排错:
5.编写并运行 “Hello World” 程序
在宿主机上编写一个简单的 C 语言 “Hello World” 程序
使用交叉编译工具链,为目标架构编译该程序:
在模拟器中启动 Linux,登录到 shell 或进入命令行环境,执行该 “Hello World” 程序
我选择的是,在虚拟机的Ubuntu22.04上通过XQUME安装RISC-V架构的linux系统并写helloworld进行测试;
最终效果图如下所示:
文章目录
- 步骤0:准备环境
- 步骤 1:选择并安装模拟器
- 选择:QEMU
- 步骤 2:选择目标架构
- 选择:RISC-V 64位 (RV64)
- 步骤 3:获取并编译 Linux 内核
- 步骤 4:制作根文件系统(rootfs)
- 步骤 5:在 QEMU 中启动 Linux
- 步骤 6:编写并运行 Hello World 程序
步骤0:准备环境
在虚拟机的ubuntu22.04上进行以下配置:
更新系统
sudo apt update
sudo apt upgrade -y安装必要的基础工具:编译和运行模拟器所需的基础开发工具
sudoaptinstall-y\build-essential\git\wget\curl\vim