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.

BSD Carbon Classic Cocoa Quick Time JAS Quarz 2D Quick Draw 2D OpenGL Quarz Compositor JRE Core Services JDK JVM Kernel Hard Ware,Open Firmware,Boot loader Application Services Application Environment

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):
 

  bekannte Prozessor-reihen :

  • Motorola 68k (1984)
  • PowerPC 60x (1994)
  • PowerPC G3 (1998)
  • PowerPC G4 (1999)
  • PowerPC G5 (2003)
  • Intel (2006: Mac mini Core Solo 1.50 GHz)
Power Macintosh G3 Gehäuse

(Bild oben) Power Macintosh G3

Power Macintosh G4-gehäuse

(Bild oben) Power Macintosh G4

offener Power Mac G5

(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 ind OS X

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)
Darwin in Mac OS X

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.
monotholic kernel(links) und microkernel(rechts)
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.
 
Prozesse für die Daemons bereit gestellt werden
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 Daemon

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.
 
Die Benutzeroberfläche Aqua
 

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.
 

Licenses

Valid HTML 4.01 StrictValid HTML 4.01 Strict

by Fabian Gwinner