Bryan Cantrill shares the history, implementation, and debugging power of the slab allocator in operating system kernels.
Talk by Bryan Cantrill.
Memory allocation is an important aspect of any dynamic software system, but
it's especially essential in an operating system kernel -- a program that is
expected to run continuously and in perpetuity. Two decades ago, I fell in
love with the slab allocator from Sun Microsystems, ultimately plotting the
course of my nascent career to work with its creator, Jeff Bonwick. As a
young software engineer, I quickly learned the power of its incredible
debugging capabilities, and came to appreciate the subtle beauty of its
implementation. As the years passed, the slab allocator saw important
changes: it was extended deeper into the virtual memory system; it was
brought to user-level and made available to applications; and it was
liberated from its proprietary shackles and made open source. With each of
these changes, a new generation of engineers came to the slab allocator,
bringing their own insights and making their own significant contributions.
Two decades after I first fell in love with it, the slab allocator remains
at the heart of the systems I work on -- and is as compelling as ever. In
this talk, I will describe some of the highs (and a few of the lows) of my
two decade relationship with this system, highlighting in particular those
aspects of its craftsmanship that continue to inspire the ways we build new
systems.
Why it's here
1 person recommends this
What people say. Recommended as an impressive look into kernel memory allocation and the history of the slab allocator.
w
u/wsppanin r/C_Programming • Recommends
On “How does a free function know how much memory it needs to free up? like she only gets a pointer to the allocated memory right?”
The slab allocator by Jeff Bonwick from Sun Microsystems is one of the most impressive pieces of software engineering I have worked with. Check out Down Memory Lane: Two Decades With The Slab Allocator by Bryan Cantrill.