Start

PrefEditEigenschaftslistendateien

Eine Liste mit Einstellungen für eine gegebene Domänenschnittmenge wird intern durch eine spezielle Datenstruktur dargestellt, die durchgängig in allen Teilen von Mac OS X zum Einsatz kommt, eine sogenannte Eigenschaftsliste, auf Englisch Property List genannt. Um genauer zu sein, werden die Einstellungen einer Domäne durch ein Dictionary dargestellt, wobei die Eigenschaftsschlüssel der Domäneneinstellungen zu Schlüsseln des Dictionarys werden und die Werte für jede Einstellung die dementsprechenden Werte des Dictionarys bilden. Aus diesem Grund ist es nur natürlich, dass Mac OS X auch sein Standarddateiformat, die sogenannten Eigenschaftslistendateien mit der Namensendung .plist verwendet, um Kopien der Einstellungsdomänen intern zu speichern. Auf diese Weise werden die Domänenschnittmengen der Einstellungsdatenbank permanent in Dateien abgelegt und die Einstellungen behalten ihren Wert. Die Werte überleben, auch wenn die Programme oder das Betriebssystem abgeschaltet werden.

Der Unterschied zwischen Eigenschaftslistendateien (Plist-Dateien) und Einstellungsdateien (Präferenzdateien)

Mac OS X verwendet sozusagen „zufällig“ Eigenschaftslistendateien, um die unterschiedlichen Domänenschnittmengen der Einstellungsdatenbank abzuspeichern. Theoretisch könnte es auch irgendein anderes Dateiformat für diese Aufgabe nutzen und Vorgängerversionen von Mac OS X (z.B. NeXT OPENSTEP for Mach) haben in der Tat einen anderen Dateityp verwendet. Wie bereits erwähnt, müssen sich Programme nicht darum kümmern, wie Mac OS X dies handhabt, da sie niemals direkt auf Einstellungsdateien zugreifen. Wenn ein Programm nach dem Wert für eine angegebene Einstellung fragt, übernimmt Mac OS X stellvertretend die Aufgabe, den Wert zu suchen und zu beschaffen. Obwohl in dem Moment der Prozess des anfragenden Programms indirekt eventuell einige der Plist-Dateien, die mit der jeweiligen Einstellung verbunden sind, öffnet, „bemerkt“ das Programm hiervon nichts. Mac OS X bringt den laufenden Prozess auf indirektem Wege dazu, einige der internen Funktionsmerkmale des Betriebssystems aufzurufen, welche den eigentlichen Vorgang ausführen.

In Abhängigkeit davon, welche Domänenschnittmenge gerade wirksam ist, erzeugt Mac OS X automatisch die richtigen Dateinamen und Ordnernamen, um auf die verfügbaren Einstellungen zuzugreifen. Beispielsweise werden die systemweiten Einstellungen (alle Benutzer) für den aktuellen Computer im Ordner /Library/Preferences gespeichert, wobei der Domänenname des Programms zum Dateinamen wird. Einstellungen für den aktuellen Benutzer werden im Unterordner Library/Preferences des Privatordners des Benutzers gespeichert, wobei hier ebenso der Domänenname des Programms als Dateiname herangezogen wird.

Das heißt, dass das dauerhaft gespeicherte Exemplar der Einstellungsdatenbank in hunderte verschiedener Eigenschaftslistendateien gespeichert ist, die sich auf bestimmte Library/Preferences-Ordner verteilen. Erinnern Sie sich daran, dass eine Einstellungsdomäne durch eine spezielle Art von Eigenschaftsliste dargestellt werden muss, nämlich eine Liste, die ein Dictionary mit den Eigenschaftsschlüsseln auf oberster Ebene enthält. Das heißt, nicht alle gültigen Plist-Dateien sind gültige Einstellungsdateien. Einstellungsdateien sind spezielle Fälle von Plist-Dateien und unterliegen gewissen Beschränkungen. Mac OS X verwendet Plist-Dateien auch für viele andere Zwecke. Eigenschaftslistendateien, die die permanenten Teile der verteilten Einstellungsdatenbank beinhalten, sind nur eine Anwendung, bei der eine besondere Klasse von Plist-Dateien zum Einsatz kommt.

HINWEIS: Wenn Sie eine Eigenschaftslistendatei direkt bearbeiten, zeigt PrefEdit an, ob diese Datei die korrekte Struktur hat, um als Teil der Einstellungsdatenbank benutzt zu werden oder nicht. Sie können PrefEdit verwenden, um alle Plist-Dateien zu bearbeiten, nicht nur Einstellungsdateien.

Der Unterschied zwischen der Live-Einstellungsdatenbank, wie sie von Programmen wahrgenommen wird, und den Einstellungsdateien

Programme benötigen Benutzereinstellungen sehr häufig. Wenn Sie beispielsweise mit einem Programm arbeiten, das ein Fenster öffnet, in dem sich eine Tabelle mit Daten befindet, schlägt das Programm üblicherweise

