1 - التركيب البسيط (Monolithic)
Download
Report
Transcript 1 - التركيب البسيط (Monolithic)
مادة نظم تشغيل شبكية 2
المحاضرة الثانية
إدارة النواة
تحديثها – إنشاء نسخ احتياطية منها
إعداد المهندس وسام المحمود
مقدمة
• نظام التشغيل هو أول برنامج تشاهده عند تشغيل جهازك وآخر
برنامج تشاهده عند إغالق جهازك وهو عبارة عن حزمة برامج
تجعل جهاز الحاسب يعمل بشكل صحيح .يقوم بإخبار الحاسب
كيف يتعامل مع البرامج األخرى ويتحكم في المكونات المادية
المركبة على الجهاز
• هو برنامج حاسوبي يم ّكن أجهزة الكمبيوتر hardwareعلى
االتصال و العمل مع برامج الحاسوب .softwareبدون نظام
تشغيل ،الحاسوب سيكون عديم الفائدة .كما أن نظام التشغيل يوفر
بيئة تم ّكن مستخدم الجهاز من تشغيل البرامج بشكل سهل وفعّال
ويوفّر حماية لنظام الكمبيوتر من األخطار والتدخالت التي يمكن
أن تسببها هذه البرامج.
ً
أوال :بنية نظم ألتشغيل
هناك عدة طرق لبناء وتركيب نظم التشغيل وهي :
(1التركيب البسيط )(Monolithic
(2تركيب الطبقات )(Layered
(3تركيب النواة الصغيرة ) (Microkernel
(4تركيب الوحدات )(Modules-based
- 1ألتركيب ألبسيط )(Monolithic
بحيث يكون نظام التشغيل في مستوى واحد أو في مستويين
• الميزة الرئيسية
– تكلفة التفاعالت الداخلية في النظام تكون منخفضة ألنها جميعا تقع
على نفس المستوى.
• العيوب
– صعوبة الفهم
– صعوبة التعديل
– صعوبة الصيانة
– غير موثوق فيه
- 2تركيب ألطبقات ): (Layered
أي أن نظام التشغيل مقسم لطبقات (مستويات) بحيث يكون كل
جزء من النظام في طبقة مستقلة
الطبقة )layer 0( 0مخصصة للعتاد )(Hardware
والطبقة (layer N) Nمخصصة لواجهة المستخدم
• الميزة الرئيسية
– وجود الطبقات أدى إلى تسهيل عملية الصيانة.
• العيوب
– المشكلة تكمن في عملية ترتيب الطبقات ،فال توجد لدينا طريقة
واضحة للترتيب
- 3تركيب ألنوأة ألصغيرة ) (Microkernel
• تكون نواة النظام في هذا التركيب صغيرة جدا ،وال يوضع
بداخلها سوى الوظائف األساسية
• أما الوظائف األخرى فتوضع في مساحة المستخدم ،ويكون
االتصال بين مساحة المستخدم والنواة عن طريق
الرسائل العابرة )(message passing
• الميزات
– من السهل توسيع (تمديد) النظام
– النظام أكثر ثقة وأكثر أمنا.
• العيوب
– االتصال بين مساحة المستخدم ونواة النظام عملية مكلفة
- 4تركيب ألوحدأت )(Modules-based
معظم أنظمة التشغيل الحديثة مبنية بهذه الطريقة ،حيث تكون
النواة األساسية في المركز وبقية الوظائف تتفرع منها ،وهي
مشابهة للطبقات ولكن أكثر مرونة وأكثر كفاءة.
أنظر الشكل
نظام UNIX
• يتكون نظام UNIXمن األقسام
الرئيسية التالية :
(1النواة ( Kernelوهي موضوع
دراستنا)
(2الغالف : Shellالواجهة التي نعتمد
عليها في تطبيق األوامر ومن خاللها
يقوم المستخدم بما يريد من مهام
يحتوي الغالف على المترجم وهو
الجزء المسؤول عن تحويل األمر
الصادر عن المستخدم إلى لغة تفهمها
النواة
(3نظام الملفات File System
ً
ثانيا :ألنوأة
• يسبب موضوع النواة Kernelالكثير من االلتباس لدى كثير
من الناس وال يوجد تعريف أو شرح يفي باحتياجات المستخدم
حول النواة وكيف تعمل ,كيف يتم تثبيتها ,وكيف يتم التغلب على
مشاكل التشغيل واالستخدام
• سبب ذلك أن النواة تغطي مواضيع هائلة التشعب وتعتبر
موضوع متقدم جدا ومن المستحسن أن ال تقوم بالعبث بالنواة ما
لم تكن مدركا لعواقب هذه األعمال حيث قد تخسر القدرة على
االتصال باالنترنت أو تشغيل الواجهات الرسومية أو الطباعة أو
القدرة على تشغيل النظام إذا تم العبث بخيارات النواة إال إذا كان
الهدف تعليمي لتتمكن من اكتشاف خصائص البناء للنواة
وتأثيرها على األداء
تعريف ألنوأة
•
•
•
•
هي القلب النابض لنظام التشغيل مهما كان نوع هذا النظام
Linuxأو Windowsأو ..... MAC
حيث أن النواة هي التي تتعامل مع العتاد المادي للحاسب
HardWareوتنظم عمله أي تعمل كوسيط بين العتاد
والتطبيقات
تتعامل النواة مع العتاد الصلب مباشرة low-level
تقوم النواة بمهام النظام الحرجة ومن هذه المهام :
نذكر المهام لرئيسية فقط .
– 1أ إالقالع booting
• كل شيء يبدأ من الصفر أي عندما نضغط على زر تشغيل
الحاسب تقوم اللوحة األم بتشغيل الـ BIOSالخاص بها للتحقق
من األجهزة المركبة
• بعدها يبحث عن MBRفي القرص الصلب وهو سجل اإلقالع
األساسي
• هنا يأتي دور برنامج boot strap loader
أو ما يعرف بمحمل اإلقالع وتوجد عدة أنواع منه كـ liloأو
grubحيث يتم التوجيه ثم يتم تشغيل النواة وسيتم تفاعل النواة
حيث تتعرف على العتاد ويجري تحميل Mountلقرص
الصلب واالتصال باألنترنت و ......
• سوف ترى هذه األحداث تحدث أمامك "الكتابة السريعة أثناء بدء
التشغيل" بعد أن تنتهي النواة من تحميل التشغيل يتم تسليم المهام
إلى initوهو من يقوم بتشغيل البرامج ويتيح لك الدخول للنظام
log in
• هنا ينتهي دور الـ BIOSويصبح بإمكانك العمل على الحاسب
عن طريق البرامج المعدة لتكون واجهة مع المستخدم
• طبعا ً النواة هي صلة الوصل بين البرامج والعتاد
– 2إأدأرة ألمهام
• بعد أن يعمل نظامك سيكون هناك الكثير من البرامج تعمل وكل
برنامج يسمى بـ process
• لتتمكن من رؤية البرامج التي تعمل لديك حاليا قم بتشغيل المر
التالي ps –axفي سطر األوامر ستدهش من عدد البرامج
التي تعمل لديك حاليا
• والنواة تتحكم بكل هذه البرامج وكل برنامج يحصل على قدر
عادل من موارد النظام
• حيث تعطي كل برنامج حقه من الـ RAMوالمعالج والـ
SWAP
– 3أتصال بين ألبرأمج فيما بينها IPC
• أو ما يسمى Inter Process Communication IPC
• تقوم النواة بإدارة االتصاالت بين البرامج ببساطة
• برامج مختلفة تحتاج لطريقة تواصل فيما بينها والنواة توفر
وسط اتصال فيما بينها يتم استخدام ذاكرة مشتركة "كل برنامج
يسمي جزء من الذاكرة التي تم إعطائه من قبل النواة ويقوم
البرنامج بوضع صالحيات القراءة والكتابة والتنفيذ والسماح
للبرامج األخرى مشاركته المعلومات في الذاكرة وهكذا يتم
مشاركة المعلومات واالتصاالت
– 4ألتعامل مع ألعتاد
• نظام التشغيل الغير قادر على التعامل مع العتاد سيكون نظام
غير عملي
• هنا النواة توفر القدرة على التعامل مع العتاد للبرامج األخرى
لتقوم النواة بهذا يجب أن يكون لديها مجموعة من األوامر العامة
لنوع الجهاز وتعريف خاص بهذا الجهاز ليخبر النواة كيف تقوم
بهذه األوامر العامة
• مثال أمر قراءة وكتابة ألجهزة التخزين
- 5نظام ألملفات ألظاهري VFS
• ليتم دعم أنظمة ملفات متعددة مثال vfat , extتحوي النواة
وسيط اسمه VFSوهو يوفر طريقة موحدة للتعامل مع نظام
الملفات بالرغم من اختالف نوع نظام الملفات
• عندما يرسل برنامج أمر كتابة إلى موقع Xفي القرص الصلب
• يقوم VFSبترجمة هذا األمر ألمر ذو معنى في نظام الملفات
الذي في القرص الصلب
• إذا يتضح لنا أن نظام الملفات الظاهري يماثل تعريف لعتاد لكنه
ألنظمة الملفات
• ونظام الملفات الظاهري جزء أساسي من النواة
بعض وظائف ألنوأة أالخرى
• إدارة المعالج Processor Management
• إدارة الذاكرة Memory Management
• إدارة المكونات المادية Device Management
• إدارة عملية التخزين Storage Management
• واجهة التطبيقات Application Interface
• واجهة المستخدم User Interface
ً
ثالثا :أنوأع ألنوأة
Monolithic (1النواة األحادية :
– كود ضخم يحتوي جميع متطلبات العمل كجزء منها وله عنوان وحيد في
الذاكرة
– مستخدمة في توزيعات Linuxبكثرة
– ميزاتها :
تحوي عدد كبير من تعاريف األجهزة
سرعة عالية ألنها تتعامل مع الذاكرة مباشرة
استقرار ال مثيل له
– عيوبها :
معقدة جدا في برمجتها
لو حدث خطأ واحد في جزء منها يختل النظام ككل
عند إضافة أي ( Moduleتعريف ألحد القطع) للنواة يجب إعادة تجميع
النواة من جديد لتعمل بشكل صحيح
Microkernel (2النواة المصغرة
• في هذا النوع تكون النواة مقسمة إلى أجزاء فإن حصل خطأ في
جزء فلن يتوقف النظام ككل لكن لهذا التقسيم عيب أيضا ً أنه
يسبب بطئ في النظام بسبب كثرة االتصاالت بين هذه األجزاء
ً
رأبعا Module Manager :
أو ما يسمى بإدارة الوحدات النمطية وهو يقابل الـ Driversفي
أنظمة Windows
طبعا أنت ال تستخدمهم لكن تعمل النواة والتعاريف في النظام
دونما تكون ظاهرة ولكن من المفيد أن تعرف أن التعاريف
موجودة وأي التعاريف تعمل حاليا وكيف تطلب تحميل تعريف
وإزالة تعريف وما هي المهام التي بنية مع النواة نفسها
إذا كنت ترغب في معرفة ما هي التعريفات المتوفرة يمكنك
البحث في مجلد
/lib/modules/kernelNo./kernel/drivers/
مثال /lib/modules/2.6.9/kernel/drivers/
• تكون بعض
التعريفات مفعلة
والبعض اآلخر غير
مفعل
• لعرض التعريفات
المفعلة حاليا لديك
يمكنك استخدام األمر
lsmod
• ليتم تفعيل تعريف يمكنك
استخدام األمر modprobe
• مثال لدي كرت شبكة من نوع
Real Tek RTL8193
• لتفعيل التعريف نستخدم األمر
modprobe 8139too
• ال حظ بعد استخدام األمر
السابق وجود التعريف لدى
سرد التعريفات المتوفرة
• لحذف تعريف معين يمكنك استخدام األمر rmmod
• مثال لي كرت شبكة من نوع Real Tek RTL8193
• يمكنك حذف التعريف من خلل األمر التالي :
rmmod 8139too
• تقوم النواة بتحميل التعريفات تلقائيا عند بدء التشغيل من خالل
ملف يمكنك تعديله حسب االحتياج وهو
/etc/rc.d/rc.modules
ً
خامسا :ترقية (تحديث) ألنوأة
النواة ليست ثابتة وإنما تتوفر نسخ حديثة منها
ال تنتظر حتى يتم تحديث التوزيعة التي تستخدمها بشكل كامل
فالنواة هي التحديث الذي يهمنا
للحصول على أي اصدار تريد يمكنك زيارة الموقع
www.kernel.org
يمكنك التعرف على النواة التي لديك بشرط أن تكون مستخدم
جذري باستخدام األمر uname –a
لمعرفة آخر التحديثات نزور الموقع www.kernel.org
• يجب أن نختار النسخة المستقرة ألنها مجربة وأثبتت استقرارها
• سنتعلم اآلن كيف نقوم بتحديث النواة عن طريق إنشاء ملف
.config
• في البداية نقوم بتحميل نواة جديدة مستقرة
• مالحظة :نضغط على Fلتحميل المصدر كامال
• ثم نقوم بفك الضغط
• ندخل إلى مجلد النواة بعد فك الضغط الحظ في السطر الثاني
سيظهر مسار المجلد في سطر األوامر
• نقوم بتهيئة النواة باستخدام األمر
Make configويكون الناتج كما يلي :
• لكن هذا األمر يتطلب أن نعرف كل كبيرة وصغيرة عن النظام
وسيسأل عن العديد من الخيارات إن كنا نود تفعيلها أو ال
يمكن تفادي ذلك باستخدام األمر Make Deconfig
• واآلن لكي نستطيع التعديل على النواة يجب توفر المكتبات
QTو GKT
• يمكن تحميلهم بأن نكتب األمر sudo apt-get update
: • بعدها نحمل البرامج كالتالي
sudo
sudo
sudo
sudo
sudo
sudo
sudo
apt-get
apt-get
apt-get
apt-get
apt-get
apt-get
apt-get
install
install
install
install
install
install
install
build-essential
kernel-package
gcc
gcc-3.4
libncurses5
libncurses5-dev
libqt4-mt-dev
• بعد تحميلهم يمكننا التعديل على النواة باستخدام أحد األوامر
التالية
make menuconfig
make gconfig
make xconfig
make menuconfig (1
make gconfig (2
make xconfig (3
ً
سادسا :بناء ألنوأة
اآلن أصبح
باإلمكان بناء
النواة التي
حملناها
وعدلنا عليها
لبناء النواة
نستخدم األمر
Make
طبعا من
مسار النواة
• يمكن استخدام األمر التالي :
• ”make O=~/home/”my folder
• وذلك للحفاظ على ملفات النواة المصدرية وحفظ النواة الجديدة
في مجلد خاص
• بهذا تكون النواة الجديدة جاهزة لكنها ال تعمل على النظام
• لكي نقوم بتثبيت النواة على النظام يجب أوال االنتقال إلى
المستخدم الجذر Root
للحصول على كافة الصالحيات للتعديل على النظام
• ننتقل إلى مجلد النواة ونكتب األمر
sudo make modules_install
• حيث يقوم هذا األمر بتثبيت تعريفات العتاد
• ويضعها في المجلد
******** /lib/modules/kernel
• ولتثبيت النواة نستخدم األمر sudo make install
• تمكن هذه الطريقة من إنشاء صورة جديدة في /bootونختار
أي إصدار للنواة سنستخدم
• بقي أن نعدل على محمل اإلقالع لتحديد النواة التي ستعمل عند
تشغيل الجهاز
• هناك نوعان مشهوران من محمالت اإلقالع وهما Grub
وLiLo
• أيا منهما تستخدم ؟
• اذهب إلى المجلد /bootإذا وجدت ملف اسمه Grub
هذا يعني أنك تستخدم Grub
• أما الثاني فيوجد في المجلد /etcواسمه lilo.conf
• طبعا هناك طرق كثيرة للتعديل على محتواهما سنستخدم األمر
التالي :
sudo gedit /boot/grub/menu.lst
• بنفس الطريقة إذا كان لديك LILOنفتح الملف من المسار
/etc
شكرا ً لحسن
إصغائكم