عملية إقلاع نظام لينكس

تشغيل نواة لينكس 6.1 على نظام دبيان بوكوورم

تتضمن عملية إقلاع نظام لينكس مراحل متعددة، وهي تشبه إلى حد كبير عمليات إقلاع أنظمة BSD وغيرها من أنظمة يونكس التي اشتُقت منها. ورغم أن عملية إقلاع لينكس تعتمد بشكل كبير على بنية الحاسوب، فإن هذه البنى تشترك في مراحل ومكونات برمجية متشابهة، [ 1 ] بما في ذلك بدء تشغيل النظام، وتنفيذ مُحمِّل الإقلاع ، وتحميل صورة نواة لينكس وبدء تشغيلها ، وتنفيذ مختلف البرامج النصية والخدمات عند بدء التشغيل . [ 2 ] تُصنَّف هذه المراحل إلى أربع خطوات: بدء تشغيل النظام، ومرحلة مُحمِّل الإقلاع، ومرحلة النواة، وعملية التهيئة (init). [ 3 ]

عند تشغيل نظام لينكس أو إعادة ضبطه، يقوم المعالج بتنفيذ برنامج ثابت/برنامج خاص لتهيئة النظام، مثل اختبار التشغيل الذاتي ، مستدعيًا متجه إعادة الضبط لبدء برنامج من عنوان معروف في ذاكرة الفلاش/ذاكرة القراءة فقط (في أجهزة لينكس المدمجة)، ثم تحميل مُحمِّل الإقلاع إلى ذاكرة الوصول العشوائي لتنفيذه لاحقًا. [ 2 ] في أجهزة الكمبيوتر الشخصية المتوافقة مع IBM PC ، يكون هذا البرنامج الثابت/البرنامج إما BIOS أو UEFI ، ويُخزَّن في اللوحة الأم. [ 2 ] في أنظمة لينكس المدمجة، يُطلق على هذا البرنامج الثابت/البرنامج اسم ذاكرة القراءة فقط للإقلاع . [ 4 ] [ 5 ] بعد تحميله في ذاكرة الوصول العشوائي، يقوم مُحمِّل الإقلاع (المعروف أيضًا باسم مُحمِّل الإقلاع من المرحلة الأولى أو مُحمِّل الإقلاع الأساسي) بتنفيذ تحميل مُحمِّل الإقلاع من المرحلة الثانية [ 2 ] (المعروف أيضًا باسم مُحمِّل الإقلاع الثانوي). [ 6 ] يقوم مُحمِّل الإقلاع من المرحلة الثانية بتحميل صورة النواة إلى الذاكرة، وفك ضغطها وتهيئتها، ثم تمرير التحكم إلى صورة النواة هذه. [ 2 ] يقوم مُحمِّل الإقلاع في المرحلة الثانية أيضًا بتنفيذ عدة عمليات على النظام، مثل فحص مكونات النظام المادية، وتركيب جهاز الجذر، وتحميل وحدات النواة اللازمة، وما إلى ذلك. [ 2 ] أخيرًا، تبدأ أول عملية في مساحة المستخدم ، وتُنفَّذ عمليات تهيئة النظام عالية المستوى الأخرى (التي تتضمن نصوص بدء التشغيل). [ 2 ]init

لكل مرحلة ومكون من هذه المراحل، توجد اختلافات وأساليب مختلفة؛ على سبيل المثال، يمكن استخدام GRUB أو systemd-boot أو coreboot أو Das U-Boot كبرامج إقلاع (الأمثلة التاريخية هي LILO أو SYSLINUX أو Loadlin )، في حين يمكن أن تكون نصوص بدء التشغيل إما تقليدية على نمط init ، أو يمكن إجراء تكوين النظام من خلال بدائل حديثة مثل systemd أو runit .

بدء تشغيل النظام

تختلف خطوات بدء تشغيل النظام باختلاف الأجهزة التي يتم تشغيل نظام لينكس عليها. [ 7 ]

