أغسطس 25، 2011

ملف إعدادات النواة لينكس

النواة لينكس هي نواة نظام تشغيل غنو/لينكس و هي مشروع مستقل عن مشروع غنو. النواة تمثل صلب النظام و تتكفل بتسخير كل موارد الجهاز إلى البرامج كي تستفيد منها و تستغلها.

تحظى النواة لينكس بسياسة تطويرية سريعة بحيث يطرح إصدار جديد لها كل 8 أسابيع تقريبا و في نفس الوقت يعمل المطورين على دعم من ثلاثة إلى أربعة إصدارات سابقة لمدة تقارب السنة مصلحين العلل البرمجية و الأمنية المكتشفة فيها. كما يتكفل بعض المطورين بدعم بعض إصدارات النواة التي حملت معها ميزات و خصائص نوعية لمدة لا تقل عن سنتين.

النواة لينكس تدعم بشكل رسمي 25 معمارية مختلفة.  توزيعات غنو/لينكس تأخد إحدى الإصدارات المستقرة للنواة ثم تخصصها و تضيف عليها رقع إضافية ثم تجمعها لتناسب معمارية معينة (x86, ARM, PowerPC مثلا) و لتناسب نمط استخدام معين (مكتبي، خادم،..). الغاية من التجميع هي الحصول على حزم جاهزة الإستخدام و سهلة التثبيت و التحديث.
إصدار النواة من المشروع يسمى إصدار فانيليا (vanilla) أي كما هو دون تخصيص أو تعديل. هذه التسمية ليست حكرا على النواة بل أي إصدار لأي برنامج لم يطرأ عليه أي تخصيص يمكن أن تسميه إصدار فانيليا أو إصدار منبعي.

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

بالنسبة للمستخدم فإنه يكتفي باستخدام حزم النواة المتوفر من خلال مستودعات توزيعته المفضلة و لن يحتاج في أغلب الأوقات أن يكترث لترقية النواة إلى إصدارات مستقرة جديدة إلا في حالات الضرورة (لدعم عتاد جديد مثلا)، حيث يمكن له أن يثبت حزم لإصدارات أحدث متبعا الطريقة المنصوح بها حسب التوزيعة التي يستخدمها. ثم كآخر حل - إذا انقطعت به سبل الحصول على حزم جاهزة للإصدار الذي يحتاج - عليه أن يجمع نسخته من المنبع، أي مباشرة من مشروع النواة؛ لكن ناذرا ما يكون هذا ضروريا.

تجميع النواة و تحزيمها يختلف حسب التوزيعة لذلك ليست هناك طريقة موحدة. الشرح سيجده المستخدم في التوثيق الرسمي للتوزيعة.

قبل تجميع النواة تقوم أداة تخصيص النواة - بشكل افتراضي قابل للإلغاء - بالإعتماد على ملف إعدادات النواة الحالية كأساس للإعدادات الإفتراضية التي ستوفرها و تدعمها النواة التي أنت على وشك أن تجمعها. لماذا؟
لضمان الحصول على نسخة متوافقة مع جهازك.

الفكرة كالتالي:
إذا عملت معك النواة الحالية بإعداداتها التي جُمعت بها، فمن المنطقي أن تعمل معك نواة أحدث بخصائص جديدة لكن مجمعة بنفس الإعدادات التي عملت معك سابقا.

ما هي الإعدادات التي جمعت بها النواة الحالية؟ أين تجدها؟
على الملفين:

/boot/config-$(uname -r)

/lib/modules/`uname -r`/build/.config


و سابقا أو على الأنوية التي جمعت بمعيار CONFIG_IKCONFIG ستجدها على:
zcat /proc/config.gz

ما الذي سنستفيده من معرفة مكان تواجد ملف إعدادات النواة؟
  • يمكن أن تستخدمه لتجميع النواة على توزيعات أخرى.
  • يمكن أن تستخدمه لمعرفة وجود دعم عتاد معين أم لا. مثال:
لمعرفة جيل المعالج الذي تدعمه النواة و تستفيد من تعليماته.
cat /boot/config-`uname -r` | grep -i CPU_FAMILY
القيمة 5 مثلا تمثل Pentium 4 فما فوق. 6 تمثل Core 2 Duo
CONFIG_X86_MINIMUM_CPU_FAMILY=5

لمعرفة هل النواة جمعت لتدعم و تستغل أكثر من 3GB من الذاكرة على معمارية 32بت.
zcat /proc/config.gz | grep -i HIGHMEM
النتيجة نعم
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_DEBUG_HIGHMEM=y

  • يمكن أن تستخدمه لمعرفة حالة دعم تعريفات معينة. مثال:
هل تعريف Nouveau البديل الحر لتعريف nVidia مدعوم مثلا
cat /lib/modules/$(uname -r)/build/.config | grep -i nouveau
نعم مدعوم و يعمل كوحدة خارجة عن النواة (module)
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU_DEBUG=y

ما هي الخصائص المدعومة من طرف نظام تسيير الملفات ext4 و كيف جمعت
cat /lib/modules/`uname -r`/build/.config | grep -i ext4
تعرض الخضائض ext4 كما تشير إلى أن الدعم مدمج مع النواة و ليس على شكل وحدة تعمل عندما تطلب
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set

ليست هناك تعليقات:

إرسال تعليق