English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

عملية بدء النظام لينكس

عند بدء تشغيل Linux سنرى الكثير من معلومات الإقلاع.

عملية إقلاع نظام Linux ليس معقدة كما يعتقد الكثيرون، ويمكن تقسيمها إلى 5 مراحل:

  • إقلاع النواة.

  • تشغيل init.

  • تهيئة النظام.

  • إنشاء الطرفية.

  • الانضمام إلى النظام.

نوع برنامج init:

  • SysV: init، قبل CentOS 5، ملفات التكوين: /etc/inittab.

  • Upstart: init، CentOS 6، ملفات التكوين: /etc/inittab، /etc/init/*.conf.

  • Systemd: Systemd، CentOS 7، ملفات التكوين: /usr/lib/systemd/system، /etc/systemd/system.

إقلاع النواة

عند تشغيل الحاسوب، أولاً يتم إجراء فحص التشغيل التلقائي للBIOS، ويبدأ في التشغيل وفقًا للجهاز المحدد في BIOS (عادةً هو القرص الصلب).

بعد أن يسيطر النظام التشغيل على الأجهزة، أولاً يقرأ ملف النواة الموجود في مجلد /boot.

تشغيل init

يعد عملية init نقطة البداية لجميع عمليات النظام، يمكنك مقارنته بجدد الأجداد لجميع عمليات النظام، بدون هذه العملية، لن يبدأ أي عملية في النظام.

يبدأ برنامج init أولاً في قراءة ملف التكوين /etc/inittab.

مستوى التشغيل

تحتاج العديد من البرامج إلى بدء التشغيل. تُسمى "خدمة" (service) في Windows، وتُسمى "مخدمة" (daemon) في Linux.

واحدة من المهام الكبيرة لـ init هي تشغيل هذه البرامج البدءية.

لكن، تحتاج الظروف المختلفة إلى تشغيل برامج مختلفة، مثل تشغيل Apache عند استخدامها كخادم، ولا تحتاج إلى ذلك عند استخدامها كلوحة مفاتيح.

يسمح Linux بتخصيص برامج بدء التشغيل المختلفة للظروف المختلفة، ويُسمى هذا "مستوى التشغيل" (runlevel). أي أن يتم تحديد البرامج التي يجب تشغيلها عند بدء التشغيل بناءً على "مستوى التشغيل".

يملك نظام Linux 7 مستويات تشغيل (runlevel):

  • مستوى تشغيل 0: حالة إيقاف النظام، لا يمكن تعيين مستوى التشغيل الافتراضي على 0، وإلا لن يمكن تشغيل النظام بشكل طبيعي

  • مستوى تشغيل 1: حالة عمل مستخدم واحد، صلاحيات root، تستخدم للصيانة النظام، يمنع الولوج عن بعد

  • مستوى تشغيل 2: حالة مستخدم متعدد (بدون استخدام NFS)

  • مستوى تشغيل 3: حالة مستخدم متعدد بشكل كامل (باستخدام NFS)، بعد الولوج يدخل إلى نمط سطر الأوامر الخاص بالشاشة

  • مستوى تشغيل 4: غير مستخدم، محفوظ

  • مستوى تشغيل 5: عارض X11، بعد الولوج يدخل إلى نمط GUI

  • مستوى تشغيل 6: إغلاق النظام وإعادة التشغيل بشكل طبيعي، لا يمكن تعيين مستوى التشغيل الافتراضي على 6، وإلا لن يمكن تشغيل النظام بشكل طبيعي

تأسيس النظام

في ملف تكوين init هناك سطر مثل هذا: si::sysinit:/etc/rc.d/rc.sysinit، إنه يُطلق تنفيذ /etc/rc.d/rc.sysinit، وrc.sysinit هو سكربت bash shell، ويقوم بشكل رئيسي بتنفيذ بعض المهام التأسيسية للنظام، rc.sysinit هو سكربت مهم يجب تشغيله أولاً في كل مستوى تشغيل.

أهم المهام التي يقوم بها: تشغيل منطقة تبادل التبادل، فحص القرص، تحميل وحدات الأجهزة وأي مهام أخرى يجب تنفيذها أولاً.

l5:5:wait:/etc/rc.d/rc 5

هذا السطر يمثل تشغيل /etc/rc.d/rc مع 参数 5،/etc/rc.d/rc هو سكربت Shell، ويقبل 5 كمعامل، لتنفيذ جميع سكريبات بدء rc في مجلد /etc/rc.d/rc5.d/، هذه سكريبات بدء في مجلد /etc/rc.d/rc5.d/ هي في الواقع ملفات رابط وليست سكريبات بدء rc الحقيقية، السكريبات الحقيقية لبدء rc موجودة في مجلد /etc/rc.d/init.d/.

ويستخدم هذه سكربتات بدء rc نفس الطريقة، وعادة ما يمكنها قبول معاملات مثل start، stop، restart، status وما إلى ذلك.

سكربتات بدء rc في /etc/rc.d/rc5.d غالباً ما تكون ملفات اتصال تبدأ بـ K أو S، وللسكربتات التي تبدأ بـ S، سيتم تشغيلها باستخدام معامل start.

وإذا تم العثور على سكربت مرتبط بالـ K مع الاتصال، وتم تشغيله بالفعل (كعلامة في ملفات /var/lock/subsys/)، فإنه سيتم أولاً وقف هذه الخدمات الحارسية التي تم تشغيلها بالفعل باستخدام معامل stop، ثم إعادة تشغيلها.

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

بالنسبة للخدمات الحارسية التي سيتم تشغيلها في كل مستوى تشغيل، يمكن للمستخدمين إعدادها بأنفسهم عبر chkconfig أو "خدمات النظام" في setup.

إنشاء التيرمينال

بعد إكمال rc، سيقوم المبدأ بالعودة إلى المبدأ. عند هذا الوقت، تم إعداد بيئة النظام الأساسي بشكل عام، وقد تم بدء جميع الخدمات الحارسية.

سيفتح المبدأ 6 تيرمينالات لتمكين المستخدمين من تسجيل الدخول إلى النظام. في السطور الست التالية في inittab، يتم تعريف 6 تيرمينالات:

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

من الجانب السابق يمكن ملاحظة أن مينجيتي ستعمل بنظام respawn في مستويات التشغيل 2،3،4،5، ويمكنها فتح الترميز والتعيين.

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

تسجيل الدخول للمستخدم إلى النظام

في العادة، هناك ثلاث طرق لتسجيل الدخول للمستخدمين:

  • (1) تسجيل الدخول عبر سطر الأوامر

  • (2) تسجيل الدخول عبر ssh

  • (3) تسجيل الدخول عبر واجهة الرسوميات

بالنسبة للمستخدمين الذين يعملون بنظام التشغيل المعدل إلى 5 بطريقة الرسوميات، يتم تسجيل دخولهم عبر واجهة تسجيل دخول رسومية. بعد إتمام الدخول بنجاح، يمكنهم الدخول مباشرة إلى KDE، Gnome، وإدارة النوافذ الأخرى.

ويشمل هذا المقال بشكل رئيسي حالة الدخول عبر طريقة النصوص: عندما نرى واجهة تسجيل الدخول لمينجيتي، يمكننا إدخال اسم المستخدم وكلمة المرور لتسجيل الدخول إلى النظام.

برنامج التحقق من الحسابات في Linux هو login، حيث يستقبل login اسم المستخدم كمعامل من mingetty.

ثم يقوم login بتحليل اسم المستخدم: إذا كان اسم المستخدم ليس root، وكان ملف /etc/nologin موجودًا، فإن login سيقوم بطباعة محتويات ملف nologin وسيخرج.

يُستخدم هذا عادةً لمنع تسجيل الدخول للمستخدمين غير الجذر أثناء صيانة النظام. يمكن للجذر فقط التسجيل الدخول إلى الأجهزة المسجلة في ملف /etc/securetty، إذا لم يكن هذا الملف موجودًا، يمكن للجذر التسجيل الدخول إلى أي جهاز.

يستخدم ملف /etc/usertty لتقديم قيود إضافية على المستخدم، إذا لم يكن هذا الملف موجودًا، فإن هناك لا توجد قيود أخرى.

بعد تحليل اسم المستخدم، سيبحث login في ملفات /etc/passwd و /etc/shadow لتحقق من كلمة المرور وتعيين معلومات الحساب الأخرى، مثل: ما هو المجلد الرئيسي، أي الشل يُستخدم. إذا لم يتم تحديد مجلد رئيسي، سيكون المجلد الافتراضي هو مجلد الجذر؛ إذا لم يتم تحديد الشل، سيكون الشل الافتراضي هو /bin/bash.

طريقة التبديل بين الوضع الرسومي والنصي

يقدم Linux ست نافذات أوصافية لل终端ات للأوامر لنتحرك من خلالها.

بالافتراض، نحن ندخل إلى النافذة الأولى، وهي tty1، وتلك الست نافذات هي tty1, tty2 … tty6، يمكنك استخدام Ctrl + Alt + F1 ~ F6 للتبديل بينها.

إذا كنت قد قمت بتثبيت واجهة الرسوميات، فإن الوضع الافتراضي هو الدخول إلى واجهة الرسوميات، حيث يمكنك استخدام Ctrl + Alt + F1 ~ F6 للدخول إلى إحدى واجهات نافذة الأوامر.

عندما تدخل إلى واجهة نافذة الأوامر، يمكنك العودة إلى واجهة الرسوميات فقط بالضغط على Ctrl + Alt + F7.

إذا كنت تستخدم واجهة التشغيل الافتراضية VMware، فإن مفتاح التبديل السريع للنافذة الإرشادية هو Alt + Space + F1 ~ F6. إذا كنت في واجهة الرسوميات، فأضغط Alt + Shift + Ctrl + F1 ~ F6 للانتقال إلى نافذة الأوامر.

إيقاف الجهاز في Linux

في مجال Linux، يستخدم غالبًا في الخوادم، ويتم رؤية عملية إيقاف الجهاز نادرًا. بعد كل شيء، يُعتبر تشغيل خدمة على الخادم عملية لا تنتهي أبدًا، ما لم تكن هناك ظروف خاصة تجبرك على إيقاف الجهاز.

مسار إيقاف الجهاز الصحيح هو: sync > shutdown > reboot > halt

أمر إيقاف الجهاز هو: shutdown، يمكنك استخدام الأمر man shutdown لمعاينة ملف المساعدة.

على سبيل المثال، يمكنك تشغيل الأمر التالي لإيقاف الجهاز:

sync ينسخ البيانات من ذاكرة الوصول العشوائي إلى القرص الصلب.
أمر إيقاف التشغيل shutdown، يمكنك تشغيل man shutdown لقراءة ملف المساعدة. على سبيل المثال، يمكنك تشغيل الأمر التالي لإيقاف التشغيل:
shutdown –h 10 ‘This server will shutdown after 10 mins’ هذا الأمر يخبر الجميع أن الكمبيوتر سيقوم بإيقاف التشغيل بعد 10 دقائق، وسيتم عرضه على الشاشة الحالية للمستخدمين المسجلين
shutdown –h now النظام سيقوم بإيقاف التشغيل على الفور
shutdown –h 20:25 النظام سيقوم بإيقاف التشغيل اليوم في الساعة 20:25
shutdown –h +10 النظام سيقوم بإيقاف التشغيل بعد 10 دقائق
shutdown –r now النظام سيقوم بإعادة التشغيل على الفور
shutdown –r +10 النظام سيقوم بإعادة التشغيل بعد 10 دقائق
reboot إعادة التشغيل، يعادل shutdown –r now
halt إغلاق النظام، يعادل shutdown –h now وpoweroff

في الختام، سواء كنت ترغب في إعادة تشغيل النظام أو إيقافه، يجب أولاً تشغيل sync أمر، لتبديل البيانات في الذاكرة إلى القرص الصلب.

الأوامر لإيقاف التشغيل shutdown –h now halt poweroff و init 0 , الأوامر لإعادة التشغيل shutdown –r now reboot init 6.

المقالات المرجعية: