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