2019年操作系统课程设计:教学操作系统rcore+的改进和扩展

参加课程设计的前提条件

在四周内完成8个ucore或rcore实验的同学。碰到问题可直接寻求助教和老师的帮助。

常用链接

课程设计成员信息

课程设计实验选择

鼓励选择基于RISC-V的教学操作系统相关研究和设计,但也不局限于这一点,同学可以有自己的想法或与老师交流,确定课程设计的题目和内容。

请各位同学选择自己的大实验题目,并填入下面表格。通常每个题目可以由1位同学独立或2位同学合作完成一个题目。请在选定题目后,与主讲老师约时间交流,明确实验具体目标和时间安排。

注:

  1. 如果你不能编辑本页面,请在“注册页面”用自己的学号(只能用学号如“20130117xx”)注册一下。如果还有问题,请与向老师和助教寻求帮助。

  2. 如果有同学希望3人合作完成一个题目,必须事先与老师交流并得到同意。加入这个规则的原因是,避免有同学到学期结束时才选定题目。

序号

选题方向

大实验题目

小组成员列表(姓名和学号)

1

RISC-V

ucore on RISC-V

(南开大学)陈杭、代素蓉、袁婧、方睿丽

2

RISC-V

简易版 rcore 开发与教学文档编写 && rcore plus 开发

刘丰源 2017011313、潘庆霖 2016011388

3

MIPS

第三届全国大学生系统能力培养大赛

陈晟祺 2016010981、周聿浩 2016011347

4

x86_64

对标 Biscuit OS 真实应用真实网卡及性能测试

陈嘉杰 2017011484、王润基 2015011279

5

RISC-V

FPGA 上运行 RISC-V rCore 构建路由器

陈嘉杰 2017011484、霍江浩 2015010611

6

x86_64

rCore 内核可加载模块和动态链接库

郭敬哲 2016011362

7

错误分析

在ucore获得稳定触发竞争条件的漏洞样本

李睿燮 2015080062

8

rust

Audio support for rCore

高天宇 2016011348、王晓智 2016011257

9

行为分析

Program Analysis via Memory Access Patterns

杨宗瀚 2016011345

10

Algo

操作系统中常用算法的性能分析及优化

杨天祺 李嘉图

11

Arm

Python (and more) on rCore on RPi

陶东来 2016011322、苏明贤 2016011349

课程设计题目和已有相关工作介绍

课程设计要求

课程设计报告时间安排

  1. 确定课程设计资格和题目:完成8个操作系统课实验,并提交实验结果和报告的同学有资格选择做课程设计;完成课程设计题目和目标确定的同学,就不用参加期中考试了。
  2. 课程设计方案报告:时间为第7周周日(2019年04月14日)第3节(下午2点开始),报告会地点6A004。报告内容和准备要求见“课程设计方案报告要求”。报告成绩作为课程设计的期中考试成绩。

  3. 课程设计实现和测试报告:时间初步定为第11周周x(2019年xx月xx日)第x节(xx点开始),报告会地点待定。报告内容和准备要求见“移植实现和测试报告要求”。报告情况不理想的同学可以在这个时间点终止课程设计,然后参加期末考试;继续进行课程设计的同学,确定不参加期末考试。

  4. 课程设计最终报告:时间定为第14周周日(2019年5月26日)上午8点30分开始,报告会地点为六教6A002。报告内容和准备要求见"最终报告要求"。报告成绩作为课程设计的期末考试成绩。

  5. 课程设计第二次最终报告:时间定为第16周周日(2019年6月16日)下午2点开始,报告会地点为六教6A002。报告内容和准备要求见"最终报告要求"。报告成绩作为课程设计的期末考试成绩。

补充信息:

  1. 不要求做大实验的所有同学都必须参加课程第16周的设计最终报告。
  2. 请自己觉得有时间,精力和兴趣的同学(最好还是小组,但如小组其他同学不参加的情况下,单个同学也可申请)在piazza上提出参加第16周设计最终报告的申请,对已有的项目进行改进,扩展。
  3. 基于第16周最终报告和进展,被老师一致认定为有显著改进的同学会提高大实验成绩。
  4. 最终成绩在第16周后给出。

课程设计方案报告要求

  1. 题目选择:
    • 方案报告以小组为单位进行,每个小组的人数不超过3人,并且鼓励合作,但小组每个成员的任务是独立完成和考核的。
    • 请在选定题目后,发邮件通知向勇,以便明确实验目标。
    • 实验题目可从已列出的实验题目中选一个感兴趣的,并把姓名和学号下面表格

    • 如果你想自选题目,请与教师交流和确认后形成新的实验题目。
  2. 方案报告提交要求:
    • 在Wiki上提交“方案设计报告幻灯片”
    • 在Wiki上提交“方案设计文档”,内容至少包括已有相关工作综述、设计方案、小组分工和已完成工作;
    • 如果已有代码工作,在Wiki上提交“代码压缩包” ,以及git repos的网址
    • 要求在方案报告前完成上述材料提交
  3. 方案报告要求:
    • 报告内容:1)相关工作介绍:介绍自己在设计实验方案时查到的可借见参考;2)实验方案:描述整体小组的实验方案设计思路;3)小组分工:描述小组成员的任务分工和协作关系;4)其他你认为需要说明的问题。
    • 报告形式:希望所有小组成员参与报告。只有一个代表出面的报告会被认为缺少协作。
    • 报告时间长度限制:报告讲述10分钟左右,提问5分钟左右。

