6 Init (إختصار Initialize و تعنى االإبتداء)
سنتكلم فقط عن طريقة النظام V من الInit التى تستخدمها معظم نظم لينوكس و يوجد بدائل . فى الحقيقة يمكنك وضع أى برنامج تحب فى (sbin/init/) و ستقوم نواة النظام بتشغيله عندما تنتهى من التحميل . إنها وظيفة ال init أن يشغل كل شىء بطريقة سليمة . إنه يتحقق من أن ملفات النظام مضبوطة و يقوم بتحميلها . إنها تبدأ (العفاريت) (Deamons) و هى برامج الخدمات الخلفية لتسجيل رسائل النظام , تقوم بعمل الشبكات تخدم صفحات الويب , تستمع للفأرة و هكذا . و هى أيضا تبدأ عمليات برنامج getty التى تضع محثات تسجيل الدخول على طرفياتك الإفتراضية . توجد قصة كاملة و معقدة حول تبديل مراحل التشغيل و لكن سأتجاوز ذلك تقريبا و أتكلم فقط عن بدء تشغيل النظام . ال init يقرأ ملف إسمه /etc/inittab , و الذى يخبره ماذا يفعل . عادة أول شىء يقوم به هو تشغيل سكريبت بدء. البرنامج الذى يقوم بتشغيل هذا السكريبت هو برنامج bash ,و نفس البرنامج الذى يعطيك محث الأوامر . على نظم ديبيان , سكريبت البدء هو /etc/init.d/rcS و على الريد هات هو /etc/rc.d/rc.sysinit هذا هو المكان حيث يتم التحقق من و تحميل ملفات , و ضبط الساعة و إتاحة تشغيل الذاكرة الإفتراضية , و تعيين اسم الجهاز (hostname) و ما إلا ذلك . بعد ذلك يبدأ تحميل سكريبت آخر لكى يبدأ مستوى التشغيل التلقائى. وهذا يعنى عملية تحميل مجموعة من الأنظمة الفرعية. وتوجد مجموعة من المجلدات وهى /etc/rc.d/rc0.d, /etc/rc.d/rc1.d, ..., /etc/rc.d/rc6.dفى نظام الريدهات أو /etc/rc0.d, /etc/rc1.d, ..., /etc/rc6.d فى نظام الديبيان والتى نناتظر مستويات التشغيل المختلفة. لو كنا سنستخدم مستوى التشغيل الثالث على نظام ديبيان سيقوم السكريبت بتشغيل السكريبتات الموجوده فى /etc/rc3.d التى بتدأ بحرف الـ S كأول حرف من كلمة Start. وهذه السكريبتات هى مجرد روابط للسكريبتات الموجودة فى مجلد آخر يسمى غالبا init.d. وبذلك قام init بتحميل مستوى للتشغيل المطلوب، ويبحث فى مجلد عن السكريبتات التى تبدأ بحرف الـ S. قد تجد S10syslog أولاً. وهذه الأرقام تخبر سكريبت مستوى التشغيل بأى ترتيب يبدأ بتحميلهم. وفى حالة S10syslog يتم تشغيله أولاً نظرا لعدم وجود سكريبتات تبدأ بـ S00 ... S09. ولكن S10syslog هو فى الحقيقة رابط لـ /etc/init.d/syslog: وهو سكريبت لبداية وإيقاف مسجل النظام System logger. ونظراً لأن الرابط يبدأ بالحرف S فإن سكريبت مستوى التشغيل يقوم بتشغيل سكريبت syslog بإعطايه متغير "start" وتوجد روابط مناظرة تبدأ بالحرف K كأول حرف من كلمة Kill والذى يحدد ما يتم إغلاقه وبأى ترتيب عند ترك مستوى التشغيل. ولتغيير ما تبدأه الأنظمة الفرعية تلقائيا، يجب عليك ضبط هذه الروابط مجلد rcN.d. حيث تعبر الـ N عن رقم مستوى التشغيل المعد تلقائيا فى الـ inittab الخاص بك. وأخر ما يقوم به init هو بداية بعض برامج getty's. ويطلق عليهم "respawned"، وتعنى أنه إذا توقفت هذه البرامج يقوم الـ init بإعادة تشغيلها مرة أخرى. أغلب الإصدارات تكون لديها بست طرفيات افتراضية. ولكنك قد تحتاج لأقل من هذا لكى توفر من استخدامك للذاكرة.