2019操作系统课程设计:Python (and more) on rCore on RPi

在本页面维护操作系统课程设计大实验"Python (and more) on rCore on RPi"的相关信息。老师、助教和选做课程设计的同学可修改该页面的内容。

课程设计目标:扩展rcore对既有的Musl libc支持,使之适合于运行更多用户程序。

1. 扩展rcore对既有的Musl libc支持

2.(advanced)

  1. 把Numpy搬移到rcore上
  2. (Naive) MNIST on rCore on RPi

实验参与者信息

姓名

学号

电子邮箱

GitHub 账户

陶东来

2016011322

tdl16@mails.tsinghua.edu.cn

NagiNikaido

苏明贤

2016011349

smx16@mails.tsinghua.edu.cn

Benjamin P.M. Lovegood

实验代码仓库:

已有工作参考

往届工作

课程设计方案报告

Markdown

Slider

最终报告

Markdown

日志

20190630-苏明贤的实验结果仓库

2019/6/14

在gjz的帮助下,我们成功将emmc做成了Loadable kernel module。现在已经可以在qemu下insmod这个module,mount分区并读写了。

之后会与音频组合作完成真机调试的工作。

2019/5/30

现在读写功能已经测试完毕,尝试和其他小组的成果进行对接。

2019/5/29

这两天主要在捉虫。进展如下:

接下来会参考SD物理层标准文档进行debug, 然后尝试在数据传输的时候使用dma功能。

!!!!重大进展

现在已经可以从SD卡上读出第一个分区了,经过验证完全正确。先前SCR寄存器读出全是0是因为没有对slice取引用T T。

接下来应该是分区识别的部分。

2019/5/20

基本上完成了SD driver的迁移工作。之后需要进行测试。

2019/5/6

这两周由于wiki时好时坏,工作进度一直处于调研阶段因此没有更新wiki。

现在的情况是,我们已经在rcore上跑起了一个静态编译的lua,可以跑一些简单的程序,但是在 import第三方库时会出现错误。同时无法进入交互模式,判断为console方面特性实现有问题。

接下来,我们如果要在实体机上跑起python,就必须要使用更大的外存空间。因此我们转向了SD卡 驱动的实现。在这两周里我们调研了rpi上sd卡驱动的实现,两个剥离可行的版本分别由我们和助教 找到,均由C语言实现。我们决定以前一个版本为主进行移植。

在移植过程中我们遇到了一系列问题。由于该驱动与rcore kernel和crate::bcm2835的特性强相关,我们不便使用rust-c 的方式直接完成移植。语言特性导致我们需要比想象中多的时间来进行翻译。如何测试我们的实现是否成功又是 一件麻烦事。当前的工作量并非一个人就能完成的,接下来我们两个人的重心都会放到驱动移植上。

2019/4/21

上一周一直在准备各种各样的考试,因此没有明显的进展,只零零散散做了一些工作。

我们的打算是这样的,一方面按照列表进行系统完善,另一方面我们可以根据python运行时的结果进行调整。

2019/4/15

rust的toolchain出现了一些问题,折腾了很久fix好了。nightly分支是个坏文明。

组会上陈老师提出了实现环境变量这一点,确实很有必要。今晚在搜寻varenv相关的资料,尝试直接阅读bash源码后放弃这条路。 可能是看POSIX标准+linux kernel源码更加有效。

进一步调研了syscall的情况,编出priority表还需要时间。

2019/4/14

写report到后半夜。下午听+做报告,收获很多。

研究了一晚上fs,大概理清了代码结构,终于把chdir修好了。感觉实现上还是有些不足,不过先这样吧。 不大清楚info宏在什么状态下会工作,输出调试的时候并不能用起来,后来全用了warn宏。

本来该发pr的,但是电脑快没电了。我会先push到我们自己的代码仓库中。

接下来的任务:

2019/4/13

对比了rCore实现的和musl需要的syscall列表。现在已实现的syscall为77个,完整的musl用到了240个。

发现的bug:

2019/4/12

进行了开发环境的配置,测试了rCore在QEMU上的运行情况。rust/sh非常不好用,在cd时有bug。

尝试将rCore运行在RPi3实体机上。由于编译机的读卡器有问题,之后会配置读卡器之后重新试验。

接下来的任务:

OS2019spring/projects/g11 (last edited 2019-06-30 15:09:08 by xyong)

MoinMoin Appliance - Powered by TurnKey Linux