تُعد الأجهزة المتوافقة مع IBM PC إحدى البنى التي يُستخدم عليها نظام Linux بشكل شائع؛ وفي هذه الأنظمة، يلعب BIOS أو UEFI دورًا مهمًا.

في أنظمة BIOS، يقوم BIOS بإجراء اختبار التشغيل الذاتي (POST) للتحقق من مكونات النظام، ثم يسرد الأجهزة المحلية، وأخيرًا يُهيئ النظام. [ 7 ] لتهيئة النظام، يبدأ BIOS بالبحث عن جهاز الإقلاع الذي يحتوي على نظام التشغيل. يمكن أن يكون جهاز الإقلاع جهاز تخزين مثل القرص المرن، أو قرص CD-ROM، أو ذاكرة فلاش USB، أو قسم على القرص الصلب (حيث يُخزن القرص الصلب أنظمة تشغيل متعددة، مثل Windows وFedora)، أو جهاز تخزين على الشبكة المحلية، إلخ. [ 7 ] يُخزن القرص الصلب المُخصص لإقلاع Linux سجل الإقلاع الرئيسي (MBR)، الذي يحتوي على مُحمل الإقلاع الأساسي ليتم تحميله في ذاكرة الوصول العشوائي (RAM). [ 7 ]

في أنظمة UEFI، يمكن تشغيل نواة لينكس مباشرةً بواسطة البرامج الثابتة UEFI عبر برنامج EFI boot stub، [ 8 ] ولكنها عادةً ما تستخدم GRUB 2 أو systemd-boot كبرنامج إقلاع. [ 9 ] [ 10 ]

في حال دعم UEFI Secure Boot ، غالبًا ما يقوم UEFI بتشغيل "طبقة وسيطة" أو "محمل تمهيدي" قبل مُحمل الإقلاع أو نواة EFI-stub. [ 11 ] حتى في حال تعطيل UEFI Secure Boot، قد تبقى هذه الطبقة موجودة ويتم تشغيلها تحسبًا لتفعيلها لاحقًا. وظيفتها ببساطة إضافة قاعدة بيانات مفاتيح توقيع إضافية، توفر مفاتيح للتحقق من التوقيع لمراحل الإقلاع اللاحقة دون تعديل قاعدة بيانات مفاتيح UEFI، وتنتقل إلى خطوة الإقلاع اللاحقة بنفس طريقة UEFI.

