What Data Structures are available in the Linux Kernel [closed]
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
开发者_运维技巧 Improve this questionIs 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.
A relevant LWN article: Linux kernel design patterns - part 2
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
精彩评论