DragonOS icon indicating copy to clipboard operation
DragonOS copied to clipboard

[OSCOMP] 针对basic测例的功能实现

Open sparkzky opened this issue 8 months ago • 8 comments

brk.c

Linux行为

Image

DragonOS行为

Image

估计就是没实现

dup.c

Linux行为

Image

DragonOS行为

Image

预期行为是new fd is 3

execve.c

Linux 行为

Image

DragonOS行为

Image

是可以直接执行test_echo的,但是就是不能通过execve去执行

fstat.c

Linux 行为

Image

DragonOS行为

Image

应该是inode的那几个属性没有设置

getdents.c

Linux 行为

Image

DragonOS 行为

Image

尚不清楚为什么不显示

mount.c,umount.c

Linux行为

Image

DragonOS行为

Image

linux下好像是没有指定设备,DragonOS下则不清楚 umount则需要先完成mount才能继续

times.c

Linux行为

Image

DragonOS行为

Image

unlink.c

Linux 行为

Image

DragonOS行为

Image

DragonOS下也能正常unlink,但是会马上跟panic

waitpid.c

Linux行为

Image

DragonOS行为

Image

似乎没有完成等待

  • [x] brk
  • [x] dup
  • [x] execve
  • [x] fstat
  • [x] getdents
  • [ ] mount
  • [ ] umount
  • [ ] times
  • [ ] unlink
  • [ ] waitpid

sparkzky avatar Apr 25 '25 12:04 sparkzky

在basic-x64分支上面开发

https://github.com/oscomp/DragonOS/tree/comp/basic-x86

sparkzky avatar Apr 25 '25 12:04 sparkzky

同时不知道具体原因,会偶发下面的 GDT 报错

Image

sparkzky avatar Apr 25 '25 12:04 sparkzky

dup:原本的系统在cd 切换目录时会创建管道文件(shell的问题?),占用fd 3,4,测试用例输出5 使用busybox init作为引导程序后重新启动,能正确输出:

Image

dolzhuying avatar Apr 26 '25 06:04 dolzhuying

Basic 测例 修复指南

  • step 1 针对自己的测例 单独创建 issue
  • step 2 补充完善本测例的各种错误表现,以及应有的预期实现
  • step 3 补充本测例影响的系统调用or内核模块范围(通过打印系统调用及返回值进行判断)
  • step 4 逐步修复相关的系统调用

Samuka007 avatar Apr 26 '25 06:04 Samuka007

issue的创建到 github.com/oscomp/DragonOS 下吧,然后以格式 [Basic] <系统调用名> <(可选)直接异常表现> 作为标题

Samuka007 avatar Apr 26 '25 06:04 Samuka007

原本的测例

sparkzky avatar May 09 '25 06:05 sparkzky

可以改用busybox去启动

https://github.com/oscomp/DragonOS/blob/658756a2e9665f886672cb96842707c9ef86ffb0/tools/run-qemu.sh#L174

sparkzky avatar May 09 '25 07:05 sparkzky

brk.c

Linux行为

Image

DragonOS行为

Image

估计就是没实现

dup.c

Linux行为

Image

DragonOS行为

Image

预期行为是new fd is 3

execve.c

Linux 行为

Image

DragonOS行为

Image

是可以直接执行test_echo的,但是就是不能通过execve去执行

fstat.c

Linux 行为

Image

DragonOS行为

Image

应该是inode的那几个属性没有设置

getdents.c

Linux 行为

Image

DragonOS 行为

Image

尚不清楚为什么不显示

mount.c,umount.c

Linux行为

Image

DragonOS行为

Image

linux下好像是没有指定设备,DragonOS下则不清楚 umount则需要先完成mount才能继续

times.c

Linux行为

Image

DragonOS行为

Image

unlink.c

Linux 行为

Image

DragonOS行为

Image

DragonOS下也能正常unlink,但是会马上跟panic

waitpid.c

Linux行为

Image

DragonOS行为

Image

似乎没有完成等待

  • [x] brk[x] dup[x] execve[x] fstat[x] getdents[ ] mount[ ] umount[ ] times[ ] unlink[ ] waitpid

将fstat中打开的程序改成about.elf可以通过

sparkzky avatar May 23 '25 08:05 sparkzky