# قاعدة سجلات ويندوز

قاعدة سجلات ويندوز (بالإنجليزية: Windows Registry)‏ هو قاعدة بيانات هرمية تخزن إعدادات المستوى المنخفض لنظام التشغيل مايكروسوفت ويندوز والتطبيقات التي تختار استخدام السجل. يمكن لكل من النواة وبرامج تشغيل الأجهزة والخدمات ومدير حسابات الأمان وواجهة المستخدم استخدام السجل. يسمح التسجيل أيضًا بالوصول إلى عدادات لتحديد أداء النظام.
بمعنى آخر، يحتوي السجل أو سجل ويندوز على معلومات وإعدادات وخيارات وقيم أخرى للبرامج والأجهزة المثبتة على جميع إصدارات أنظمة تشغيل مايكروسوفت ويندوز. على سبيل المثال، عند تثبيت أحد البرامج، تتم إضافة مفتاح فرعي جديد يحتوي على إعدادات مثل موقع البرنامج وإصداره وكيفية بدء تشغيل البرنامج إلى سجل ويندوز.
عند تقديمه مع ويندوز 3.1، قام تسجيل ويندوز بتخزين معلومات التكوين بشكل أساسي للمكونات المستندة إلى نموذج كائن المكون. قام ويندوز 95 وويندوز إن تي بتوسيع نطاق استخدامه لترشيد المعلومات وجعلها مركزية في وفرة ملفات أي إن أي، والتي تتضمن تكوينات للبرامج الفردية، وتم تخزينها في مواقع مختلفة. ليس من متطلبات تطبيقات ويندوز استخدام سجل ويندوز. على سبيل المثال، تستخدم تطبيقات دوت نت فريموورك ملفات لغة الترميز القابلة للامتداد للتكوين، بينما تحتفظ التطبيقات المحمولة عادةً بملفات التكوين الخاصة بها مع برامجها التنفيذية.

## المنطق

قبل تسجيل ويندوز، كانت ملفات أي إن أي تخزن إعدادات كل برنامج على هيئة نص أو ملف ثنائي، غالبًا ما يكون موجودًا في موقع مشترك لا يوفر إعدادات خاصة بالمستخدم في سيناريو متعدد المستخدمين. على النقيض من ذلك، يخزن سجل ويندوز جميع إعدادات التطبيق في مستودع منطقي واحد (لكن عدد من الملفات المنفصلة) وفي نموذج موحد. وفقًا لمايكروسوفت، يوفر هذا العديد من المزايا على ملفات أي إن أي. نظرًا لأن تحليل الملف يتم بكفاءة أكبر باستخدام تنسيق ثنائي، فقد تتم قراءته أو كتابته بسرعة أكبر من ملف أي إن أي النصي. علاوة على ذلك، يمكن تخزين البيانات المكتوبة بشدة في السجل، على عكس المعلومات النصية المخزنة في ملفات أي إن أيز. هذه فائدة عند تحرير المفاتيح يدويًا باستخدام regedit.exe، محرر تسجيل ويندوزالمدمج. نظرًا لأنه يتم تحميل إعدادات التسجيل المستندة إلى المستخدم من مسار خاص بالمستخدم بدلاً من موقع نظام للقراءة فقط، يسمح السجل لعدة مستخدمين بمشاركة نفس الجهاز، كما يسمح للبرامج بالعمل لمستخدمين أقل امتيازات. يتم أيضًا تبسيط النسخ الاحتياطي والاستعادة حيث يمكن الوصول إلى السجل عبر اتصال شبكة للإدارة / الدعم عن بُعد، بما في ذلك من البرامج النصية، باستخدام مجموعة قياسية من واجهات برمجة التطبيقات، طالما أن خدمة التسجيل البعيد قيد التشغيل وتسمح قواعد جدار الحماية بذلك.
نظرًا لأن السجل عبارة عن قاعدة بيانات، فإنه يوفر تكاملًا محسنًا للنظام مع ميزات مثل التحديثات الذرية. إذا حاولت عمليتان تحديث قيمة السجل نفسها في نفس الوقت، فإن تغيير إحدى العمليات يسبق الآخر وسيتم الحفاظ على التناسق العام للبيانات. عند إجراء تغييرات على ملفات أي إن أي، يمكن أن تؤدي ظروف السباق هذه إلى بيانات غير متسقة لا تتطابق مع محاولة التحديث. يوفر نظام التشغيل ويندوز فستا وأنظمة التشغيل الأحدث تحديثات المعاملات للسجل عن طريق إدارة معاملات النواة، مما يوسع نطاق الضمانات الذرية عبر تغييرات متعددة للمفاتيح و/ أو القيم، مع دلالات الإلغاء التقليدية. (لاحظ مع ذلك أن إن تي إف إس يوفر مثل هذا الدعم لنظام الملفات أيضًا، لذلك يمكن، من الناحية النظرية، الحصول على نفس الضمانات مع ملفات التكوين التقليدية.)

