2000 行代码在 RISC-V 模拟器上跑 Linux

How to bring up the Linux Kernel on a new platform

2000 行代码在 RISC-V 模拟器上跑 Linux

大多数嵌入式系统依赖 Linux,但面对定制硬件时,我们仍需亲手完成内核的启动工作。这次我并未使用实体 PCB,而是用约 2000 行 C++ 代码构建了一个极简的 RISC-V 模拟器。我实现了 RV32IMA 指令集、简单的 RAM 外设、基于 WD8250 的 UART 以及 SBI 定时器接口。接着,我利用 crosstool-ng 编译了针对 riscv32-unknown-linux-gnu 的交叉工具链,并配置编译了 Linux Kernel。最后,通过编写一个简单的 init 程序、构建 initramfs 以及定义 Device Tree,成功让 Linux 在这个纯软件模拟的环境中运行起来。整个过程展示了从零开始搭建 Linux 运行环境的核心要素。

尽管 Linux 是非常复杂的软件,但它运行所需的硬件条件其实并不多。

同日更多故事

2026-09-07