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