Created
November 11, 2008 18:16
-
-
Save grobie/23920 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1.1 | |
******** | |
============================================== | |
Ziele bei der Entwicklung von Betriebssystemen | |
============================================== | |
einfache Benutzbarkeit | |
Effizienz | |
Sicherheit | |
Zuverlässigkeit | |
(Kompatibilität) | |
Aus Entwicklersicht zusätzlich: einfache Umsetzbar-, Wart- und Erweiterbarkeit | |
===================================== | |
Beispiele für Kernelmode und Usermode | |
===================================== | |
Kernelmode: | |
Zugriffe auf den Speicher/CPU/Input und Output | |
Hardware Abstraction Layer (HAL) | |
Teile des Netzwerkprotokolls | |
Teile des Dateisystems | |
Usermode: | |
restliches Dateisystem | |
Environment Subsystems | |
Benutzerprogramme (Compiler, Browser, Word, Excel, Taschenrechner) | |
====================================================== | |
Vor- und Nachteile der Trennung in User und Kernelmode | |
====================================================== | |
Vorteile: | |
höhere Stabilität durch Aufteilung in Schichten | |
Sicherheit | |
Nachteile: | |
Geschwindigkeitseinbußen | |
Umschalten zwischen User- und Kernelmode ist aufwändig/komplex | |
Kontextwechsel | |
Daten kopieren | |
1.2 Programm/Prozess/Thread | |
*************************** | |
Programm | |
- konkrete Realisierung (Implementierung) eines abstrakten Lösungsverfahrens (Algorithmus) zur Lösung eines allgemeinen Problems | |
- Besteht in der Regel aus einer Folge von Anweisungen. | |
- kein Prozess | |
- sog. passive Einheit (zB. Datei mit einer Liste von Instruktionen auf der Festplatte) | |
Prozess | |
- aktive Einheit/Instanz eines Programms (Programm in Ausführung) | |
- besitzt einen Program Counter, welcher den als nächstes auszuführenden Befehl angibt und eine Menge assoziierter Ressourcen/Betriebsmittel: | |
- Code-, Datenbereich, Speicher[Stack, Heap], Dateideskriptoren | |
- wird gestartet, wenn ein Programm gestartet wird | |
- IEEE Std 1003.1-2001: Ein Prozess ist eine Einheit bestehend aus: | |
- einem Adressraum | |
- mit einem oder mehreren in diesem Adressraum ablaufenden Threads und | |
- den für die Threads benötigten Systemressourcen | |
Thread | |
- haben eigene Stapelspeicher, müssen jedoch Betriebsmittel des Prozesses benutzen. | |
- Jeder Prozess besitzt einen oder mehrere Threads | |
- läuft im Kontext eines Prozesses | |
- bezeichnet einen sequentiellen Kontrollfluss (ein Ausführungsstrang) | |
- Scheduling: Windows (Threads), Linux (Prozesse) | |
1.3 Windows | |
*********** | |
============== | |
Windows-Kernel | |
============== | |
- Executive | |
memory management Speicherverwaltung, Speicherschutz | |
process/thread management Bereitstellung der benötigten Ressourcen für Prozesse/Threads | |
Ausführung/Synchronisierung von Threads | |
Input/Output manager Schnittstelle zwischen Benutzer und Programmen | |
Object manager Zugriff auf Objekte mittels eines Namens | |
Bereitstellung eines Handles | |
- Kernel | |
multiprocessor synchronization | |
thread scheduling | |
interrupt and exception dispatching | |
provides a set of routines and basic objects that the rest of the executive uses to implement higher-level constructs | |
- Device Drivers | |
hardware device drivers translate user I/O function calls into specific hardware device I/O requests | |
- Windowing and Graphics Driver | |
GUI functions | |
windows, user interface controls, and drawing | |
- Hardware Abstraction Layer | |
isolates the kernel, device drivers, and executive from hardware | |
hides platform-specific hardware differences (motherboards) | |
==================== | |
Userspace Subsystems | |
==================== | |
Environment | |
Windows Startet Prozesse und Threads | |
verwaltet Input/Output von Tastatur/Maus/Monitor | |
Schnittstelle zwischen Benutzereingaben und Programmen | |
OS/2 führt OS/2-Programme aus | |
Posix führt Posix-Programme aus | |
1.4 WRK Dokumentation | |
********************* | |
=========================================================================================== | |
Wie lässt sich die Verzeichnisstruktur in base/ntos des WRK auf den Kernelufbau abbilden? | |
=========================================================================================== | |
cache\ cache manager | |
config\ registry implementation | |
dbgk\ user-mode debugger support | |
ex\ executive functions (kernel heap, synchronization, time) | |
fsrtl\ file system run-time support | |
io\ I/O manager | |
ke\ scheduler, CPU management, low-level synchronization | |
lpc\ local procedure call implementation | |
mm\ virtual memory manager | |
ob\ kernel object manager | |
ps\ process/thread support | |
se\ security functions | |
wmi\ Windows Management Instrumentation | |
inc\ NTOS-only include files | |
rtl\ kernel run-time support | |
init\ kernel startup | |
============================================================= | |
Welche Teile des Windows-Kernels sind nicht im WRK enthalten? | |
============================================================= | |
- plug-and-play | |
- power management | |
- device verifier | |
- kernel debugger interface | |
- virtual dos machine | |
- cleanup and removal of server support | |
================================================================================================================ | |
In welcher Funktion werden die Kernelmodule initialisiert? Wie heißen die Initialisierungsfunktionen der Module? | |
================================================================================================================ | |
init/initos.c (phase1initializationdiscard) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment