Also known as: Rust language · borrow checker · ownership model
Rust is a systems programming language that guarantees memory safety without garbage collection, using a compile-time ownership and borrowing model to eliminate entire classes of bugs including use-after-free and data races.
The ownership model enforces that each value has a single owner and that references cannot outlive what they point to. The borrow checker verifies this at compile time, which is why Rust's learning curve front-loads difficulty that other languages defer to production debugging.
Rust's adoption in security-critical contexts, including the Linux kernel's driver subsystem, is driven by memory-safety audits consistently attributing most critical vulnerabilities in large C and C++ codebases to exactly the bug classes Rust prevents.
Memory Safety
Memory safety is the property of a program being unable to access memory outside the bounds of what it legitimately owns, preventing entire vulnerability classes such as buffer overflows, use-after-free, and data races.
Use-After-Free
A use-after-free is a memory-safety vulnerability in which a program continues to use a pointer to memory that has already been released, allowing an attacker who can control what occupies that memory to influence program behaviour.
Buffer Overflow
A buffer overflow is a memory-safety vulnerability in which a program writes more data into a fixed-size memory buffer than it can hold, corrupting adjacent memory and potentially allowing an attacker to alter program execution.
Kernel
The kernel is the core of an operating system, responsible for managing memory, scheduling processes, and mediating all access between software and hardware. The Linux kernel is the component that makes a system 'Linux'.
Type System
A type system is a set of rules that assigns types to program constructs and verifies their consistent use, catching a class of errors before the program runs in statically-typed languages, or during execution in dynamically-typed ones.