Is there a list somewhere of all the major generic data structures used in the Linux Kernel and as a side bonus major places they're used?
What I mean by "generic data structures" is things like doubly linked lists, hash lists, timer wheels, etc.
Also, which ones are considered part of the internally provided api available to modules?
Edit
In the linux/lib
directory I see some promising leads...
bitmap.c
plist.c
prio_heap.c
prio_tree.c
radix-tree.c
rbtree.c
From what I remember the linux kernel comes with implementations of Radix Tree and Red-Black Tree.
So, the best way to find out about kernel data structures is via the header files normally found at /usr/include. A thorough examination of these can be found in in this free on-line resource as well as many other sources:
Kernel Architecture
Two excellent books are:
Linux Kernel Architecture
Understanding the Linux Kernel
A relevant LWN article: Linux kernel design patterns - part 2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With