Was sind die Vorteile der Registrierung in Windows?

7

Windows ist stark auf die Registrierung angewiesen, um kleine Informationen wie die IP-Adresse des Computers zu speichern. Unix und damit Linux und OS-X speichern alles in normalen Dateien.

Wenn es um die Registrierung geht, sehe ich einige Probleme damit:

  • Der Zugriff auf die Informationen ist nicht so einfach. Wenn der Computer beispielsweise nicht gestartet werden kann und ich versuche, das Problem zu beheben, indem ich die Festplatte auf einem anderen Computer einbinde, um von einem anderen Betriebssystem aus darauf zuzugreifen (wäre es ein anderes Windows oder Linux), kann ich problemlos auf alle Dateien zugreifen ( mit Ausnahme von Berechtigungen und Verschlüsselung), aber mit Registrierung, obwohl es theoretisch möglich ist, es zu lesen (und wahrscheinlich zu ändern), erfordert es zusätzliche Anwendungen.

  • Der Befehlszeilenzugriff (in einem Kontext, in dem der Computer nicht mehr startet) ist nicht möglich (es sei denn, es gibt auch Apps dafür, aber ich bin mir ziemlich sicher, dass die Installation und Verwendung dieser Apps viel schwieriger ist als der einfache Zugriff auf Dateien auf der Festplatte ).

  • Informationen können sich entweder in Dateien oder in der Registrierung befinden, sodass zwei Speicherorte miteinander in Einklang gebracht werden müssen.

  • Gängige Tools, die bei der Arbeit mit Dateien verwendet werden (z. B. findstrder kleine Bruder von Windows grep), sind bei der Arbeit mit Registrierungsschlüsseln nicht vorhanden.

Ich bin mir sicher, dass Microsoft die Registrierung ursprünglich aus gutem Grund implementiert hat und Windows gegenüber anderen Betriebssystemen dieser Zeit einen (sogar geringfügigen) Wettbewerbsvorteil verschafft hat.

