#linux-kernel #file #flags #wrapper #settings #command #shared

sys 海鹏蟹

Rust 对 Linux 内核的封装作为库

7 个版本

0.1.63 2023 年 1 月 11 日
0.1.62 2022 年 11 月 30 日
0.1.4 2022 年 10 月 30 日
0.1.3 2022 年 9 月 26 日

#732 in Unix API


用于 hdexecutor

MIT 许可证

160KB
3.5K SLoC

海鹏蟹

针对 Linux 内核库 的 Rust 不安全封装

此命令编译时间较长,因为它还需要构建内核

$ cargo build && cargo test -- --nocapture

如果你有 Docker

$ sudo docker build --progress=plain . -f Dockerfile

文件命名

lkl/ syscall_wrappers - 系统调用的封装和测试 lklh/

lkl_specific.rs - defines general structs like lkl_host_ops and functions from the C library
syscall_nos.rs - system call numbers. If you don't see the one you want compile the kernel with the settings you want and then use bindgen to get the value.
consts.rs - constants like LKL_O_RDONLY and other flags
rests.rs - all the other constants

使用示例

测试

要将 penguincrab 作为 crate 使用,可以将 build.rs 复制到使用它的 crate 中,或者编译 liblkl.so 并使用 LD_LIBARAY_PATH=(包含 liblkl.so 的目录) 运行您的 crate

正在修复 Dockerfile 无文件错误,稍后会发布命令

依赖项

~1.5MB
~36K SLoC