RISC-V 模拟器与从零开始的 Linux 系统

Hacker News Top 工具

摘要

本仓库提供了 RISC-V 模拟器的源代码,以及从零开始构建一个最小 Linux 系统的教程,包括设备模拟和 WebAssembly 支持。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/09/11 14:24

WerWolv/riscv-emulator

源码仓库: https://github.com/WerWolv/riscv-emulator

从零构建RISC-V模拟器与Linux系统

本仓库包含跟随博客文章 https://werwolv.net/posts/linux_bringup/ 所需的全部源码

源代码

  • /lib 包含完整的 rv32ima 指令集模拟器代码及最小化模拟设备集
  • /main 包含机器配置参数及提供给WebAssembly的接口函数

配置文件

构建Linux所需的所有配置文件位于 /boot 目录。主程序默认要求所有编译产物存放在 boot 文件夹

  • riscv32-unknown-linux-gnu.config —— crosstool-ng 工具链配置文件
  • riscv_emulator_defconfig —— Linux内核配置文件
  • device_tree.dts —— 最小化设备树描述文件
    • 可通过 dtc -I dts -O dtb device_tree.dts -o device_tree.dtb 编译为二进制设备树
  • init.c —— 初始化程序源码
    • 可通过 riscv32-unknown-linux-gnu-gcc -static init.c -o init 静态编译
  • initramfs.txt —— gen_init_cpio 配置文件(用于生成初始内存盘)
    • 可通过 usr/gen_init_cpio initramfs.txt -o initramfs.cpio 生成cpio归档

相似文章

如何在新平台上移植Linux内核

Hacker News Top

本文以模拟RISC-V CPU为例,阐述如何在新平台上移植Linux内核,包含设置最小硬件组件的分步指导与代码实现。

突破 RISC-V 模拟的极限

Hacker News Top

这篇博客文章探讨了如何通过在非 RISC-V 机器上使用提前重编译器来加速 RISC-V 执行,该重编译器通过尾调用连接基本块,并利用 Clang 的 preserve_none 调用约定,作为 Axiom 的 OpenVM 项目的一部分。

书籍:RISC-V系统芯片设计

Hacker News Top

一本涵盖RISC-V微处理器和系统芯片详细设计的教材,包括用于单发射、超标量和多核实现的开源SystemVerilog代码和测试用例。

Scratch 中的 8086 模拟器

Hacker News Top

一位开发者在 Scratch 中构建了一个 8086 CPU 模拟器,展示了在可视化编程环境中的复古硬件模拟。