Windows Registry

Cơ sở lý luận

Trước Windows Registry,các tệp INI được lưu trữ các cài đặt của mỗi chương trình dưới dạng tệp văn bản, thường nằm ở vị trí được chia sẻ không cung cấp cài đặt dành riêng cho người dùng trong kịch bản nhiều người dùng. Ngược lại, Windows Registry lưu trữ tất cả các cài đặt ứng dụng trong một kho lưu trữ logic (nhưng một số tệp riêng biệt) và ở dạng chuẩn. Theo Microsoft, điều này cung cấp một số lợi thế hơn. Tập tin INI. Vì phân tích tệp được thực hiện hiệu quả hơn nhiều với định dạng nhị phân, nên nó có thể được đọc từ hoặc ghi đến nhanh hơn tệp INI. Hơn nữa, dữ liệu kiểu mạnh có thể được lưu trữ trong sổ đăng ký, trái ngược với thông tin văn bản được lưu trữ trong. Tập tin INI. Đây là một lợi ích khi chỉnh sửa khóa theo cách thủ công bằng RegEdit.exe, Windows Registry Editor tích hợp. Vì cài đặt đăng ký dựa trên người dùng được tải từ đường dẫn dành riêng cho người dùng thay vì từ vị trí hệ thống chỉ đọc, nên sổ đăng ký cho phép nhiều người dùng chia sẻ cùng một máy và cũng cho phép các chương trình hoạt động cho người dùng ít đặc quyền hơn. Sao lưu và khôi phục cũng được đơn giản hóa vì có thể truy cập sổ đăng ký qua kết nối mạng để quản lý / hỗ trợ từ xa, bao gồm từ các tập lệnh, sử dụng bộ API tiêu chuẩn, miễn là dịch vụ Remote Registry đang chạy và quy tắc tường lửa cho phép điều này.
Bởi vì registry là một cơ sở dữ liệu, nó cung cấp tính toàn vẹn của hệ thống được cải thiện với các tính năng như cập nhật nguyên tử. Nếu hai quy trình cố gắng cập nhật cùng một giá trị đăng ký cùng một lúc, một thay đổi của quy trình sẽ đi trước quy trình khác và tính nhất quán chung của dữ liệu sẽ được duy trì. Trường hợp thay đổi được thực hiện tới các tệp INI, các cuộc đua cập nhật như vậy có thể dẫn đến dữ liệu không nhất quán không khớp với cập nhật của cả hai. Windows Vista và các hệ điều hành mới hơn cung cấp các bản cập nhật giao dịch cho cơ quan đăng ký bằng Trình quản lý giao dịch hạt nhân, mở rộng bảo đảm nguyên tử qua nhiều thay đổi chính và / hoặc giá trị, với ngữ nghĩa hủy bỏ cam kết truyền thống. (Tuy nhiên, lưu ý rằng NTFS cũng cung cấp hỗ trợ như vậy cho hệ thống tệp, do đó, về mặt lý thuyết, các bảo đảm tương tự có thể có được với các tệp cấu hình truyền thống.)

Khóa gốc

Các khóa ở cấp gốc của cơ sở dữ liệu phân cấp thường được đặt tên theo định nghĩa API Windows của chúng, tất cả đều bắt đầu bằng "HKEY". Chúng thường được viết tắt thành một tên ngắn ba hoặc bốn chữ cái bắt đầu bằng "HK" (ví dụ: HKCU và HKLM). Về mặt kỹ thuật, chúng là các thẻ điều khiển được xác định trước (với các giá trị không đổi đã biết) cho các khóa cụ thể được duy trì trong bộ nhớ hoặc được lưu trữ trong các tệp trung tâm được lưu trữ trong hệ thống tệp cục bộ và được nạp bởi nhân hệ thống khi khởi động và sau đó được chia sẻ (với các quyền truy cập khác nhau) giữa tất cả các quy trình đang chạy trên hệ thống cục bộ, hoặc được tải và ánh xạ trong tất cả các quy trình bắt đầu trong phiên người dùng khi người dùng đăng nhập vào hệ thống.
Các khóa HKEY_LOCAL_MACHINE (dữ liệu cấu hình dành riêng cho máy cục bộ) và các khóa HKEY_CURRENT_USER (dữ liệu cấu hình dành riêng cho người dùng) có cấu trúc tương tự nhau; các ứng dụng người dùng thường tìm kiếm cài đặt của họ bằng cách kiểm tra đầu tiên chúng trong "HKEY_CURRENT_USER \ Software \ Vendor name \ Application's \ \ \ . Tuy nhiên, điều ngược lại có thể áp dụng cho các cài đặt chính sách do quản trị viên thực thi trong đó HKLM có thể được ưu tiên hơn HKCU. Chương trình Logo Windows có các yêu cầu cụ thể về nơi có thể lưu trữ các loại dữ liệu người dùng khác nhau và phải tuân theo khái niệm đặc quyền tối thiểu để không cần truy cập cấp quản trị viên để sử dụng ứng dụng.