O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Windows Internals

Book Description

Der Standard-Leitfaden – komplett aktualisiert auf Windows 10 und Windows Server 2016Tauchen Sie in die Architektur und die inneren Mechanismen von Windows ein und lernen Sie die Kernkomponenten kennen, die hinter den Kulissen arbeiten. Dieser klassische Leitfaden wurde von einem Expertenteam für die inneren Mechanismen von Windows verfasst und vollständig auf Windows 10 und Windows Server 2016 aktualisiert.

Table of Contents

  1. Cover
  2. Widmung
  3. Titel
  4. Impressum
  5. Inhaltsverzeichnis
  6. Einleitung
  7. Kapitel 1 Begriffe und Werkzeuge
    1. Versionen des Betriebssystems Windows
    2. Windows 10 und zukünftige Windows-Versionen
    3. Windows 10 und OneCore
    4. Grundprinzipien und -begriffe
    5. Die Windows-API
    6. Dienste, Funktionen und Routinen
    7. Prozesse
    8. Threads
    9. Jobs
    10. Virtueller Arbeitsspeicher
    11. Kernel- und Benutzermodus
    12. Hypervisor
    13. Firmware
    14. Terminaldienste und mehrere Sitzungen
    15. Objekte und Handles
    16. Sicherheit
    17. Die Registrierung
    18. Unicode
    19. Die internen Mechanismen von Windows untersuchen
    20. Leistungsüberwachung und Ressourcenmonitor
    21. Kernel-Debugging
    22. Windows Software Development Kit
    23. Windows Driver Kit
    24. Sysinternals-Werkzeuge
    25. Zusammenfassung
  8. Kapitel 2 Systemarchitektur
    1. Anforderungen und Designziele
    2. Das Modell des Betriebssystems
    3. Die Architektur im Überblick
    4. Portierbarkeit
    5. Symmetrisches Multiprocessing
    6. Skalierbarkeit
    7. Unterschiede zwischen den Client- und Serverversionen
    8. Testbuild
    9. Die virtualisierungsgestützte Sicherheitsarchitektur im Überblick
    10. Hauptsystemkomponenten
    11. Umgebungsteilsysteme und Teilsystem-DLLs
    12. Weitere Teilsysteme
    13. Exekutive
    14. Der Kernel
    15. Die Hardwareabstraktionsschicht
    16. Gerätetreiber
    17. Systemprozesse
    18. Zusammenfassung
  9. Kapitel 3 Prozesse und Jobs
    1. Prozesse erstellen
    2. Argumente der CreateProcess*-Funktionen
    3. Moderne Windows-Prozesse erstellen
    4. Andere Arten von Prozessen erstellen
    5. Interne Mechanismen von Prozessen
    6. Geschützte Prozesse
    7. Protected Process Light (PPL)
    8. Unterstützung für Drittanbieter-PPLs
    9. Minimale und Pico-Prozesse
    10. Minimale Prozesse
    11. Pico-Prozesse
    12. Trustlets (sichere Prozesse)
    13. Der Aufbau von Trustlets
    14. Richtlinien-Metadaten für Trustlets
    15. Attribute von Trustlets
    16. Integrierte System-Trustlets
    17. Trustlet-Identität
    18. IUM-Dienste
    19. Für Trustlets zugängliche Systemaufrufe
    20. Der Ablauf von CreateProcess
    21. Phase 1: Parameter und Flags konvertieren und validieren
    22. Phase 2: Das auszuführende Abbild öffnen
    23. Phase 3: Das Windows-Exekutivprozessobjekt erstellen
    24. Phase 4: Den ursprünglichen Thread mit seinem Stack und Kontext erstellen
    25. Phase 5: Spezifische Prozessinitialisierung für das Windows-Teilsystem durchführen
    26. Phase 6: Ausführung des ursprünglichen Threads starten
    27. Phase 7: Prozessinitialisierung im Kontext des neuen Prozesses durchführen
    28. Einen Prozess beenden
    29. Der Abbildlader
    30. Frühe Prozessinitialisierung
    31. DLL-Namensauflösung und -Umleitung
    32. Die Datenbank der geladenen Module
    33. Importanalyse
    34. Prozessinitialisierung nach dem Import
    35. SwitchBack
    36. API-Sets
    37. Jobs
    38. Grenzwerte für Jobs
    39. Umgang mit Jobs
    40. Verschachtelte Jobs
    41. Windows-Container (Serversilos)
    42. Zusammenfassung
  10. Kapitel 4 Threads
    1. Threads erstellen
    2. Interne Strukturen von Threads
    3. Datenstrukturen
    4. Geburt eines Threads
    5. Die Threadaktivität untersuchen
    6. Einschränkungen für Threads in geschützten Prozessen
    7. Threadplanung
    8. Überblick über die Threadplanung in Windows
    9. Prioritätsstufen
    10. Threadstatus
    11. Die Dispatcherdatenbank
    12. Das Quantum
    13. Prioritätserhöhung
    14. Kontextwechsel
    15. Mögliche Fälle bei der Threadplanung
    16. Leerlaufthreads
    17. Anhalten von Threads
    18. Einfrieren und Tiefgefrieren
    19. Threadauswahl
    20. Mehrprozessorsysteme
    21. Threadauswahl auf Mehrprozessorsystemen
    22. Prozessorauswahl
    23. Heterogene Threadplanung (big.LITTLE)
    24. Gruppengestützte Threadplanung
    25. Dynamische gleichmäßige Planung (DFSS)
    26. Grenzwerte für die CPU-Rate
    27. Dynamisches Hinzufügen und Ersetzen von Prozessoren
    28. Arbeitsfactories (Threadpools)
    29. Erstellen von Arbeitsfactories
    30. Zusammenfassung
  11. Kapitel 5 Speicherverwaltung
    1. Einführung in den Speicher-Manager
    2. Komponenten des Speicher-Managers
    3. Große und kleine Seiten
    4. Die Speichernutzung untersuchen
    5. Interne Synchronisierung
    6. Vom Speicher-Manager bereitgestellte Dienste
    7. Seitenstatus und Speicherzuweisungen
    8. Gesamter zugesicherter Speicher und Zusicherungsgrenzwert
    9. Seiten im Arbeitsspeicher festhalten
    10. Granularität der Zuweisung
    11. Gemeinsam genutzter Arbeitsspeicher und zugeordnete Dateien
    12. Speicherschutz
    13. Datenausführungsverhinderung
    14. Kopieren beim Schreiben
    15. AWE (Address Windowing Extensions)
    16. Kernelmodusheaps (Systemspeicherpools)
    17. Poolgrößen
    18. Die Poolnutzung überwachen
    19. Look-Aside-Listen
    20. Der Heap-Manager
    21. Prozessheaps
    22. Arten von Heaps
    23. NT-Heaps
    24. Heapsynchronisierung
    25. Der Low-Fragmentation-Heap
    26. Segmentheaps
    27. Sicherheitseinrichtungen von Heaps
    28. Debugging einrichten für Heaps
    29. Der Seitenheap
    30. Der fehlertolerante Heap
    31. Layouts für virtuelle Adressräume
    32. x86-Adressraumlayouts
    33. Das Layout des x86-Systemadressraums
    34. x86-Sitzungsraum
    35. System-Seitentabelleneinträge
    36. ARM-Adressraumlayout
    37. 64-Bit-Adressraumlayout
    38. Einschränkungen bei der virtuellen Adressierung auf x64-Systemen
    39. Dynamische Verwaltung des virtuellen Systemadressraums
    40. Kontingente für den virtuellen Systemadressraum
    41. Layout des Benutzeradressraums
    42. Adressübersetzung
    43. Übersetzung virtueller Adressen auf x86-Systemen
    44. Der Look-Aside-Übersetzungspuffer für die Übersetzung
    45. Übersetzung virtueller Adressen auf x64-Systemen
    46. Übersetzung virtueller Adressen auf ARM-Systemen
    47. Seitenfehler
    48. Ungültige PTEs
    49. Prototyp-PTEs
    50. Einlagerungs-E/A
    51. Seitenfehlerkollisionen
    52. Seitencluster
    53. Auslagerungsdateien
    54. Gesamter zugesicherter Speicher und systemweiter Zusicherungsgrenzwert
    55. Der Zusammenhang zwischen dem gesamten zugesicherten Speicher und der Größe der Auslagerungsdatei
    56. Stacks
    57. Benutzerstacks
    58. Kernelstacks
    59. Der DPC-Stack
    60. VADs
    61. Prozess-VADs
    62. Umlauf-VADs
    63. NUMA
    64. Abschnittsobjekte
    65. Arbeitssätze
    66. Auslagerung bei Bedarf
    67. Der logische Prefetcher und ReadyBoot
    68. Platzierungsrichtlinien
    69. Verwaltung von Arbeitssätzen
    70. Der Balance-Set-Manager und der Swapper
    71. Systemarbeitssätze
    72. Speicherbenachrichtigungsereignisse
    73. Die PFN-Datenbank
    74. Seitenlistendynamik
    75. Seitenpriorität
    76. Die Schreibthreads für geänderte und für zugeordnete Seiten
    77. PFN-Datenstrukturen
    78. Reservierungen in der Auslagerungsdatei
    79. Grenzwerte für den physischen Speicher
    80. Speichergrenzwerte für Windows-Clienteditionen
    81. Speicherkomprimierung
    82. Ablauf der Komprimierung
    83. Komprimierungsarchitektur
    84. Speicherpartitionen
    85. Speicherzusammenführung
    86. Die Suchphase
    87. Die Klassifizierungsphase
    88. Die Zusammenführungsphase
    89. Vom privaten zum gemeinsamen PTE
    90. Freigabe von zusammengeführten Seiten
    91. Speicherenklaven
    92. Programmierschnittstellen
    93. Initialisierung von Speicherenklaven
    94. Aufbau von Enklaven
    95. Daten in eine Enklave laden
    96. Eine Enklave initialisieren
    97. Vorausschauende Speicherverwaltung (SuperFetch)
    98. Komponenten
    99. Ablaufverfolgung und Protokollierung
    100. Szenarien
    101. Seitenpriorität und Rebalancing
    102. Leistungsstabilisierung
    103. ReadyBoost
    104. ReadyDrive
    105. Prozessreflexion
    106. Zusammenfassung
  12. Kapitel 6 Das E/A-System
    1. Komponenten des E/A-Systems
    2. Der E/A-Manager
    3. Typische E/A-Verarbeitung
    4. IRQ-Ebenen und verzögerte Prozeduraufrufe
    5. IRQ-Ebenen
    6. Verzögerte Prozeduraufrufe
    7. Gerätetreiber
    8. Arten von Gerätetreibern
    9. Aufbau eines Treibers
    10. Treiber- und Geräteobjekte
    11. Geräte öffnen
    12. E/A-Verarbeitung
    13. Verschiedene Arten der E/A
    14. E/A-Anforderungspakete
    15. E/A-Anforderungen an einen einschichtigen Hardwaretreiber
    16. E/A-Anforderungen an geschichtete Treiber
    17. Threadagnostische E/A
    18. Abbrechen der E/A
    19. E/A-Vervollständigungsports
    20. E/A-Priorisierung
    21. Containerbenachrichtigungen
    22. Treiberüberprüfung
    23. E/A-Überprüfungsoptionen
    24. Speicherüberprüfungsoptionen
    25. Der PnP-Manager
    26. Der Grad der Unterstützung für Plug & Play
    27. Geräteauflistung
    28. Gerätestacks
    29. Treiberunterstützung für Plug & Play
    30. Installation von Plug-&-Play-Treibern
    31. Laden und Installieren von Treibern
    32. Treiber laden
    33. Treiberinstallation
    34. Windows Driver Foundation
    35. Kernel-Mode Driver Framework
    36. Das E/A-Modell von KMDF
    37. User-Mode Driver Framework
    38. Energieverwaltung
    39. Verbundener und moderner Standbymodus
    40. Funktionsweise der Energieverwaltung
    41. Energieverwaltung durch die Treiber
    42. Steuerung der Geräteenergiezustände durch den Treiber und die Anwendung
    43. Das Framework für die Energieverwaltung
    44. Energieverfügbarkeitsanforderungen
    45. Zusammenfassung
  13. Kapitel 7 Sicherheit
    1. Sicherheitseinstufungen
    2. Trusted Computer System Evaluation Criteria
    3. Common Criteria
    4. Systemkomponenten für die Sicherheit
    5. Virtualisierungsgestützte Sicherheit
    6. Credential Guard
    7. Device Guard
    8. Objekte schützen
    9. Zugriffsprüfungen
    10. Sicherheitskennungen
    11. Virtuelle Dienstkonten
    12. Sicherheitsdeskriptoren und Zugriffssteuerung
    13. Dynamische Zugriffssteuerung
    14. Die AuthZ-API
    15. Bedingte Zugriffssteuerungseinträge
    16. Privilegien und Kontorechte
    17. Kontorechte
    18. Privilegien
    19. Superprivilegien
    20. Zugriffstokens von Prozessen und Threads
    21. Sicherheitsüberwachung
    22. Überwachung des Objektzugriffs
    23. Globale Überwachungsrichtlinie
    24. Erweiterte Überwachungsrichtlinienkonfiguration
    25. Anwendungscontainer
    26. UWP-Apps im Überblick
    27. Anwendungscontainer
    28. Anmeldung
    29. Initialisierung durch Winlogon
    30. Die einzelnen Schritte der Benutzeranmeldung
    31. Sichere Authentifizierung
    32. Das Windows-Biometrieframework
    33. Windows Hello
    34. Benutzerkontensteuerung und Virtualisierung
    35. Virtualisierung des Dateisystems und der Registrierung
    36. Rechteerhöhung
    37. Schutz gegen Exploits
    38. Abwehrmaßnahmen auf Prozessebene
    39. Control Flow Integrity
    40. Zusicherungen
    41. Anwendungsidentifizierung
    42. AppLocker
    43. Richtlinien für Softwareeinschränkung
    44. Kernelpatchschutz
    45. PatchGuard
    46. HyperGuard
    47. Zusammenfassung
  14. Fußnoten
  15. Index