Biscuit Syscall & Program Status - oscourse-tsinghua/rcore_plus GitHub Wiki
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 |
🐞 |
|