课程设计“移植实现和测试”报告要求

  1. 实验要求:依据设计方案,进行实现和测试,并形成实验报告。
  2. 实验结果提交的材料包括:
    • 源代码:每个小组提交一份自己的代码到自己的github仓库;
    • 实验结果报告的幻灯片:每个小组要在Wiki页面上提交一份报告幻灯片(PPT版本和PDF版本)
    • 结果演示:要求使用从自己的github上下载的源代码,在统一的Linux虚拟机环境完成源代码的编译和测试;

  3. 建议的报告内容包括:
    • 实验目标描述
    • 已有相关工作介绍
    • 小组成员分工
    • 实现方案
    • 主要代码修改描述
    • 代码压缩中代码版本描述
    • 测试场景描述和测试结果
    • 你认为需要说明的其他内容
  4. 对于还没有完成移植实现和测试的同学的要求
    • 报告目前进展情况,说明延迟原因,并给出后续实验的时间安排;

课程设计“最终报告”要求

  1. 实验要求:把课程设计的代码实现合并到[[|主代码树]],并进行集成测试,并形成测试和修改实验报告。
    • 代码合并过程的要求如下:
      • 合并开始前完成一个功能较为完全,并且可以稳定运行的代码版本;
      • 合并的基准代码为[[|主代码树]]当前的master分支;
      • 在自己的github库中新建一个分支,用git reset回到这学期你的工作开始前的commit,首先pull主代码树的master分支;
      • 在这个分支上整理、合并你这学期的工作,要求每个commit的内容逻辑上相对完整(如增加syscall、加入新的实现代码、修正已有的bug等),在commit log中进行相应的说明并以Signed-off-by的形式在commit log最后留下你的姓名和邮箱(可以用git config设置user.name和user.email后在commit时加-s选项)。为了简化开发过程而进行的非通用修改(如hard code编译的TOOLCHAIN_PREFIX等)不应出现在任何一个commit中;
      • 代码合并、整理完毕后,在主代码树上提交[[|Pull Request]]请求审阅,在Request中指出你的代码库的地址和分支;
      • 在助教审阅代码的过程中,会在邮件列表(ucore_dev)上就代码结构、实现等方面提出一些意见,需要进行相关的讨论,可能需要对代码做出进一步的完善;
      • 审阅完毕后,由助教将该分支上的commits合并的主代码树中,合并过程完成。
  2. 报告安排:
    • 每个小组每位同学的报告时间为10分钟以内。请同学们注意安排好报告内容。每个小组都只有20(2人)~30(3人)分钟的报告时间。
    • 对于在第15周周五前还有进一步改进的小组,在得到小组申请后,会单独安排在第16周前(时间和地点待确认)进行改进工作汇报。
  3. 实验结果提交的材料包括:
    • 源代码:每个小组提交一份自己的代码到自己的Wiki页面;
    • 实验结果报告的幻灯片:每个小组要在Wiki页面上提交一份报告幻灯片(PPT版本和PDF版本)
    • 书面大实验报告:每个小组要在Wiki页面上提交一份大实验报告(markdown格式)。
    • 实验的参考代码和文献:每个小组要在Wiki页面上提交一份参考文献列表,包括在实验过程中用到的所有代码的出处(如可能,附参考代码)和参考文献。
    • 实验角色说明:每个同学要在小组的wiki页面上提交一个需要的实验描述,说明自己在大实验中的角色、自己的贡献、以及你认为需要说明的其他内容。这个说明是大实验成绩的重要依据,请注意提交时间。

  4. 建议实验四报告内容包括:
    • 实验目标描述
    • 已有相关工作介绍
    • 小组成员分工
    • 实现方案
    • 主要代码修改描述
    • 代码压缩中代码版本描述
    • 测试场景描述和测试结果
    • 对实验的后续开发内容建议或设想
    • 实验过程日志
    • 实验总结
    • 你认为需要说明的其他内容
  5. 最终报告的成绩评定约定:
    • 全程参加第13周最终报告会的老师和助教给所有参加报告的每个同学进行评定;
    • 全程参加第13周最终报告会的同学给所有参加报告的其他小组的每个同学进行评定,不对自己所在小组的同学进行评定;
    • 实验文档+实验代码(有readme描诉重现过程)+汇报报告+工作过程wiki记录+平时的交流沟通等是给出大实验成绩的依据。成绩评定的依据包括,实验结果提交材料、汇报内容和回答问题情况等;
    • 全程参加第16周最终报告(更新)会的老师和助教给所有参加报告的每个同学进行评定,并对被老师一致认定为有显著改进的同学提高成绩。

日志

20190610-课程设计第二次最终报告安排

"链接"处是课程设计第二次最终报告的时间和地点信息。欢迎任何有兴趣的同学参加。

请希望进行第二次报告的同学,在“Piazza:课程设计第二次最终报告安排”处回复自己的学号。回复截止时间为6月14号。

OS2019spring/projects (last edited 2019-06-10 15:31:12 by xyong)

MoinMoin Appliance - Powered by TurnKey Linux