What data structures are available in the Linux kernel

Is there a list somewhere of the main basic data structures used in the Linux kernel, and as bonus bonuses in which they are used?

What I mean by “generic data structures” are things like doubly linked lists, hash lists, timer wheels, etc.

In addition, which ones are considered part of the built-in api module available for the 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 
+7
data-structures linux-kernel
source share
3 answers

So, the best way to learn about kernel data structures is through header files, usually found in / usr / include. A detailed survey of them can be found in this free online resource, as well as in many other sources:

Core architecture

Two great books:

Linux kernel architecture

Understanding the Linux Kernel

+3
source share

From what I remember, the linux kernel comes with Radix Tree and Red-Black Tree implementations.

+3
source share

Corresponding LWN article: Linux Kernel Design Models - Part 2

+2
source share

All Articles