42
Windows Vista Windows Phone 7 Referent: Frank Urrigshardt Softwarearchitekturen

Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Embed Size (px)

Citation preview

Page 1: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Windows Vista Windows Phone 7

Referent: Frank Urrigshardt

Softwarearchitekturen

Page 2: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Übersicht

• Windows Vista– Historische Entwicklung– Programmierung

• NT‐Programmierschnittstelle• Win32‐Programmierschnittstelle

– Systemarchitektur• Betriebssystemstruktur• Hardware‐Abstraktionsschicht• Kernschicht• Ausführungsschicht

• Windows Phone 7– Architektur

18.07.2011 2

Page 3: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

WINDOWS VISTASoftwarearchitektur von

18.07.2011 3

Page 4: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Historische Entwicklung

• Grobe Einteilung in 3 Abschnitte– MS‐DOS (MicroSoft Disc Operating System) – MS‐DOS‐basiertes Windows– NT‐basiertes Windows

18.07.2011 4

Page 5: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

MS‐DOS

• Ab 1981 vermarktet• Einzelnutzer‐Betriebssystem• Kommandozeile als einzige Benutzerschnittstelle

• Letzte Version von 2000– DOS 8.0

18.07.2011 5

Page 6: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

MS‐DOS‐basiertes Windows

• Lediglich grafische Benutzerschnittstelle auf 16 Bit MS‐DOS aufgesetzt

• Alle Programme im selben Adressraum des Hauptspeicher– Fehler in Programm führt zu Absturz des Systems

• Windows 1.0 als erste Version, aber schlecht verkauft– Erst Windows 3.0 sehr erfolgreich

18.07.2011 6

Page 7: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Weitere MS‐DOS‐basierte Windows‐Versionen– Windows 95/98/ME– Virtueller speicher, Prozessverwaltung, 32‐Bit‐Programmierschnittstelle (Win32‐API)

– Aber im Kern noch immer MS‐DOS welches 16‐Bit Assemblercode ausführt

– Dadurch generelle Instabilität

18.07.2011 7

Page 8: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

NT‐basiertes Windows

• New Technology• Entwicklung relativ früh parallel zu MS‐DOS basiertem Windows

• Komplett neuer 32‐Bit Kern der auf Sicherheit und Zuverlässigkeit ausgelegt ist

• Win32‐API für maximale Kompatibilität• Windows NT 3.1/2000/XP/Vista/7/...

18.07.2011 8

Page 9: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Win32‐APIAnwendungsprogramme dank Win32‐API sowohl unter MS‐DOS ‐basierten Windows als auch unter NT‐basierten Betriebssystemen  nutzbar

18.07.2011 9

Page 10: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

PROGRAMMIERUNGEin Überblick über die Programmierschichten von Windows Vista

18.07.2011 10

Page 11: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

ProgrammierschichtenFokus auf Benutzermodus, Kernmodus stark vereinfacht

18.07.2011 11

Page 12: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Ntoskrnl.exe Herzstück von NTOS– Stellt Schnittstellen für Systemaufrufe bereit– Kann nicht direkt von Anwendungsprogrammen genutzt werden

• APIs (Personalities) delegieren Aufrufe zum NTOS Kern– Win32‐API– POSIX‐API (Interix, kann nachinstalliert werden)– OS/2 (Ab Windows XP verworfen)

18.07.2011 12

Page 13: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• .NET dagegen auf Win32‐API aufgebaut– Fungiert in vielen Fällen nur als Wrapper– Aber

• einfachere Schnittstellen• zusätzliche Objekttypen• automatische Speicherbereinigung durch .NET‐Laufzeitumgebung

18.07.2011 13

Page 14: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

NT‐Programmierschnittstelle

• Native NT‐Programmierschnittstelle– Unterste Schicht im Benutzermodus– Schnittstellen werden in NTOS‐Ausführungsschicht implementiert

• Warum nicht gleich für NT‐API programmieren?– Um Kompatibilität zu MS‐DOS‐basiertem Windows zu gewährleisten

18.07.2011 14

Page 15: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Struktur der APIs in Windows Vista

18.07.2011 15

NT‐API

Win32‐API POSIX‐API OS/2‐API

.NET‐API

Benutzermodus

Kernmodus

Page 16: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Win32‐Programmierschnittstelle

• Vollständig dokumentiert• Vielfach nur Wrapper um NT‐API‐Funktionen

