Почему существует реестр Windows?

это больше вопрос архитектуры ОС, чем программирование напрямую, но все же. Почему реестр Windows был создан как полностью отдельная подсистема для хранения настроек системы/приложения? В * nix OS'es есть каталог /etc, который совершенно понятен, поскольку файловая система является естественным иерархическим способом хранения настроек, в то время как Microsoft решила создать полностью внешнюю иерархическую подсистему, которая, кажется, является глупой инвестицией, почему они просто используют иерархию файловой системы?

Ответ 1

  • Централизованный - который полезен для роуминга профили.
  • Транзакция - что усложняет конфигурации.
  • Безопасность. Вы можете обеспечить чтение/запись с большей детализацией, чем файл (за ключ/значение).

Ответ 3

Итак, когда двоичный реестр поврежден, вы просто сдадитесь и купите новейшую версию Windows для новой установки.

Ответ 4

Кроме того, степень детализации файловой системы: один кластер для каждого значения немного, поэтому вам нужно сделать компромисс, где заканчивается файловая система и начинается файл настроек. Это, конечно, не дает вам согласованного API. Итак, почему бы не вывести все настройки в несколько ключевых файлов и предоставить вам совместимый API для доступа к нему? BAM - реестр.

(И так как MS обычно рассматривает API более важный формат, не удивительно, что файлы непрозрачны)

[Raymond Chen voice] Помните, что он был разработан для компьютеров, где было достаточно 4 МБ ОЗУ. [/Raymond Chen voice]

Ответ 5

  • Каждое приложение не нуждается в повторном создании формата файла конфигурации
  • Вы можете легко использовать реестр в коде режима ядра

Как упоминалось в статье Old New Thing, приведенной Бастиеном:

  • Система может обрабатывать проблемы concurrency для вас
  • Вы можете использовать ключи реестра ACL

Я бы также упомянул, что многие * nix-фреймы заново изобрели реестр... Как gconfd на GNOME.

Ответ 6

Идея состоит в том, чтобы иметь все настройки для всех программ, хранящихся в одном месте, а не для их распространения по всему вашему диску.

Ответ 7

Они сделали это, я полагаю, для поддержки отдельной настройки для каждого пользователя входа. В Unix существует концепция домашнего каталога, а в Windows - нет.

Ответ 8

Во-первых, он быстрее читает и записывает в реестр во время сеанса пользователя.

Ответ 9

Он создал единую точку для всего элемента управления конфигурацией системного приложения. Это было бы неплохим вариантом для встроенной сетевой базы данных (например, Raima, используемой Rational) или текстовой базы данных (Bernstein cdb).