Sie sind hier
E-Book

LINUX Kernelarchitektur

AutorWolfgang Mauerer
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2003
Seitenanzahl784 Seiten
ISBN9783446227798
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis44,00 EUR

Dieses Buch vermittelt einen detaillierten Einblick in den aktuellen Linux-Kernel 2.6 und zeigt, wie das System arbeitet, welche Konzepte und Strukturen verwendet werden und wie die Teile ineinander greifen. Alle relevanten Subsysteme des Kerns werden behandelt:

- Prozessverwaltung und Schedulingú Speicherverwaltung, Caching und Swappingú Dateisysteme
- Netzwerke und Kommunikationsmechanismen
- Gerätetreiberú ModuleDer Autor zeigt, wie die Leistungsfähigkeit des Kernels optimal genutzt werden kann.

Er erklärt auch die Abstraktionsmechanismen, die Linux vom Handheld bis zum Großrechner auf allen Plattformen einsetzbar machen. Zahlreiche Praxistipps zeigen, wie mit den Quellen gearbeitet werden kann.  

Kaufen Sie hier:

Horizontale Tabs

Kapitelübersicht
  1. Inhaltsverzeichnis und Vorwort
  2. 1 Einführung und Uberblick
  3. 2 Prozessverwaltung
  4. 3 Speicherverwaltung
  5. 4 Interprozesskommunikation und Locking
  6. 5 Gerätetreiber
  7. 6 Module
  8. 7 Das virtuelle Dateisystem
  9. 8 Dateisystemimplementierungen
  10. 9 Netzwerke
  11. 10 Systemaufrufe
  12. 11 Kernel-Aktivitäten und Zeitfluss
  13. 12 Page- und Buffer-Cache
  14. 13 Datensynchronisation
  15. 14 Swapping
  16. Literaturverzeichnis, Index und Symbole
Leseprobe

9 Netzwerke (S. 905-906)

Linux ist ein Kind des Internets, darüber besteht kein Zweifel: Seine Entwicklung hat viele verbreitete Ansichten über Projektmanagement bei weltweiten Programmierergruppen ad absurdum geführt, was vor allem der Kommunikation über das Internet zu verdanken war. Seit die ersten Kernelquellen vor mehr als einem Jahrzehnt auf einem ftp-Server im Internet verfügbar gemacht wurden, waren Netzwerke immer das zentrale Rückgrat, wenn es um Datenaustausch, Entwicklung von Konzepten und Code oder die Beseitigung von Fehlern im Kern ging. Die Kernelmailingliste ist ein lebendiges Beispiel dafür, dass sich an dieser Technik bis heute nichts geändert hat: Jeder kann die Beiträge lesen, sich selbst mit seiner Meinung beteiligen und dadurch zur Entwicklung von Linux beitragen – vorausgesetzt, man hat etwas Vernünftiges zu sagen.

Die Beziehung von Linux zu Netzwerken aller Art ist sehr innig, schließlich ist das Internet der Brutkasten, in dem es groß geworden ist. Linux-Rechner machen einen bedeutenden Anteil aller Server aus, die das Internet bilden, weshalb die Netzwerkimplementierung einer der wichtigsten Bestandteile des Kerns ist, dem bei der Entwicklung immer große Beachtung geschenkt wird. Es gibt kaum eine Netzwerkmöglichkeit, die von Linux nicht unterstützt wird. Die Implementierung der Netzwerkfunktionalitäten ist einer der komplexesten und umfangreichsten Teile des Kerns: Neben den klassischen Internet-Protokollen wie TCP, UDP und dem assoziierten Transportmechanismus IP unterstützt Linux viele weitere Möglichkeiten, die die Verbindung von Computern ermöglichen, um die größtmögliche Fähigkeit zur Zusammenarbeit mit allen denkbaren Rechner- und Betriebssystemtypen zu ermöglichen. Auch die Unterstützung einer riesigen Zahl von Hardwaremöglichkeiten zur Datenübertragung – angefangen bei Ethernet- Karten über Token-Ring-Adapter bis hin zu ISDN-Karten und Modems – macht die Aufgabe des Kerns nicht gerade einfacher.

Dennoch konnten die Linux-Entwickler ein erstaunlich gut strukturiertes Modell schaffen, mit dem sich die teilweise recht unterschiedlichen Ansätze vereinigen lassen. Auch wenn dieses Kapitel zu den umfangreichsten im Buch gehört, ist es nicht möglich, jedes Detail der Netzwerkimplementierung zu berücksichtigen. Es ist bereits unmöglich, auf alle Treiber und Protokolle grob einzugehen, da so viele Informationen vorhanden sind, die nicht nur eines, sondern gleich mehrere Bücher füllen würden. Die C-Implementierung des Netzwerklayers belegt – ohne Gerätetreiber für Netzwerkkarten! – bereits 7 MiB in den Kernelquellen, was gedruckt wesentlich mehr als 2500 Seiten ausmacht und ein beeindruckendes Codemassiv ist. Dennoch finden sich viele Konzepte, die hinter diesem Code stehen und das logische R¨uckgrat des Netzwerksubsystems bilden:

