12 Stimmen

Welche Datenstrukturen sind im Linux-Kernel verfügbar?

Gibt es irgendwo eine Liste aller wichtigen generischen Datenstrukturen, die im Linux-Kernel verwendet werden, und als Nebeneffekt auch die wichtigsten Orte, an denen sie verwendet werden?

Mit "generischen Datenstrukturen" meine ich Dinge wie doppelt verkettete Listen, Hash-Listen, Timer Wheels usw.

Und welche sind Teil der intern bereitgestellten API, die für Module verfügbar ist?

Modifier

In der linux/lib Verzeichnis sehe ich einige vielversprechende Hinweise...

bitmap.c
plist.c
prio_heap.c
prio_tree.c
radix-tree.c
rbtree.c

4voto

Graphics Noob Punkte 9450

Soweit ich mich erinnere, wird der Linux-Kernel mit Implementierungen von Radix-Baum y Rot-Schwarzer Baum .

0 Stimmen

Werden sie für irgendetwas verwendet?

3voto

u0b34a0f6ae Punkte 45029

Ein relevanter LWN-Artikel: Linux-Kernel-Entwurfsmuster - Teil 2

2voto

ennuikiller Punkte 44945

Der beste Weg, etwas über Kernel-Datenstrukturen herauszufinden, sind also die Header-Dateien, die sich normalerweise unter /usr/include befinden. Eine gründliche Untersuchung dieser Dateien finden Sie in dieser kostenlosen Online-Ressource sowie in vielen anderen Quellen:

Kernel-Architektur

Zwei ausgezeichnete Bücher sind:

Linux-Kernel-Architektur

Den Linux-Kernel verstehen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X