Реєстр Windows
Реєстр Windows (англ. Windows Registry) — база даних, що зберігає параметри і налаштування для операційних систем Microsoft Windows 32-бітних версій, 64-бітних версій та Windows Mobile. Він містить інформацію і налаштування для всіх апаратних засобів, програмного забезпечення, користувачів тощо. Кожен раз, коли користувач змінює будь-які параметри в «Панелі керування», зміни відбуваються у реєстрі.
Реєстр Windows було введено, щоб відмовитись від використання файлів INI, що використовувалися для збереження параметрів конфігурації програм Windows раніше (тобто кожна програма зберігала свої налаштування в окремому файлі). Тому ці файли мали тенденцію бути розкиданими по всій системі, що утруднювало спостереження і контроль за ними.
Ключ реєстру — це група розділів, підрозділів і параметрів реєстру, з якою пов'язано групу допоміжних файлів, де містяться резервні копії всіх цих даних. У Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003 та Windows Vista допоміжні файли для всіх ключів, окрім HKEY_CURRENT_USER, містяться в папці %SystemRoot%\System32\Config. Допоміжні файли для HKEY_CURRENT_USER розташовані в папці %SystemRoot%\Profiles\Username[джерело?].
Реєстр в тому вигляді, як його використовує Windows і як бачить його користувач в процесі використання програм роботи з реєстром, деяким чином «ніде не зберігається». Щоб вийшло те, що бачить користувач, коли редагує реєстр, відбувається наступне:
- спочатку, в процесі установки і налаштування Windows, на диску формуються файли, в яких зберігається частина даних щодо конфігурації системи.
- потім, в процесі кожного завантаження системи, а так само в процесі кожного входу і виходу кожного з користувачів, формується якась віртуальна сутність, що називається «реєстром». Дані для формування «реєстру» беруться з тих самих файлів і з інших місць.
Тобто частина даних реєстру зберігається у файлах, а частина даних породжується в процесі завантаження Windows. Для редагування, перегляду і вивчення реєстру стандартними засобами Windows (програми regedit.exe і regedt32.exe) доступні саме гілки реєстру. Після редагування реєстру і внесення до нього змін ці зміни відразу записуються у файли.
Проте, є програми сторонніх розробників, які дозволяють працювати безпосередньо з файлами. Наприклад, програми від Paullee і програми Registry Reanimator. Програми оптимізації реєстру, твікери, а так само інсталятори і деінсталятори програм працюють через спеціальні функції роботи з реєстром.
Критика
Спосіб зберігання параметрів і налаштувань операційної системи за допомогою реєстру Windows часто піддається критиці з наступних причин:
- Реєстр схильний до фрагментації, через що доступ до реєстру поступово сповільнюється.
- У зв'язку з тим, що, крім налаштувань, в реєстрі зберігається різна інформація системи і додатків (наприклад, багато програм зберігають в реєстрі список нещодавно відкритих файлів), розмір реєстру значно збільшується в міру використання операційної системи. Ця проблема частково вирішується за допомогою спеціальних утиліт.
- Не всі налаштування системи зберігаються в реєстрі, відповідно перенесення налаштувань системи шляхом копіювання реєстру неможливий.
- Деякі програми не можуть працювати без параметрів, занесених до реєстру, що створює труднощі при перенесенні їх з комп'ютера на комп'ютер, або втрачають дані після перевстановлення операційної системи.
- Реєстр дуже схожий на віртуальну файлову систему, що працює поверх реальної файлової системи. При цьому, як для файлової системи, реєстр дуже нестійкий до збоїв. Фактично один невірний байт в файлі гілки реєстру призводить до збою. Надійність такого реєстру ніколи не буде вище надійності файлової системи, на якій розташовані його файли. Однак версії Windows починаючи з NT використовують логи транзакцій як засіб захисту від пошкоджень при оновленні реєстру. Поточні версії Windows використовують логи двох рівнів для того, щоб забезпечити цілісність реєстру в разі відмови живлення або інших подібних подій під час оновлення реєстру. Навіть в разі помилки, через яку неможливо відновити реєстр, Windows може полагодити і реініціалізувати пошкоджені записи реєстру під час завантаження системи.
Критики наводять приклад UNIX-подібних операційних систем, де немає реєстру.