Catalogue
/
Software Development and Programming
/
Rust Systems for Systems Programming

Rust Systems for Systems Programming

A practical course that uses Rust to build safe and fast systems software. You will learn the core language patterns that unlock memory safety without a garbage collector, then apply them to low level tasks like file IO, interop with C, and concurrent services. The agenda balances fundamentals with real systems techniques you can reuse at work.

What will you learn?

You will set up a reliable Rust toolchain, use Cargo effectively, and structure projects for maintainability. You will reason about ownership, borrowing, and lifetimes to write safe code that manipulates memory and system resources. You will call into C, manage unsafe boundaries, and implement concurrent work with confidence.

  • Master ownership, borrowing, and lifetimes for safe low level programming
  • Build and structure projects with Cargo, modules, and crates
  • Interoperate with C using FFI while containing unsafe code
  • Diagnose, profile, and tune Rust programs for reliability and speed

Requirements:

  • Comfortable with a compiled language such as C, C++, Java, or Go
  • Terminal access with permissions to install toolchains
  • Ability to run sample programs on your OS of choice

Course Outline*:

*We customize the course outline and content to your specific needs and relevant use cases.

Module 1: Toolchain setup and project anatomy

  • Install rustup, select toolchains, and manage targets
  • Cargo commands, workspaces, features, and profiles
  • Project layout with modules, crates, and visibility
  • Building, testing, and documenting from the CLI

Module 2: Ownership thinking

  • Moves, copies, and drops and why it matters for resources
  • References and borrowing rules mutable, shared, and aliasing
  • Lifetimes by example when the compiler needs hints
  • Slices, strings, and UTF 8 safety in system code

Module 3: Core syntax and control

  • Types, pattern matching, and expressions that return values
  • Functions, generics, and trait bounds that read like contracts
  • Error handling with Result and Option and propagating with ?
  • Panic policies unwind vs abort and choosing per binary

Module 4: Data modeling for low level work

  • Structs for layout and invariants newtype and builder styles
  • Enums for state machines and fallible operations
  • Pattern matching for state transitions
  • Minimal CLI program with structured errors

Module 5: Memory management without a GC

  • Stack vs heap in practice
  • Box, Rc, Arc and when each fits
  • Raw pointers, references, and alignment basics
  • Unsafe blocks as narrow, well documented islands

Module 6: System IO and resources

  • Reading and writing files with std and buffered IO
  • Working with paths, processes, and environment
  • Time, timers, and dealing with OS errors
  • RAII patterns to manage handles and cleanup

Module 7: Concurrency and synchronization

  • Threads and message passing with channels
  • Shared state with Mutex, RwLock, and Condvar
  • Send and Sync marker traits and what they imply
  • Guidelines for avoiding deadlocks and priority inversions

Module 8: Interfacing with C

  • FFI building blocks repr, extern blocks, and linking
  • Passing strings, slices, and ownership across the boundary
  • Wrapping unsafe pointers with safe abstractions
  • Header first workflow bindgen and manual bindings

Module 9: Debugging and troubleshooting

  • Readable errors, backtraces, and logging with env filters
  • Using cargo tools for test, fmt, clippy, and audit
  • Debugging sessions with lldb or gdb basics
  • Common pitfalls borrow checker, lifetimes, and trait bounds

Module 10: Performance and allocation awareness

  • Measuring with cargo bench and simple timers
  • Understanding inlining, monomorphization, and trait objects
  • Minimizing allocations and copies small vector and cow patterns
  • File and network IO strategies blocking vs async at a glance

Module 11: Building a small systems service

  • Designing a minimal daemon or CLI subcommand style
  • Configuration, arguments, and feature flags
  • Graceful shutdown and signal handling
  • Error taxonomy for stable operations

Module 12: Packaging and next steps

  • Release profiles and symbol choices
  • Cross compilation targets and musl builds
  • Organizing a safe unsafe boundary checklist
  • Pathways to async, embedded, and advanced interop

Hands-on learning with expert instructors at your location for organizations.

5.922€*
Graph Icon - Education X Webflow Template
Level:
advanced
Clock Icon - Education X Webflow Template
Duration:
21
Hours (days:
3
)
Camera Icon - Education X Webflow Template
Training customized to your needs
Star Icon - Education X Webflow Template
Immersive hands-on experience in a dedicated setting
*Price can range depending on number of participants, change of outline, location etc.

Master new skills guided by experienced instructors from anywhere.

4.587€*
Graph Icon - Education X Webflow Template
Level:
advanced
Clock Icon - Education X Webflow Template
Duration:
21
Hours (days:
3
)
Camera Icon - Education X Webflow Template
Training customized to your needs
Star Icon - Education X Webflow Template
Reduced training costs
*Price can range depending on number of participants, change of outline, location etc.