Skip to content

Linermao/SupremeOS

Repository files navigation

进栈不排队-OS原理赛道:模块实验创新赛道

  █████████                                                                         ███████     █████████
 ███░░░░░███                                                                      ███░░░░░███  ███░░░░░███
░███    ░░░  █████ ████ ████████  ████████   ██████  █████████████    ██████     ███     ░░███░███    ░░░
░░█████████ ░░███ ░███ ░░███░░███░░███░░███ ███░░███░░███░░███░░███  ███░░███   ░███      ░███░░█████████
 ░░░░░░░░███ ░███ ░███  ░███ ░███ ░███ ░░░ ░███████  ░███ ░███ ░███ ░███████    ░███      ░███ ░░░░░░░░███
 ███    ░███ ░███ ░███  ░███ ░███ ░███     ░███░░░   ░███ ░███ ░███ ░███░░░     ░░███     ███  ███    ░███
░░█████████  ░░████████ ░███████  █████    ░░██████  █████░███ █████░░██████     ░░░███████░  ░░█████████
 ░░░░░░░░░    ░░░░░░░░  ░███░░░  ░░░░░      ░░░░░░  ░░░░░ ░░░ ░░░░░  ░░░░░░        ░░░░░░░     ░░░░░░░░░
                        ░███
                        █████
                       ░░░░░

目录

基本信息

  • 比赛类型:OS原理赛道:模块实验创新赛道
  • 学校名称:杭州电子科技大学
  • 队伍编号:T202410336994460
  • 队伍名称:进栈不排队-SupremeOS
  • 队伍成员
    • 温学周
    • 林灿
  • 指导老师:杨浩

项目简介

本项目完整的文档目录为 doc/初赛文档.pdf,其中包含了详细的比赛报告,包括项目设计、实现、测试、评估等各个方面的内容。

SupremeOS 基于 MIT 开源的 Xv6 操作系统框架,构建 RISC-V 架构的类 Unix 操作系统。截至初赛,总共新增了19个系统调用,总计40个系统调用。

提升了三大模块相关内容:

  • 内存管理模块优化: 我们对内存管理模块进行了深度改进,实现了更高效、更智能的内存分配与回收策略,有效提升了系统资源的利用率和整体性能。

  • 进程通信模块升级: 在进程通信模块方面,我们引入了创新的通信机制,增强了进程间的交互能力,为多任务处理和并发执行提供了更稳固的支撑。

  • 进程管理模块强化: 我们对进程管理模块进行了全面强化,优化了进程调度算法,提高了进程的创建、切换和终止效率,进一步确保了系统的稳定性和响应速度。

项目总体结构图

SupremeOS 在深入研发与精心设计的基础上,共计新增了 2000+ 行的高质量代码,并引入了 10+ 种核心数据结构。在确保与现有系统组件实现无缝集成的同时,我们成功拓展了多样化的接口,显著增强了系统的功能性与扩展性,有效提高了内存的分配效率与回收速度,大幅提升了进程的创建、切换和终止效率,进一步优化了系统的响应速度和多任务处理能力。实现了内存管理性能与进程管理效率的显著提升,为构建更加高效、可靠的系统环境奠定了坚实基础。

项目结构

文件名 描述
mkfs 构建和运行Xv6内核
README 项目简介和说明
doc 项目的比赛报告
kernel 内核源代码目录
user 用户源代码目录
dockerfile docker编译相关文件
docker-compose.yml docker编译相关文件
start_docker.sh 快速启动docker环境
LICENSE 项目的许可证文件
Makefile 项目的Makefile文件

如何运行

运行环境

  • Ubuntu 22.04 & Arch
  • gcc RISC-V 交叉编译器,QEMU模拟器

本项目配置了docker包,可以快速一键启动:

# 拉取 docker 包
docker pull linermao/xv6-riscv-env:latest
# 快速启动,进入 docker 环境
./start_docker.sh

也可以本地编译:

# 修改 docker-compose.yml
..
# dockerfile: linermao/xv6-riscv-env
dockerfile: dockerfile
..

qemu虚拟机运行

# learnos/
make qemu

执行GDB调试

make qemu-gdb

工作计划

  • 实现基于优先级的多级反馈队列调度算法,允许抢占式调度,提高系统的响应速度和吞吐量

  • 引入 CPU 亲和性的进程调度,并对内存管理模块的 buddyslab 进行优化,为每个 CPU 引进缓存,提高 cache 的命中率

  • 引入线程概念,实现用户级线程和内核级线程

  • 为信号量集引入内核级别的死锁的检测与预防机制

  • 实现内存的页缓存

  • 实现信号机制

  • 实现文件映射和匿名映射

  • 实现虚拟文件系统

  • 实现基于FAT32的文件系统

  • 提供除串口I/O设备以外的更多的设备支持

  • 完善网络模块,提供本地socket接口和与硬件接口交互的网络驱动程序

  • 完善用户态应用程序的生态,引入代码编辑器,编译器等工具链

参考文件

贡献者

About

2024操作系统大赛华东赛区

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published