Mac OS X und iOS

Transcription

Mac OS X und iOS
Mac OS X und iOS
Softwarearchitekturen SS 2011
Von Pawel Wall
Inhalt
•
•
•
•
•
•
UNIX-Kategorien
Kernel und Kerneltypen
Die Vorgeschichte von Mac OS X
Die Architektur von Mac OS X
Die Architektur von iOS
Fazit
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Unix-Kategorien
• OS X gehört zu den „unixoiden“ Systemen
• UNIX-Kategorien
 Genetisches Unix
 Funktionelles Unix
 Warenzeichen „UNIX“
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Kernel
Anwendungen
Kernel
CPU
Speicher
Geräte
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Kerneltypen
• Monolithischer Kernel
• Mikrokernel
• Hybrider Kernel
 Mac OS X besitzt einen hybriden Kernel
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Geschichte: UNIX
• 1969 in den „Bell Labs“ (AT&T) entwickelt
• Mehrbenutzerbetrieb, gemeinsamer
Datenzugriff, Aufteilung von Rechenleistung
• parallel: Entwicklung der Programmiersprache C
• Portierung von UNIX auf C
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Geschichte: BSD
• keine kommerzielle Vermarktung von UNIX
• Berkeley University: veröffentlicht BSD
• BSD wird später von UNIX-Code bereinigt
 FreeBSD
Softwarearchitekturen SS 2011 - Mac OS X und iOS
NeXTSTEP
• 1986: Steve Jobs gründet NeXT und entwickelt
NeXTSTEP
• Mach Mikrokernel, darüber BSD-UNIX
• präemptives Multitasking, Multithreading und
Speicherschutz
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Der Mach-Kernel
• 1984 an der Carnegie Mellon University
entwickelt
• Inter Process Communication (IPC)
mittels Shared Memory
Softwarearchitekturen SS 2011 - Mac OS X und iOS
OpenStep/ OPENSTEP
• 1993: NeXT und Sun entwickeln die
objektorientierte API Openstep
• C-Basisdatentypen ersetzt:
NSString, NSNumber etc.
• eigene Implementierung: OPENSTEP
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Mac OS
• Wurde vor Mac OS X auf Apple Computern
installiert
• enthielt Carbon und QuickTime
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Rhapsody
• basierte auf OPENSTEP
• alte Mac OS-Anwendungen in der Blue Box
virtualisiert
• QuickTime und Carbon
• Java Virtual Machine
Softwarearchitekturen SS 2011 - Mac OS X und iOS
XNU
• Hybridkernel
• Mach Kernel + BSD-Komponenten
• kein originaler UNIX-Code mehr
• Mach: Threads, Tasks, Speicherschutz,
Echtzeitunterstützung und I/O per Konsole
• BSD: Sicherheitsrichtlinien, Benutzer- und
Gruppen-IDs, Netzwerk, Dateisysteme,
Inter-Process Communication
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Schichten von Mac OS X
Aqua
Carbon
Cocoa
Java
Quartz
OpenGL
QuickTime
Darwin
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Darwin
• Basissystem von Mac OS X
• XNU + BSD-Userland
• steht unter freier Lizenz
• Aqua-Oberfläche, Carbon, Cocoa und
QuickTime fehlen
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Quartz
• Quartz 2D: Rendert 2D-Elemente und Text
• Quartz Compositor: Darstellung der
Benutzeroberfläche
• Quartz Extreme: Fenster als Texturen
Softwarearchitekturen SS 2011 - Mac OS X und iOS
OpenGL
• Open Graphics Library
• Programmierschnittstelle, um 2D- und 3DComputergrafiken zu produzieren
Softwarearchitekturen SS 2011 - Mac OS X und iOS
QuickTime
• Enkodieren und Transkodieren von Video und
Audio
• Dekodieren von Video und Audio
• Plugin-Architektur (für zusätzliche Codecs)
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Carbon
• Portierbarkeit von Anwendungen von Mac OS
nach Mac OS X
• Mac OS-Schnittstellen implementiert
• Seit v10.6 nicht mehr Unterstützt
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Cocoa
• API zur Programmierung Unter OS X
• Weiterentwicklung von OpenStep
• Besteht aus drei Frameworks:
 Foundation
 Applikation Kit
 Core Data
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Cocoa: Foundation
• einfachen Objektklassen (Strings, Arrays,
Mengen, Listen etc.)
• XML-Unterstützung
• Konventionen zur Deallokierung von Speicher
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Cocoa: Application Kit
• grafische, ereignisgesteuerte
Benutzeroberfläche
• „Interface Builder“ verbindet
Benutzeroberfläche und Programmlogik
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Cocoa: Core Data
• Serialisierung eines Object Graph
• Erleichtert die Speicherung von Daten
• nach XML, SQLite oder binär
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Java
• Java Virtual Machine
• Bridges: Cocoa in Java nutzbar
• seit Mac OS X 10.4: Java Bridge wird nicht
mehr aktualisiert
Softwarearchitekturen SS 2011 - Mac OS X und iOS
iOS
•
•
•
•
•
•
2007 zusammen mit dem iPhone vorgestellt
Besonderheit: Multitouch-Steuerung
Auffällig: Einschränkungen
„Apps“ nur über den Appstore
Sehr eingeschränktes Multitasking
Deaktivierung von Apps aus der Ferne
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Schichten von iOS
Cocoa Touch
Media Services
Core Services
Core OS
iPhone Hardware
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Cocoa Touch
• basiert auf Cocoa aus Mac OS X
• an die Anforderungen des iPhones angepasst
• Enthält Frameworks für Anwendungen:






UIKit Framework
Map Kit Framework: Kartenbasierte Funktionen
Push Notification
Message UI Framework: Emailversand
Address Book UI Framework: Adressbuch
Game Kit Framework: Peer2Peer-Verbindungen
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Cocoa Touch: Push Notification
• Benachrichtigungssystem
• entsprechende Anwendung
muss nicht aktiv sein
• Beispiel Instant Messenger
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Cocoa Touch: UIKit Framework
•
•
•
•
•
Erstellen von grafischen Benutzeroberflächen
Programmzyklen und Ereignisbehandlung
Programmübergreifenden Zwischenablage
IPC
Nutzung der Daten von
Beschleunigungssensor, Batterie etc.
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Media
• Audio-, Video-, Grafikfunktionalität
• Zeichnen zweidimensionaler Elemente
• Animationen
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Core Services
• Datenbankfunktionen
• Zugriff auf den „App Store“
• Transaktionen innerhalb von Apps
• Datenverwaltung
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Core OS
•
•
•
•
•
•
•
direkt über der Hardware
enthält den Kernel
Netzwerkfunktionalität
Zugriff auf externes Zubehör
Sicherheitsfunktionen
Speicherverwaltung
Dateisystemverwaltung
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Fazit
• Mac OS X hat eine lange (UNIX-)Vorgeschichte
• Komplexe Entwicklungslinie
• Modernes Multiprozessor- und Multiuser-System
• gilt als stabil und sicher
Softwarearchitekturen SS 2011 - Mac OS X und iOS
Fazit
• iOS steht gut da - Messlatte für andere Systeme
• Ausrichtung als „Internetbetriebssystem“
• iCloud wird dies noch verstärken
• restriktive Firmenpolitik vs.
Weiterentwicklung und Innovationen
Softwarearchitekturen SS 2011 - Mac OS X und iOS