Skip to content

Zera-Algorithm/farmos

Repository files navigation

FarmOS

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

编译 FarmOS

克隆本仓库代码到本地,然后运行:

make

即可编译得到 FarmOS 内核二进制文件 kernel-qemu.

运行 FarmOS

运行:

make qemu

可以运行FarmOS操作系统。

调试 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 用户代码

常用的 Makefile 命令

  • make / make all:生成内核镜像文件
  • make clean:清空编译中间文件和目标文件
  • make qemu:在qemu中运行FarmOS
  • make qemu-gdb:使用gdb调试内核
  • make check-style:使用clang-format检查C代码格式是否符合规范。代码规范位于 .clang-format 文件内
  • make fix-style:使用clang-format自动修复C代码的格式

文档列表

架构与工具使用笔记

区域赛文档

全国赛文档

全国赛现场赛文档

各阶段代码存档

参考资料

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •