دليل أساسي لعملية تشغيل لينكس

كل مرة تقوم فيها بتشغيل حاسوبك بنظام Linux، يمر بسلسلة من المراحل قبل عرض شاشة تسجيل الدخول التي تطلب اسم المستخدم أو كلمة المرور الخاصة بك. هناك 4 مراحل متميزة يمر بها كل توزيعة Linux خلال عملية التشغيل النموذجية.

User Login Prompt

في هذا الدليل، سنسلط الضوء على الخطوات المختلفة التي يتخذها نظام التشغيل Linux من وقت تشغيله حتى تسجيل الدخول. يرجى ملاحظة أن هذا الدليل يأخذ بعين الاعتبار فقط مشغل الإقلاع GRUB2 ومبدأ systemd للبدء حيث أنهما يستخدمان حاليًا بشكل واسع من قبل توزيعات Linux الحديثة.

عملية التشغيل تمر بالخطوات الأربع التالية التي سنناقشها بتفصيل أكبر:

  • فحص سلامة BIOS (POST)
  • تحميل مشغل الإقلاع (GRUB2)
  • تهيئة النواة
  • بدء systemd، الأب الأعلى لجميع العمليات

1. فحص سلامة BIOS (POST)

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

عندما يقوم نظام Linux بالتشغيل، يبدأ BIOS (Basic Input Output System) ويقوم بإجراء اختبار ذاتي للتشغيل (POST). هذا هو فحص سلامة يقوم بإجراء العديد من الفحوص التشخيصية.

يقوم الـ POST بفحص قابلية تشغيل العتاد للمكونات مثل HDD أو SSD, لوحة المفاتيح, RAM, منافذ USB, وأي جهاز عتاد آخر. إذا لم يتم اكتشاف جهاز عتاد ما، أو إذا كان هناك عطل في أي من الأجهزة مثل هارد ديسك أو SSD معطوب، يتم عرض رسالة خطأ على الشاشة تطلب تدخلك.

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

2. محمل التشغيل (GRUB2)

بمجرد اكتمال POST وتأكيد خلو الساحة، يقوم BIOS بفحص MBR (Master Boot Record) للمعلومات المتعلقة بمحمل التشغيل وتقسيم القرص.

الـ MBR هو كود بحجم 512 بايت يقع في القطاع الأول من القرص الصلب الذي يكون عادةً /dev/sda أو /dev/hda اعتمادًا على هندسة قرصك الصلب. علمًا، ومع ذلك، أنه في بعض الأحيان يمكن أن يقع الـ MBR على USB تشغيلي أو DVD تثبيت لنظام Linux.

هناك 3 أنواع رئيسية من محملات التشغيل في نظام Linux: LILO, GRUB, و GRUB2. محمل التشغيل GRUB2 هو أحدث محمل تشغيل رئيسي في توزيعات Linux الحديثة ويوجه قرارنا بتجاهل النوعين الآخرين التي أصبحتا قديمتين مع مرور الوقت.

GRUB2 تعني إختصاراً GRand Unified Bootloader الإصدار 2. بمجرد أن يحدد الـ BIOS موقع محمل grub2، يقوم بتنفيذه وتحميله إلى الذاكرة الرئيسية (RAM).

يسمح قائمة grub2 بعمل بعض الأشياء. تسمح لك باختيار إصدار نواة Linux الذي ترغب في استخدامه. إذا كنت قد قمت بترقية نظامك عدة مرات، قد ترى قوائم بإصدارات نواة مختلفة. بالإضافة إلى ذلك، تمنحك القدرة على تحرير بعض معلمات النواة عن طريق الضغط على مجموعة من مفاتيح لوحة المفاتيح.

Select Kernel Version

أيضًا، في إعداد التشغيل المزدوج حيث يكون لديك تثبيتات نظام التشغيل المتعددة، تسمح لك قائمة grub بتحديد أي نظام تشغيل للتمهيد إليه. ملف تكوين grub2 هو ملف /boot/grub2/grub2.cfg. الهدف الرئيسي لـ GRUB هو تحميل نواة Linux إلى الذاكرة الرئيسية.

3. بدء تشغيل النواة

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

Kernel Initialization Process

البدء هو دائمًا أول برنامج يتم تنفيذه ويتم تعيين معرف العملية أو PID الخاص به إلى 1. إنه عملية البدء التي تنشئ مختلف الخدمات وتقوم بتركيب جميع الأقسام التي يتم تحديدها في ملف /etc/fstab.

ثم يقوم النواة بتركيب القرص الرئيسي العشوائي (initrd) الذي يعتبر نظام ملفات جذري مؤقت حتى يتم تركيب النظام الحقيقي للملفات الجذرية. يتم توضع جميع النوى في الدليل /boot بالإضافة إلى صورة القرص الرئيسي العشوائي الأولي.

4.بدء تشغيل سيستمدي

ثم تقوم النواة بتحميل سيستمدي، وهو بديل للبدء القديم SysV. سيستمدي هو أم العمليات اللينكسية جميعها ويدير، بين أمور أخرى، تركيب ملفات النظام، وبدء وإيقاف الخدمات للإشارة فقط.

يستخدم سيستمدي الملف /etc/systemd/system/default.target لتحديد الحالة أو الهدف الذي يجب أن يقوم النظام اللينكسي بالتمهيد إليه.

  • بالنسبة لمحطة العمل سطح المكتب (مع واجهة رسومية)، قيمة الهدف الافتراضية هي 5 وهو ما يعادل مستوى التشغيل 5 للبدء القديم SystemV.
  • بالنسبة لخادم، الهدف الافتراضي هو multi-user.target الذي يقابل مستوى التشغيل 3 في بدء SysV.

وفيما يلي تفصيل لأهداف سيستمدي:

  • poweroff.target (مستوى التشغيل 0): إيقاف تشغيل النظام.
  • rescue.target (مستوى التشغيل 1): يشغل جلسة قشرة إنقاذ.
  • multi-user.target (مستوى التشغيل 2,3,4): يكوِّن النظام ليكون نظامًا متعدد المستخدمين غير رسومي (وحيد المحطة).
  • الهدف الرسومي (مستوى التشغيل 5): قم بتعيين النظام لاستخدام واجهة مستخدم رسومية متعددة مع خدمات الشبكة.
  • الهدف إعادة التشغيل (مستوى التشغيل 6): يقوم بإعادة تشغيل النظام.

للتحقق من الهدف الحالي على نظامك، قم بتشغيل الأمر:

$ systemctl get-default
Check Run Level

يمكنك التبديل من هدف إلى آخر عن طريق تشغيل الأمر التالي في الطرفية:

$ init runlevel-value

على سبيل المثال، يقوم init 3 بتهيئة النظام لحالة غير رسومية.

أمر init 6 يقوم بإعادة تشغيل النظام الخاص بك وinit 0 يقوم بإيقاف تشغيل النظام. تأكد من استدعاء أمر sudo عندما ترغب في التبديل إلى هذين الهدفين.

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

Source:
https://www.tecmint.com/linux-boot-process/