Linux-Kernel- Programmierung



Ähnliche Dokumente
Linux-Kernel- Programmierung

Linux-Kernel- Programmierung

Programmierung mit Access 7 für Windows 95

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Windows 11. Grundlagen Praxis Optimierung. Klaus Fahnenstich Rainer G. Haselier ADDISON-WESLEY PUBLISHING COMPANY

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

ADDISON-WESLEY PUBLISHING COMPANY

FÜR DEN PC. Bi B JL( O T H C- K

Objektorientiertes Programmieren in C++

Windows NT 4.0 in heterogenen Netzen

SCSI-Bus und IDE-Schnittstelle

Windows 95 und Microsoft Plus!

Linux-Companion zur Systemadministration

Linux Netzwerk-Handbuch

UNIX-Rechnernetze in Theorie und Praxis

OS/2 System- und Netzwerkprogrammierung

Joomla! eigenen Joomla!-Website ^ADDISON-WESLEY. Die Schritt-für-Schritt-Anleitung zur. Stephen Bürge. An imprint of Pearson

Inhaltsverzeichnis XII

Grundkurs Betriebssysteme

Microsoft FrontPage 98

MICROSOFT EXCEL 3.0 HOTLINE

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,

Linux-Kernelprogrammierung

Kreativ entwerfen und gestalten mit CorelDRAW! 5.0

Objektorientierte Prozeßsimulation in C++

Rechnernutzung in der Physik. Betriebssysteme

Der Rational Unified Process

Windows-Testumgebung

William Stallings. Betriebssysteme. Prinzipien und Umsetzung. 4., überarbeitete Auflage. Pearson Studium

System Monitoring mit strace. Systemcall tracing

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Algorithmen für Chaos und Fraktale

Dirk Becker. OpenVPN. Das Praxisbuch. Galileo Press

Microkernel-Betriebssysteme Mach, L4, Hurd

Scannen und Drucken. Perfekte Fotos mit DTP. Peter Kammermeier Anton Kammermeier BIBLIOTHEK ADDISON-WESLEY PUBLISHING COMPANY.

Projektmanagement. Konzeption und praktischer Einsatz des R/3 Moduls PS ADDISON-WESLEY. An imprint of Addison Wesley Longman, Inc.

ITIL V3 Basis-Zertifizierung

Operating System Kernels

Unauthorized Windows 95

Datenbank- Programmierung mit InterBase

Leistungsanalyse unter Linux

Wine - Windows unter Linux

Das U-Boot Der Bootvorgang von Linux

Feature-based Programming

PVFS (Parallel Virtual File System)

8.4 Das Andrew File System Ausblicke Zusammenfassung 410 Übungen 411

LINUX IN A NUTSHELL. 3. Auflage. Ellen Siever, Stephen Spainhour, Stephen Figgins & Jessica P. Hekman

DATENMODELLIERUNG DATENMANAGEMENT. Werner Wiborny ADDISON-WESLEY PUBLISHING COMPANY

Die С ++-Programmiersprache

Webanwendungen mit IBM Rational und IBM WebSphere V6

Internet-Domainnamen

User Level Device Driver am Beispiel von TCP

Neuronale Neize. Eine Einfuhrung in die Neuroinfomnatik selbstorganisierender Netzwerke ADDISON-WESLEY PUBLISHING COMPANY

Bück Woody. SQL Server Das Handbuch für Administratoren. ADDISON-WESLEY An imprint of Pearson Education

Inhaltsverzeichnis. Vorwort 11. Kapitel 1 Systemaufbau und Technologie 17. Kapitel 2 Bundles, Pakete und das Dateisystem 29

Da es sich in meinem Fall um einen USB-Scanner handelt, sollte dieser mittels

Firewalls illustriert

Achim Bühl, Peter Zöfel SPSS. Methoden für die Markt- und Meinungsforschung. Technische Unäversität Darmstadt

Filesystem in Userspace. Jens Spiekermann

METTLER TOLEDO ETHERNET-Option

Die Client/Server- Technologie des SAP-Systems R/3

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil

MCITP für Windows Server 2008

Grafiktreiber im Linuxkernel - die Außenseiter -

Visual C++ Windows-Programmierung mit den MFC. Frank Budszuhn. ADDISON-WESLEY An imprint of Pearson Education

Der Apache-Webserver

Oliver Lehmann Antje Lehmann. in Suchmaschinen. An imprint of Pearson Education

Handbuch USB Treiber-Installation

Apache. O'REILLY Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo. Das umfassende Handbuch. Ben Laurie und Peter Laurie 2.

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Übung - Verwaltung der Gerätetreiber mit dem Geräte-Manager in Windows 7

Martin Fowler, Kendali Scott. UML - konzentriert. Die Standardobjektmodellierungssprache anwenden

Konfiguration LANCOM 1821 Wireless ADSL Inode xdsl. Autor: A-Dead-Trousers Copyright: Erstellt: Geändert:

I Installation und Erste Schritte 7

Betriebssysteme BS-U SS Hans-Georg Eßer. Foliensatz U: Unix und Ulix Aufbau der Ulix-Quellcode-Dateien. Dipl.-Math., Dipl.-Inform.

BACKUP Datensicherung unter Linux

Objektorientierte Softwaretechnik

Einleitung Aufbau und Struktur Kommunikation Ein einfacher Treiber. Linux - Der Kernel. Daniela Staritzbichler, Felix Wolfersberger, Bernhard Schauer

Linux Systemadministration

Magento Theme-Design. professionelle Themes für Ihren Shop Y%ADDISON-WESLEY. Entwerfen Sie Schritt für Schritt. Richard Carter

High Speed Internetworking

Betriebssysteme Grundlagen und Konzepte

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Java Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education

Installationshinweise Linux Edubuntu 7.10 bei Verwendung des PC-Wächter

Rechnen in UNIX-Shell-Prozeduren

Dateisysteme. Lokale Linux Dateisysteme. Michael Kürschner (m

Frank Budszuhn Thomas Reichel. Visual C Windows-Programmierung mit den MFC ADDISON-WESLEY. An imprint of Addison Wesley Longman, Inc.

Betriebssystemsicherheit am Beispiel UNIX

Transkript:

Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Dirk Verworner Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 1.0 ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario Wokingham, England Amsterdam Milan Sydney Tokyo Singapore Madrid San Juan Seoul Mexico City Taipei, IL/tl/ Taiwan X Cll VI fnv.-nr. 2.0%"i ß-

Inhaltsverzeichnis Vorwort Vorwort der Autoren x x 1 Linux - Das Betriebssystem 1 1.1 Wesentliche Eigenschaften 2 1.2 Linux-Distributionen 5 2 Die Übersetzung des Kerns 7 2.1 Wo finde ich was? 7 2.2 Die Übersetzung 11 2.3 Zusätzliche Konfigurationsmöglichkeiten.. 13 3 Einführung in den Kern 17 3.1 Algorithmen und Datenstrukturen 21 3.1.1 Die Task-Struktur 22 3.1.2 Die Prozeßtabelle 28 3.1.3 -Files und Inodes 30 3.1.4 Dynamische Speicherverwaltung 32 3.1.5 Warteschlangen 34 3.1.6 Systemzeit und Zeitgeber (Timer) 35 3.1.7 Signale 37 3.1.8 Interrupts 38 3.1.9 Booten des Systems 40

vi Inhaltsverzeichnis 3.1.10 Timerinterrupt 42 3.1.11 Scheduler 44 3.2 Implementation von Systemaufrufen 47 3.2.1 Wie funktionieren Systemaufrufe eigentlich? 48 3.2.2 Beispiele für einfache Systemaufrufe 50 ' 3.2.3 Beispiele für komplexere Systemaufrufe 52 3.2.4 Implementation eines neuen Systemaufrufes 63 Die Speicherverwaltung 67 4.1 Die Speicherverwaltung des 386 69 4.2 Segmentierung, 70 4.3 Paging 74 4.4 Speicherinitialisierung unter Linux 77 4.5 Der logische Adreßraum eines Prozesses 80 4.5.1 Der Nutzerbereich 81 4.5.2 Der Systemruf sys-brk() 83 4.5.3 Memory Mapping und virtuelle Speicherbereiche 84 4.5.4 Das Kernelsegment 89 4.5.5 Dynamische Speicherreservierung im Kernelmodus 90 4.6 Das Caching der Blockgeräte 93 4.7 Paging unter Linux 98 4.7.1 Das Finden einer freien Seite. 101 4.7.2 Seitenfehler und das Zurückladen einer Speicherseite... 105 Interprozeßkommunikation. 107 5.1 Synchronisation im Kern.. HO 5.2 Kommunikation über Dateien 112 5.2.1 Das Sperren ganzer Dateien 113 5.2.2 Sperren von Dateibereichen 114 5.3 Pipes 118 5.4 Debugging mit ptrace() 120 5.5 SystemVIPC 125 5.5.1 Zugriffsrechte, Nummern und Schlüssel 125 5.5.2 Semaphore 126 5.5.3 Messagequeues 130 5.5.4 Shared Memory 134 5.5.5 Die Befehle ipcs und ipcrm 139 5.6 IPC mit Sockets 140 5.6.1 Ein einfaches Beispiel 141 5.6.2 Die Implementation von Unix-Domain-Sockets 146

Inhaltsverzeichnis vii 6 Das LlNUX-Dateisystem 151 6.1 Grundlagen 152 6.2 Die Repräsentation von Dateisystemen im Kern.... 154 6.2.1 Das Mounten.. 154 6.2.2 Superblock-Operationen 157 6.2.3 Die Inode 159 6.2.4 Inode-Operationen 162 6.2.5 Die Filestruktur :... 166 6.2.6 File-Operationen 166 6.2.7 Das Öffnen einer Datei 169 6.3 Das proc-dateisystem 171 7 Gerätetreiber unter Linux 177 7.1 Zeichen-und Blockgeräte 179 7.2 Polling-und Interruptbetrieb 180 7.2.1 Polling 181 7.2.2 Interruptbetrieb 182 7.2.3 Bottom Halfs - Die unteren Interrupthälften 184 7.2.4 DMA-Betrieb....^ 186 7.3 Die Hardware.. 187 7.3.1 Hardwareerkennung 191 7.4 Die Implementation eines Treibers. 193 7.4.1 Die Setup-Funktion 195 7.4.2 mit, 196 7.4.3 Open und Release 198 7.4.4 ReadundWrite 199 7.4.5 IOCTL 202 7.4.6 Select.. : 203 7.4.7 Lseek, Readdir, MMap und Fsync 205 8 Netzwerkimplementation 207 8.1 Einführung und Überblick 208 8.1.1 Das Schichtenmodell der Netzwerkimplementation 210. 8.1.2 Die Reise der Daten 210 8.2 Wichtige Strukturen 215 8.2.1 Die socket-struktur :. 216 8.2.2 Die Struktur sk_buff- Pufferverwaltung im Netzwerk... 216 8.2.3 Der INET-Socket - spezieller Teil eines Sockets 219 8.2.4 Protokolloperationen in der proto-struktur 222 8.2.5 Die allgemeine Struktur einer Socketadresse 225 8.2.6 Echte Geräte der Netzwerkimplementation 226

viii Inhaltsverzeichnis 8.3 Abstrakte Netzwerkgeräte unter LINUX 226 8.3.1 Ethernet 232 8.3.2 SLIP und PLIP 233 8.3.3 Das Loopback-Gerät 234 8.4 ARP-Address Resolution Protocol.. 234 8.5 IP 236 8.5.1 Allgemeines über IP 236 8.5.2 Funktionen des IP 238 8.5.3 Routing 241 8.6 UDP 243 8.6.1 Funktionen des UDP 243 8.6.2 Weitere Funktionen 245 8.7 TCP 245 8.7.1 Allgemeines zum TCP 245 8.7.2 Der TCP-Kommunikationsendpunkt 246 8.7.3 Funktionen des TCP 248 8.8 Die Packet-Schnittstelle-eine Alternative? 252 A Systemaufrufe ^ 255. A.l Die Prozeßverwaltung 256 A.2 Das Dateisystem 282 A.3 Die Kommunikation 302 A.4 Die Speicherverwaltung : 305 A.5 Die Initialisierung 307 A.6 Und der ganze Rest 308 A.7 Nachbemerkungen 309 B Kernnahe Kommandos 311 B.l free - Übersicht über den Systemspeicher 311 B.2 ps - Ausgabe der Prozeßstatistik 312 B.3 Nachträgliche Kernkonfiguration 317 B.4 top - Die CPU-Charts 318 B.5 Init - Primus inter pares 319 B.6 shutdown - Das Herunterfahren des Systems 325 B.7 strace - Observierung eines Prozesses 326 B.8' Konfiguration des Netzwerk-Interfaces 327 B.9 traceroute - Der Ariadnefaden im Internet 328 B.10 Konfiguration einer seriellen Schnittstelle 330 B.ll Konfiguration einer parallelen Schnittstelle 333 C Das proc-dateisystem 335

Inhaltsverzeichnis ix D Der Bootprozeß 343 D.l Ablauf des Bootens,343 D.2 LILO-der Linux-Lader :. 346 D.2.1 MS-DOS-MBR startet LILO 346 D.2.2 LILO wird von einem Bootmanager gestartet 346 D.2.3 LILO im Master-Boot-Record : 347 D.2.4 LILO-Dateien 347 D.2.5 LILO-Boot-Parameter. 352 D.2.6 LILO-Startmeldungen 354 D.2.7 Fehlermeldungen 355 L Literaturverzeichnis. 357 I Index 361