تبدأ مرحلة بدء تشغيل النظام في نظام لينكس المدمج بتنفيذ البرامج الثابتة/البرنامج الموجود على ذاكرة القراءة فقط (ROM) المدمجة ، والتي بدورها تقوم بتحميل مُحمِّل الإقلاع/نظام التشغيل من وحدة التخزين مثل eMMC أو eUFS أو ذاكرة NAND flash، إلخ. [ 5 ] تختلف تسلسلات بدء تشغيل النظام باختلاف المعالجات [ 5 ولكنها جميعًا تتضمن خطوات تهيئة الأجهزة واختبارها. [ 7 ] على سبيل المثال، في نظام مزود بمعالج i.MX7D وجهاز قابل للإقلاع يخزن نظام التشغيل (بما في ذلك U-Boot)، تقوم ذاكرة القراءة فقط (ROM) المدمجة بتهيئة وحدة تحكم ذاكرة DDR أولًا، مما يسمح لبرنامج ذاكرة القراءة فقط (ROM) بالحصول على بيانات تكوين النظام على شريحة (SoC) من مُحمِّل الإقلاع الخارجي الموجود على الجهاز القابل للإقلاع. [ 5 ] ثم تقوم ذاكرة القراءة فقط (ROM) المدمجة بتحميل U-Boot إلى ذاكرة الوصول العشوائي الديناميكية (DRAM) لمرحلة مُحمِّل الإقلاع. [ 12 ]

مرحلة مُحمّل الإقلاع

في أجهزة الكمبيوتر الشخصية المتوافقة مع IBM PC التي تستخدم BIOS ، يُعد مُحمِّل الإقلاع للمرحلة الأولى، وهو جزء من سجل الإقلاع الرئيسي (MBR)، صورة بحجم 512 بايت تحتوي على رمز البرنامج الخاص بالشركة المصنعة وجدول الأقسام. [ 6 ] كما ذُكر سابقًا في المقدمة، يقوم مُحمِّل الإقلاع للمرحلة الأولى بالعثور على مُحمِّل الإقلاع للمرحلة الثانية وتحميله. [ 6 ] ويتم ذلك من خلال البحث في جدول الأقسام عن قسم نشط. [ 6 ] بعد العثور على قسم نشط، يستمر مُحمِّل الإقلاع للمرحلة الأولى في فحص الأقسام المتبقية في الجدول للتأكد من أنها جميعًا غير نشطة. [ 6 ] بعد هذه الخطوة، يُقرأ سجل إقلاع القسم النشط في ذاكرة الوصول العشوائي (RAM) ويُنفَّذ كمُحمِّل إقلاع للمرحلة الثانية. [ 6 ] وتتمثل مهمة مُحمِّل الإقلاع للمرحلة الثانية في تحميل صورة نواة Linux في الذاكرة، وقرص RAM أولي اختياري. [ 13 ] صورة النواة ليست نواة قابلة للتنفيذ، بل هي "ملف مضغوط" للنواة ، يتم ضغطه إما بتنسيق zImage أو bzImage باستخدام zlib . [ 14 ]

في هذه الأنظمة، عادةً ما يتم توفير مُحمِّلات الإقلاع للمرحلتين الأولى والثانية بواسطة مُحمِّل الإقلاع الموحد GRUB، وكان يتم توفيرها سابقًا بواسطة مُحمِّل لينكس ( LILO ). [ 13 ] يختلف GRUB 2 ، المُستخدم حاليًا، عن GRUB 1 بقدرته على الكشف التلقائي عن أنظمة التشغيل المختلفة وتكوينها تلقائيًا. يتم تحميل المرحلة الأولى (stage1) وتنفيذها بواسطة BIOS من سجل الإقلاع الرئيسي (MBR). يتم تحميل مُحمِّل المرحلة الوسيطة (stage1.5، وعادةً ما يكون core.img) وتنفيذه بواسطة مُحمِّل المرحلة الأولى. يتم تحميل مُحمِّل المرحلة الثانية (stage2، ملفات /boot/grub/) بواسطة stage1.5، ويعرض قائمة بدء تشغيل GRUB التي تُمكِّن المستخدم من اختيار نظام تشغيل أو فحص معلمات بدء التشغيل وتعديلها. بعد اختيار عنصر من القائمة وإدخال المعلمات الاختيارية، يقوم GRUB بتحميل نواة لينكس إلى الذاكرة ويُمرِّر التحكم إليها. كما أن GRUB 2 قادر على التحميل المتسلسل لمُحمِّل إقلاع آخر.

في أنظمة UEFI ، عادةً ما يكون ملف التطبيق UEFI هو نفسه في المرحلة 1 والمرحلة 1.5 (مثل grubx64.efi لأنظمة x64 UEFI).

إلى جانب GRUB، هناك بعض برامج الإقلاع الأكثر شيوعًا:

  • systemd-boot (المعروف سابقًا باسم Gummiboot)، وهو برنامج تحميل الإقلاع المضمن في systemd والذي يتطلب الحد الأدنى من التكوين ( لأنظمة UEFI فقط).
  • SYSLINUX/ISOLINUX هو برنامج إقلاع متخصص في تشغيل أنظمة لينكس الكاملة من أنظمة ملفات FAT. يُستخدم عادةً لأقراص الإقلاع أو الإنقاذ المرنة، ووحدات USB الحية ، وأنظمة الإقلاع الخفيفة الأخرى. ويُستخدم ISOLINUX بشكل عام في أقراص لينكس الحية وأقراص التثبيت القابلة للإقلاع.
  • rEFInd ، مدير إقلاع لأنظمة UEFI .
  • يُعدّ coreboot تطبيقًا مجانيًا لـ UEFI أو BIOS ، ويتم تثبيته عادةً مع اللوحة الأم ، مع توفير ترقيات ميدانية من قِبل المورّد عند الحاجة. تُصبح أجزاء من coreboot جزءًا من BIOS النظام، وتبقى مُخزّنة في الذاكرة بعد بدء التشغيل.
  • يُعدّ برنامج U-Boot برنامج إقلاع للأنظمة المدمجة. ويُستخدم في الأنظمة التي لا تحتوي على BIOS/UEFI، بل تستخدم طرقًا مخصصة لقراءة برنامج الإقلاع في الذاكرة وتنفيذه.

تشمل برامج تحميل الإقلاع التاريخية، التي لم تعد شائعة الاستخدام، ما يلي:

  • لا يفهم نظام LILO/etc/lilo.conf تخطيط نظام الملفات ولا يحلله. بدلاً من ذلك، يتم إنشاء ملف تكوين ( ) في النظام قيد التشغيل، والذي يحدد معلومات الإزاحة الأولية (باستخدام أداة رسم الخرائط) لموقع أقراص النواة وذاكرة الوصول العشوائي (initrd أو initramfs). يُكتب ملف التكوين، الذي يتضمن بيانات مثل قسم التمهيد ومسار النواة لكل قسم، بالإضافة إلى خيارات مخصصة عند الحاجة، مع رمز مُحمل التمهيد في قطاع التمهيد الرئيسي (MBR). عند قراءة قطاع التمهيد هذا ومنحه التحكم من قِبل BIOS، يقوم LILO بتحميل رمز القائمة ورسمه، ثم يستخدم القيم المخزنة مع مدخلات المستخدم لحساب وتحميل نواة Linux أو تحميل أي مُحمل تمهيد آخر .
  • يتضمن GRUB 1 منطقًا لقراءة أنظمة الملفات الشائعة أثناء التشغيل للوصول إلى ملف التكوين الخاص به. [ 15 ] وهذا يُمكّن GRUB 1 من قراءة ملف التكوين من نظام الملفات مباشرةً بدلاً من تضمينه في سجل التمهيد الرئيسي (MBR)، مما يسمح له بتغيير التكوين أثناء التشغيل وتحديد الأقراص والأقسام بتنسيق سهل القراءة بدلاً من الاعتماد على الإزاحات. كما يحتوي على واجهة سطر أوامر ، مما يُسهّل إصلاح GRUB أو تعديله في حال كان تكوينه خاطئًا أو تالفًا. [ 16 ]
  • Loadlin هو برنامج إقلاع يُمكنه استبدال نواة نظام التشغيل DOS أو Windows 9x بنواة Linux أثناء التشغيل. يُعدّ هذا مفيدًا في حالة الأجهزة التي تتطلب تشغيلها عبر البرامج، والتي تكون برامج تهيئة هذه الأجهزة حصرية ومتاحة فقط لنظام DOS. أصبحت هذه الطريقة أقل ضرورة في الوقت الحاضر، نظرًا لوجود برامج تشغيل Linux للعديد من الأجهزة، ولكنها لا تزال تُستخدم في بعض الأجهزة المحمولة . يُستخدم هذا البرنامج أيضًا عندما يكون نظام Linux موجودًا على وحدة تخزين غير متاحة لنظام BIOS للإقلاع: حيث يُمكن لنظامي DOS أو Windows تحميل برامج التشغيل المناسبة لتجاوز قيود BIOS، ثم تشغيل Linux من هناك.

النواة

تأتي مرحلة النواة بعد مرحلة مُحمِّل الإقلاع. تتولى نواة لينكس إدارة جميع عمليات نظام التشغيل، مثل إدارة الذاكرة ، وجدولة المهام ، والإدخال /الإخراج ، والتواصل بين العمليات ، والتحكم العام بالنظام. يتم تحميلها على مرحلتين : في المرحلة الأولى، تُحمَّل النواة (كملف صورة مضغوط) في الذاكرة ويتم فك ضغطها، وتُهيأ بعض الوظائف الأساسية مثل إدارة الذاكرة الأساسية، والحد الأدنى من تهيئة الأجهزة. [ 14 ] يتم فك ضغط صورة النواة ذاتيًا، وهو جزء من روتين صورة النواة. [ 14 ] بالنسبة لبعض المنصات (مثل ARM 64 بت)، يجب أن يقوم مُحمِّل الإقلاع، مثل U-Boot، بفك ضغط النواة. [ 17 ]

للحصول على تفاصيل هذه الخطوات، لنأخذ مثالًا مع معالج i386 . عند استدعاء bzImage الخاص به، يتم استدعاء دالة start()(من ) لإجراء بعض الإعدادات الأساسية للأجهزة، ثم تستدعي (الموجودة في ). [ 14 ] تقوم هذه الدالة بإعداد البيئة الأساسية (المكدس، وما إلى ذلك)، وتمسح قسم الكتلة التي بدأها الرمز (BSS)، ثم تستدعي (الموجودة في ) لفك ضغط النواة. [ 14 ] بعد ذلك، يتم تنفيذ بدء تشغيل النواة عبر دالة مختلفة موجودة في . [ 14 ] تقوم دالة بدء تشغيل النواة (وتسمى أيضًا المُبدِّل أو العملية 0) بإنشاء إدارة الذاكرة (جداول الترحيل وترحيل الذاكرة)، وتكتشف نوع وحدة المعالجة المركزية وأي وظائف إضافية مثل إمكانيات الفاصلة العائمة ، ثم تنتقل إلى وظائف نواة لينكس غير الخاصة ببنية معينة عبر استدعاء موجود في . [ 14 ]./arch/i386/boot/head.Sstartup_32()./arch/i386/boot/compressed/head.Sstartup_32()decompress_kernel()./arch/i386/boot/compressed/misc.cstartup_32()./arch/i386/kernel/head.Sstartup_32()start_kernel()./init/main.c

start_kernel()ينفذ مجموعة واسعة من وظائف التهيئة. فهو يُهيئ معالجة المقاطعات ( IRQs )، ويُهيئ الذاكرة، ويُركب قرص ذاكرة الوصول العشوائي الأولي ("initrd") الذي تم تحميله مسبقًا كنظام ملفات جذر مؤقت أثناء مرحلة مُحمل الإقلاع. [ 14 ] يسمح initrd، الذي يعمل كنظام ملفات جذر مؤقت في ذاكرة الوصول العشوائي، بتشغيل النواة بالكامل وتحميل وحدات تعريف الأجهزة مباشرةً من الذاكرة، دون الاعتماد على أجهزة أخرى (مثل القرص الصلب). [ 14 ] يحتوي initrd عادةً على الوحدات اللازمة للتفاعل مع وحدات التخزين الطرفية، [ 14 ] مثل برنامج تشغيل SATA، ويدعم عددًا كبيرًا من تكوينات الأجهزة الممكنة. [ 14 ] هذا الفصل بين بعض برامج التشغيل المُضمنة بشكل ثابت في النواة وبرامج التشغيل الأخرى المُحملة من initrd يسمح بنواة أصغر حجمًا. [ 14 ] نظام الملفات المؤقت initramfs ، المعروف أيضًا باسم مساحة المستخدم المبكرة، متوفر منذ الإصدار 2.5.46 من نواة لينكس، [ 18 ] بهدف استبدال أكبر عدد ممكن من الوظائف التي كانت النواة تؤديها سابقًا أثناء عملية بدء التشغيل. من الاستخدامات الشائعة لمساحة المستخدم المبكرة اكتشاف برامج تشغيل الأجهزة اللازمة لتحميل نظام ملفات مساحة المستخدم الرئيسي وتحميلها من نظام ملفات مؤقت . تستخدم العديد من التوزيعات أداة dracut لإنشاء صورة initramfs وصيانتها.

يتم لاحقًا تبديل نظام الملفات الجذر عبر استدعاء pivot_root()يقوم بفصل نظام الملفات الجذر المؤقت واستبداله بنظام الملفات الجذر الحقيقي، بمجرد أن يصبح الأخير متاحًا. [ 14 ] ثم يتم استعادة الذاكرة التي كان يستخدمها نظام الملفات الجذر المؤقت.

وأخيرًا، يتم استدعاء kernel_thread(في arch/i386/kernel/process.c) لبدء عملية Init (أول عملية في مساحة المستخدم)، ثم تبدأ المهمة الخاملة عبر cpu_idle(). [ 14 ]

وبالتالي، تقوم مرحلة النواة بتهيئة الأجهزة، وتركيب نظام الملفات الجذر المحدد بواسطة مُحمِّل الإقلاع كقراءة فقط ، وتشغيل عملية Init ( /sbin/init) التي تُعتبر أول عملية يُشغِّلها النظام ( PID = 1). [ 19 ] تُطبع رسالة من قِبل النواة عند تركيب نظام الملفات، ومن قِبل عملية Init عند بدء تشغيلها. [ 19 ]

وفقًا لشركة Red Hat ، فإن عملية النواة التفصيلية في هذه المرحلة يمكن تلخيصها على النحو التالي: [ 15 ]

عند تحميل نواة النظام، تقوم فورًا بتهيئة ذاكرة الحاسوب وتكوينها، بالإضافة إلى تهيئة مختلف مكونات الجهاز المتصلة به، بما في ذلك جميع المعالجات ووحدات الإدخال/الإخراج وأجهزة التخزين. ثم تبحث عن صورة initrd المضغوطة في موقع محدد مسبقًا في الذاكرة، وتفك ضغطها، وتثبتها، وتحمل جميع برامج التشغيل اللازمة. بعد ذلك، تُهيئ الأجهزة الافتراضية المتعلقة بنظام الملفات، مثل LVM أو RAID البرمجي، قبل فصل صورة قرص initrd وتحرير جميع الذاكرة التي كانت تشغلها. ثم تُنشئ النواة جهاز جذر، وتثبت قسم الجذر للقراءة فقط، وتُحرر أي ذاكرة غير مستخدمة. عند هذه النقطة، تكون النواة قد حُمّلت في الذاكرة وأصبحت جاهزة للعمل. مع ذلك، نظرًا لعدم وجود تطبيقات مستخدم تسمح بإدخال بيانات مفيدة إلى النظام، فلا يُمكن فعل الكثير بها. يُشبه التمهيد بنمط initramfs التمهيد الموصوف بنمط initrd، ولكنه ليس مطابقًا له تمامًا.

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

عملية التهيئة

بمجرد بدء تشغيل النواة، تبدأ عملية التهيئة (init) ، وهي عملية تعمل في الخلفية ( daemon ) تقوم بدورها بتهيئة مساحة المستخدم ، على سبيل المثال عن طريق فحص أنظمة الملفات وتركيبها ، ثم تبدأ عمليات أخرى . نظام التهيئة هو أول عملية تعمل في الخلفية (أثناء بدء التشغيل) وآخر عملية تعمل في الخلفية (أثناء إيقاف التشغيل ).

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

  • عملية بدء التشغيل في SysV ( المعروفة اختصارًا بـ "init") تُشبه عملية بدء التشغيل في نظام UNIX System V. في نظام Linux القياسي، تُنفَّذ عملية بدء التشغيل باستخدام مُعامل يُعرف باسم مستوى التشغيل ، والذي يأخذ قيمة من 0 إلى 6 ويُحدد الأنظمة الفرعية التي سيتم تشغيلها. لكل مستوى تشغيل نصوص برمجية خاصة به تُشفِّر العمليات المختلفة المُشاركة في إعداد أو إنهاء مستوى التشغيل المُحدد، وهذه النصوص البرمجية هي التي يُشار إليها عند الضرورة في عملية بدء التشغيل. عادةً ما تُحفظ نصوص بدء التشغيل في مجلدات تحمل أسماءً مثل "/etc/rc...". يوجد ملف التكوين الرئيسي لعملية بدء التشغيل في /etc/inittab. [ 21 ] أثناء بدء تشغيل النظام، تتحقق العملية مما إذا كان مستوى التشغيل الافتراضي مُحددًا في /etc/inittab، وإذا لم يكن كذلك، تطلب مستوى التشغيل للدخول إليه عبر وحدة تحكم النظام . ثم تُباشر تشغيل جميع نصوص بدء التشغيل ذات الصلة بمستوى التشغيل المُحدد، بما في ذلك تحميل الوحدات النمطية، والتحقق من سلامة نظام الملفات الجذر (الذي تم تركيبه للقراءة فقط) ثم إعادة تركيبه للوصول الكامل للقراءة والكتابة، وإعداد الشبكة . [ 19 ] بعد أن يقوم برنامج init بإنشاء جميع العمليات المحددة، يدخل في حالة سكون، وينتظر حدوث أحد ثلاثة أحداث: انتهاء العمليات التي بدأت أو توقفها، أو إشارة انقطاع التيار الكهربائي، أو طلب /sbin/telinitلتغيير مستوى التشغيل بشكل إضافي. [ 22 ]
  • يُعدّ systemd بديلاً عصرياً لبرنامج SysV init. وكما هو الحال مع init، فإن systemd عبارة عن خدمة خلفية تُدير خدمات خلفية أخرى. جميع الخدمات الخلفية، بما فيها systemd، هي عمليات تعمل في الخلفية . سعى لينارت بوتيرينغ وكاي سيفرز ، مهندسا البرمجيات اللذان طورا systemd في البداية، [ 23 ] إلى تجاوز كفاءة خدمة init الخلفية بعدة طرق. فقد أرادا تحسين إطار عمل البرمجيات للتعبير عن التبعيات، والسماح بمزيد من المعالجة المتوازية أثناء بدء تشغيل النظام، وتقليل العبء الحسابي للصدفة . تُسجّل تعليمات تهيئة systemd لكل خدمة خلفية في ملف تكوين تصريحي بدلاً من نص برمجي للصدفة. وللتواصل بين العمليات ، يُتيح systemd مقابس نطاق Unix و D-Bus للخدمات الخلفية قيد التشغيل. كما يتميز systemd بقدرته على المعالجة المتوازية المتقدمة.

انظر أيضاً

مراجع

  1. م. تيم جونز 2006 ، "مقدمة"، "تتكون عملية تشغيل نظام لينكس® من عدد من المراحل. ولكن سواء كنت تقوم بتشغيل جهاز مكتبي قياسي x86 أو جهاز PowerPC® مضمن بعمق، فإن الكثير من التدفق متشابه بشكل مدهش."
  2. 1 2 3 4 5 6 7 م. تيم جونز 2006 ، "نظرة عامة"، "الشكل 1. نظرة شاملة على عملية بدء تشغيل لينكس"
  3. م. تيم جونز 2006 ، "عملية إقلاع نظام لينكس مجمعة في 4 مراحل، بناءً على مصدر IBM"
  4. بين، نيو؛ ديجيان، لي؛ تشانغجيان، لو؛ ليكسين، يانغ؛ تشيهوا، باي؛ لونغلونغ، هي؛ شنغ، ليو (أغسطس 2020). بحث وتصميم ذاكرة قراءة فقط قابلة للتمهيد تدعم وضع التمهيد الآمن . الندوة الدولية لعام 2020 حول هندسة الحاسوب والاتصالات الذكية (ISCEIC). الصفحات 5-8 . doi : 10.1109/ISCEIC51027.2020.00009 . ISBN  978-1-7281-8171-4. S2CID 231714880 . 
  5. 1 2 3 4 ألبرتو ليبرال دي لوس ريوس 2017 ، ص. 28، "عملية تمهيد نظام التشغيل Linux".
  6. 1 2 3 4 5 6 م. تيم جونز 2006 ، "محمل التمهيد المرحلة 1".
  7. 1 2 3 4 5 م. تيم جونز 2006 ، "بدء تشغيل النظام".
  8. "EFI stub kernel - Gentoo Wiki" . wiki.gentoo.org . تم الاطلاع عليه بتاريخ 2020-11-02 .
  9. كيني، مايكل (1 سبتمبر 2000). "حل مشاكل إقلاع BIOS مع EFI" (ملف PDF) . الصفحات 47-50 . مؤرشف من الأصل (ملف PDF) في 23 يناير 2007. تم الاطلاع عليه في 14 سبتمبر 2010 . 
  10. "مايكروسوفت تنفي أن خاصية التمهيد الآمن ستستبعد نظام لينكس" . ذا ريجستر. 23 سبتمبر 2011. تم الاطلاع عليه بتاريخ 24 سبتمبر 2011 .
  11. "استخدام مُحمِّل إقلاع مُوقَّع - ويكي آرتش" . wiki.archlinux.org . تم الاطلاع عليه بتاريخ 2024-12-05 .
  12. ^ ألبرتو ليبرال دي لوس ريوس 2017 ، ص. 29، "عملية تمهيد نظام التشغيل Linux".
  13. 1 2 م. تيم جونز 2006 ، "محمل التمهيد من المرحلة 2".
  14. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 م . تيم جونز 2006 ، "Kernel".
  15. 1 2 "وثائق المنتج" . Redhat.com. 30-09-2013. مؤرشف من الأصل بتاريخ 30-08-2008 . تم الاطلاع عليه بتاريخ 22-01-2014 .
  16. "وثائق المنتج" . Redhat.com. 30-09-2013 . تم الاطلاع عليه بتاريخ 22-01-2014 .
  17. ^ ألبرتو ليبرال دي لوس ريوس 2017 ، ص. 20، "محمل الإقلاع".
  18. كوربيت، جوناثان (6 نوفمبر 2002). "وصول Initramfs" . تم الاسترجاع في 14 نوفمبر 2011 .
  19. 1 2 3 http://oldfield.wattle.id.au/luv/boot.html عملية إقلاع نظام لينكس - بقلم كيم أولدفيلد (2001)
  20. م. تيم جونز 2006 ، "Init".
  21. "من Power Up إلى موجه أوامر Bash: Init" . users.cecs.anu.edu.au .
  22. "init" . man.he.net .
  23. "ملف تعليمات systemd" . freedesktop.org . تم الاطلاع عليه بتاريخ 9 سبتمبر 2012 .

المراجع

  • إم. تيم جونز (31 مايو 2006). "داخل عملية إقلاع لينكس" . آي بي إم . مؤرشف من الأصل بتاريخ 11 أكتوبر 2007. تم الاطلاع عليه بتاريخ 14 يناير 2024 .
  • ألبرتو ليبرال دي لوس ريوس (2017). تطوير برنامج تشغيل Linux للمعالجات المضمنة (  الطبعة الثانية). الافتتاحية سيركولو روجو؛ الطبعة الأولى (نشرت في 3 مارس 2017). رقم ISBN 978-8491600190.