– Win32 Parameter werden für NT angepasst• Z.B. Pfadnamen

– Win32: CreateProcess()– NT: NtCreateProcess()

18.07.2011 16

Page 17: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Bereitgestellte Funktionalitäten

• Ausgewählte Beispiele– Erzeugung und Verwaltung von Prozessen und Threads

– Memory‐Mapped‐Dateien• Datei in virtuellem Speicher• Lesen und Schreiben ohne Festplattenzugriff

– Demand‐Paging• Änderungen an virtuellem Abbild je nach Bedarf auf Festplatte übertragen oder umgekehrt

18.07.2011 17

Page 18: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

– Über 60 Aufrufe für Dateiein‐ und ausgabe• Erstellen, Löschen, Dateiattribute setzen, etc.

– Durch NTFS wird Verschlüsselung ermöglicht• Ab Windows 7 kann Betriebssystempartition ebenfalls komplett verschlüsselt werden

– GUI‐Operationen• Erzeugen, manipulieren, etc. von Fenstern, Scrollbalken, Icons und co.

• Erzeugen geometrischer Objekte• Verwaltung von Farbpaletten• In win32k.sys implementiert, keine Delegation an NT‐API

– Komplett im Benutzermodus

18.07.2011 18

Page 19: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

SYSTEMARCHITEKTURBlick auf die interne Organisation im Kernmodus

18.07.2011 19

Page 20: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Der Kernmodus von Windows Vista

18.07.2011 20

Page 21: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Betriebssystemstruktur

• NTOS‐Kern besteht aus 2 Schichten– NTOS‐Kernschicht (kernel)

• CPU‐Verwaltung– Implementiert Thread‐Scheduling und Synchronisation, sowie diverse Interrupts und Unterbrechungsroutinen

– NTOS‐Ausführungsschicht (executive)• Beinhaltet die meisten Dienste

18.07.2011 21

Page 22: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Hardware‐Abstraktionsschicht– Hardware Abstraktion Layer (HAL)– Unterste Schicht des Kernmodus

• Direkt über der Hardware

– Abstrahiert Hardwaredetails• Stellt somit einheitliche Schnittstelle für Zugriff auf diverse Hardware zur Verfügung

18.07.2011 22

Page 23: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Treiber– Alle Kernmodusfunktionen außerhalb des HAL und des NTOS‐Kerns als Gerätetreiber implementiert

• Laufwerke• Monitore• Dateisysteme• Kernerweiterungen 

– Antivirensoftware– Digital Rights Management (DRM)

18.07.2011 23

Page 24: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Hardware‐Abstraktionsschicht

• Maschinennahe Schichten konfrontiert mit variierenden Hardwarefunktionen– Geräteregister, Interrupts, DMA etc.

• Angestrebtes Ziel – Maximale Portabilität– Also Kompilieren des Betriebssystems für unterschiedlichste Hardware ohne manuelle Anpassung

18.07.2011 24

Page 25: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Funktioniert natürlich nur bei Hardwareunabhängigen Komponenten– Arbeiten mit internen Datenstrukturen und Abstraktionen

• Hardwarespezifika die nicht hinter Compiler versteckt werden können, z.B.– Unterschied zwischen x86‐ und SPARC‐System

• Nicht nur unterschiedliche Befehlssätze, sondern komplett verschiedene Architekturen

• Ca. 1% des NTOS‐Kerns Assemblercode

18.07.2011 25

Page 26: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• HAL stellt Versuch dar, so viele Hardwareabhängigkeiten des NTOS‐Kerns wie möglich durch dünnen Layer über der Hardware zu verstecken– Hardwareabhängikeiten zentral im HAL

• Kern und Treiber mit geringem Aufwand portierbar

• HAL Development Kit– Anpassung des HAL an „eigene“ Hardware

18.07.2011 26

Page 27: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Kernschicht

• Kernel Layer• Oberste Schicht des Kernmodus• Abstrahiert ebenfalls darunter liegende Funktionalitäten

• Zwei Hauptaufgaben– Verwaltung der CPU– Synchronisationsmechanismen

18.07.2011 27

Page 28: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Kernschicht stellt höheren Schichten Threadszur Verfügung

• Aber auch Ausnahmebehandlungen und diverse Interrupts implementiert

• Datenstrukturen die für Realisierung von Threads benötigt werden, in darunterliegender Ausführungsschicht implementiert

