尝试在DragonOS上运行一个示例微型深度学习框架的过程中,由于系统调用的不完善,会导致无法成功运行得到计算结果,所以整理出了目前示例项目运行所需要的所有的系统调用,并统计对应的调用号码进行汇总统计:
不过目前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
之类的就行
感觉实现了这些就能跑:
好的好的,明白。