FarmOS 是北京航空航天大学的三名本科生共同开发的基于 RISC-V 的宏内核类 Unix 操作系统。
- 安装基础构建工具 GNU/make、GNU/Bash
- 安装 Python 3
- 安装 RISCV 64位 gcc 编译工具链
riscv64-unknown-elf-gcc
riscv64-unknown-elf-ld
- ...
riscv64-unknown-elf-gdb
- 安装 Qemu-7.0.0 for Riscv64
在 Ubuntu 22.04 下安装 riscv64-unknown-elf-*
系列编译器:
sudo apt install gcc-riscv64-unknown-elf
调试器则需要自行编译安装。
安装 Qemu:
sudo apt install qemu-system-riscv64
克隆本仓库代码到本地,然后运行:
make
即可编译得到 FarmOS 内核二进制文件 kernel-qemu
.
运行:
make qemu
可以运行FarmOS操作系统。
运行:
make qemu-gdb
之后新建一个终端窗口,输入:
riscv64-unknown-elf-gdb kernel-qemu
用于加载内核二进制文件中的符号并开始调试。
然后在gdb提示符下,输入 target remote localhost:26000
连接调试端口。这样就可以开始调试了。
include
/kern
boot
启动相关代码dev
硬件抽象层driver
驱动fs
文件系统lib
通用库lock
锁mm
内存管理proc
进程管理trap
中断处理kernel.asm
内核反汇编文件Makefile
lib
用户与内核的通用库linker
链接脚本scripts
辅助脚本user
用户代码
make
/make all
:生成内核镜像文件make clean
:清空编译中间文件和目标文件make qemu
:在qemu中运行FarmOSmake qemu-gdb
:使用gdb调试内核make check-style
:使用clang-format检查C代码格式是否符合规范。代码规范位于.clang-format
文件内make fix-style
:使用clang-format自动修复C代码的格式