7 releases

0.1.63 Jan 11, 2023
0.1.62 Nov 30, 2022
0.1.4 Oct 30, 2022
0.1.3 Sep 26, 2022

#732 in Unix APIs


Used in hdexecutor

MIT license

160KB
3.5K SLoC

penguincrab

unsafe wrapper for Linux Kernel Library in Rust

This command will take a while to compile since it also builds the kernel:

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

if you have docker

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

File naming

lkl/ syscall_wrappers - wrappers for syscalls and tests 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

Examples of how to use it

tests

To use penguincrab as a crate either copy the build.rs into the crate that uses it or compile liblkl.so and run your crate with LD_LIBARAY_PATH=(directory with liblkl.so)

Working on fixing Dockerfile no file error will put commands and then publish

Dependencies

~1.5MB
~36K SLoC