## بناء
### المفاتيح والقيم

يحتوي السجل على عنصرين أساسيين: المفاتيح والقيم. مفاتيح التسجيل هي كائنات حاوية تشبه المجلدات. قيم التسجيل هي كائنات غير حاوية تشبه الملفات. قد تحتوي المفاتيح على قيم ومفاتيح فرعية. تتم الإشارة إلى المفاتيح بصيغة مشابهة لأسماء مسار ويندوز، باستخدام خطوط مائلة عكسية للإشارة إلى مستويات التسلسل الهرمي. يجب أن يكون للمفاتيح اسم غير حساس لحالة الأحرف بدون خطوط مائلة للخلف.
لا يمكن الوصول إلى التسلسل الهرمي لمفاتيح التسجيل إلا من خلال مقبض مفتاح جذر معروف (وهو مجهول ولكن قيمته الفعالة هي مقبض رقمي ثابت) يتم تعيينه لمحتوى مفتاح التسجيل الذي تم تحميله مسبقًا بواسطة نواة من «خلية» مخزنة، أو إلى محتوى مفتاح فرعي داخل مفتاح جذر آخر، أو تم تعيينه لخدمة مسجلة أو مكتبة الربط الديناميكي التي توفر الوصول إلى مفاتيحه الفرعية وقيمه.
على سبيل المثال يشير HKEY_LOCAL_MACHINE \ البرمجيات\ مايكروسوفت\ ويندوز إلى المفتاح الفرعي «ويندوز» الخاص بالمفتاح الفرعي «مايكروسوفت» الخاص بالمفتاح الفرعي «البرمجيات» الخاص بالمفتاح الجذر HKEY_LOCAL_MACHINE.
مثل الملفات والخدمات الأخرى في ويندوز، قد يتم تقييد جميع مفاتيح التسجيل من خلال قوائم التحكم في الوصول، اعتمادًا على امتيازات المستخدم، أو على رموز الأمان التي تم الحصول عليها بواسطة التطبيقات، أو على سياسات أمان النظام التي يفرضها النظام (قد تكون هذه القيود محددة مسبقًا بواسطة النظام نفسه، وتكوينه بواسطة مسؤولي النظام المحليين أو بواسطة مسؤولي المجال). قد يرى المستخدمون أو البرامج أو الخدمات أو الأنظمة البعيدة المختلفة فقط بعض أجزاء التسلسل الهرمي أو التسلسلات الهرمية المميزة من نفس مفاتيح الجذر.
قيم التسجيل هي أزواج اسم / بيانات مخزنة داخل مفاتيح. تتم الإشارة إلى قيم التسجيل بشكل منفصل عن مفاتيح التسجيل. كل قيمة تسجيل مخزنة في مفتاح التسجيل لها اسم فريد لا تكون حالة الأحرف الخاصة به مهمة. وظائف واجهة برمجة تطبيقات ويندوز التي تقوم بالاستعلام عن قيم التسجيل ومعالجتها تأخذ أسماء القيم بشكل منفصل عن مسار المفتاح و/ أو المقبض الذي يحدد المفتاح الأصلي. قد تحتوي قيم التسجيل على خطوط مائلة عكسية في أسمائها، ولكن القيام بذلك يجعل من الصعب تمييزها عن مساراتها الرئيسية عند استخدام بعض وظائف واجهة برمجة تطبيقات تسجيل ويندوز القديمة (التي تم إهمال استخدامها في Win32).
المصطلحات مضللة إلى حد ما، حيث أن كل مفتاح تسجيل مشابه لمصفوفة ترابطية، حيث تشير المصطلحات القياسية إلى جزء الاسم لكل قيمة سجل على أنه «مفتاح». تعتبر المصطلحات قيد الانتظار من سجل 16 بت في ويندوز 3، حيث لا يمكن لمفاتيح التسجيل أن تحتوي على أزواج اسم / بيانات عشوائية، ولكنها تحتوي على قيمة واحدة غير مسماة (والتي يجب أن تكون سلسلة). بهذا المعنى، كان سجل ويندوز 3 مثل مصفوفة ارتباطية واحدة، حيث شكلت المفاتيح (بمعنى كل من «مفتاح التسجيل» و«مفتاح الصفيف النقابي») تسلسلاً هرميًا، وكانت قيم التسجيل كلها سلاسل. عندما تم إنشاء السجل 32 بت، كانت كذلك القدرة الإضافية على إنشاء قيم مسماة متعددة لكل مفتاح، وتشوهت معاني الأسماء إلى حد ما. للتوافق مع السلوك السابق، قد يكون لكل مفتاح تسجيل قيمة «افتراضية»، واسمه هو السلسلة الفارغة.
يمكن لكل قيمة تخزين بيانات عشوائية ذات طول وتشفير متغيرين، ولكنها مرتبطة بنوع رمزي (يُعرّف على أنه ثابت رقمي) يحدد كيفية تحليل هذه البيانات. الأنواع القياسية هي:
| اكتب المعرف | اسم النوع الرمزي | معنى وترميز البيانات المخزنة في قيمة التسجيل |
| 0 | REG_NONE | لا يوجد نوع (القيمة المخزنة، إن وجدت) |
| 1 | REG_SZ | قيمة سلسلة، عادةً ما يتم تخزينها وعرضها في UTF-16LE (عند استخدام إصدار يونيكود لوظائف Win32 API)، يتم إنهاؤها عادةً بحرف NUL |
| 2 | REG_EXPAND_SZ | قيمة سلسلة "قابلة للتوسيع" يمكن أن تحتوي على متغيرات البيئة، ويتم تخزينها وعرضها بشكل طبيعي في UTF-16LE، وعادةً ما يتم إنهاؤها بحرف NUL |
| 3 | REG_BINARY | البيانات الثنائية (أي بيانات عشوائية) |
| 4 | REG_DWORD / REG_DWORD_LITTLE_ENDIAN | قيمة DWORD، عدد صحيح بدون إشارة 32 بت (أرقام بين 0 و4.294.967.295 [232-1]) (صغير) |
| 5 | REG_DWORD_BIG_ENDIAN | قيمة DWORD، عدد صحيح بدون إشارة 32 بت (أرقام بين 0 و4.294.967.295 [232-1]) (كبير Endian) |
| 6 | REG_LINK | ارتباط رمزي (UNICODE) بمفتاح تسجيل آخر، يحدد مفتاح جذر والمسار إلى المفتاح الهدف |
| 7 | REG_MULTI_SZ | قيمة متعددة السلاسل، وهي قائمة مرتبة من السلاسل غير الفارغة، يتم تخزينها وعرضها عادةً في UTF-16LE، وينتهي كل منها بحرف NUL، ويتم إنهاء القائمة عادةً بحرف NUL ثانٍ. |
| 8 | REG_RESOURCE_LIST | قائمة الموارد (المستخدمة من قبل تعداد وتكوين أجهزة Plug-n-Play) |
| 9 | REG_FULL_RESOURCE_DESCRIPTOR | واصف مورد (مستخدم بواسطة تعداد وتكوين أجهزة Plug-n-Play) |
| 10 | REG_RESOURCE_REQUIREMENTS_LIST | قائمة متطلبات الموارد (مستخدمة بواسطة تعداد وتكوين أجهزة Plug-n-Play) |
| 11 | REG_QWORD / REG_QWORD_LITTLE_ENDIAN | قيمة QWORD، عدد صحيح 64 بت (إما كبير أو صغير، أو غير محدد) (مقدم في ويندوز إكس بي) |

