Skip to content

Repository files navigation

OSKernel2025-WHU-OSLab

一、简介

whu-oslab 是基于 xv6 架构设计,并针对 2025年全国大学生计算机系统能力培养大赛 (OSComp) 进行改造与优化的 RISC-V (rv64) 操作系统内核。

主要特性:

  • 核心架构: 基于 RISC-V 64位架构,支持 Sv39 分页机制与 M/S/U 特权级切换。
  • 文件系统: 移除了原版简易文件系统,完全重写并适配了 FAT32 文件系统,支持长文件名 (LFN)、多簇读写与 Buffer Cache 高速缓存。
  • 进程管理: 实现了完善的进程生命周期管理,支持 fork/exec/wait 原语,以及管道 (pipe) 等 IPC 机制。
  • 内存管理: 采用物理页帧分配与缺页异常处理相结合的策略,支持 brk/mmap 等系统调用。

二、初赛完成情况

指令集架构: RISC-V (VisionFive 2 / QEMU)

截至目前,本项目已通过所有基础功能测试用例 (Pass All Tests),涵盖:

  • 基础系统调用 (fork, exec, wait, exit, getpid, etc.)
  • 文件系统操作 (open, read, write, mkdir, mount, etc.)
  • 内存管理 (brk, mmap, munmap)
  • 进程间通信 (pipe)
  • 时间与杂项 (gettimeofday, times, uname)

详细的实现细节与设计思路请参阅 design.md


三、启动运行说明 (Build & Run)

推荐使用 Docker 容器以获得统一的开发环境。我们已配置 VSCode 调试支持 (Launch Configuration),可直接在 IDE 中进行源码级调试。

1. Docker 环境配置

获取镜像:

docker pull docker.educg.net/cg/os-contest:2024p8.3

启动容器:

docker container run -it --name oslab --rm \
  -p 127.0.0.1:26000:26000 \
  --mount type=bind,src=.,dst=/riscv-os \
  -w /riscv-os \
  docker.educg.net/cg/os-contest:2024p8.3 /bin/bash

2. 编译与运行

进入容器后:

# 编译并运行 (QEMU)
make qemu

3. 调试 (Debugging)

方式一:命令行 GDB

  1. 启动 QEMU 并在 26000 端口等待:
    make qemu-gdb
  2. 新开一个终端连接:
    riscv64-unknown-elf-gdb kernel-qemu -ex "target remote localhost:26000"

方式二:VSCode 调试器 (推荐)

  1. 在 VSCode 中按 F5 (启动 "GDB Remote" 配置),即可直接连接容器进行断点调试。

四、文档

  • 设计与分析文档 (design.md): 项目的核心文档,包含系统架构图、各模块详细设计(内存、进程、FS)、遇到的重难点问题及解决方案。
  • 原始设计文档(.md): 项目的初始文档,描述了本项目在未移植支持到比赛内核时的设计。

五、演示视频

本项目的设计展示与功能演示视频已上传至百度网盘:


六、参考资料

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages