2016年操作系统课程设计

课程设计成员信息

ucore+功能完善和移植实验选择

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

注:

  1. 我已缺省设置所有表示对课程设计有兴趣的同学和参加过刘卫东老师的组成原理课挑战性实验的同学有本页面的修改权限。如果你不能编辑本页面,请在“注册页面”用自己的学号(只能用学号如“20130117xx”)注册一下。如果还有问题,请与向老师和助教寻求帮助。

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

序号

大实验题目

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

1

计算机组成原理的ThinPAD实验板上的ucore移植

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

2

计算机组成原理的ThinPAD实验板上的ucore或ucore+的移植和扩展

李宇轩2013011349、董豪宇2013011356、梁泽宇2014011381

3

计算机组成原理的MIPS32 CPU上的Linux移植

张宇翔2013011352、王邈2013011329

4

Respberry Pi Zero上的ucore+移植

叶方轲2013011340、郭志芃2013011348、何小豪2013011335

5

Zedboard上的ucore+移植

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

6

ucore+的用户空间文件系统FUSE支持扩展

廖亦阳2013011336、谭思楠2013011720、孟凡航2013011312

7

基于eclipse的ucore源代码集成调试环境

宋佳铭 2012011271、章彦恺 2012011284

8

有线网卡驱动的可加载内核模块改造

李智康

9

v9-cpu上的ucore移植

朱俸民2012011894、王奥丞2014011367、马坚鑫2013011384、徐磊 2013011344、韩旭 2013011343

序号

大实验题目

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

课程设计题目和已有结果介绍

ucore+移植

移植ucore+到多种硬件平台上,扩展ucore+能运行的硬件平台,以扩展ucore+的新用途。

预期的ucore移植目标:

操作系统内核跟踪分析工具

通过设计和开发帮助进行操作系统内核开发和分析的工具,来降低操作系统开发的难度和提高操作系统开发的效率。

扩展支持ucore的CPU平台

目前ucore+已可以在X86-32、X86-64、ARM、MIPS、NIOS和OR1200等CPU平台上跑起来。通过移植ucore到新的CPU平台上,同时开发相应的模拟器、编译器和CPU的FPGA实现,形成完整的CPU支持。

android-linux功能扩展

把android放在你的笔记本或台式机上运行,且已有的Linux桌面应用也可以正常运行,好处是用一台机器(只需一个你的手机或一个你的笔记本)就可以玩,用android app娱乐,享受大屏的乐趣,也可以用来coding, 学习和办公。我们已经在开展部分工作了,请访问 https://github.com/openthos/openthos/wiki 目前可以参加的事情包括

动态链接库

通过移植、完善ucore+在多种平台上的动态链接库支持,扩展ucore+上支持uclibc、bionic libc(只有x86和arm)等用户库的能力。

已有的相关工作:

内核可加载模块

将ucore+中的多种内核模块改成可加载内核模块,并规范模块间的接口。

已有相关工作:

设备驱动执行环境DDE

通过移植和完善ucore+的DDE框架,实现将Linux驱动不修改用于ucore+,并支持多种设备驱动。如:块设备、wifi网卡和USB设备等。

IPC

在ucore+中实现binder机制,以支持goldfish上的Dalvik虚拟机。

图形子系统

在ucore+中支持多种平台的图形子系统,并优化执行性能。目前已在ARM平台上支持minigui,下面的目标是在X86平台上支持minigui。

无线网络支持

在ucore上支持多种无线模块,并改进性能。

虚拟化支持

在ucore上已可以跑DOS。下面希望跑Linux(陈渝发代码和文档)和在ucore中跑ucore;

ucore的休眠机制

调试和测试环境

其他

课程设计要求

链接处是操作系统专题训练课的实验二、三和四的要求。

本学期的课程设计就按实验二、三和四的要求来做。合并代码的工作可能对于某些课程设计不适用。

课程设计报告时间安排

  1. 确定课程设计资格和题目:完成8个操作系统课实验,并提交实验结果和报告的同学有资格选择做课程设计;完成课程设计题目和目标确定的同学,就不用参加期中考试了。截止时间为第6周周三下午6点。
  2. 课程设计方案报告:时间为第7周周日(4月10号)下午2点,报告会地点是东主楼10区101会议室。报告内容和准备要求见专题训练课的实验二。报告成绩作为课程设计的期中考试成绩。

  3. 课程设计实现和测试报告:时间初步定为第11周周日下午2点,报告会地点是东主楼10区101会议室。报告内容和准备要求见专题训练课的实验三。报告情况不理想的同学可以在这个时间点终止课程设计,然后参加期末考试;继续进行课程设计的同学,确定不参加期末考试。
  4. 课程设计最终报告:时间定为第14周周日(5月29号)下午2点,报告会地点是东主楼10区101会议室。报告内容和准备要求见专题训练课的实验四。报告成绩作为课程设计的期末考试成绩。如果有同学主动要求,可以在第15周周六安排第二次最终报告,以便给出完美的课程设计结果。

课程设计方案报告要求

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

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

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

  1. 实验要求:依据设计方案,进行实现和测试,并形成实验报告。
  2. 报告安排:
    • 时间:第12周周日(2016-05-15)下午2点开始
    • 地点:东主楼10区101会议室
  3. 实验结果提交的材料包括:
    • 源代码:每个小组提交一份自己的代码到自己的github仓库;
    • 实验结果报告的幻灯片:每个小组要在Wiki页面上提交一份报告幻灯片(PPT版本和PDF版本)
    • 结果演示:要求使用从自己的github上下载的源代码,在统一的Linux虚拟机环境完成源代码的编译和测试;

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

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

  1. 实验要求:把课程设计的代码实现合并到主代码树(对于不在ucore+上进行的课程设计题目,可忽略代码合并的要求),并进行集成测试,并形成测试和修改实验报告。

    • 代码合并过程的要求如下:
      • 合并开始前完成一个功能较为完全,并且可以稳定运行的代码版本;
      • 合并的基准代码为主代码树当前的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. 报告安排:
    • 时间:第14周周日(2016-05-29)下午2点开始
    • 地点:东主楼10区101会议室
    • 每个小组的报告时间为10分钟以内。请同学们注意安排好报告内容。除第9组被视为3个小组外,其他每个小组都只有10分钟的报告时间。
  3. 实验结果提交的材料包括:
    • 源代码:每个小组提交一份自己的代码到自己的Wiki页面;
    • 实验结果报告的幻灯片:每个小组要在Wiki页面上提交一份报告幻灯片(PPT版本和PDF版本)
    • 书面大实验报告:每个小组要在Wiki页面上提交一份大实验报告(Word版本和PDF版本)。
    • 实验的参考代码和文献:每个小组要在Wiki页面上提交一份参考文献列表,包括在实验过程中用到的所有代码的出处(如可能,附参考代码)和参考文献。
    • 实验角色说明:每个同学要在小组的wiki页面上提交一个需要的实验描述,说明自己在大实验中的角色、自己的贡献、以及你认为需要说明的其他内容。这个说明是大实验成绩的重要依据,请注意提交时间。

  4. 建议实验四报告内容包括:
    • 实验目标描述
    • 已有相关工作介绍
    • 小组成员分工
    • 实现方案
    • 主要代码修改描述
    • 代码压缩中代码版本描述
    • 测试场景描述和测试结果
    • 对实验的后续开发内容建议或设想
    • 实验过程日志
    • 实验总结
    • 你认为需要说明的其他内容

日志

20160518-课程设计之实现和测试报告汇总

  1. 董豪宇:课程报告--文件系统部分

  2. 李宇轩:课程报告--Debugger部分

  3. 梁泽宇:操作系统课程设计 网络部分 第二次报告

  4. 张宇翔、王邈:Linux on NaiveMIPS 课程设计进展报告

  5. 章彦恺、宋佳铭:Pres of implementation.pptx

  6. 李智康:有线网卡驱动的可加载内核模块改造

  7. 马坚鑫:操作系统学习平台

  8. 韩旭、徐磊:ucore在v9上的移植

  9. 谭思楠、廖亦阳、孟凡航:5月15日课程报告(附件需要手工加上pptx后缀)

20160224-目前对课程设计有兴趣的同学列表

OS2016spring/projects (last edited 2016-06-07 18:36:54 by xyong)

MoinMoin Appliance - Powered by TurnKey Linux