### مفاتيح الجذر

تتم تسمية المفاتيح الموجودة في المستوى الجذر لقاعدة البيانات الهرمية بشكل عام من خلال تعريفات واجهة برمجة تطبيقات ويندوز، والتي تبدأ جميعها بـ "HKEY". كثيرًا ما يتم اختصارها إلى اسم قصير مكون من ثلاثة أو أربعة أحرف يبدأ بـ "HK" (مثل HKCU وHKLM). من الناحية الفنية، فهي عبارة عن مقابض محددة مسبقًا (بقيم ثابتة معروفة) لمفاتيح محددة يتم الاحتفاظ بها في الذاكرة أو تخزينها في ملفات خلية مخزنة في نظام الملفات المحلي ويتم تحميلها بواسطة نواة النظام في وقت التمهيد ثم مشاركتها (مع حقوق وصول مختلفة) بين جميع العمليات التي تعمل على النظام المحلي، أو تحميلها وتعيينها في جميع العمليات التي بدأت في جلسة مستخدم عندما يقوم المستخدم بتسجيل الدخول إلى النظام.
تحتوي العقدان HKEY_LOCAL_MACHINE (بيانات التكوين المحلية الخاصة بالماكينة) وHKEY_CURRENT_USER (بيانات التكوين الخاصة بالمستخدم) على بنية مشابهة لبعضها البعض، عادةً ما تبحث تطبيقات المستخدم عن إعداداتها عن طريق التحقق منها أولاً في «HKEY_CURRENT_USER \ البرمجيات\ اسم البائع \ اسم التطبيق \ الإصدار \ اسم الإعداد»، وإذا لم يتم العثور على الإعداد، فابحث بدلاً من ذلك في نفس الموقع تحت مفتاح HKEY_LOCAL_MACHINE. ومع ذلك، قد يتم تطبيق العكس على إعدادات السياسة التي يفرضها المسؤول حيث قد يكون لـ HKLM الأسبقية على HKCU. يحتوي برنامج شعار ويندوز على متطلبات محددة تتعلق بالمكان الذي قد يتم فيه تخزين أنواع مختلفة من بيانات المستخدم، وأن يتم اتباع مفهوم الامتياز الأقل بحيث لا يكون الوصول على مستوى المسؤول مطلوبًا لاستخدام أحد التطبيقات.

