Conceptual
Login

Pinning: Values That Must Never Move

Moving a value in Rust normally just copies its bits to a new address, which is harmless — unless something inside it, or something elsewhere, remembers its old address. Pinning is the promise that a value will stay where it was first placed, so those remembered addresses stay true. It matters for any structure that links itself into a list the rest of the system walks.

Questions this Concept answers

  • Why do so many kernel structures need to be pinned?