in der Einstellungsdatenbank nach, und möglicherweise noch viele andere Einstellungen, damit sich das Programm stillschweigend so verhält, wie Sie es bevorzugen, nämlich genauso, wie Sie es bei der letzten Verwendung dieses Fensters getan haben. Das bedeutet, dass üblicherweise Dutzende von Zugriffen auf die Einstellungsdatenbank pro Minute erfolgen. Um dies so effizient wie nur möglich verarbeiten zu können, hält jedes Programm seine eigene Sicht auf alle Domänen, mit denen es arbeitet, in seinem privaten Arbeitsspeicher bereit. Änderungen an der Einstellungsdatenbank finden zunächst nur in dieser privaten Speicherkopie statt. Nur wenn Mac OS X genügend Zeit hat, dies im Hintergrund zu erledigen, oder wenn das Programm ausdrücklich anfordert, die Einstellungswerte in den permanenten Speicher zu übernehmen, beginnt Mac OS X damit, die Einstellungen in alle betroffenen Eigenschaftslistendateien zu sichern.

Diese effiziente Vorgehensweise hat die folgenden Konsequenzen:

  1. Sie können nicht sicher sein, dass ein Eintrag in der Einstellungsdatenbank bereits in die betreffende Eigenschaftslistendatei gespeichert wurde! Die Live-Sicht auf die Einstellungsdatenbank kann sich von der Repräsentation in den Dateien unterscheiden. Nur nachdem Sie ein Programm beendet haben, können Sie sicher sein, dass Mac OS X gezwungen war, alle anstehenden Aktualisierungen für die fragliche Domäne in den permanenten Speicher zu übernehmen. Die Einstellungsdateien und die Einstellungsdatenbank im Speicher sind nur dann garantiert miteinander synchronisiert, wenn die Programme, die Änderungen an den betroffenen Domänen vornehmen, zurzeit nicht laufen.
  2. Jedes Programm verfolgt seine eigene private Sicht mit seiner Speicherkopie der Einstellungsdatenbank. Wenn ein Programm A eine seiner Einstellungen ändert, bekommt nur dieses eine Programm sofort etwas davon mit. Alle anderen Programme sehen die Änderungen erst, nachdem A seine Einstellungen mit dem permanenten Speicher synchronisiert hat und nachdem die anderen Programme neu gestartet wurden, so dass sie eine neue Sicht auf die Datenbank in ihrem Speicher aufgebaut haben!

Beachten Sie, dass weder Punkt (1) noch Punkt (2) unter normalen Umständen Auswirkungen auf Programme haben. Wenn ein Programm nur mit seinen eigenen Einstellungen arbeitet, spielt es keine Rolle, ob dessen Hauptspeicherkopie der Datenbank bereits mit dem Permanentspeicher zurücksynchronisiert wurde. Wie schon öfter erwähnt, muss ein Programm nichts über Einstellungsdateien wissen. Punkt (2) wird nur dann wichtig, wenn ein Programm versucht, Einstellungen zurückzulesen, die ihm nicht selbst gehören, die also Teil einer fremden Domäne sind, die sich geändert hat.

Für PrefEdit sind allerdings beide Punkte wichtig, denn PrefEdit ist in der Lage auf die Einstellungsdatenbank und entsprechenden Eigenschaftslistendateien gleichzeitig zuzugreifen. PrefEdit ist außerdem ein Programm, das Einstellungen liest, die nicht ihm selbst gehören, sondern die aus anderen Domänen stammen.

Aus diesem Grund sollten Sie immer im Gedächtnis behalten, dass die Einstellungen, die Sie in PrefEdit sehen, möglicherweise weder hundertprozentig mit dem Zustand der Einstellungsdatenbank übereinstimmen, wie er von anderen laufenden Programmen gesehen wird, noch mit dem Zustand des Datenbankexemplars, das in den Einstellungsdateien abgespeichert ist. Nichtsdestotrotz kann PrefEdit alle Änderungsvorgänge korrekt nachverfolgen und warnt Sie, wenn Aktualisierungen laufen, die möglicherweise miteinander in Konflikt stehen.

Das folgende Bild fasst die Beziehung zwischen der Einstellungsdatenbank, wie Sie von Programmen wahrgenommen wird, und den Einstellungsdateien auf der Platte noch einmal zusammen:

Beziehung zwischen Einstellungsdatenbank und permanenter Speicherung

Varianten des Dateiformats von Eigenschaftslistendateien

Mac OS X kennt im Moment drei verschiedene Arten, wie eine Eigenschaftsliste in einer Datei abgelegt sein kann:

Der letztgenannte Dateityp gilt als missbilligter Standard. Er darf inzwischen nicht mehr zum Anlegen neuer Plist-Dateien verwendet werden. Mac OS X und PrefEdit können daher solche Dateien nur lesen, aber nicht schreiben.

Die heute üblichen Eigenschaftslistendateien haben üblicherweise Namen mit der Dateiendung .plist, egal welche Formatvariante verwendet wurde, um die Liste zu speichern. PrefEdit akzeptiert jedoch auch Dateien mit der Endung .dict, sowie jedes andere Dateinamenssuffix. Mac OS X verwendet keine Typ- oder Creator-Codes für Eigenschaftslistendateien.

Die aktuellen Varianten von Eigenschaftslistendateien können zum Speichern von Einstellungen und der meisten anderen Eigenschaftslisten völlig austauschbar verwendet werden. Mac OS X hat XML-Listen zum Speichern von Präferenzeinstellungen in Systemversionen älter als Tiger (10.4) bevorzugt. Seit Mac OS X 10.4 oder höher speichert Mac OS X Einstellungsdateien im Binärformat, was etwas Speicherplatz einspart. Wie bereits mehrmals erwähnt, sind sich die Programme beim Suchen nach Einstellungen der Existenz der Plist-Dateien nicht bewusst, so dass es keine Rolle spielt, welche Formatvariante die aktuelle Version von Mac OS X verwendet.