Explainer breaks down how Linux uses intrusive linked lists for process management
A technical post explains intrusive linked lists, a linked-list variant where the 'next' pointer is embedded directly inside the data structure being linked rather than stored in a separate wrapper node. It walks through how to construct such a list in C, including how to recover the address of a containing object by subtracting the offset of its embedded list member.
GoKawiil's interpretation of the reporting above, not reported fact.
This pattern is not just academic—it's the actual mechanism the Linux kernel uses to manage process lists and other core data structures efficiently, avoiding extra memory allocations and pointer indirection. Understanding it helps developers read kernel source code and write more memory-efficient C in performance-critical systems.
- Intrusive linked lists embed the list node inside the linked structure itself, unlike traditional lists that store a separate data pointer.
- Retrieving the parent object requires subtracting the list member's byte offset from its memory address.
- This technique underpins how the Linux kernel manages process and object lists efficiently in C.
Computer Systems: A Programmer's Perspective — If digging into intrusive linked lists and Linux process management scratched an itch, this classic text goes deep on how programs, memory, and the kernel actually fit together. It's the kind of book that turns pointer diagrams into real intuition about systems code.
See Computer Systems: A Programmer's Perspective on Amazon → Affiliate link — we may earn a commission on purchases, at no extra cost to you. Product picked by AI based on this article; it is not a tested recommendation.Source: data-structures-in-practice.com — Edd Yerburgh, 2026-08-31
Published there as: “Intrusive Linked Lists”
Read the original report → The summary and analysis above are GoKawiil's own, written from reporting by the source above. Facts and quotes belong to the original publisher.