[OSCOMP] 针对basic测例的功能实现
brk.c
Linux行为
DragonOS行为
估计就是没实现
dup.c
Linux行为
DragonOS行为
预期行为是new fd is 3
execve.c
Linux 行为
DragonOS行为
是可以直接执行test_echo的,但是就是不能通过execve去执行
fstat.c
Linux 行为
DragonOS行为
应该是inode的那几个属性没有设置
getdents.c
Linux 行为
DragonOS 行为
尚不清楚为什么不显示
mount.c,umount.c
Linux行为
DragonOS行为
linux下好像是没有指定设备,DragonOS下则不清楚 umount则需要先完成mount才能继续
times.c
Linux行为
DragonOS行为
unlink.c
Linux 行为
DragonOS行为
DragonOS下也能正常unlink,但是会马上跟panic
waitpid.c
Linux行为
DragonOS行为
似乎没有完成等待
- [x] brk
- [x] dup
- [x] execve
- [x] fstat
- [x] getdents
- [ ] mount
- [ ] umount
- [ ] times
- [ ] unlink
- [ ] waitpid
在basic-x64分支上面开发
https://github.com/oscomp/DragonOS/tree/comp/basic-x86
同时不知道具体原因,会偶发下面的 GDT 报错
dup:原本的系统在cd 切换目录时会创建管道文件(shell的问题?),占用fd 3,4,测试用例输出5 使用busybox init作为引导程序后重新启动,能正确输出:
Basic 测例 修复指南
- step 1 针对自己的测例 单独创建 issue
- step 2 补充完善本测例的各种错误表现,以及应有的预期实现
- step 3 补充本测例影响的系统调用or内核模块范围(通过打印系统调用及返回值进行判断)
- step 4 逐步修复相关的系统调用
issue的创建到 github.com/oscomp/DragonOS 下吧,然后以格式 [Basic] <系统调用名> <(可选)直接异常表现> 作为标题
可以改用busybox去启动
https://github.com/oscomp/DragonOS/blob/658756a2e9665f886672cb96842707c9ef86ffb0/tools/run-qemu.sh#L174
brk.c
Linux行为
DragonOS行为
估计就是没实现
dup.c
Linux行为
DragonOS行为
预期行为是new fd is 3
execve.c
Linux 行为
DragonOS行为
是可以直接执行test_echo的,但是就是不能通过execve去执行
fstat.c
Linux 行为
DragonOS行为
应该是inode的那几个属性没有设置
getdents.c
Linux 行为
DragonOS 行为
尚不清楚为什么不显示
mount.c,umount.c
Linux行为
DragonOS行为
linux下好像是没有指定设备,DragonOS下则不清楚 umount则需要先完成mount才能继续
times.c
Linux行为
DragonOS行为
unlink.c
Linux 行为
DragonOS行为
DragonOS下也能正常unlink,但是会马上跟panic
waitpid.c
Linux行为
DragonOS行为
似乎没有完成等待
- [x] brk[x] dup[x] execve[x] fstat[x] getdents[ ] mount[ ] umount[ ] times[ ] unlink[ ] waitpid
将fstat中打开的程序改成about.elf可以通过