Komplette Gliederung von Betriebssystem Mac OS X
1. Ebene
1.0 Hardware
1.1 Open Firmware
1.2 Bootloader (BootX)
2. Ebene
2.0 Darwin
2.1 XNU - Der Kernel
2.2 Mach Kernel
2.3 BSD
3. Ebene
3.0 Core Services
4. Ebene
4.0 Java Viritual Maschine
5. Ebene
5.0 Application Services
5.1 Quartz
5.2 OpenGL
5.3 Quick Time
6. Ebene
6.0 Java Runtime Environment
7. Ebene
7.0 Die Application Environments
7.1 Carbon und Cocoa
7.2 Classic
7.3 Java
7.4 Aqua
8. Tolles An Mac OS X
8.0 HFS / HFS+
8.1 Apple Script
8.2 Darwinports / Fink
Mac OS X - Was ist das ? (Einführungsartikel)
"Mac OS X" bezeichnet die neuste Version des Von Apple Computer entwickelten Betriebssystems Mac OS. Über die Aussprache lässt sich dabei streiten da es jeder anders spricht wobei sich die richtige aussprache aus der Beduetung wie folgt zusammen setzt. das Mac steht für Macintosh (-Computer), das OS für "Operating System". Das X am Ende des Namens soll für die Versionsnummer nach der römisch Zahl 10 stehen. das X verweißt so auf seine Vorläufer Mac OS 8 und Mac OS 9. doch auch bei OS X sind verschiedene Versionen enstanden.
- Versionen
- Mac OS X public beta
- Mac OS X 10.0 (Cheetah)
- Mac OS X 10.1 (Puma)
- Mac OS X 10.2 (Jaguar)
- Mac OS X 10.3 (Panther)
- Mac OS X 10.4 (Tiger)
- Mac OS X 10.5 (Leopard)
Mac OS X - Was steckt dahinter ?
Mac OS X kann man im wesentlichen in 7 "Layer" (Schichten oder Ebenen) aufteilen.
Hinter Mac OS X steckt in der untersten Ebene (1. Ebene) die im Mac verwendete Hardware zusammen mit der Open Firmware und dem Bootloader darüber liegt in der 2. Ebene Darwin mit seinem XNU Kernel. Dessen Spitze, die 3. Ebene, besteht aus den Core Services und der 4. Ebene, der JVM. Darauf wiederum baut sich die 5. Ebene mit den Application Services mit dessen Grafik-Subsystemen (Oberflächen-Arten) Quartz, OpenGL und QuickTime auf.Die 6. Ebene besteht aus dem JRE. Den Kopf des Betriebsystem, die 7. Ebene, bilden die Application Environments und dessen Programmierschnittstellen(API) BSD, Carbon, Cocoa, Classic, Java und dessen Teilkomponente QuickTime.
Dies ist eine image map. Hier können sie durch klicken auf das Bild zum gewünschten Themen-Bereich wechseln.
1.0 Hard Ware
Die Hardware eines Macintosh-Computers unterscheidet sich heute kaum von der eines Normalen Computers. Wobei sich Apple 2005 enschlossen hat in Zukunft nicht mehr auf, die bis dahin in ihren Computern verbauten, PowerPC CPU's zu verlassen sondern nach und nach auf den standartisierten Pentium 4 umzuschwenken. Ansonsten haben Macintosh-Computer auser kleinen Technik und Namensunterschieden wie z.B. AirPort Extrem heute nur noch kleine Hardware unterschiede zu den weit verbreiteten Computern. Viele Computer User beschweren sich dass die von Macintosh verkauften "mac's" meist von der Hardware-Leistung zu teuer verkauft werden. Das allerdings lässt sich damit begründen dass ein Computer allein um das Betriebsystem (bspw. Windows XP) zu laden und zu betreiben mehr Ressourcen benäötigt als ein normaler Macintosh-Computer mit OS X als Betriebssystem.
Im Laufe der Zeit wurden in Macintosh-Computer mehrere Prozessor-reihen verbaut.Hier eine auflistung der bis jetzt verwendeten Prozessoren (stand Juni 2006):
- Motorola 68k (1984)
- PowerPC 60x (1994)
- PowerPC G3 (1998)
- PowerPC G4 (1999)
- PowerPC G5 (2003)
- Intel (2006: Mac mini Core Solo 1.50 GHz)
(Bild oben) Power Macintosh G3
(Bild oben) Power Macintosh G4
(Bild oben) offener Power Mac G5
1.1 Open firmware
Open Firmware (IEEE-1275 Standart für Open Firmware) ist der zum laden und diagnostizieren von Systemen verwendeter Standart z.B. bei Mac Rechnern mit PowerPc Architektur (oder Sun Microsystems und CHRP-Rechnern). Ähnlich dem Bios das für Windows Systeme verwendet wird.
1.2 Bootloader
BootX (/System/Library/CoreServices/BootX) ist der in Mac OS X als Standart verwendete Bootloader ( verkürzte form bootstrap loader). BootX lädt weitere Teile des Betriebssystem wie den Kernel.
BootX kann Kernels von verschiedenen Dateisystemen laden z.B. HFS, UFS, HFS+.
2.0 Darwin
Darwin ist das Open-Source-Betriebssystem das die Grundlage für Mac OS X bildet, nur dass beim reinen Darwin die Benutzer Oberfläche fehlt. Darwin besteht im Grunde aus einem XNU Kernel basierend auf 4.4BSD und dem Mach-Kernel und besitzt dazu bestandteile des I/O Kit.
akktuelle Version von Darwin ist 8.6.0 ( stand. 7. März 2006)
OpenDarwin ist eine Verkörperung des Computerbetriebssystems Darwin, die es Entwicklern möglich macht, am CVS-Tree zu entwickeln, ohne sich bei Apple registrieren zu müssen. Das Hauptziel liegt dabei darin, dass man am aktuellen Core-OS mitarbeiten kann, da OpenDarwin immer auf dem Live-Darwin-CVS beruht.OpenDarwin ist allerdings keine eigenständige Darwin-Distribution.
2.1 XNU - Der Kernel
XNU (XNU is Not Unix) ist der Kernel (Systemkern dort findet die Prozess und Daten-organisation statt), der im Betriebssystem Darwin verwendet wird.
XNU ist ein hybrider Kernel und verbindet die besten Eigenschaften des "monolithischen kernels" (monotholic kernel) und des "micro Kernels" (microkernel). So zeigen sich die Vorteile des microkernl in XNU z.B. dadurch das für bestimmte Prozesse ein daemon (server) im userland (auch userspace) erstellt wird.
konzeptionelle ansicht des monotholic kernel (links) und des microkernel(rechts)
Beispielsweise wird unter XNU logging (syslogd) nicht im Kernel ausgeführt, wie es bei einem monotholic kernel normal wäre, sondern ein Daemon dafür bereit gestellt.
Liste der unter Os X laufenden daemons
wobei das "d" am Ende des Namens für "deamon" steht.
2.2 Mach Kernel
Mach ist ein Betriebssystem-Kernel und gehört zur Klasse der Microkernels. Die Kernfeatures von Mach sind:
- Multitasking um Mehrere Aufgaben(tasks) scheinbar gleichzeitig ausführen zu können.
- Threads
- Interprozesskommunikation (englisch inter-process communication, IPC) durch die Versendung von Mach messages.
- Speicherschutz aufteilung des Verfügbaren Arbeitsspeicher auf laufende Programme, um diese zu trennen.
2.3 BSD (Version 4.4)
BSD (Berkeley software Distribution) ist der in Darwin enthaltene Teil des Betriebssystems Unix. Mac OS X und besonders dessen kleiner Bruder Darwin (OpenDarwin) basieren zu großen Teilen auf FreeBSD in der Version 4.4BSD. Darwin besitzt unteranderem das BSD Subsystem, Dateisystem und dessen Netzwerkfähigkeit. Das wiederum heist dass BSD Nicht nur im Kern in OS X vorhanden ist sondern auch in der Benutzerobefläche ist BSD vorhanden. Beispielsweiße stammen Terminal Befehle wie ls,cd,top,ps,chmod aus BSD.
Der BSD Deamon
3.0 Core Services
Die Core Services bauen auf den Kernel auf. Dessen wohl wichtigsten unterkomponenten bilden sich aus CoreFoundation.framework und CoreServices.framework diese enthalten wichtige "non-GUI system services" (also System teile ohne Grafische-Benutzer-Oberfläche) Anwendungen z.B. um Prozesse zu koordinieren oder zur interaktion Virituellen-Speichers und Dateisystemen.
5.0 Application Services
die Application Services die über den Core Services stehen machen mit Quarz die Grafik des Betriebsystem aus.
5.1 Quarz
Quarz ist das Grafikssystem, Teil der in Mac OS X verwendeten Grafikausgabe und hat das bis OS X vernwendete Quick Draw abgelöst.
Quarz besteht aus den Kernkomponenten:
Quarz Compositor die Compositing Engine, Sie baut den bildschirmfüllenden Inhalt aus Quartz 2D und OpenGL auf.
Quarz 2D das alle 2D Objekte (Grafiken, Texte,...) verwaltet die angezeigt werden.
Quarz Extreme verlagert in Mac OSX alle Quarz-Routinen auf die GPU. dazu wird Open GL verwendet.
Quarz 2D Extreme verlagert in Mac OSX alle aufgaben speziell von Quartz 2D in den GPU.
QuickDraw war die bis Mac OS 9.2.2 verwendete 2D Bildbeschreibung. dieser wurde in OS x jedoch von Quarz komplettabgelöst. ist aber noch verfügbar um altere Anwendungen die auf QuickDraw basieren weiter verwenden zu können
5.2 OpenGL
OpenGL ist die Schnittstelle zwischen Grafikkarte, Betriebsystem, und Anwendung. Beim Erstellen von Anwendungen muss so nicht darauf geachtet werden welche Hardware der Benutzer verbaut hat, statdessen kann man bei der Programmierung auf einer sehr abstrakten Ebene arbeiten. Open Gl ist ein freier Standart der unter vielen Betriebsystemen verwendet wird, neben Mac auch für Windows und LinuX.
5.3 QuickTime
QuickTime ist ein von Apple Computer, für Mac OS X, entwickeltes multimedia-Framework (Produktionsplattform) und nicht nur der "QuickTime Player" ist eine auf dieser Plattform basierende Anwendung auch "Final cut" und "Apple Motion" basieren auf QuickTime. Doch nicht nur unter Mac OS X laufende Software verwenden QuickTime. Auch "Adobe GoLive" und "Premiere" unter Windows verwenden Teile der QuickTime-Technologie.
7.0 Application Environments
Die Application Environments bilden den sichtbaren Teil von Mac OS X. Sie enthalten die Programmierschnittstellen(API) BSD, Carbon, Cocoa, Classic, Java und dessen Teilkomponente QuickTime, welche alle zusammen die Benutzer-Oberfläche namens Aqua erstellen.
7.1Carbon vs Cocoa
Cocoa und Carbon sind beides Programm-Oberflächen in Mac OS X. Wobei Cocoa erst in Mac OS X in einer Weiterenwickelten Version verfügbar ist. von "NeXT Computer Systems" entwickelt hat Cocoa seine Ursprünge im Jahre 1987. Cocoa ist ein in Objektive-C entwickletes Framework (gerüst dessen grobe Architektur schon vorgegegeben ist) und soll das zugreifen auf Kernfunktionen erleichtern was die entwicklung von Programmen wesentlich beschleunigen soll. Carbon bezeichnet die erneuerten Mac OS Classic Applications. Deren Struktur überzeugt durch:
Native GUI Bedienelemente
Speicherschutz
Echtes Multitasking
Neben Cocoa und Carbon existiert, etwa zur Portierung von bestehender Software, noch Java.
7.2 Classic
mit Classic ist die für Mac OS X entwickelte Emulationsumgebung für Mac OS 9 Anwendungen gemeint.
Java unter Mac OS X (Java, JRE, JVM)
Java selber ist eine plattformunabhängige Programmiersprache. Normalerwiße wird zum ausführen von in Java Programierten Anwendungen extra eine spezielle Umgebung , die Java Virtual Maschine (JVM), benäötigt. Die aber bei Mac OS X schon mitgeliefert wird. Außerdem bietet Mac OS X zusätzliche Java-Bibliotheken, welche direkt an das Cocoa-Framework angehängt wurden. Dazu ist Mac OS X mit einer Java VM plus Entwicklungsumgebung ausgestattet um selbst Anwendungen zu portretieren oder zu erstellen. Leider stellen portretierte Java Anwendungen auf OS X oft nicht die richtigen nativen Bedienelemente (GUI - Graphical User Interface) zur verfügung da sich Die Java Maske selbst darsstellt und dafür keine "systemressource" verwendet, das führt dann dazu dass diese Masken meist nicht dem OS X Standart entsprechen.
glücklicherweiße versucht IBM mit dem Projekt SWT dies zu umgehen. Da SWT Bedienelemente besitzt die dem Aussehen und Verhalten der OS-eigenen Bedienelemente entspricht.
7.4 Aqua
Aqua ist die grafische Benutzer-Oberfläche in Mac OS X. Diese setzt sich aus der Engine ("Quartz" genannt) und den Programm-Oberflächen z.B. Carbon, Cocoa, usw zusammen.
8.0 HFS / HFS+
Das Hierarchische Dateisystem (Hierarchical File System - HFS) das von Apple für Computer mit Mac OS entwickelte Dateisystem ist das in Mac OS 8 (,usw) Arbeitende Ordnungs- und Zugriffssystem.
In Mac OS X wurde HFS von HFS+ abgelöst das eine erweiterung von HfS ist. HFs+ ist ein journalisierendes Dateisystem d.h. es wird ein Journal über geänderte Daten geführt so kann bei einem Systemabsturz durch überprüfung der Daten die sich geändert haben Zeit gespart werden.
In Mac OS X werden Verzeichnisse mit einem Slash / (angewand in allen Unix, Linux, Mac OS X, AmigaOS Systemen) getrennt. Vielen Mac Usern war der Übergang von älteren Mac Version zu OS X ein Problem da zwischen den Version auch die Art der Trennun geändert wurde. Denn bei älteren Mac Versionen wurde der Doppelpunkt : als Trennungszeichen verwendet.
8.1 Applescript
Applescript ist eine von Apple entwickelte Progreamiersprache, gedacht für kleine überschaubare Programmieraufgaben. Applescript dient zur erweiterung und automatisierung von OS-Programmen. Da Applescript auf HyperCard basiert besitzt es eine der Englischen Sprache sehr nahe Skriptsprache. So sind in Applescript geschrieben Programme auch für Benutzer verständlich, die nicht programieren können.
tell application "Cyberduck"
set theServer to "mirror.switch.ch"
set theUser to "anonymous"
set theProtocol to "ftp"
set theRemoteFolder to "/mirror/apache/dist/spamassassin/source"
set theLocalFolder to "~/Downloads/spamassasin/"
set theBrowser to (make new browser)
with timeout of 300 seconds
tell (theBrowser)
set the encoding to "UTF-8"
set show hidden to false
connect to theServer with protocol theProtocol as user theUser
change folder to theRemoteFolder
sync folder (get working folder) with local folder theLocalFolder
disconnect
end tell
end timeout
end tell
Beispiel für einen in Applescript geschriebenen Quelltext.
8.2 Darwinports / Fink
Darwinports ist ein Paketverwaltungssystem und eine Ableitung von BSD-Prots. Mit Darwin-ports soll das installieren, updaten und deinsatlliernen von Open-Source Paketen erleichtert werden. Fink ist genauso wie Darwinports ein in Mac OS X enthaltenes Paketmanagementsystem. Unteranderem arbeiten Programme wie "apt-get" und "dselect" unter ihrer Deckschale mit Fink. Fink oder Darwinports lassen sich dazu auch noch hervorragent in andere Programme mit einbauen.