Windows Internais

Werbung
David A. Solomon, Mark E. Russinovich
Microsoft®
Windows Internais
4. Auflage
Windows 2000, Windows XP und Windows Server 2003
Microsoft*
Press
Inhaltsverzeichnis
Entwicklungsgeschichte
Vorwort
Danksagung
Einführung
Aufbau des Buchs
Die bisherige Entwicklung dieses Buchs
Änderungen in der 4. Auflage
Übungen
Nicht behandelte Themen
Eine Warnung und Mahnung
Support
Von den Autoren
Microsoft Press
Kapitel 1: Konzepte und Tools
Windows-Versionen
Grundlegende Konzepte und Begriffe
Windows-API
Dienste, Funktionen und Routinen
Prozesse, Threads und Aufträge
Virtueller Speicher
Kernel- und Benutzermodus
Terminaldienste und mehrere Sitzungen
Objekte und Handies
Sicherheitskonzept
Registrierung
Unicode
Die Interna von Windows erforschen
Systemmonitor
Windows Support Tools
Windows Resource Kits
Kerneldebugging
Platform Software Development Kit (SDK)
Device Driver Kit (DDK)
Sysinternals-Tools
Zusammenfassung
Kapitel 2: Die Systemarchitektur
Anforderungen und Designziele
Betriebssystemmodell
XV
XIX
XXI
XXIII
XXIII
XXIII
XXIV
XXIV
XXIV
XXTV
XXV
XXV
XXV
1
1
3
3
5
6
14
16
20
21
22
23
23
24
25
26
26
26
31
32
32
32
33
33
34
IV
Inhaltsverzeichnis
Überblick über die Architektur
Portabilität
Symmetrischer Multiprozessorbetrieb
Skalierbarkeit
Unterschiede zwischen der Client- und der Serverversion
Getesteter Build
Die wichtigsten Systemkomponenten
Umgebungssubsysteme und Subsystem-DLLs
Ntdll.dll
Ausführungsschicht
Kernel
Hardwareabstraktionsschicht (Hardware Abstraction Layer, HAL)
Gerätetreiber
Systemprozesse
Zusammenfassung
Kapitel 3: Systemmechanismen
Trapverteilung
Verteilung von Interrupts
Verteilung von Ausnahmen
Verteilung von Systemdienstaufrufen
Objektmanager
Objekte der Ausfuhrungsschicht
Objektstruktur
Synchronisation
Synchronisation bei hoher IRQL-Einstellung
Synchronisation bei niedriger IRQL-Einstellung
Systemarbeitsthreads
Globale Flags in Windows
LPCs (Local Procedure Calls)
Kernelereignisverfolgung
Wow64
Wow64-Prozessadressraum
Systemaufrufe
Ausnahmeverteilung
Rückrufe in den Benutzermodus
Dateisystemumlenkung
Umlenkung der Registrierung und Spiegelung
E/A-Steuerungsanforderungen
16-Bit-Installationsanwendungen
Druck
Beschränkungen
Zusammenfassung
35
37
38
43
44
46
49
49
58
59
61
62
65
69
79
81
81
83
104
113
118
120
122
141
143
146
157
159
162
165
169
169
169
170
170
170
171
172
172
172
172
173
'
;;
Inhaltsverzeichnis
Kapitel 4: Verwaltungsmechanismen
Die Registrierung
Anzeige und Änderung der Registrierung
Verwendung der Registrierung
Registrierungsdatentypen
Logische Struktur der Registrierung
Behebung von Problemen mit der Registrierung
Registrierungsinterna
Dienste
Dienstanwendungen
Dienstkonten
Der Dienststeuerungs-Manager
Startvorgang von Diensten
Fehler beim Start von Diensten
Die Startkonfiguration und die letzte als funktionierend bekannte Konfiguration
annehmen
Das Versagen von Diensten
Dienste beenden
Gemeinsam genutzte Dienstprozesse
Dienststeuerungsprogramme
Windows-Verwaltungsinstrumentation (WMI)
WMI-Architektur
Anbieter
CIM und die Sprache MOF
Der Namespace WMI
Klassenzuordnungen
WMI-Implementierung
WMI-Sicherheit
Zusammenfassung
Kapitel 5: Starten und Herunterfahren des Systems
Startvorgang
Vor dem x86- oder x64-Systemstart
Der x86/x64-Startsektor und Ntldr
Der IA64-Startvorgang
Initialisieren des Kernels und der Subsysteme der Ausführungsschicht
Smss, Csrss und Winlogon
Automatisch gestartete ausführbare Dateien
Problembehandlung bei Startproblemen
Letzte als funktionierend bekannte Konfiguration
Abgesicherter Modus
Wiederherstellungskonsole
Behebung von Problemen beim Systemstart
Herunterfahren
Zusammenfassung
V
175
175
175
176
177
178
184
189
203
203
208
213
216
219
220
221
222
223
225
226
227
228
229
233
234
236
237
238
239
239
239
243
250
251
254
258
259
259
259
263
265
270
273
VI
Inhaltsverzeichnis
Kapitel 6: Prozesse, Threads und Auftragsobjekte
Prozessinterna
Datenstrukturen
Kernelvariablen
Leistungsindikatoren
Wichtige Funktionen
Abfolge der Vorgänge innerhalb von CreateProcess
Phase 1: Öffnen der auszuführenden Datei
Phase 2: Erstellen des Prozessobjekts der Ausführungsschicht von Windows
Phase 3: Erstellen des Startthreads, seines Stacks und seiner Kontextdatenstruktur
Phase 4: Benachrichtigen des Windows-Subsystems über den neuen Prozess
Phase 5: Beginn der Ausführung des Startthreads
Phase 6: Ausführen der Prozessinitialisierung im Kontext des neuen Prozesses
Threadinterna
Datenstrukturen
Kernelvariablen
Leistungsindikatoren
Wichtige Funktionen
Die Geburt eines Threads
Untersuchung der Threadaktivität
Zeitplanung der Threadausführung
Übersicht über die Windows-Zeitplanung
Prioritätsstufen
Windows-API-Funktionen für die Zeitplanung
Programme für die Zeitplanung
Echtzeitprioritäten
Threadzustände
Verteilerdatenbank
Quantum
Steuerung der Threadausführung in der Praxis
Kontextwechsel
Leerlaufthread
Prioritätsanhebungen
Multiprozessorsysteme
Algorithmen zur Laufzeitzuteilung auf Multiprozessorsystemen
Auftragsobjekte
Zusammenfassung
Kapitel 7: Speicherverwaltung
Einführung in die Speicherverwaltung
Komponenten der Speicherverwaltung
Interne Synchronisation
Konfigurieren der Speicherverwaltung
Die Speichernutzung untersuchen
Von der Speicherverwaltung bereitgestellte Dienste
Große und kleine Seiten
Speicherseiten reservieren und zusichern
275
..
275
276
282
282
283
285
287
289
293
294
295
295
297
297
305
305
306
307
307
310
310
312
314
315
317
318
323
323
328
331
331
332
341
349
352
357
359
359
360
361
362
362
366
366
368
Inhaltsverzeichnis V I I
Arbeitsspeicher sperren
Zuweisungsgranularität
Gemeinsam genutzter Arbeitsspeicher und Speicherzuordnungsdateien
Arbeitsspeicher schützen
Datenausführungsverhinderung
Copy-on-write
Heapmanager
Addressfenstererweiterungen (AWE)
Systemspeicherpools
Konfiguration der Poolgrößen
Die Nutzung des Poolspeichers überwachen
Look-Aside-Listen
Treiberüberprüfung
Aufbau virtueller Adressräume
x86-Benutzermodusadressraum
x86-Systemadressraum
x86-Sitzungsspeicher
Systemseitentabelleneinträge
64-Bit-Adressraumlayouts
Adressübersetzung
Übersetzung von virtuellen Adressen auf x86-Systemen
Übersetzungs-Look-Aside-Puffer
Physische Adresserweiterung (PAE)
Übersetzung von virtuellen Adressen auf IA-64-Systemen
Übersetzung von virtuellen Adressen auf x64-Systemen
Behandlung von Seitenfehlern
Ungültige Seitentabelleneinträge (PTEs)
Prototyp-PTEs
E/A-Operationen mit Speicherseiten
Kollidierte Seitenfehler
Auslagerungsdateien
Beschreibungen virtueller Adressbereiche (VADs)
Abschnittsobjekte
Arbeitsseiten
Einlagerung auf Anforderung
Der logische Prefetcher
Ersetzungsrichtlinien
Verwaltung von Arbeitsseiten
Seitenausgleichsmanager und Swapper
Systemarbeitsseiten
PFN-Datenbank
Funktion der Auslagerungslisten
Modified Page Writer
PFN-Datenstrukturen
Benachrichtigungen über den Arbeitsspeicherzustand
Zusammenfassung
369
369
370
372
374
377
378
383
385
385
388
392
393
397
399
401
401
404
405
408
408
416
418
419
420
421
422
423
425
426
426
430
432
438
439
439
443
443
447
448
449
453
455
456
459
463
VIII
Inhaltsverzeichnis
Kapitel 8: Sicherheit
Komponenten des Sicherheitssystems
Schützen von Objekten
Zugriffsprüfungen
Sicherheitsbeschreibungen und Zugriffssteuerung
Benutzerrechte und Berechtigungen
Benutzerrechte
Berechtigungen
Höhere Berechtigungen
Sicherheitsüberwachung
Anmeldung
Initialisierung des Anmeldeprozesses (Winlogon)
Schritte der Benutzeranmeldung
Richtlinien für Softwareeinschränkung
Zusammenfassung
Kapitel 9: E/A-System
Komponenten des E/A-Systems
Der E/A-Manager
E/A-Bearbeitung
Gerätetreiber
Gerätetreibertypen
Treiberstruktur
Treiber- und Geräteobjekte
Geräte öffnen
E/A-Verarbeitung
E/A-Arten
E/A-Anforderungspakete
E/A-Anforderung an einen einschichtigen Treiber
E/A-Anforderungen an mehrschichtige Treiber
E/A-Abschlussports
Treiberüberprüfung
Der Plug & Play-Manager
Grad der Plug & Play-Unterstützung
Plug & Play-Unterstützung durch Treiber
Treiber laden, initialisieren und installieren
Treiberinstallation
Die Energieverwaltung
Arbeitsweise der Energieverwaltung
Auf die Energieverwaltung bezogene Arbeitsweise der Treiber
Treibersteuerung des Energieverbrauchs von Geräten
Zusammenfassung
465
468
472
473
486
496
497
498
503
504
507
508
510
513
515
517
517
519
520
521
521
528
530
534
540
540
544
549
556
562
567
568
569
569
572
580
585
587
588
591
591
Inhaltsverzeichnis IX
Kapitel 10: Datenträgerverwaltung
Datenträgerterminologie
Laufwerkstreiber
Ntldr
Laufwerksklassen-, Port- und Miniporttreiber
Datenträgergeräteobjekte
Partitions-Manager
Volumeverwaltung
Basisdatenträger
Dynamische Datenträger
Volumes mit mehreren Partitionen verwalten
Der Volumenamespace
E/A-Operationen auf Volumes
Der Dienst für virtuelle Datenträger
Volumeschattenkopiedienst
Zusammenfassung
Kapitel 11: Cachemanager
Die wichtigsten Eigenschaften des Cachemanagers
Ein einzelner zentraler Systemcache
Die Speicherverwaltung
Cachekohärenz
Zwischenspeicherung virtueller Blöcke
Zwischenspeicherung auf Datenstrombasis
Unterstützung wiederherstellbarer Dateisysteme
Virtueller Cachespeicher
Die Größe des Cache
LargeSystemCache
Die virtuelle Größe des Cache
Die Größe der Cachearbeitsseiten
Die physische Größe des Cache
Datenstrukturen des Cache
Systemweite Datenstrukturen des Cache
Dateibezogene Datenstrukturen des Cache
Dateisystemschnittstellen
In den und aus dem Cache kopieren
Zwischenspeicherung mit Abbildung und Festsetzung
Zwischenspeicherung mit der DMA-Schnittstelle
Schnelle E/A
Vorauslesen und verzögert schreiben
Intelligentes Vorauslesen
Schreibcache und verzögertes Schreiben
Schreibdrosselung
Systemthreads
Zusammenfassung
593
593
594
594
595
598
600
600
601
604
610
616
624
625
627
632
633
633
634
634
635
636
636
637
638
640
640
641
642
644
646
646
647
652
653
654
655
656
658
659
660
662
664
665
X
Inhaltsverzeichnis
Kapitel 12: Dateisysteme
Dateisystemformate von Windows
CDFS
UDF
FAT12, FAT16 und FAT32
NTFS
Die Architektur der Dateisystemtreiber
Lokale Dateisystemtreiber
Remotedateisystemtreiber
Die Arbeitsweise des Dateisystems
Dateisystemfiltertreiber
Behebung von Dateisystemproblemen
Filemon-Grundfunktionen
Problembehandlung mit Filemon
Designziele und Merkmale von NTFS
Anforderungen an High-End-Dateisysteme
Fortgeschrittene Funktionen von NTFS
NTFS-Dateisystemtreiber
Die logische Datenstruktur von NTFS
Volumes
Cluster
Masterdateitabelle (MFT)
Dateiverweisnummern
Dateidatensätze
Dateinamen
Residente und nicht residente Attribute
Datenkomprimierung und Dateien mit geringer Datendichte
Änderungsjournaldatei
Indizierung
Objektkennungen
Kontingentverwaltung
Konsolidierte Sicherheitsbeschreibungen
Analysepunkte
NTFS-Wiederherstellungsunterstützung
Fortentwicklung des Dateisystemdesigns
Protokollierung
Wiederherstellung
Wiederherstellung fehlerhafter NTFS-Cluster
Sicherheit des verschlüsselnden Dateisystems (EFS)
Erste Verschlüsselung einer Datei
Der Entschlüsselungsprozess
Verschlüsselte Dateien sichern
Zusammenfassung
667
668
668
669
669
672
672
673
674
678
683
689
689
690
696
696
697
706
709
709
710
711
717
717
719
721
724
728
729
730
731
732
734
734
735
737
742
746
750
753
757
759
760
Inhaltsverzeichnis XI
Kapitel 13: Netzwerkbetrieb
Windows-Netzwerkarchitektur
Das OSI-Referenzmodell
Windows-Netzwerkkomponenten
Netzwerk-APIs
Windows-Sockets
Remoteprozeduraufrufe
Webzugriffs-APIs
Named Pipes und Mailslots
NetBIOS
Weitere Netzwerk-APIs
Multiple Redirector-Unterstützung
Multiple Provider Router
Multiple UNC Provider
Namensauflösung
Domain Name System (DNS)
Windows Internet Name Service (WINS)
Protokolltreiber
TCP/IP-Erweiterungen
NDIS-Treiber
Varianten des NDIS-Miniports
Verbindungsorientiertes NDIS
Remote NDIS
QoS (Quality of Service)
Bindung
Mehrschichtige Netzwerkdienste
Remotezugriff
Active Directory
Netzwerklastausgleich
Dateireplikationsdienst
Verteiltes Dateisystem (Distributed File System, DFS)
Zusammenfassung
Kapitel 14: Absturzspeicherabbiidanaiyse
Warum stürzt Windows ab?
Der Bluescreen
Absturzspeicherabbilddateien
Erstellung eines Absturzspeicherabbilds
Windows-Fehlerberichterstattung
Onlineabsturzanalyse
Analyse von Absturzspeicherabbildern
NotMyFault
Analyse von Absturzspeicherabbildern
Ausführlichere Analyse
Hilfsmittel zur Problembehandlung
Pufferüberlauf und spezieller Pool
Codeüberschreibungen und Systemcodeschreibschutz
761
761
762
763
765
765
772
776
778
784
786
788
789
791
793
793
793
793
798
801
805
805
807
809
810
811
811
812
813
814
815
816
817
817
819
821
824
825
826
827
828
828
830
831
832
834
XII
Inhaltsverzeichnis
Weiterführende Absturzspeicherabbiidanaiyse
Stapelüberschreibungen
Festhängende oder nicht mehr reagierende Systeme
Wenn es kein Absturzspeicherabbild gibt
836
836
837
840
Glossar
843
Stichwortverzeichnis
873
Die Autoren
897
Herunterladen