~/talk

Writing Linux Kernel Modules in Safe Rust

links:none on file
slides:none on file

65% of kernel CVEs are memory‑unsafety bugs, so a Rust-based module framework is built that uses bindgen and cargo‑xbuild with clang/LLVM interoperability, kmalloc-backed global allocator hooks, and user slice pointer APIs that consume buffers to prevent double‑fetch. A safe wrapper pattern exposes kernel file_operations as Rust traits, registers a character device that emits JSON via serde, and runs in QEMU; performance is comparable and a release build with JSON is about 1 MB. Sources and build scripts are on GitHub.

AI-written summary · about

  1. 0:00Intro
  2. 0:57Memory unsafety
  3. 1:2249% - Chrome
  4. 2:0670% - Microsoft
  5. 2:2465% - Ubuntu
  6. 2:3665% - Android
  7. 2:51UAF Static Analysis
  8. 3:48Hardening C
  9. 4:25Isolation
  10. 6:26What do we want out of our language?
  11. 8:40A whirlwind tour of Rust, focusing on safety
  12. 8:53Hello world!
  13. 9:50Uninitialized variables
  14. 10:25Structs
  15. 11:43Traits
  16. 12:26Generics and polymorphism
  17. 12:47Trait objects and runtime polymorphism
  18. 14:13Enums with data
  19. 14:51Option and Result
  20. 16:47Error handling
  21. 17:54Panics and unwinding
  22. 20:07Dangling references
  23. 21:47Mutable references are unique references
  24. 23:44Atomics
  25. 25:37Safe and unsafe Rust
  26. 30:42Compiling
  27. 31:00Bindings
  28. 31:19Mapping kernel APIs to Safe Rust
  29. 32:09Heap allocations just work
  30. 32:37What about _user pointers?
  31. 34:29Concurrency!
  32. 35:32FileOperations must be Sync!
  33. 39:16Architecture support
  34. 45:13Real world out-of-tree module usage?
  35. 45:34Better kbuild integration
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.