Skip to content

Biscuit Syscall & Program Status

Wang Runji edited this page Mar 29, 2019 · 26 revisions

Syscall

status description
完全实现
🐞 基本实现 有Bug
⚠️ 部分实现
未实现 但很容易
❌❗️ 未实现 有一定工作量
‼️ 未实现 需要重构/从头实现整个模块
✖️ 暂时无需实现
module status note
SYS_READ file
SYS_WRITE file
SYS_OPEN file
SYS_CLOSE file
SYS_STAT file handle symlink
SYS_FSTAT file handle symlink
SYS_LSTAT file
SYS_POLL file 🐞 只实现了 stdin 与 tcp
SYS_LSEEK file
SYS_FCNTL file ❌❗️
SYS_FSYNC file
SYS_FDATASYNC file
SYS_TRUNC file
SYS_FTRUNC file
SYS_GETDENT64 file
SYS_GETCWD file
SYS_CHDIR file
SYS_RENAME file
SYS_MKDIR file
SYS_RMDIR file
SYS_LINK file
SYS_UNLINK file
SYS_READV file
SYS_WRITEV file
SYS_ACCESS file
SYS_DUP2 file
SYS_MKNOD file
SYS_SYNC file
SYS_PREAD file
SYS_PWRITE file
SYS_PIPE2 file
SYS_MMAP mem ⚠️ 仅实现了用于malloc的匿名映射
SYS_MUNMAP mem ⚠️ 未考虑传入的参数仅为映射的一部分的情况
SYS_GETPID proc
SYS_GETPPID proc
SYS_CLONE proc ⚠️ 基本支持了musl pthread_create
SYS_FORK proc
SYS_VFORK proc ⚠️ =fork
SYS_EXECV proc
SYS_EXIT proc
SYS_WAIT4 proc
SYS_GETTID proc
SYS_NANOSLEEP proc
SYS_KILL proc ⚠️ 差signal参数
SYS_SIGACT proc ✖️ Biscuit未实现signal
SYS_PAUSE proc ✖️ Biscuit未实现signal
SYS_GETRLMT resource
SYS_SETRLMT resource ❌❗️
SYS_GETRUSG resource
SYS_INFO resource
SYS_SOCKET socket
SYS_CONNECT socket
SYS_ACCEPT socket
SYS_SENDTO socket
SYS_RECVFROM socket
SYS_SOCKPAIR socket
SYS_SHUTDOWN socket
SYS_BIND socket
SYS_LISTEN socket
SYS_RECVMSG socket
SYS_SENDMSG socket
SYS_GETSOCKOPT socket ⚠️
SYS_SETSOCKOPT socket
SYS_FUTEX sync ⚠️ 支持wait和wake
SYS_GETTOD time
SYS_REBOOT sys ⚠️
SYS_ARCH_PRCTL ⚠️ 仅支持set fsbase
SYS_EXIT_GROUP proc ⚠️ 同sys_exit,未考虑多线程
SYS_TIME time

Hardware Related

module status note
82599 driver ‼️
E1000 driver

Program

program status description
bimage 缺少额外的文件
bmgc 使用了 biscuit 专用 syscall
bmgc2 使用了 biscuit 专用 syscall
bmopen
bmread
bmsmallfile
bmwrite
cat
cksum
cls
conio
ebizzy 差 clone
echo
fault
fault2 死锁
fcgi 需要对源码改动,原用于配合 fweb
fork
fsbigwrite 文件系统问题
fscreat
fsfree
fslink
fsmkdir
fstest
fsunlink
fswrite 并发访问有bug
fweb 使用了 biscuit 专用 syscall
getpid
goodcit 缺少额外的文件
halp 需要 bmgc
head
hello
init mknod 不支持
kill wait4实现不完整
killtest
largefile 文件系统问题
less
lnc 需要修改代码
ls
lsh 使用了 biscuit 专用 syscall
mkdir
mknodtest 未实现 mknod
mmapbench
mmaptest
mv
pipetest
pthtests 🐞 fork有问题
pwd
reboot
rmtree
rshd
sfork 使用了 biscuit 专用 syscall
sleep
smallfile
sockettest
stress sys_mmap不完整
sync 缺少 sys_sync
thtests 使用了 biscuit 专用 syscall
time 使用了 biscuit 专用 syscall
touch
true
uname
unlink
usertests 文件系统问题
nginx 🐞
redis 🐞