Genau diese Punkte werden uns in diesem Kapitel interessieren. Außerdem werden wir uns an der TCP/IP-Implementierung orientieren, da dies die mit Abstand am weitesten verbreiteten Netzwerkprotokolle sind. Natürlich musste die Entwicklung des Netzwerklayers nicht ganz bei Null beginnen: Standards und Konventionen, die den Datenaustausch zwischen Computern ermöglichen, sind bereits seit Jahrzehnten vorhanden und entsprechend gut bekannt und eingeführt. Linux implementiert diese Standards, um die Verbindung mit anderen Computern aufnehmen zu können.

9.1 Verkettete Computer

Die Kommunikation von Computern untereinander ist ein komplexes Thema, das viele Bereiche umfasst, in denen verschiedenste Fragen gelöst werden müssen. Um nur einige zu nennen:

- Wie wird die Verbindung physikalisch hergestellt? Welche Kabel werden verwendet, welche Beschränkungen und speziellen Anforderungen besitzen die Medien?

- Wie werden Übertragungsfehler behandelt?

- Wie werden individuelle Computer in einem Netzwerk identifiziert?

- Wie können Daten zwischen Computern ausgetauscht werden, die nur indirekt verbunden sind, d.h. über einen oder mehrere andere Computer als Zwischenstationen? Wie kann der günstigsteWeg herausgefunden werden?

- Wie werden die Nutzdaten verpackt, um nicht von speziellen Merkmalen einzelner Rechner abhängig zu sein?

- Wie lassen sich mehrere Netzwerkdienste auf einem Rechner identifizieren?


Dieser Katalog lässt sich fast beliebig fortsetzen. Leider ist nicht nur die Anzahl der Fragen, sondern auch die Anzahl der Lösungsmöglichkeiten unbeschränkt, weshalb im Laufe der Zeit sehr viele Vorschläge gemacht wurden, umdie Probleme in den Griff zu bekommen. Als " vernünftig" haben sich dabei vor allem jene Systeme herauskristallisiert, die die Probleme in mehrere Kategorien einteilen und auf diese Weise verschiedene Schichten schaffen, die sich mit der Lösung einer klar definierten Fragestellung beschäftigen und mit den über/untergeordneten Schichten nur über genau festgelegte Mechanismen kommunizieren. Dieser Ansatz erleichtert Implementierung, Wartung und vor allem Fehlersuche drastisch.

Inhaltsverzeichnis
Inhaltsverzeichnis6
Vorwort14
1 Einführung und Uberblick16
1.1 Aufgaben des Kerns17
1.2 Implementierungsstrategien17
1.3 Bestandteile des Kernels18
2 Prozessverwaltung34
2.1 Prozessprioritäten35
2.2 Lebenszyklus eines Prozesses37
2.3 Repräsentation von Prozessen40
2.4 Systemaufrufe zur Prozessverwaltung51
2.5 Implementierung des Schedulers67
2.6 Erweiterungen des Schedulers80
3 Speicherverwaltung86
3.1 Überblick86
3.2 Organisation nach dem (N)UMA-Modell88
3.3 Seitentabellen98
3.4 Initialisierung der Speicherverwaltung105
3.5 Verwaltung des physikalischen Speichers132
3.6 Der Slab-Allokator162
3.7 Verwaltung des virtuellen Prozessspeichers185
3.8 Prozessorcache- und TLB-Steuerung225
4 Interprozesskommunikation und Locking230
4.1 Steuerungsmechanismen230
4.2 Locking-Mechanismen des Kerns234
4.3 System V-Interprozesskommunikation240
4.4 Andere IPC-Mechanismen253
5 Gerätetreiber262
5.1 IO-Architektur262
5.2 Zugriff auf Erweiterungsgeräte268
5.3 Treiberregistrierung272
5.4 Verbindung mit dem Dateisystem274
5.5 Treiberoperationen278
5.6 Ressourcen-Reservierung298
5.7 Bussysteme304
6 Module328
6.1 Module verwenden329
6.2 Module einfügen und löschen336
6.3 Automatisierung und Hotplugging356
6.4 Versionskontrolle359
7 Das virtuelle Dateisystem366
7.1 Dateisystemtypen367
7.2 Das Common File Model368
7.3 Aufbau des VFS373
7.4 Arbeiten mit VFS-Objekten392
7.5 Standardfunktionen410
8 Dateisystemimplementierungen416
8.1 Second Extended Filesystem418
8.2 Third Extended Filesystem461
8.3 Das Dateisystem466
9 Netzwerke506
9.1 Verkettete Computer507
9.2 ISO/OSI- und TCP/IP-Referenzmodell507
9.3 Kommunikation über Sockets511
9.4 Das Schichtmodell der Netzwerkimplementierung519
9.5 Socketpuffer521
9.6 Datenübertragungsschicht524
9.7 Vermittlungsschicht532
9.8 Transportschicht549
9.9 Anwendungsschicht564
10 Systemaufrufe572
10.1 Grundlagen der Systemprogrammierung572
10.2 Vorhandene Systemaufrufe579
10.3 Realisierung von Systemaufrufen584
11 Kernel-Aktivitäten und Zeitfluss602
11.1 Interrupts602
11.2 Software-Interrupts621
11.3 Tasklets und Work Queues624
11.4 Wait Queues und Completions627
11.5 Kerneltimer632
12 Page- und Buffer-Cache644
12.1 Struktur des Page-Caches645
12.2 Der Buffer-Cache648
12.3 Adressräume650
12.4 Implementierung des Puffer-Caches658
13 Datensynchronisation674
13.1 pdflush675
13.2 Starten eines neuen Threads676
13.3 Thread-Initialisierung676
13.4 Durchführen der Arbeit678
13.5 Periodisches Zurückschreiben679
13.6 Assoziierte Datenstrukturen679
13.7 Zentrale Steuerung682
13.8 Superblock-Synchronisation684
13.9 Inoden-Synchronisation685
13.10 Verstopfungen689
13.11 Zurückschreiben unter Druck692
13.12 Systemaufrufe zur Synchronisationskontrolle694
13.13 Vollständige Synchronisierung694
13.14 Synchronisieren einzelner Dateien696
13.15 Synchronisieren von Memory Mappings698
14 Swapping700
14.1 Überblick700
14.2 Swapping im Linux-Kernel704
14.3 Verwaltung von Swap-Bereichen708
14.4 Der Swap-Cache718
14.5 Zurückschreiben der Daten730
14.6 Seitenauswahl – Swap Policy731
14.7 Behandlung von Page Faults747
14.8 Auslösen des Swappings751
14.9 Verkleinern anderer Caches756
Literaturverzeichnis760
Index762
Symbole770

