شهدت السنوات الأخيرة انتقال توزيعات لينِكس على نحو متزايد من أنظمة init الأخرى إلى systemd ,
و يتكوّن نظام التمهيد systemd من مجموعة من الأدوات التي تمثّل منصة مركزية لإدارة نظام لينكس وإعداده , و لهذا و بحكم أهمية هذا الجزء من نظام لينكس , سنتعرف اليوم على مفهوم الخدمات على لينكس , كما سنتعرف على أساسيات و مبادئ نظام إدارة الخدمات systemd , و سيكون هذا الدرس بمثابة مقدمة نظرية تمهد لنا الطريق نحو الدرس التطبيقي .
أولا ما رأيك أن تراجع الدروس الساق من هذه السلسة حول نظام لينكس :
تعرف على هيكلية نظام الملفات في لينكس ( الجزء 1 )
تعرف على أهم المسارات في نظام ملفات لينكس ( الجزء 2 )
أهم الاوامر التي قد تهمك على نظام لينكس ( الجزء 3 )
نبدأ أوّلا بنظرة عامّة على ما يحدُث ابتداءً من اللحظة التي تشغّل فيها زرّ الطاقة إلى اللحظة التي تظهر فيها شاشة تسجيل الدخول :
لمن يعمل في نظم اللينكس و اليونيكس, أو النظم المشتقة عنهما, تعرف هذه الخدمة أو هذا البرنامج باسم (Init), و هو نفس الاسم للخدمة التي طورت أصلا في نظام اليونيكس عند بداياته, بينما تعرف في نظام اللينكس باسم (sysvinit), وهي في نظم اللينكس تتميز بفعالية عالية في العمل, قليلة أو نادرة المشاكل, و تم الحفاظ عليها و تطويرها مع تقدم نظام لينكس لمجاراة التحديثات الكبيرة في النظام نفسه و في نواته.
لكن sysvinit بدأت تصبح قديمة, بطيئة, و غير مرنة بالتعامل مع النوى الجديدة لأنظمة اللينكس, أضف إلى هذا أن البرامج مفتوحة المصدر المنافسة و التي تقوم بنفس الوظيفة لم تكن ذات فعالية أو قوة لاستبدال sysvinit, و لم ترقى حتى لدرجة المنافسة معها, باستثناء ابستارت (Upstart) الذي طورته شركة كونينكال في عام 2006 و هي نفس الشركة المطورة للنظام المحبوب أوبونتو, و شكل لاحقا مصدرا للجدل بين المطورين, بالإضافة إلى انه ربما كان في طريقه لاستبدال sysvinit ببطئ شديد, إلى أن ظهر البرنامج الجديد الذي يعرف باسم سيستمد (systemd), والذي يقود حاليا أحد أكبر الجدالات في تاريخ نظام لينكس في طريقه لاستبدال sysvinit في جميع التوزيعات الكبيرة, و يقوم الجميع بتبنيه حاليا في الإصدارات الأخيرة من أنظمة التشغيل بما فيها ريدهات ,سينتوس, ديبيان, اوبونتو, و غيرها.
الشيء الأساسي الذي يديره systemd ويعمل عليه كما قلت هو الوحدة “unit”، يُمكن أن تكون الوحدات من عدّة أنواع ، ولكن النّوع ألأشيع هو الخدمة service (يتبيّن ذلك من ملف الوحدة الذي ينتهي بـ .service)، ولإدارة الخدمات على نظام يحتوي systemd فإنّ أداتنا الرئيسيّة هي الأمر systemctl و في الدرس المقبل من هذه السلسلة سنتعرف على أهم الأوامر التي يمكن عبرها إدارة هذه الخدمات , طبعا يمكن أن نستعمل برامج رسومية من أجل هذه المهمة , لكن سطر الأوامر يمنح لمستخدمه إمكانيات أكثر , أما الآن فسنكتفي بهذا القدر و إلى درس مقبل بإذن الله .
و يتكوّن نظام التمهيد systemd من مجموعة من الأدوات التي تمثّل منصة مركزية لإدارة نظام لينكس وإعداده , و لهذا و بحكم أهمية هذا الجزء من نظام لينكس , سنتعرف اليوم على مفهوم الخدمات على لينكس , كما سنتعرف على أساسيات و مبادئ نظام إدارة الخدمات systemd , و سيكون هذا الدرس بمثابة مقدمة نظرية تمهد لنا الطريق نحو الدرس التطبيقي .
أولا ما رأيك أن تراجع الدروس الساق من هذه السلسة حول نظام لينكس :
تعرف على هيكلية نظام الملفات في لينكس ( الجزء 1 )
تعرف على أهم المسارات في نظام ملفات لينكس ( الجزء 2 )
أهم الاوامر التي قد تهمك على نظام لينكس ( الجزء 3 )
نبدأ أوّلا بنظرة عامّة على ما يحدُث ابتداءً من اللحظة التي تشغّل فيها زرّ الطاقة إلى اللحظة التي تظهر فيها شاشة تسجيل الدخول :
ملاحظة : هذه المراحل تنطبق على أغلب توزيعات غنو/لينكس مع وجود اختلافات طفيفة .
- يبدأ اختبار التشغيل الذاتي Power On Self Test بالتحقّق من العتاد Hardware.
- ينقل اختبار التشغيل الذاتي بعد اكتماله التحكمَ إلى محمِّل الإقلاع الأوّلي First stage boot loader الذي يوجد إما في مقطع الإقلاع على أحد أقراص الجهاز (نظام BIOS)؛ أو في تجزئة Partition منفصلة (نظام UEFI).
- يمرّر محمّل الإقلاع الأولي التحكّم إلى محمّل الإقلاع الثاني Second stage boot loader الذي يوجد في المجلّد boot/. محمّل الإقلاع الأكثر استخداما هو GRUB (اختصار لـ GRand Unified Boot Loader). يبحث محمّل الإقلاع عن نواة النظام Kernel ونظام ملفات خاصّ يُعرف بـ initramfs يحوي ملفّات وبرامج مهمتها إنجاز الخطوات الضروريّة لتركيب Mount نظام الملفّات الجذر (وهو نظام الملفّات المستخدَم في التجزئة التي يوجد عليها المجلّد root/).
- تضبط النواة العتاد الموصول بالنظام، ثم بعد تركيب نظام الملفات الجذر تشغّل عمليّة بمعرّف العمليات 1 PID. تجهّز هذه العمليّة بقيّة العمليّات التي من بينها العمليّة المسؤولة عن تسجيل الدخول. تُعرَف العمليّة ذات المعرّف 1 بعمليّة التمهيد Initialization (أو init اختصارا).
لمن يعمل في نظم اللينكس و اليونيكس, أو النظم المشتقة عنهما, تعرف هذه الخدمة أو هذا البرنامج باسم (Init), و هو نفس الاسم للخدمة التي طورت أصلا في نظام اليونيكس عند بداياته, بينما تعرف في نظام اللينكس باسم (sysvinit), وهي في نظم اللينكس تتميز بفعالية عالية في العمل, قليلة أو نادرة المشاكل, و تم الحفاظ عليها و تطويرها مع تقدم نظام لينكس لمجاراة التحديثات الكبيرة في النظام نفسه و في نواته.
لكن sysvinit بدأت تصبح قديمة, بطيئة, و غير مرنة بالتعامل مع النوى الجديدة لأنظمة اللينكس, أضف إلى هذا أن البرامج مفتوحة المصدر المنافسة و التي تقوم بنفس الوظيفة لم تكن ذات فعالية أو قوة لاستبدال sysvinit, و لم ترقى حتى لدرجة المنافسة معها, باستثناء ابستارت (Upstart) الذي طورته شركة كونينكال في عام 2006 و هي نفس الشركة المطورة للنظام المحبوب أوبونتو, و شكل لاحقا مصدرا للجدل بين المطورين, بالإضافة إلى انه ربما كان في طريقه لاستبدال sysvinit ببطئ شديد, إلى أن ظهر البرنامج الجديد الذي يعرف باسم سيستمد (systemd), والذي يقود حاليا أحد أكبر الجدالات في تاريخ نظام لينكس في طريقه لاستبدال sysvinit في جميع التوزيعات الكبيرة, و يقوم الجميع بتبنيه حاليا في الإصدارات الأخيرة من أنظمة التشغيل بما فيها ريدهات ,سينتوس, ديبيان, اوبونتو, و غيرها.
الشيء الأساسي الذي يديره systemd ويعمل عليه كما قلت هو الوحدة “unit”، يُمكن أن تكون الوحدات من عدّة أنواع ، ولكن النّوع ألأشيع هو الخدمة service (يتبيّن ذلك من ملف الوحدة الذي ينتهي بـ .service)، ولإدارة الخدمات على نظام يحتوي systemd فإنّ أداتنا الرئيسيّة هي الأمر systemctl و في الدرس المقبل من هذه السلسلة سنتعرف على أهم الأوامر التي يمكن عبرها إدارة هذه الخدمات , طبعا يمكن أن نستعمل برامج رسومية من أجل هذه المهمة , لكن سطر الأوامر يمنح لمستخدمه إمكانيات أكثر , أما الآن فسنكتفي بهذا القدر و إلى درس مقبل بإذن الله .