Suchen und Finden
Inhaltsverzeichnis
6
Vorwort
14
1 Einführung und Uberblick
16
1.1 Aufgaben des Kerns
17
1.2 Implementierungsstrategien
17
1.3 Bestandteile des Kernels
18
2 Prozessverwaltung
34
2.1 Prozessprioritäten
35
2.2 Lebenszyklus eines Prozesses
37
2.3 Repräsentation von Prozessen
40
2.4 Systemaufrufe zur Prozessverwaltung
51
2.5 Implementierung des Schedulers
67
2.6 Erweiterungen des Schedulers
80
3 Speicherverwaltung
86
3.1 Überblick
86
3.2 Organisation nach dem (N)UMA-Modell
88
3.3 Seitentabellen
98
3.4 Initialisierung der Speicherverwaltung
105
3.5 Verwaltung des physikalischen Speichers
132
3.6 Der Slab-Allokator
162
3.7 Verwaltung des virtuellen Prozessspeichers
185
3.8 Prozessorcache- und TLB-Steuerung
225
4 Interprozesskommunikation und Locking
230
4.1 Steuerungsmechanismen
230
4.2 Locking-Mechanismen des Kerns
234
4.3 System V-Interprozesskommunikation
240
4.4 Andere IPC-Mechanismen
253
5 Gerätetreiber
262
5.1 IO-Architektur
262
5.2 Zugriff auf Erweiterungsgeräte
268
5.3 Treiberregistrierung
272
5.4 Verbindung mit dem Dateisystem
274
5.5 Treiberoperationen
278
5.6 Ressourcen-Reservierung
298
5.7 Bussysteme
304
6 Module
328
6.1 Module verwenden
329
6.2 Module einfügen und löschen
336
6.3 Automatisierung und Hotplugging
356
6.4 Versionskontrolle
359
7 Das virtuelle Dateisystem
366
7.1 Dateisystemtypen
367
7.2 Das Common File Model
368
7.3 Aufbau des VFS
373
7.4 Arbeiten mit VFS-Objekten
392
7.5 Standardfunktionen
410
8 Dateisystemimplementierungen
416
8.1 Second Extended Filesystem
418
8.2 Third Extended Filesystem
461
8.3 Das Dateisystem
466
9 Netzwerke
506
9.1 Verkettete Computer
507
9.2 ISO/OSI- und TCP/IP-Referenzmodell
507
9.3 Kommunikation über Sockets
511
9.4 Das Schichtmodell der Netzwerkimplementierung
519
9.5 Socketpuffer
521
9.6 Datenübertragungsschicht
524
9.7 Vermittlungsschicht
532
9.8 Transportschicht
549
9.9 Anwendungsschicht
564
10 Systemaufrufe
572
10.1 Grundlagen der Systemprogrammierung
572
10.2 Vorhandene Systemaufrufe
579
10.3 Realisierung von Systemaufrufen
584
11 Kernel-Aktivitäten und Zeitfluss
602
11.1 Interrupts
602
11.2 Software-Interrupts
621
11.3 Tasklets und Work Queues
624
11.4 Wait Queues und Completions
627
11.5 Kerneltimer
632
12 Page- und Buffer-Cache
644
12.1 Struktur des Page-Caches
645
12.2 Der Buffer-Cache
648
12.3 Adressräume
650
12.4 Implementierung des Puffer-Caches
658
13 Datensynchronisation
674
13.1 pdflush
675
13.2 Starten eines neuen Threads
676
13.3 Thread-Initialisierung
676
13.4 Durchführen der Arbeit
678
13.5 Periodisches Zurückschreiben
679
13.6 Assoziierte Datenstrukturen
679
13.7 Zentrale Steuerung
682
13.8 Superblock-Synchronisation
684
13.9 Inoden-Synchronisation
685
13.10 Verstopfungen
689
13.11 Zurückschreiben unter Druck
692
13.12 Systemaufrufe zur Synchronisationskontrolle
694
13.13 Vollständige Synchronisierung
694
13.14 Synchronisieren einzelner Dateien
696
13.15 Synchronisieren von Memory Mappings
698
14 Swapping
700
14.1 Überblick
700
14.2 Swapping im Linux-Kernel
704
14.3 Verwaltung von Swap-Bereichen
708
14.4 Der Swap-Cache
718
14.5 Zurückschreiben der Daten
730
14.6 Seitenauswahl – Swap Policy
731
14.7 Behandlung von Page Faults
747
14.8 Auslösen des Swappings
751
14.9 Verkleinern anderer Caches
756
Literaturverzeichnis
760
Index
762
Symbole
770
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.