Ich habe über Leistungs- und Speicherplatzbeschränkungen nachgedacht, die besonders wichtig waren, als Windows geboren wurde, aber ich kann nicht sehen, wie das Speichern von Daten in der Registrierung die Leistung verbessert oder den verwendeten Speicherplatz reduziert (Speichern von DWORD als tatsächliches DWORD in der Registrierung im Vergleich zum Speichern der Zeichenfolgendarstellung in Dateien sparen Platz, aber wäre das auch 1985 so wichtig?

In Bezug auf die Sicherheit scheint es auch keinen Unterschied zu geben. Ich bin mir nicht sicher, ob dies 1985 der Fall war, aber die heutigen dateibasierten Berechtigungen sehen genauso leistungsfähig aus wie die für Registrierungsschlüssel implementierten.

Die Organisation ist ebenfalls ähnlich: Eine baumbasierte Struktur ohne Indizierungs- / Suchfunktionen (während spätere Windows-Versionen die Indizierung von Dateien implementieren).

Was sind oder waren die Vorteile der Registrierung im Vergleich zum Speichern aller Dateien?

Arseni Mourzenko
quelle
2
Sie können findoder findstr(zusammen mit den übrigen Befehlszeilen-Tools) zusammen mit reg... verwenden, zum Beispielfor /f "tokens=3 usebackq" %a in (`reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer" /v version ^| find "version"`) do echo IE version: %a
DavidPostill
1
Auch die Registrierung kann in eine reg export ...
Nur-
1
Meiner Meinung nach ist es ironisch, dass die Registrierung im Grunde genommen nur ein weiteres eigenständiges Dateisystem ist. Schlüssel sind wie Verzeichnisse, Werte sind wie Dateien. Ich wünschte, MS hätte die Registrierung als eine Reihe bekannter Verzeichnisse und Textdateien (möglicherweise unter dem Windows-Verzeichnis) implementiert, dies hätte die Dinge einfacher gemacht. Ich stelle mir vor, dass es in den alten Tagen des FAT-basierten Speichers nicht effizient oder skalierbar gewesen wäre, dies zu tun.
Mischa256
1
Die Registrierung ist eine Datenbank und dies sieht aus wie "Warum verwendet jeder DB anstelle von XML / INI?" Abgesehen davon, dass eine Datenbank / Registrierung nicht (direkt) für Menschen lesbar ist, ist sie Klartext- / XML-Dateien meilenweit voraus. Sie brauchen nur ein richtiges Werkzeug - einen richtigen PE-Build.
Chris.C

Antworten:

7

Bevor Microsoft mit der Verwendung der Registrierung begann, verfügten sie über INI-Dateien (Textdateien). Sie fanden es sehr schwierig, eine gute Plattform nur mit INI-Dateien zu entwickeln, weil:

  • Es ist nicht einfach, Unicode zu unterstützen.
  • Da es sich um eine Textdatei handelt, werden die Berechtigungen auf Dateiebene und nicht auf Schlüsselebene festgelegt. Wer Zugriff auf die Datei hat, hat Zugriff auf alle Parameter.

  • Wenn zwei Threads gleichzeitig versuchen, eine INI-Datei zu aktualisieren, können sie versehentlich die vom anderen vorgenommenen Änderungen löschen.

  • Ein Programm kann eine INI-Datei im exklusiven Modus öffnen und alle anderen sperren.
  • INI-Dateien enthalten nur Zeichenfolgen. Wenn Sie Binärdaten speichern möchten, müssen Sie diese irgendwie als Zeichenfolge codieren.
  • Das Parsen einer INI-Datei ist langsam.
  • Die zentrale Verwaltung von INI-Dateien ist schwierig. Da sie sich an einer beliebigen Stelle im System befinden können, kann ein Netzwerkadministrator keine Skripts schreiben, um den Anwendungsstatus zu überprüfen und das veraltete zu aktualisieren.
  • Die Systeme wurden zu Mehrbenutzern und die Kontrolle über die Einstellungen jedes Benutzers war überwältigend. Es bedeutete manchmal getrennte INI-Dateien für jeden Benutzer.

Dies sind die Hauptpunkte, die Microsot bei der Suche nach einer neuen Lösung beeinflusst haben, und sie wurden mit der Registrierung geliefert. Die Registrierung ist eine Datenbank, daher werden die vorherigen Probleme behoben, aber neu erstellt:

  • Es ist eine einzige Fehlerquelle.
  • Es ist binär. Im Falle einer Beschädigung ist es sehr schwierig, es mit bloßen Händen zu reparieren.
  • Anwendungen, die ihre Einstellungen in die Registrierung einfügen, sind weniger portabel.
  • Komplexe Navigation.

Gutschrift auf wichtige Quelle: http://blogs.msdn.com/b/oldnewthing/archive/2007/11/26/6523907.aspx

jcbermu
quelle
3
Sie sollten zumindest die Quelle angeben, von der Sie die Informationen erhalten haben. Warum werden INI-Dateien zugunsten der Registrierung nicht mehr unterstützt? . Bitte lesen Sie, wie Sie auf von anderen geschriebenes Material
verweisen
2
Es sind Aussagen, die Wort für Wort ohne jegliche Zitierung kopiert wurden. Ich muss aus diesem Grund eine Ablehnung abgeben. Diese Antwort verdient keinen einzigen Ruf, bis das Referenzmaterial der Antwort zitiert wird, Plagiate sind absolut nicht akzeptabel. Wenn das Material richtig zitiert und zitiert ist, werde ich meine Stimme umkehren.
Ramhound
Es gibt einen zusätzlichen Grund, der mich daran hindert, diese Antwort zu bewerten / zu akzeptieren. Sie vergleichen die Registrierung mit INI-Dateien, während die Frage die Registrierung im Vergleich zum Dateisystem betrifft. Sie sagen, dass das Problem mit INI-Dateien „Microsot dazu veranlasst hat, nach einer neuen Lösung zu suchen“, aber die Frage bleibt. Warum etwas erfinden, wenn es bereits eine Lösung (Dateisystem) gibt, die in Unix-basierten Betriebssystemen gut funktioniert und alle Probleme von INI-Dateien löst?
Arseni Mourzenko
1
Sie möchten wirklich nicht für jeden Registrierungswert eine Datei speichern. Der Aufwand (und damit die Zeit zum Lesen und Schreiben der Informationen) wäre weitaus größer. Die Mindestgröße einer Datei in NTFS beträgt 1 KB für den Dateidatensatz (vorausgesetzt, der Dateiinhalt kann dort gespeichert werden). Wenn der Dateidatensatz nicht ausreicht, werden bei der Standardclustergröße 4 KB benötigt. Ein Registrierungswert otoh benötigt nur 40 Byte Overhead. Außerdem wird die Registrierung in einem B-Tree-Format gespeichert, wodurch der Direktzugriff beschleunigt wird. Im Allgemeinen ist die Registrierung für kleine Daten optimiert, ein typisches Dateisystem dagegen nicht.
Jamie Hanrahan