整理目前示例项目所需的系统调用

尝试在DragonOS上运行一个示例微型深度学习框架的过程中,由于系统调用的不完善,会导致无法成功运行得到计算结果,所以整理出了目前示例项目运行所需要的所有的系统调用,并统计对应的调用号码进行汇总统计:


不过目前DragonOS已经实现了哪些我还不怎么清楚?去哪里看呢?

可以编辑一下帖子,把你所说的项目的链接发上来.

在DragonOS的kernel/syscall/syscall.rs下面,有一个handle syscall的很大的match。这里以及arch/x86_64/syscall目录下面,都有相应的内容。

好,我去看看后再做下整理

我整理了一下,没有备注的是完全没实现的
madvise
statx
clone3: 这是啥
getrandom: 好像是没完全实现
mremap
flock
poll: 未实现
sigaltstack
newfstatat
rt_sigprocmask
sched_getaffinity
pread64
uname
socketpair
statfs
arch_prctl: riscv64未实现
set_robust_list
rseq

有些系统调用是“建议性”的,比如madvise,内核不实现,只返回Ok或者ENOSYS,也不会影响运行。所以内核有些报warning的,但实现为空的系统调用,暂时可以先不做(当然做了更好)

然后arch_开头的系统调用,跟架构相关。并且有些系统调用是不用为每个架构实现的,比如rv64的linux就删除/合并了很多x86下面的系统调用

哈哈哈这个算是最简单的了,因为内核目前其实没有实现namespace的功能,这玩意直接返回常量字符串DragonOS之类的就行

感觉实现了这些就能跑:

  • statx
  • clone3: 这是啥
  • flock
  • poll: 未实现
  • newfstatat
  • sched_getaffinity
  • uname
  • statfs

好的好的,明白。