من بعد ان كان ملف لا يتجاوز مئات البايتات، اصبح مسجل النظام Windows Registry قاعدة بيانات ضخمة تحفظ كل صغيرة وكبيرة تابعة لنظام التشغيل من ناحية التكوينات التي تعرف بالـ Configuration. بل وتمتد ايضا لتشمل معظم البرامج المثبت في نظام التشغيل. كما توفرت له ادوات حماية ونسخ احتياطي. في السطور التالية سنلقي الضوء على اساسيات مسجل النظام Windows Registy وشرح لتركيبته الشجرية.
اذا عدنا الى الوراء قليلا وحتى نصل الى اصدارات Windows 3.x، فمكننا ان نعرف ملف المسجل على انه ملف يحتوي على قاعدة بيانات تتمثل في انشاء اقتران بين امتداد الملفات والبرامج التي تشغلها. من اشهر امثلة هذا الاقتران هو ملفات BMP والتي كانت مقترنة بالـ Paint Brush او ملفات WRI المقترنة بالبرنامج الذي جار عليه الزمن Write. وهذه كانت الوظيفة المحصورة لمسجل النظام. اما عندما جاءت شلة الانس Windows 9x فانفجر حجم ملف السجل وكذلك اهميته بشكل اسي! فلم يعد مجرد قادة بيانات لتوضيح الاقترانات، وانما تعدى ذلك الحد بشكل رهيب حتى يشمل جميع تكوينات Configuration نظام التشغيل بالاضافة الى تكوينات البرامج المثبتة عليه، كما اصبحا مرجع البيانات الرئيسي التي تعتمد عليها كافة البريمجيا التابعة لنظام التشغيل والتي تجتمع بكثرة في لوحة التحكم Control Panel.
الايام الخوالي وملفات الـ INI.
معظم التكوينات الخاصة بنظام التشغيل كالالوان، المشغلات Drivers، ملفات الخطوط الخ... كانت تحفظ في مجموعة ملفات نصية تنتهي بالامتداد ini والتي كان ابطالها هما الملفان System.INI و Win.INI. حتى وصل بها الحد واصبحت موضة للبرامج التطبيقية والتي تتطلب حفظ تكوينات للمستخدم في ملفات مستقلة. فبرنامج 2.0 Microsoft Word كان يرافقه الملف WinWord.INI ومدير البرامج Progman.INI والبرنامج الذي جار عليه الزمان كان ايضا جنتل مان وراعي موضات ولديه ملف اسمه Write.INI
بقي هذا الحال حتى صدور النسخة الاولى من Windows 95 وقاموا مطوروا Windows بالاستغناء بشكل شبه كامل عن ملفات الـ INI وكذلك مطوروا البرامج التطبيقية وذلك لظهور عيوب في ملفات INI اختصرها في النقاط التالية:
- ملفات INI هي ملفات نصية والتي يفرض ان لا يتعدى حجمها الـ 64 كيلو بايت. ففي كل مرة تركب فيه برنامج جديد يحتاج ان يكتب في الملف Win.INI او System.INI فقد يؤدي الى حدوث خلل فيه في حالة تجاوز الحد المسموح لحجم الملفات النصية.
- كثرة ملفات الـ INI التي ترفقها او حتى تنشأها البرامج المثبتة في الجهاز مما يؤدي الى صعوبة في ادارتها وعدم كونها مرتبة في شكل هرمي كحال مسجل النظام.
- التعديل في ملفات INI يؤثر على جميع مكونات الجهاز ولن يصبح من السهل تخصيص بيانات معينة لمستخدمين معينين في حالة كون الجهاز يتم استعماله من قبل اكثر من شخص او في شبكة.
- مكونات او كائنات OLE زادت بشكل كبير، فلم تعد هناك امكانية للاستمرار على ملفات INI لحفظ بيانات كائنات OLE. طبعا انا ذكرته هنا OLE ولم اذكر COM والسبب ان COM لم تكن موجودة في تلك الايام الا انها مبنية على تقنية OLE. الذي قد يفاجئك هنا، بان بيانات كائنات OLE تطورت في الاصدار Windows 3.1 واستغنت عن ملفات INI وخصصت لها ملفات خاصة بالمتداد REG.* وهي بنية شبيهه ومبسطة من ملفات المسجل الحالية.
مسجل النظام Windows Registry
لن اتحدث عن مزايا المسجل لانها باختصار غطت على عيوب ملفات الـ INI. بل واضافت مزايا اضافية. لكن ما يهمنا هن هو معرفة تركيبة ملف السجل والتي ببساطة عبارة عن شكل شجري او هرمي، كل رأس في هذه الشجرة يسمى مفتاح Key والذي قد يحتوي على مفتاح فرعي SubKey او قيمة Value. القيمة مقسمة الى قسمين هما الاسم Name والبيانات Data، اسم القيمة هو مجرد اسم رمزي او وصفي لها، اما البيانات فهي القيمة الحقيقة. فلو قلنا BackColor = Black فالاسم هو BackColor والبيانات هي Black -نفس فكرة الخصائص في Visual Basic.
اذا كنت من مستخدمي Windows 9x تستطيع استخدام الاداة ScanReg.exe والتي تقوم بفحص السجل وانشاء نسخ احتياطية، بالاضافة الى الاداة RegEdit والتي تمكنك من تحرير محتويات ملف المسجل، ولا تنسى ان عملية تحرير المسجل سواء يدويا او برمجيا تتطلب الحذر الشديد، فاي عملية خطأ قد تؤدي الى التأثير السلبي على برنامج اخر او حتى نظام التشغيل نفسه. واذا كنت من مستخدمي Windows 2000 فاستخدم الاداة RegEdt32.EXE فهي نسخة محسنة من الاداة RedEdit.exe.
اما لو اردنا القاء نظرة تفصيلية الى الاقسام الرئيسية لملف المسجل فهي 5 فروع رئيسية في اصدار Windows 2000 و 6 في اصدارات Windows 9x و 6 في اصدار Windows NT. مع ذلك، سأتطرق الى الاقسام الاربعة المشتركة فقط:
- HKEY_CLASSES_ROOT يحتوي هذا القسم على جميع البيانات المتعلقة بمكونات COM وهو في الحقيقة يمكن ان نعتبره قسم فرعي من HKEY_LOCAL_MACHINE
- HKEY_CURRENT_USER يحتوي هذا الفرع على جميع التكوينات الخاصة بالمستخدم الحالي، وهو ايضا فرع تابع لـ HKEY_USERS ينسخ نفسه في كل مرة تقوم بتسجيل الدخول فيها لنظام التشغيل Logging in.
- HKEY_LOCAL_MACHINE يحتوي هذا الفرع على جميع التكوينات الفيزيائية لجهاز الكمبيوتر بالاضافة الى تكوينات البرامج والتطبيقات المثبته فيه.
- HKEY_USERS يحتوي على التكوينات الخاصة بالمستخدم الافتراضي والمستخدمين الاخرين.