该小组由以下成员组成:
项目文档地址(当前为私有):https://www.notion.so/OS-1aab81604736804c85eeedbab0b51d42?pvs=4
RusT-thread 是基于 RT-Thread 理念,采用 Rust 语言打造的轻量级实时操作系统内核,已在 ARM Cortex-M4 上成功实现,并有望拓展至更多芯片平台。它支持多线程创建、调度及优先级管理,提供多种调度算法,如优先级、优先级 + RR 等。同时可选伙伴系统、小内存分配器等多种内存分配方式,满足动态内存分配需求。此外,还实现了高精度定时器,支持单次和周期定时功能,并具备完整的异常和中断处理机制。RusT-thread 的 Rust 实现保障内存安全,模块化设计便于扩展和移植,支持资源受限的嵌入式系统,为开发者提供了安全、高效、精简的 Rust 原生实时操作系统选择。
| 项目阶段 | 日期 | 项目进展 | 工作安排 |
|---|---|---|---|
| 选题 | 3月2日-9日 | 开展了第一次会议,研究往届选题,对可选题方向进行大致讨论后确定每个人选择一个方向进行调研 | 小组分工: 陈琳波:AI + OS; 李丁:Rust改写系统; 罗浩民:高性能计算; 刘时:AR + VR + 机器人(无人机,机器狗等); 赵于洋:虚拟化 + 容器 |
| 选题 | 3月8日 | 开展了选题会议,各成员就自己的调研内容分享和讨论了项目方向与可行性分析,形成了感兴趣的大作业列表 | 等老师反馈 |
| 选题 | 3月11日 | 接到老师反馈,并线上投票,确定选题 | 准备开会进入初步调研 |
| 初步调研 | 3月12日-19日 | 开展了线下会议,进行选题可行性等调研,重新确定选题为Rust改写RT-Thread系统 | 分工编写调研报告: 赵于洋:项目背景; 罗浩民:立项依据; 陈琳波:前瞻性分析; 刘时: 相关工作; 李丁:前言与文章整合 |
| 可行性调研 | 3月23日 | 开展了线下会议,完成了各成员RT-Thread运行平台的搭建,审定了小组调研报告,对下一步技术路线的尝试进行了可行性调研的分工,安排了下一次会议的时间 | Rearch_report 技术路线的分工如下: 基于cargo构建:罗浩民、李丁 基于scons构建:刘时、陈琳波 其他可能路线:赵于洋 |
| 可行性调研 | 3月26日 | 开展了线下会议, 确定可行性调研报告的框架与分工,确定了下一步的工作安排与时间节点 | 将可行性调研报告分为以下几个部分: RT-Thread的源码分析:各自负责一个模块 Rust实现的可行性分析 Rust+C 联合编译的可行性分析:陈琳波、赵于洋、李丁 调试与验证工具链:刘时、罗浩民 |
| 可行性调研 | 4月6日 | 开展了线下会议,汇总完善了可行性报告的内容,暂定了要使用的构建系统,讨论中期报告的事宜和要改写的模块,各成员准备学习Rust语言,确定了下次会议的主题和时间 | Feasibility_report 确定了改写模块的顺序,各成员学习Rust语言 |
| 中期报告 | 4月13日 | 开展了线下会议,分享了 Rust 语言学习的经验,进一步讨论并深入了解 RT-Thread 内核架构和各模块内容,讨论了中期报告的框架和分工,确定了下一步的工作安排与会议时间 | 中期报告分工:项目背景与项目概况: 陈琳波 前瞻性与创新点: 李丁 理论依据与技术依据,开发路线: 刘时 整合:赵于洋 讲演人及讲稿:罗浩民 |
| 中期汇报 | 4月20日 | 开展线下会议,协商讨论了中期汇报PPT的制作情况并修改完善,分享了自底向上修改RT-Thread系统的困难和问题以及已有的尝试。确定下一步的工作安排。 | 全体组员学习Rust语言以及Rust语言的嵌入式开发。尝试自顶向下和自底向上两种修改路线。 |
| Rust 改写尝试 | 4月27日 | 开展线下会议,就中期报告的反馈协商讨论了新的技术路线。就五一期间的对Rust改写方向的探索工作进行了讨论和分工。 | 五一分工安排: 陈琳波:中断 刘时:时钟 罗浩民:整体架构、线程规划 赵于洋:内存管理 李丁:研究其他Rust系统的编写经验 |
| Rust 改写 | 5月6日 | 开展了线下会议,各成员首先分享了五一期间在各自探索方向上的工作进展和尝试。经过充分讨论,明确了新的项目路线:采用自底向上的开发方式,基于ARM架构,使用Rust语言从头开发一个类RT-Thread的操作系统,以避免混合编译带来的问题。随后,各成员分享了开发过程中遇到的bug,并共同进行了调试和解决。最后确定了下次会议时间和具体工作安排。 | 下一步工作安排:优先开发中断/特权模块,同步开发内存管理模块,采用自底向上的方式逐步搭建系统。 |
| Rust 改写 | 5月11日 | 开展线下会议,小组成员相互分享了工作成果并统一了工作进度,还交流了改写Rust的经验和接口需求 | 下一步,继续完成中断/特权模块、内存管理模块的剩余部分,完成接口对接 |
| Rust 改写 | 5月25日 | 开展线下会议,各成员汇报近期进展,涵盖线程、中断、时钟、内存等模块,明确了对接的需求;指出代码依赖性问题和QEMU运行障碍,并探讨排除了这些障碍,并初步讨论最小可运行单元的实现方案。 | 完善核心模块,构建可运行单元并进行基础测试。 |
| Rust 改写 | 5月30日 | 开展线下会议,汇报了各自的工作进展,讨论端午节期间的工作安排,分享了在Rust改写过程中遇到的挑战和解决方案。 | 端午节期间继续完善系统核心模块,确保最小可运行单元的实现。并逐步开展各个模块的单元测试。 |
| Rust 改写 | 6月1日 | 开展线下会议,统一了工作进度,初步完成基础功能,开始推进系统的测试和调试工作。各成员分享了在实现过程中遇到的具体问题和解决方案。 | 继续完善系统功能,重点关注系统稳定性和性能优化,准备下一阶段的集成测试。 |
| 调优与测试 | 6月24日 | 开始进行系统的整合,整理当前项目结构和代码,确保各模块的接口一致性。逐步开展项目的集成测试,确保系统的稳定性和性能。 | 继续进行系统的调优和测试,重点关注内存管理和线程调度的性能优化。准备下一阶段的项目总结和报告。 |
| 调优与测试 | 6月28日 | 开展线下会议,汇报了测试的进展情况。各成员分享了在调试过程中遇到的问题和解决方案。讨论了项目总结报告的框架和内容,完成分工。 | 准备项目总结报告,并继续系统的调优和测试工作。 |
| 总结与报告 | 7月1日 | 开展线下会议,总结了项目的基本情况,进一步讨论了结课报告文档的总体框架,并完成分工。 | 完成结课报告各模块内容。 |
| 总结与报告 | 7月3日 | 开展线下会议,商讨知乎/ RT-Thread 论坛上报告的总体框架,并完成分工。 | 完成知乎报告的各模块内容。 |
项目 RusT-Thread。