SysVinit

From binaryoption
Jump to navigation Jump to search
Баннер1
    1. SysVinit: نظام تهيئة تقليدي للينكس

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

ما هو نظام التهيئة؟

قبل الغوص في تفاصيل SysVinit، من المهم فهم ما هو نظام التهيئة بشكل عام. نظام التهيئة هو أول عملية يتم تشغيلها بعد تحميل النواة (kernel) أثناء عملية الإقلاع. وظيفته الأساسية هي تهيئة النظام للعمل عن طريق:

  • تركيب أنظمة الملفات.
  • بدء تشغيل الخدمات الأساسية (مثل الشبكة، والخادمات).
  • توفير واجهة للمستخدمين لإدارة الخدمات.
  • إيقاف الخدمات بشكل منظم عند إيقاف التشغيل.

بدون نظام تهيئة، سيكون النظام غير قادر على العمل بشكل صحيح.

تاريخ SysVinit

يعود تاريخ SysVinit إلى الإصدار الأول من نظام التشغيل System V Release 4 (System V R4) في الثمانينيات. تم تطويره في الأصل بواسطة AT&T. على الرغم من أن SysVinit قديم، إلا أنه كان المعيار الفعلي لنظام تهيئة لينكس لسنوات عديدة. تم تبنيه وتعديله من قبل العديد من التوزيعات، مما أدى إلى اختلافات طفيفة في التنفيذ. مع ظهور أنظمة تهيئة أحدث، بدأت التوزيعات في الانتقال بعيدًا عن SysVinit، ولكن لا يزال قيد الاستخدام في بعض الأنظمة القديمة أو في الحالات التي يكون فيها التوافق مطلوبًا.

كيف يعمل SysVinit؟

يعتمد SysVinit على مجموعة من النصوص البرمجية (scripts) التي تحدد كيفية بدء تشغيل وإيقاف الخدمات. هذه النصوص البرمجية موجودة في أدلة محددة، ويتم تنفيذها بترتيب محدد أثناء عملية الإقلاع. العملية الرئيسية تتضمن:

1. مستويات التشغيل (Runlevels): SysVinit يستخدم مفهوم مستويات التشغيل لتحديد حالة النظام. كل مستوى تشغيل يمثل مجموعة مختلفة من الخدمات التي يتم تشغيلها. تتراوح مستويات التشغيل عادةً من 0 إلى 6، حيث:

   *   0: إيقاف التشغيل.
   *   1: وضع المستخدم الواحد (Single-user mode) - يستخدم للصيانة والإصلاح.
   *   2: وضع متعدد المستخدمين بدون واجهة رسومية (Multi-user mode without graphical interface).
   *   3: وضع متعدد المستخدمين مع واجهة سطر الأوامر (Multi-user mode with command line interface).
   *   4: غير مستخدم عادةً.
   *   5: وضع متعدد المستخدمين مع واجهة رسومية (Multi-user mode with graphical interface).
   *   6: إعادة التشغيل.

2. أدلة النصوص البرمجية (Script Directories): توجد نصوص بدء التشغيل والإيقاف في الأدلة التالية:

   *   `/etc/init.d/`: يحتوي على نصوص بدء التشغيل والإيقاف للخدمات.
   *   `/etc/rc[0-6].d/`: يحتوي على روابط رمزية (symbolic links) لنصوص بدء التشغيل والإيقاف في `/etc/init.d/`.  تحدد هذه الروابط ترتيب بدء وإيقاف الخدمات في كل مستوى تشغيل.

3. عملية الإقلاع (Boot Process): أثناء الإقلاع، يقوم SysVinit بتنفيذ النصوص البرمجية في `/etc/rc[runlevel].d/` بالترتيب الأبجدي. تستخدم النصوص البرمجية بادئات `S` (بدء التشغيل) و `K` (إيقاف التشغيل) متبوعة برقم يحدد ترتيب التنفيذ. على سبيل المثال، `S20network` يعني بدء تشغيل خدمة الشبكة في المرحلة 20. `K80mysql` يعني إيقاف تشغيل خدمة MySQL في المرحلة 80.