• Ebenfalls Scheduling und Synchronisation in Kernschicht

18.07.2011 28

Page 29: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Ausführungsschicht

• Executive Layer• Untere Schicht des NTOS‐Kerns• In C programmiert• Dank HAL weitestgehend unabhängig von Hardware– Konnte so auf diverse Prozessoren portiert werden

• MIPS, x86, PowerPC, x64, etc

– Nur bei Speicherverwaltung manuelle Anpassung

18.07.2011 29

Page 30: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Komponenten der Ausführungsschicht nach Prinzip der Datenkapselung implementiert– Interne Datenstrukturen und Funktionen werden vor anderen Komponenten versteckt

– Bieten Schnittstelle an, die von anderen Komponenten genutzt werden können

• Über ntoskrnl.exe teilweise auch den Treibern zur Verfügung gestellt

18.07.2011 30

Page 31: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Objekt‐Manager

• Verwaltet zentral alle Kernmodusobjekte der Ausführungsschicht– Dateien, Threads, Prozesse, Treiber, Semaphore, ...

• Speicher allokieren, freigeben• Erzeugt Handles für höhere Schichten, über die letztere auf Objekte zugreifen können– Ähnlich zu Pointern in C++

• Verfügt über eine Art Garbage Collector

18.07.2011 31

Page 32: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

E/A‐Manager

• Verwaltung von Ein‐ und Ausgabegeräten• Stellt Dienste zur Konfiguration von Geräten und Zugriff auf diese bereit

• Bindet nicht nur physische Geräte ein– Kern lädt z.B. Dateisysteme und Netzwerkstacks dynamisch

18.07.2011 32

Page 33: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Viele Treiber können auch im Benutzermodus ausgeführt werden– Großer Vorteil für Stabilität des Systems– Blue Screen Of Death in früheren Windows Versionen hauptsächlich wegen fehlerhafter Gerätetreiber im Kernmodus

18.07.2011 33

Page 34: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Konfigurationsmanager

• Implementiert Registrierung• Während Bootvorgang liest HAL Systemkonfiguration aus BIOS aus und schreibt diese in die Registrierung

• Konfigurationsmanager speichert Daten im Dateisystem in Hives

18.07.2011 34

Page 35: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

WINDOWS PHONE 7

18.07.2011 35

Page 36: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Weiterentwicklung von Windows Mobile– Basiert wiederum auf Windows CE für eingebettete Systeme, Thin Clients und Handhelts

• Auffälligste Neuerung ist grafische Benutzerschnittstelle– Erinnert nicht mehr an Desktop‐Version– Speziell für mobile Endgeräte mit Multi‐Touch‐Bedienung entwickelt

18.07.2011 36

Page 37: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• Geschlossenes System (ähnlich iOS)– Kein direkter Zugriff auf Dateisystem– Apps (Windows Phone Marketplace)– Datenaustausch mit PC nur über Synchronisation mit Hilfe von Zune

– Mindestanforderungen für Handys vorgeschrieben

18.07.2011 37

Page 38: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Windows Phone 7 Architektur

18.07.2011 38

Page 39: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Architektur

• XNA Framework zur plattformübergreifenden Spieleprogrammierung– Windows, Xbox 360 und Windows Phone 7

• Silverlight für herkömmliche Anwendungen– Ursprünglich zur Erstellung von Rich Internet Applications

– GUI wird in XAML gestaltet, darunter liegende Logik in C#

• eXtensible Application Markup Language

18.07.2011 39

Page 40: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• App Model– Verwaltung von Apps

• Lizensierung• Softwareupdates

– Einzelne App als Paket (.XAP), bestehend aus• Metadaten, Icons, DLLs, etc.

– Nur Ausführung von Anwendungen mit gültiger Marketplace Lizenz

– Sandbox‐Mechanismus zum Schutz des Systems

18.07.2011 40

Page 41: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

• UI Model– Grundlegende Funktionen für visuelle Darstellung– UI‐Komponenten als Stack organisiert

• Werden von Shell Frame zur Darstellung zusammengesetzt

– Zeitlicher Verlauf von Seitenaufrufen wird gespeichert

18.07.2011 41

Page 42: Windows Vista Windows Phone 7 - Universität Siegenps.informatik.uni-siegen.de/downloads/Seminare/softwarearchitekt... · Programmierschnittstelle (Win32‐API) – Aber im Kern noch

Danke für die Aufmerksamkeit