Add two new tasks and mark some tasks as completed
本仓库为感兴趣参加星绽开源社区贡献赛的同学提供一些选题的idea。欢迎提出自己的idea,可以在Github Discussions上提问和讨论。
本页面会定期更新。
ptrace
kernel/src/process/posix_thread/alien_access.rs:57
io_uring_setup
io_uring_enter
io_uring_register
kernel/src/process/namespace/nsproxy.rs:76
PR_GET_DUMPABLE
PR_SET_DUMPABLE
kernel/src/syscall/prctl.rs:38-46
ostd/src/arch/riscv/
ostd/src/arch/loongarch/
ostd/src/arch/loongarch/irq/chip/mod.rs:11
ostd/src/arch/x86/kernel/acpi/mod.rs:133
kernel/comps/pci/src/arch/riscv/mod.rs:55
kernel/comps/virtio/src/device/block/device.rs:226
kernel/comps/virtio/src/transport/mmio/bus/mod.rs:30
/proc/meminfo
/proc/<tid>
/proc/[pid]/status
/proc/[pid]/stat
kernel/src/fs/fs_impls/procfs/pid/task/status.rs:22
stat.rs:24
/dev
kernel/src/fs/vfs/path/dentry.rs:295,573
kernel/src/fs/vfs/path/mount.rs:35
O_TMPFILE
kernel/src/fs/file/file_attr/creation_flags.rs:6
kernel/src/net/socket/ip/addr.rs:26
kernel/src/net/socket/ip/stream/mod.rs:504
MSG_NOSIGNAL
:567
:561,582
:750
kernel/src/net/socket/ip/datagram/mod.rs:50-244
kernel/src/net/socket/unix/ctrl_msg.rs
kernel/src/net/iface/init.rs:33
broadcast.rs:11
kernel/src/net/socket/netlink/route/kernel/mod.rs:73
:50
ping
INADDR_ANY
0.0.0.0
kernel/src/process/credentials/mod.rs:32
FUTEX_WAKE_OP
kernel/src/process/posix_thread/futex.rs
SCHED_DEADLINE
getcpu
kernel/src/syscall/getcpu.rs:13
siginfo_t
si_timerid
si_overrun
kernel/src/process/signal/mod.rs
rename
NOREPLACE
EXCHANGE
WHITEOUT
kernel/src/syscall/rename.rs:31
statx
kernel/src/syscall/statx.rs:149
:163
mlock
mlockall
membarrier
getrandom
GRND_NONBLOCK
GRND_INSECURE
kernel/src/syscall/getrandom.rs:23
access
faccessat
kernel/src/syscall/access.rs:108
clone3
set_tid
cgroup
kernel/src/syscall/clone.rs:89
mremap
kernel/src/syscall/mremap.rs:81,94
MAP_32BIT
kernel/src/syscall/mmap.rs:89
setns
kernel/src/syscall/setns.rs:95,128,172,201
kernel/src/device/tty/line_discipline.rs:160
:244
kernel/src/device/evdev/mod.rs:284
evdev/file.rs
kernel/src/device/mem/file.rs:42
adduser
passwd
/etc/passwd
/etc/shadow
ostd/src/mm/kspace/mod.rs:261
kernel/src/fs/fs_impls/cgroupfs/controller/mod.rs
read_volatile
write_volatile
kernel/libs/xarray/src/cursor.rs:470
ostd/src/util/range_counter.rs:5
CCF开源创新比赛星绽赛道的一些候选题目
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
星绽开源社区贡献赛
本仓库为感兴趣参加星绽开源社区贡献赛的同学提供一些选题的idea。欢迎提出自己的idea,可以在Github Discussions上提问和讨论。
本页面会定期更新。
一、增加内核子系统
增加 Linux Security Module (LSM) 子系统,增加 YAMA — 目前内核缺少 LSM 框架,ptrace访问检查处有明确的 TODO 提到需要 YAMA(kernel/src/process/posix_thread/alien_access.rs:57)【高】io_uring_setup、io_uring_enter、io_uring_register等系统调用,这是现代 Linux 高性能 I/O 的核心 【中】增加 IPC namespace 和 Cgroup namespace — 在 nsproxy 中标记为 TODO(kernel/src/process/namespace/nsproxy.rs:76)【中】PR_GET_DUMPABLE始终返回 DISABLE,PR_SET_DUMPABLE为空操作(kernel/src/syscall/prctl.rs:38-46)【中】二、增加硬件支持和设备驱动
ostd/src/arch/riscv/)【中-高】ostd/src/arch/loongarch/),FIXME 提到需要支持 SMP(ostd/src/arch/loongarch/irq/chip/mod.rs:11)【中-高】ostd/src/arch/x86/kernel/acpi/mod.rs:133,kernel/comps/pci/src/arch/riscv/mod.rs:55)【中】kernel/comps/virtio/src/device/block/device.rs:226)【中】kernel/comps/virtio/src/transport/mmio/bus/mod.rs:30)【中】三、完善现有功能点
文件系统
、/proc/meminfo(Issue #946),以及/proc/<tid>线程信息(Issue #2940)/proc/[pid]/status和中标记为 FIXME 的未实现字段(/proc/[pid]/statkernel/src/fs/fs_impls/procfs/pid/task/status.rs:22、stat.rs:24)【高】/dev下实现内核管理的 tmpfs,替代当前临时方案(Issue #1990)【高】kernel/src/fs/vfs/path/dentry.rs:295,573)【中】kernel/src/fs/vfs/path/mount.rs:35)【中-高】增加O_TMPFILE标志支持 — 当前明确标记为 TODO(kernel/src/fs/file/file_attr/creation_flags.rs:6)【低】网络
kernel/src/net/socket/ip/addr.rs:26)【高】kernel/src/net/socket/ip/stream/mod.rs:504)、MSG_NOSIGNAL处理(:567)、控制消息收发(:561,582)、keep-alive idle 跟踪(:750)等 【中】kernel/src/net/socket/ip/datagram/mod.rs:50-244)【中】kernel/src/net/socket/unix/ctrl_msg.rs中有多处 TODO)、SEQPACKET 类型缺失 【中】kernel/src/net/iface/init.rs:33、broadcast.rs:11)【中-高】kernel/src/net/socket/netlink/route/kernel/mod.rs:73)、ACK 标志处理未完成(:50)【中】ping等用户态程序会依赖该能力;可参考此前未完成的实现(PR #1660)【高】INADDR_ANY— 当前仅能绑定到特定网络设备,尚不支持绑定到INADDR_ANY(0.0.0.0)以监听所有网卡,这是很多服务器应用程序需要的能力(Issue #264)【高】进程与调度
重新设计 capability 检查 API(Issue #2381),支持bounding和 ambient capability set(kernel/src/process/credentials/mod.rs:32)【中】FUTEX_WAKE_OP操作,robust futex 支持也有待完善(kernel/src/process/posix_thread/futex.rs多处 FIXME)【中】SCHED_DEADLINE调度策略 — 目前实现了 CFS、FIFO、RR,但缺少 DEADLINE 和 BATCH 策略 【中-高】getcpu系统调用有 TODO 表明不支持 NUMA(kernel/src/syscall/getcpu.rs:13)【高】siginfo_t中 POSIX timer 信号缺少si_timerid和si_overrun(Issue #2913),信号上下文有多处 FIXME(kernel/src/process/signal/mod.rs)【低-中】系统调用完善
rename的NOREPLACE/EXCHANGE/WHITEOUT标志 — 当前标记为 TODO(kernel/src/syscall/rename.rs:31)【低】statx系统调用 — 多个字段为虚拟实现(kernel/src/syscall/statx.rs:149),缺少 birth time 支持(:163)【低-中】mlock/mlockall系统调用 — 目前未实现内存锁定 【中】membarrier系统调用 — 对高性能并发程序重要 【中】getrandom的GRND_NONBLOCK和GRND_INSECURE标志 — 当前标记为 TODO(kernel/src/syscall/getrandom.rs:23)【低】access/faccessat系统调用 — 当前实现标记为 dummy(kernel/src/syscall/access.rs:108)【低-中】clone3的set_tid/cgroup支持 — 当前标记为 TODO(kernel/src/syscall/clone.rs:89)【中】mremap系统调用 — 当前有 FIXME 和 TODO(kernel/src/syscall/mremap.rs:81,94)【中】MAP_32BITmmap 标志 — 当前标记为 TODO(kernel/src/syscall/mmap.rs:89)【低-中】setns系统调用 — 多处 TODO 表明命名空间切换不完整(kernel/src/syscall/setns.rs:95,128,172,201)【中】实现 Go 标准库所需的全部系统调用 — 有详细追踪 Issue(Issue #1888),含优先级和复杂度评级,可逐个完成 【中】设备与终端
支持多 TTY 终端 — 实现 Ctrl+Alt+Fn 虚拟终端切换(Issue #2820)【中】kernel/src/device/tty/line_discipline.rs:160),canonical 模式切换行为不正确(:244)【中】kernel/src/device/evdev/mod.rs:284),多个 ioctl 操作未实现(evdev/file.rs)【中】kernel/src/device/mem/file.rs:42)【中-高】adduser、passwd、/etc/passwd、/etc/shadow、访问控制和文件隔离(Issue #1430)【高】内存管理
ostd/src/mm/kspace/mod.rs:261)【中-高】重构 page cache 系统 — 改进页面缓存架构(Issue #2937)【高】Cgroup
kernel/src/fs/fs_impls/cgroupfs/controller/mod.rs),缺少CPU、Devices、Freezer、Blkio、Net_cls 等常用控制器 【中】(每个控制器)四、性能优化
零原子操作的文件表查找 — 消除文件描述符表查找中的原子操作开销(Issue #1550)【中-高】减少 read/write 系统调用路径中的堆分配和内存拷贝 — 目前有额外开销(Issue #1057)【中】用内联汇编替换read_volatile/write_volatile— 底层优化(Issue #2948)【低-中】kernel/libs/xarray/src/cursor.rs:470)【低-中】ostd/src/util/range_counter.rs:5)【中】五、识别和修复 Bug
六、测试与基础设施