Weitere E-Books zum Thema: Unix - Linux

Linux-Systemadministration

E-Book Linux-Systemadministration
Grundlagen, Konzepte, Anwendung Format: PDF

Linux ist eine fest etablierte, für vielfältige Rechnerarchitekturen verfügbare Plattform und zeichnet sich insbesondere durch die hohe Stabilität und Sicherheit des Systems aus. Dieses Buch bietet…

Linux-Systemadministration

E-Book Linux-Systemadministration
Grundlagen, Konzepte, Anwendung Format: PDF

Linux ist eine fest etablierte, für vielfältige Rechnerarchitekturen verfügbare Plattform und zeichnet sich insbesondere durch die hohe Stabilität und Sicherheit des Systems aus. Dieses Buch bietet…

Linux-Systemadministration

E-Book Linux-Systemadministration
Grundlagen, Konzepte, Anwendung Format: PDF

Linux ist eine fest etablierte, für vielfältige Rechnerarchitekturen verfügbare Plattform und zeichnet sich insbesondere durch die hohe Stabilität und Sicherheit des Systems aus. Dieses Buch bietet…

Linux-Systemadministration

E-Book Linux-Systemadministration
Grundlagen, Konzepte, Anwendung Format: PDF

Linux ist eine fest etablierte, für vielfältige Rechnerarchitekturen verfügbare Plattform und zeichnet sich insbesondere durch die hohe Stabilität und Sicherheit des Systems aus. Dieses Buch bietet…

Weitere Zeitschriften

BEHINDERTEPÄDAGOGIK

BEHINDERTEPÄDAGOGIK

Für diese Fachzeitschrift arbeiten namhafte Persönlichkeiten aus den verschiedenen Fotschungs-, Lehr- und Praxisbereichen zusammen. Zu ihren Aufgaben gehören Prävention, Früherkennung, ...

bank und markt

bank und markt

Zeitschrift für Banking - die führende Fachzeitschrift für den Markt und Wettbewerb der Finanzdienstleister, erscheint seit 1972 monatlich. Leitthemen Absatz und Akquise im Multichannel ...

Burgen und Schlösser

Burgen und Schlösser

aktuelle Berichte zum Thema Burgen, Schlösser, Wehrbauten, Forschungsergebnisse zur Bau- und Kunstgeschichte, Denkmalpflege und Denkmalschutz Seit ihrer Gründung 1899 gibt die Deutsche ...

caritas

caritas

mitteilungen für die Erzdiözese FreiburgUm Kindern aus armen Familien gute Perspektiven für eine eigenständige Lebensführung zu ermöglichen, muss die Kinderarmut in Deutschland nachhaltig ...

Demeter-Gartenrundbrief

Demeter-Gartenrundbrief

Einzige Gartenzeitung mit Anleitungen und Erfahrungsberichten zum biologisch-dynamischen Anbau im Hausgarten (Demeter-Anbau). Mit regelmäßigem Arbeitskalender, Aussaat-/Pflanzzeiten, Neuigkeiten ...

FileMaker Magazin

FileMaker Magazin

Das unabhängige Magazin für Anwender und Entwickler, die mit dem Datenbankprogramm Claris FileMaker Pro arbeiten. In jeder Ausgabe finden Sie von kompletten Lösungsschritten bis zu ...