这是上周的,上周发送给自己了,不算。
zyc:
连续读写分配有问题。修复了这个bug。
pjdfstest有权限检查,功能检查。有错误代码的检查。
测试并发提交log的。
Ior, mdtest
(1)代码和yjg沟通一下。
(2)尝试跑一下c语言版本的mdtest。
Yz:
(1)按照现在的ppt最后一页的计划完善virtio驱动。
(2)考虑使用中断让virtio来支持异步IO。read-nonblock变成 async read/write更高级的接口。
Virtio example里面做了一些小的实验,可以参考一下。
Ysp:
修改栈的设置,每个核用一个栈。
在 qemu 上面把raspi 3跑一下,调多核。
Yjg:(哪里跑不下去问闭浩扬!)
非法地址:没有redis main 传参数。
Kernel command line 转成应用程序的参数。给应用程序准备环境变量。
启动有两个:环境变量,配置文件。
Socket。lua?
(1)查一下signal到底在redis里面干了啥,看看是否需要支持。
(2) getaddrinfo 硬编码一下。
(3) 实现pipe2,参考rcore来做。
—> 最高优先级 (4) 实现pthread库。libc 应该有pthread的测试。
(5) epoll_create 陈渝找个学生!
(6) fcntl
(7) 用闭包传参数
wlp:
(设备树也弄成了单独模块)
把small tcp 改一下,把中断驱动跑起来。
给驱动留一个注册中断的接口。
测试中断是不是正常工作。 arm gic v3弄过来试试。
原则:用户程序不能改源代码。
Zyc:
有rust版本的pjdfstest,可以用来借鉴。
给自己的文件系统加了功能。
建议:通过pjdfstest完善现有的文件系统,完善rust版本的pjdfstest
Yz:
下周分享一下virt-io block部分的内容。block mq。
Ysp:
依据 树莓pi,直接调库,访问device tree。(根据树莓pi来写死也行。axconfig)
单核:中断跑通
下一步任务:多核(参考rcore)
yjg:(最重要)
浮点指令开启。已经做了静态链接。可以进到redis main 了。
在strlen上面出错,报page fault。
(非法地址)argp0 按照c语言的要求,给它传给东西过去。argc, argv
Wlp:
注册中断,打开中断,使用中断方式接收网络包。
照着unikraft的来。(研究一下)
lh:
继续学习arm tutorial。
Jyk:
Sqlite合并。下一步先加一些文档。
陈康
本周总结以及下一周任务。
zyc:
(1)先看一眼pjdfstest。改一下自己的测例。
(2)scalefs工作继续。
(3)任意时间点crash了,然后测试一下能不能恢复。
Yz:
(1)virt-io specification。 c 语言的需要看一下。先重点关注块设备的driver。
(2)如何把现在virt-io的驱动写得完全。
Ysp:
已经完成了串口输出。现在设置页表的时候出现问题。
下一步是调试通过内存管理单元。
lh:
看明白内存管理部分的内容。
Yjg:
已经实现了一部分的函数调用。
现在的困难是静态库装载有问题,涉及到PIC。下一步完成静态链接。
参考一下unikraft
Wlp:
继续看中断。独立先把中断弄出来。网络的驱动,块驱动。
使用配置文件来区分驱动用轮询还是中断。
找一个事件驱动的调度应用程序,不需要通过时钟中断调度。(nginx)
真正硬件需要支持的进一步工作:
中断,内存布局,驱动(真正驱动)
各位同学好:
zyc: xv6已经跑通。已经更新到了最新的分支,merge了一下。正在接lock。正在改xv6上面的。 正在看scalefs。主要是使用里面的task wait queue。 (1)做多并发的测试;(2)做扩展性;
(3)crash了之后能恢复。
下一步:(1)先完成并发的实现;(2)crash 测试。 下一步做扩展性,借鉴scalefs
(a) 正确性 (b) 性能
yz
rust for linux
在unikernel里面提供rust针对virt-io的驱动(先看一下virt-io的各种信息,看一下rust的virt的驱动程序)
ysp
硬件上面跑ArceOS,先把串口跑出来,输出东西
yjg
179个库函数
wlp
单队列支持绑核,关时钟中断。kernel command line, API。搞一下中断。需要看一下驱动框架。UniKraft里面的中断。 GIC。
lh
下周把实验做完,有问有答。
陈康