-
开发仓库: 🔗 GitHub - KidsZZ/F7LY-OS
-
完整设计文档: 📄 F7LY_OS决赛设计文档
-
现场赛文档: 📄 F7LY_OS现场赛文档
-
现场赛系统设计细节可参见决赛文档
-
物理硬件细节参见github仓库
Visionfive2分支 -
ppt见docs文件夹F7LYppt
F7LY OS 是一款基于 Xv6 修改而成的教学用操作系统,支持 RISC-V 和 LoongArch 双架构⚙️
它为操作系统开发者提供了丰富的内核模块化设计,涵盖从启动到文件系统的全链路支持。
make all # 同时构建 RISC-V 和 LoongArch 的内核镜像`-
make run启动 RISC-V 内核镜像 -
make debug使用 QEMU 启动 RISC-V 调试环境 -
在另一个终端执行:
gdb-multiarch -x debug_riscv.gdb-
make run ARCH=LOONGARCH启动 LoongArch 内核镜像 -
make debug ARCH=LOONGARCH使用 QEMU 启动 LoongArch 调试环境 -
在另一个终端执行:
loongarch64-linux-gnu-gdb -x debug_loongarch.gdb`make clean`F7LY OS 需要以下依赖环境:
-
操作系统: Ubuntu 24.04
-
交叉编译器:
-
RISC-V:
riscv64-linux-gnu-* -
LoongArch:
loongarch64-linux-gnu-*
-
-
QEMU: 9.2.1 (需支持 riscv64 和 loongarch64)
riscv64-linux-gnu-gcc --version # GCC (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
qemu-system-riscv64 --version # QEMU emulator version 9.2.1
riscv64-unknown-elf-gdb --version # GNU gdb (GDB) 13.2loongarch64-linux-gnu-gcc --version # GCC (GCC) 13.2.0
qemu-system-loongarch64 --version # QEMU emulator version 9.2.1
loongarch64-linux-gnu-gdb --version # GNU gdb (GDB) 12.0.50.20220221-git您可以从以下网站下载 GCC 和 GDB:
提示: 安装过程中可能需要安装一些动态链接库。
-
docs/ 📚 存放说明文档
-
kernel/ 🧩 内核源文件
-
user/ 👤 用户态源文件
-
sdcard/ 💽 挂载的文件系统映像(初赛映像文件)
kernel 目录中对代码进行了模块化分区,支持双架构设计:
-
boot 🚀 系统启动模块:实现从 Bootloader 到内核 main 的跳转,支持 RISC-V 和 LoongArch 启动流程。
-
devs ⚙️ 设备管理模块:提供统一的设备抽象层,支持 UART、控制台、磁盘等。
-
fs 📂 文件系统模块:VFS 层支持 ext4、FAT、ramfs;包含 inode 管理、目录项缓存等。
-
hal 🖥️ 硬件抽象层:封装 CPU 操作和上下文切换,兼容双架构。
-
libs 📚 内核库模块:字符串操作、内存分配器、模板算法、C++ 运行时等。
-
mem 🧠 内存管理模块:物理内存管理、伙伴系统、虚拟内存、堆分配、slab 分配器。
-
proc 👥 进程管理模块:进程创建、调度、信号、管道、锁等多进程支持。
-
sys 🛎️ 系统调用模块:系统调用分发、参数传递、权限检查。
-
trap ⚡ 中断与异常处理模块:中断向量表、异常处理、时钟中断管理。
-
tm ⏱️ 时间管理模块:定时器管理、时间接口等。
-
net 🌐 网络模块:预留网络协议栈接口。