#### HKEY_LOCAL_MACHINE

يخزن HKLM، HKEY_LOCAL_MACHINE المختصرة الإعدادات الخاصة بالحاسوب المحلي. لا يتم تخزين المفتاح الموجود بواسطة HKLM في الواقع على القرص، ولكن يتم الاحتفاظ به في الذاكرة بواسطة نواة النظام من أجل تعيين جميع المفاتيح الفرعية الأخرى. لا يمكن للتطبيقات إنشاء أي مفاتيح فرعية إضافية. في ويندوز إن تي، يحتوي هذا المفتاح على أربعة مفاتيح فرعية، "SAM"، و"SECURITY"، و"SYSTEM"، و"SOFTWARE"، والتي يتم تحميلها في وقت التمهيد داخل الملفات الخاصة بها الموجودة في المجلد٪ سيستيم روت٪ \ سيستسيم 32 \ التكوين. المفتاح الفرعي الخامس، "HARDWARE"، متقلب ويتم إنشاؤه ديناميكيًا، وبالتالي لا يتم تخزينه في ملف (يعرض طريقة عرض لجميع أجهزة التوصيل والتشغيل المكتشفة حاليًا). في نظام التشغيل ويندوز فيستا والإصدارات الأحدث، يتم تعيين المفتاحين الفرعيين السادس والسابع، «المكونات» و«نظام عشري مشفر ثنائيا»، في الذاكرة بواسطة نواة عند الطلب ويتم تحميلهما من٪ سيستيم روت٪ \ سيستسيم 32\ التكوين\ المكونات أو من بيانات تكوين التمهيد، \ بوت\ نظام عشري مشفر ثنائيا على قسم النظام.

## مراجع

* ↑ Esposito، Dino (نوفمبر 2000). "Windows 2000 Registry: Latest Features and APIs Provide the Power to Customize and Extend Your Apps". MSDN Magazine. Microsoft. مؤرشف من الأصل في 2003-04-15. اطلع عليه بتاريخ 2007-07-19.
* 1 2 3 "The System Registry". مؤرشف من الأصل في 2020-08-08.
* ↑ "Windows 95 Architecture Components". www.microsoft.com (بالإنجليزية). Archived from the original on 2008-02-07. Retrieved 2008-04-29. The following table shows other difficulties or limitations caused by using .INI files that are overcome by using the Registry.
* ↑ رايموند تي تشن، "Why do registry keys have a default value?" نسخة محفوظة 2020-07-18 على موقع واي باك مشين.
* ↑ "Designed for Windows XP Application Specification". مايكروسوفت. 20 أغسطس 2002. مؤرشف من الأصل في 2010-08-14. اطلع عليه بتاريخ 2009-04-08.
* بوابة تقانة المعلومات
* بوابة علم الحاسوب
* بوابة قواعد البيانات
* بوابة مايكروسوفت