Start

Eigenschaftslistendateien

Eine Liste mit Einstellungen für eine gegebene Domänenschnittmenge wird intern durch eine spezielle Datenstruktur dargestellt, die durchgängig in allen Teilen von macOS 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 macOS 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. Die Werte bleiben gespeichert, auch wenn die Programme oder das Betriebssystem abgeschaltet werden.

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

macOS 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 macOS (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 macOS dies handhabt, da sie niemals direkt auf Einstellungsdateien zugreifen. Wenn ein Programm nach dem Wert für eine angegebene Einstellung fragt, übernimmt macOS stellvertretend die Aufgabe, den Wert zu suchen und zu beschaffen. Obwohl hierbei der Prozess des anfragenden Programms einige der Plist-Dateien, die mit der jeweiligen Einstellung verbunden sind, öffnet, „bemerkt“ das Programm hiervon nichts. macOS bringt den laufenden Prozess auf indirektem Wege dazu, interne Features des Betriebssystems aufzurufen, welche den eigentlichen Vorgang durchführen.

In Abhängigkeit davon, welche Domänenschnittmenge gerade wirksam ist, erzeugt macOS 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. macOS 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 macOS 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 macOS 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 macOS 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 ein Programm, das Einstellungen bearbeitet, 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, nicht immer hundertprozentig mit dem Stand übereinstimmen, den die gerade laufenden anderen Programme „sehen“. Nichtsdestotrotz kann PrefEdit alle Änderungsvorgänge korrekt nachverfolgen, sobald sich diese in den Einstellungsdateien niederschlagen.

Wenn Sie mit PrefEdit die Einstellung eines Programms ändern möchten, ist es zu empfehlen, das betroffene Programm vorher zu beenden. Zum einen stellen Sie damit sicher, dass das betroffene Programm beim nächsten Start die von Ihnen vorgenommenen Änderungen berücksichtigt, zum anderen verhindern Sie damit, dass das betroffene Programm und Sie gleichzeitig auf der gleichen Datei arbeiten, was möglicherweise zu Konflikten führt. Beachten Sie, dass Sie nicht das Dock verwenden können, um zu prüfen, ob ein Programm läuft oder nicht. Sie müssen ein Prozessüberwachungsprogramm wie Aktivitätsanzeige (aus dem Ordner Dienstprogramme von macOS) benutzen, um bestätigt zu bekommen, dass ein Programm tatsächlich nicht aktiv ist.

Varianten des Dateiformats von Eigenschaftslistendateien

macOS 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. macOS und PrefEdit können daher solche Dateien nur lesen, aber nicht schreiben.

Die heute üblichen Eigenschaftslistendateien haben typischerweise Namen mit der Dateiendung .plist, egal welche Formatvariante verwendet wurde, um die Liste zu speichern. PrefEdit akzeptiert jedoch auch jede andere Dateinamensendung. Das Programm behält angepasste Dateinamenserweiterungen bei, wenn Änderungen gespeichert werden.

Werden Eigenschaftslistendateien zum Speichern von Einstellungen verwendet, können beide aktuellen Formatvarianten 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 das System 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 macOS bevorzugt.

Werden Eigenschaftslistendateien für andere Zwecke verwendet, hängt es vom Anwendungsfall ab, welches Format zum Einsatz kommen darf. Bitte beachten Sie, dass macOS nicht für alle Anwendungszwecke Eigenschaftslisten im Binärformat akzeptiert. In bestimmten Fällen, die von Apple in der Regel in den Referenzhandbüchern dokumentiert sind, muss XML zum Einsatz kommen.