تغييرات

اذهب إلى التنقل اذهب إلى البحث
طريقة التقديم
سطر 31: سطر 31:     
==طريقة التقديم==
 
==طريقة التقديم==
 +
عملية الإقلاع "من محمل الإقلاع إلى تمهيد النظام"
 +
 +
كيف يقوم النظام بعملية الإقلاع؟
 +
 +
ما هي مراحل إقلاع النظام؟
 +
 +
(إجابة استرشادية)
 +
 +
تبدأ عملية الإقلاع من نظام المدخلات والمخرجات البسيط (Basic Input/Output System) وهو برنامج مثبت مسبقاً على اللوحة الأم (motherboard) من قبل الشركة المصنعة لها. يقوم هذا البرنامج بالتأكد من أن كل العتاد اللازم جاهز لعملية الإقلاع ،ثم يعطي الضوء الأخضر الى محمل الإقلاع (bootloader) ليبدأ في العمل.
 +
 +
بعدها يقوم محمل الإقلاع (bootloader) بالبحث والوصول الى ملف التحميل الرئيسي ((Master Boot Record (MBR) من وسيط التخزين المحمل عليه "القرص الصلب" على سبيل المثال ،الذي بدوره يقوم بإستخدام البيانات المخزنة وتشغيل نواة نظام التشغيل.
 +
 +
أنواع نظام التمهيد (INIT ، systemd)
 +
 +
ما هي أنظمة التمهيد؟
 +
 +
(إجابة استرشادية)
 +
 +
هي الأنظمة المسؤولة عن تشغيل وبدأ كل العمليات والخدمات المطلوبة لتشغيل النظام.
 +
 +
ما هي أنواع نظم التمهيد؟
 +
 +
(إجابة استرشادية)
 +
 +
يوجد (init) وهي المسؤولة عن إقلاع وبدأ عمليات وخدمات النظام وهي من الأنظمة القديمة نسبياً ويوجد بدائل قوية ومنها (systemd) وهي بديل قوي ؛ليس فقط لعملية الإقلاع وبدأ العمليات والخدمات ولكن أيضاً إدارتها بشكل متزامن الى جانب مميزات اخرى تتغلب فيها على كثير من منافسيها.
 +
 +
فهم مستويات التشغيل
 +
 +
ما هي مستويات التشغيل؟
 +
 +
(إجابة استرشادية)
 +
 +
هي حالة إقلاع النظام والخدمات المطلوبة للإقلاع في هذه الحالة. تكون معرَفة برقم من صفر إلى ستة ،كل منها يعبر عن حالة مخصصة وخدمات خاصة بها.
 +
{| class="wikitable"
 +
|0
 +
|إيقاف تشغيل النظام
 +
|-
 +
|1
 +
|وضع الإنقاذ والصيانة
 +
|-
 +
|2
 +
|تعدد المستخدمين
 +
|-
 +
|3
 +
|تعدد المستخدمين مع تشغيل خدمات الشبكة
 +
|-
 +
|4
 +
|مستوى تشغيل محجوز لما يعرِفه المستخدم
 +
|-
 +
|5
 +
|تعدد المستخدمين مع تشغيل خدمات الشبكة مع واجهة رسومية
 +
|-
 +
|6
 +
|إعادة تشغيل النظام
 +
|}
 +
ملف تمهيد النظام الرئيسي (inittab)
 +
 +
هل يمكن تغيير نمط التمهيد؟
 +
 +
وما هي الطريقة إذاً؟
 +
 +
(إجابة استرشادية)
 +
 +
أي شئ في نظام التشغيل لينكس (Linux) يمكن تخصيصه ،بما في ذلك أنماط التمهيد.
 +
 +
يمكن تغيير نمط التمهيد من خلال ملف التمهيد الرئيسي (inittab) ،حيث أنه يمدنا ببعض المزايا التي يمكن استغلالها
 +
 +
سكريبتات التمهيد (//etc//rc.d/init.d)
 +
 +
كيف نقوم بتغيير وتخصيص نمط التمهيد؟
 +
 +
(إجابة استرشادية)
 +
 +
يمكن تغيير نمط التمهيد عن طريق بعض سكريبتات التمهيد الموجودة تحت المسار (/etc/rc.d/init.d/)
 +
 +
إعداد مستوى التشغيل (Sxxservice ، Kxxservice)
 +
 +
كيف يمكن إعداد مستوى التشغيل؟
 +
 +
(إجابة استرشادية)
 +
 +
لكل نمط تشغيل مجموعة من الروابط لمجموعة من سكريبتات التشغيل. تبدأ أسماء هذه الروابط بالحرفي (S) او (K) متبوعة برقم ثم اسم السكريبت الدال على محتواه.
 +
 +
الملفات التي تبدأ بحرف الـ (S) تدل على أن الخدمة ستبدأ بالعمل بمجرد بدأ مستوى التشغيل التابعة له ،بينما الملفات التي تبدأ بالحرف (K) فهي تدل على أن الخدمة ستقف إذا كانت تعمل.
 +
 +
تحليل قصور INIT
 +
 +
ما هو القصور في (init)؟
 +
 +
وما هي الحلول المقترحة لحل هذا القصور؟
 +
 +
(إجابة استرشادية)
 +
 +
تبدأ العمليات في (init) بشكل تتابعي ،أي تقوم العملية بتشغيل عملية أخرى بعد بداية عملها بشكل سليم وتحميلها في الذاكرة وهذا يؤدي إلى بطء عملية الإقلاع أو عدم اكتمالها في بعض الأحيان.
 +
 +
والحل هو ان تعمل العمليات بشكل مستقل او تناظري لتلافي هذا البطء.
 +
 +
كيف تعاملت systemd مع أوجه القصور في INIT
 +
 +
كيف تعاملت systemd مع أوجه القصور في INIT؟
 +
 +
وما يميز systemd على وجه التحديد؟
 +
 +
(إجابة استرشادية)
 +
 +
لم تصمم (systemd) للقضاء على مشكلة بطئ عملية الإقلاع ولكن لتنفيذ المهام بشكل وقتي.
 +
* تتميز بتصميم سلس وواضح
 +
* أسهل في عملية الإقلاع
 +
* تمهيد تناظري ومتزامن
 +
* تحتوي على واجهة برمجية للتطبيقات قوية
 +
* قابلية لإزالة مكونات اختيارية
 +
* تنظيم المهام بإستخدام التوقيتات الزمنية
 +
* تسجيل الأحداث
 +
* حفظ السجلات في ملفات ترميز ثنائي
 +
وغيرها من المزايا ...
 +
 +
مقدمة عن ملفات الوحدة (unit files systemd)
 +
 +
إذا كانت systemd بهذه القوة فكيف تبدأ وتعمل؟
 +
 +
(إجابة استرشادية)
 +
 +
عن طريق ما يعرف بملفات الوحدة (unit files) وهي المسؤولة عن بداية وتشغيل كل وحدة ؛والوحدة ممكن ان تكون جزء من النظام أو جزء من تطبيق ما (component or activity).
 +
 +
ما هي مكونات الوحدة؟
 +
 +
(إجابة استرشادية)
 +
 +
الوحدة عبارة عن ملف نصي يصف هذه الوحدة وماذا تفعل وماذا تحتاج لكي تعمل وبعد ان تعمل وبعض التفاصيل الأخرى…
 +
 +
man systemd.unit
 +
 +
الأنواع الرئيسية لملف الوحدة systemd (الخدمة ، الهدف)
 +
 +
هل يوجد أنواع لملفات الوحدة؟
 +
 +
(إجابة استرشادية)
 +
 +
ملفات وحدات الخدمة: وهي وحدات مسؤولة عن التعامل مع العمليات (تشغيل ، إيقاف ، حالة ، إعادة تشغيل ، تفعيل ، إيقاف)
 +
 +
man systemd.service
 +
 +
ومثال على ملفات وحدات الخدمات ،الملف المسؤول عن الوصول الآمن إلى بوابة النظام (Secure Shell):
 +
 +
[Unit]
 +
 +
Description=OpenSSH server daemon
 +
 +
Documentation=man:sshd(8) man:sshd_config(5)
 +
 +
After=network.target sshd-keygen.service
 +
 +
Wants=sshd-keygen.service
 +
 +
[Service]
 +
 +
EnvironmentFile=/etc/sysconfig/sshd
 +
 +
ExecStart=/usr/sbin/sshd -D $OPTIONS
 +
 +
ExecReload=/bin/kill -HUP $MAINPID
 +
 +
KillMode=process
 +
 +
Restart=on-failure
 +
 +
RestartSec=42s
 +
 +
[Install]
 +
 +
WantedBy=multi-user.target
 +
 +
ولسرد جميع ملفات وحدات الخدمات على النظام نستخدم الأمر التالي:
 +
 +
systemctl list-unit-files --type service
 +
 +
ملفات وحدات الهدف: وهي وحدات مسؤولة عن ربط وتجميع الوحدات ببعضها لوصف حالة النظام.
 +
 +
بعض هذه الوحدات يمكن أن تكون خدمات في حد ذاتها والأخرى يمكن أن تكون وحدات هدف إضافية مع مجموعة الوحدات الخاصة بها.
 +
 +
man systemd.target
 +
 +
ومثال على ملفات وحدات الهدف ،الملف المسؤول عن تعددية المستخدمين (multi-user.target):
 +
 +
[Unit]
 +
 +
Description=Multi-User System
 +
 +
Documentation=man:systemd.special(7)
 +
 +
Requires=basic.target
 +
 +
Conflicts=rescue.service rescue.target
 +
 +
After=basic.target rescue.service rescue.target
 +
 +
AllowIsolate=yes
 +
 +
ولسرد جميع ملفات وحدات الهدف على النظام نستخدم الأمر التالي:
 +
 +
systemctl list-unit-files --type target
 +
 +
سرد ملفات الوحدة باستخدام systemctl
 +
 +
كيف يمكن سرد ملفات الوحدة؟
 +
 +
(إجابة استرشادية)
 +
 +
يمكن معرفة قائمة ملفات الوحدات المثبتة على النظام من خلال الأمر التالي:
 +
 +
systemctl list-unit-files
 +
 +
أماكن ملفات الوحدة  (أوامر) تشغيل ، تعطيل ، بدء ، إيقاف الخدمة
 +
 +
أين يتم تخزين ملفات الوحدة؟
 +
 +
(إجابة استرشادية)
 +
 +
وتخزن ملفات الوحدة ويتم استدعاؤها في المسارات بالترتيب التالي:
 +
# /etc/systemd/[system]
 +
# /run/systemd/[system]
 +
# /usr/lib/systemd/[system]
 +
والملفات التي تسبق في الترتيب لها الصلاحية في ان تنفذ على حساب الملفات المشابهة الأخرى الأقل منها في الترتيب السابق.
 +
 +
ويمكن التعامل معها من قِبَل مدير النظام من خلال الأمر التالي:
 +
 +
<nowiki>#</nowiki> systemctl [start | stop | status | restart | enable | disable] NAME.service
 +
 +
إخفاء الخدمات
 +
 +
كيف يمكن إخفاء خدمة ما؟
 +
 +
(إجابة استرشادية)
 +
 +
الآن نحن نعرف أن النظام يستخدم ملفات الخدمات التي بالمسار (etc/systemd/) ويقوم بتنفيذها على حساب ملفات الخدمات بالمسارات الأخرى السالف ذكرها. يمكننا الاستفادة من هذا والإستفادة من الروابط المرنة أيضاً لعمل رابط بين ملف الخدمة وملف اللاشئ الموجود تحت ملفات الأجهزة (dev/null/) كالتالي:
 +
 +
<nowiki>#</nowiki> systemctl mask httpd.service
 +
 +
Created symlink from /etc/systemd/system/httpd.service to /dev/null.
 +
 +
وعند تجربة تشغيل الخدمة سنحصل على النتيجة التالية:
 +
 +
<nowiki>#</nowiki> systemctl start httpd.service
 +
 +
Failed to start httpd.service: Unit httpd.service is masked
 +
 +
ويمكن إلغاء الإخفاء من خلال الأمر التالي:
 +
 +
<nowiki>#</nowiki> systemctl unmask httpd.service
 +
 +
تكوين الواجهات الوهمية باستخدام systemd
 +
 +
ما هي الواجهة الوهمية؟
 +
 +
(إجابة استرشادية)
 +
 +
هي واجهة بوابة وهمية للنظام يمكن من خلالها التعامل مع النظام من خلال سطر الأوامر عند إقلاع النظام.
 +
 +
ما أهميتها؟
 +
 +
تكمن أهميتها في انها لا تستهلك من العتاد المتاح والخدمات المضافة بعكس الواجهة الرسومية وقوة التعامل مع سطر الأوامر وفاعليته ،وتستخدم بشكل قوي في التعامل مع الخوادم.
 +
 +
مكوناتها؟
 +
 +
واجهة وهمية لسطر الأوامر ،نستخدم من خلالها لوحة المفاتيح لكتابة الأوامر والتعامل مع النظام.
 +
 +
كيف يمكن تكوين واجهة وهمية بإستخدام systemd؟
 +
 +
يمكن ضبطها من خلال الملف etc/vconsole.conf/
 +
 +
ويمكن ادارتها من خلال systemd عن طريق الأمر التالي:
 +
 +
<nowiki>#</nowiki> systemctl [restart] systemd-vconsole-setup.service
    
==التدريب==
 
==التدريب==
    
[[تصنيف:منهج نواة تقنية]]
 
[[تصنيف:منهج نواة تقنية]]
staff
53

تعديل

قائمة التصفح