4. أوامر الإدارة (Administration Commands): يوفر SysVinit أوامر لإدارة الخدمات، مثل:

   *   `service <service_name> start`: بدء تشغيل خدمة.
   *   `service <service_name> stop`: إيقاف تشغيل خدمة.
   *   `service <service_name> restart`: إعادة تشغيل خدمة.
   *   `service <service_name> status`: عرض حالة الخدمة.
   *   `chkconfig <service_name> on|off`: تمكين أو تعطيل خدمة عند الإقلاع.

فهم نصوص بدء التشغيل والإيقاف

تعتبر نصوص بدء التشغيل والإيقاف هي قلب SysVinit. عادةً ما تكون مكتوبة بلغة bash وتنفذ مجموعة من الأوامر لتهيئة الخدمة وتشغيلها أو إيقافها. عادةً ما تتضمن هذه النصوص البرمجية:

  • تحقق من وجود العمليات قيد التشغيل.
  • بدء أو إيقاف الخدمة باستخدام الأمر المناسب.
  • تسجيل الرسائل في سجلات النظام.
  • معالجة الأخطاء.

مثال بسيط لنص بدء التشغيل (`/etc/init.d/example`):

```bash

  1. !/bin/bash
  2. example Startup script for the example service
  3. chkconfig: 2345 99 01
  4. description: This is an example service.

case "$1" in

 start)
   echo "Starting example service..."
   # Add your start commands here
   ;;
 stop)
   echo "Stopping example service..."
   # Add your stop commands here
   ;;
 restart)
   $0 stop
   $0 start
   ;;
 *)
   echo "Usage: $0 {start|stop|restart}"
   exit 1
   ;;

esac

exit 0 ```

في هذا المثال:

  • `#!/bin/bash` تحدد المفسر المستخدم لتنفيذ النص البرمجي.
  • `chkconfig: 2345 99 01` تحدد مستويات التشغيل التي يجب أن تبدأ فيها الخدمة (2، 3، 4، 5)، وترتيب البدء (99)، وترتيب الإيقاف (01).
  • `description` توفر وصفًا للخدمة.
  • `case` statement تعالج الأوامر `start`، `stop`، و `restart`.

إدارة الخدمات باستخدام SysVinit

تعتبر إدارة الخدمات باستخدام SysVinit أمرًا مباشرًا. يمكنك استخدام أوامر `service` و `chkconfig` للتحكم في الخدمات.

  • أمر service: يستخدم أمر `service` لبدء وإيقاف وإعادة تشغيل وعرض حالة الخدمات. على سبيل المثال:
   ```bash
   service apache2 start
   service mysql status
   service ssh restart
   ```
  • أمر chkconfig: يستخدم أمر `chkconfig` لتمكين أو تعطيل الخدمات عند الإقلاع. على سبيل المثال:
   ```bash
   chkconfig ssh on    # Enable SSH to start at boot
   chkconfig httpd off  # Disable Apache to start at boot
   ```
   يمكنك أيضًا استخدام `chkconfig --list <service_name>` لعرض مستويات التشغيل التي يتم فيها تشغيل الخدمة.

الانتقال إلى systemd

على الرغم من أن SysVinit كان نظام التهيئة القياسي للينكس لسنوات عديدة، إلا أنه يتم استبداله تدريجياً بـ systemd. يوفر systemd العديد من الميزات التي لا تتوفر في SysVinit، مثل:

  • التشغيل المتوازي للخدمات.
  • إدارة التبعيات المحسنة.
  • تسجيل النظام المركزي.
  • واجهة برمجة تطبيقات (API) قوية.

نتيجة لذلك، بدأت معظم توزيعات لينكس الحديثة في الانتقال إلى systemd كنظام التهيئة الافتراضي.

الخلاصة

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

روابط ذات صلة (خيارات ثنائية وتحليل فني)

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер