Skip to content Skip to content
Vladimir Chavkov

Rust for Systems Programming Training

Go beyond safe Rust and learn to build systems-level software in this advanced 3-day training. Master unsafe Rust, foreign function interfaces, raw memory management, and OS-level programming. This course teaches you how to write the kind of software that Rust was originally designed for — operating system components, device drivers, embedded firmware, and performance-critical infrastructure.

Duration3 days (24 hours)
LevelAdvanced
DeliveryIn-person, Live online, Hybrid
CertificationN/A
  • Experienced Rust developers moving into systems programming
  • C/C++ developers adopting Rust for systems work
  • Embedded engineers exploring Rust for firmware development
  • Infrastructure engineers building low-level tooling
  • Anyone building performance-critical system components

After completing this training, participants will be able to:

  • Write unsafe Rust code with proper safety invariants and documentation
  • Build and consume C libraries through Rust’s FFI
  • Implement custom memory allocators and manage raw memory
  • Interact with operating system APIs for file I/O, networking, and process management
  • Profile and optimize systems-level code for cache efficiency and minimal overhead
  • Design safe abstractions over unsafe foundations

Module 1: Unsafe Rust Fundamentals

  • The unsafe keyword and what it unlocks
  • Five unsafe superpowers (raw pointers, unsafe functions, unsafe traits, mutable statics, union access)
  • Safety invariants and documentation contracts
  • Hands-on: Write and audit unsafe code blocks

Module 2: Raw Pointers and Memory Layout

  • Raw pointer creation, dereferencing, and arithmetic
  • std::ptr operations and null handling
  • Memory layout with repr(C), repr(packed), repr(align)
  • Hands-on: Implement a raw pointer-based data structure

Module 3: Custom Allocators

  • The GlobalAlloc trait
  • Writing a bump allocator
  • Arena allocation patterns
  • Hands-on: Implement and benchmark a custom allocator

Module 4: Inline Assembly and Compiler Intrinsics

  • The asm! macro for inline assembly
  • SIMD intrinsics with std::arch
  • Compiler hints and optimization barriers
  • Hands-on: Optimize a hot loop with SIMD

Module 5: Calling C from Rust

  • extern “C” functions and #[link] attributes
  • bindgen for automatic header translation
  • Handling C strings, arrays, and structs
  • Hands-on: Wrap a C library (zlib) with safe Rust bindings

Module 6: Calling Rust from C

  • Exposing Rust functions with #[no_mangle] and extern “C”
  • cbindgen for generating C headers
  • Memory ownership across the FFI boundary
  • Hands-on: Build a Rust library callable from C

Module 7: Building Sys Crates

  • The *-sys crate convention
  • Build scripts (build.rs) for compiling C code
  • pkg-config and cmake integration
  • Hands-on: Create a complete sys crate with safe wrapper

Module 8: FFI with Other Languages

  • Python bindings with PyO3
  • Node.js bindings with napi-rs
  • Shared memory and IPC patterns
  • Hands-on: Build a Python extension module in Rust

Day 3: OS Interaction and Bare-Metal Programming

Section titled “Day 3: OS Interaction and Bare-Metal Programming”

Module 9: Operating System Interfaces

  • System calls and libc bindings
  • File descriptors and I/O operations
  • Process management (fork, exec, signals)
  • Hands-on: Build a process supervisor

Module 10: Networking at the System Level

  • Raw sockets and socket options
  • Non-blocking I/O with epoll/kqueue
  • Zero-copy networking patterns
  • Hands-on: Implement a raw packet capture tool

Module 11: No-std and Embedded Rust

  • Building without the standard library
  • Core and alloc crates
  • Embedded targets and cross-compilation
  • Hands-on: Build a no_std library with custom panic handler

Module 12: Profiling and Optimization

  • Perf, flamegraph, and cachegrind
  • Memory profiling with DHAT and Valgrind
  • Cache-friendly data structures
  • Hands-on: Profile and optimize a systems application
  • Strong Rust experience (6+ months active development)
  • Deep understanding of ownership, lifetimes, and unsafe concepts
  • Familiarity with C programming and memory management
  • Basic understanding of operating system concepts
FormatDescription
In-PersonOn-site at your company’s location, hands-on with direct interaction
Live OnlineInteractive virtual sessions with screen sharing and real-time labs
HybridCombination of on-site and remote sessions, flexible scheduling

All formats include hands-on labs, course materials, reference implementations, and post-training support.