Explore the challenges and strategies for compiling code for verified targets, specifically focusing on the Linux kernel's Berkeley Packet Filter (BPF). Learn about the unique requirements of BPF programs, which must be verified as safe before execution in privileged kernel mode. Discover the complexities of generating verifiable machine instructions from high-level languages like C or Rust. Examine various techniques being considered to address these challenges, including IR legalization, static analysis, assembler verification, and specialized compiler passes. Gain insights into the ongoing discussions between GNU toolchain, clang/llvm, and BPF kernel communities to develop practical solutions for compiling verified targets. Understand the implications of these developments for the future of kernel programming and the potential proliferation of verifiers in other domains.
Overview
Syllabus
Compiling for verified targets BPF - Jose E Marchesi
Taught by
Linux Plumbers Conference