یوشا

دست نوشته ها و تجربیات شخصی

یوشا

دست نوشته ها و تجربیات شخصی

شهید دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم آنکس که تخصص ندارد و کاری را می پذیرد بی تقواست!

طبقه بندی موضوعی
تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران

 

init: مخفف initialization، اولین برنامه/process ای هست که در حین بوت سیستم اجرا میشه و تا زمانی که سیستم خاموش بشه بکارش ادامه میده. این برنامه ابتدا عملیات system initialization رو انجام میده و سپس عملیات runlevel initialization رو و اینکارو با خوندن محتوای فایل inittab آغاز میکنه.

برنامه init ابتدا اسکریپت rc.S رو اجرا میکنه تا سیستم رو برای ورود به runlevel مورد نظر آماده کنه. فایل rc.S وظیفه داره که حافظه مجازی رو فعال کنه، filesystem رو Mount کنه، دایرکتوری var/ رو تمیزکاری کنه، دیوایس های Plug & Play رو آماده سازی کنه، ماژول های Kernel رو بارگذاری کنه(LKM)، پورت های سریال رو پیکربندی کنه و نهایتاً اسکریپتهای System V رو اجرا کنه. بنابراین init آغازگر بیشتر پرورس ها و فرآیندهای اصلی سیستم هستش.

نکته: برنامه init توسط Kernel فراخونده میشه و با پروسس Id 1 شروع بکار میکنه. اگر Kernel قادر به فراخوندنش نباشه، خطای Kernel pantic (یا همون fatal error) رخ میده که باعث متوقف شدن کل پروسه بوت میشه.

 

runlevel: تعیین کننده پارامترهای برنامه init و دستورالعملهایی برای تنظیم ترمینال، محیط کاربر، شبکه و اجرای سرویس های اولیه هستش که توسط یک شناسه عددی داخل فایل inittab در مسیر /etc/ تنظیم میشه. و البته این شناسه در هر توزیعی متفاوته!

یک سیستم معمول گنولینوکس، برای بوت شدن می تونه توسط یکی از شش شناسه runlevel پیکربندی و اجرا بشه. (چیزی شبیه Startup mode در ویندوز هنگام بوت شدن)

در حین بوت، Kernel برنامه init رو اجرا می کنه تا از داخل فایل /etc/inittab وضعیت runlevel رو شناسایی کنه. پس از شناسایی وضعیت runlevel، سیستم پیکربندی میشه، اسکریپتهای مناسب startup اجرا میشن و سرویس های موردنظر هم راه اندازی میشن.

 

برای تنظیم runlevel ابتدا به دایرکتوری /etc/ برید و فایل inittab رو با ویرایشگرتون باز کنید:

Slackware Linux

#   0 = halt
#   1 = single user mode
#   2 = unused (but configured the same as runlevel 3)
#   3 = multiuser mode - no network (default Slackware runlevel)
#   4 = multiuser mode with XFCE/KDM/GDM/XDM (session managers)
#   5 = unused (but configured the same as runlevel 3)
#   6 = reboot

# Default runlevel
id:3:initdefault:

توجه: در فایل inittab تنظیمات زیادی وجود داره ولی ما فقط به این قسمتی که می بینید کار داریم. و البته این تنظیماتی که می بینید مربوط به لینوکس Slackware هستش.

 

 0: این runlevel سیستم رو به محض بوت شدن با اجرای دستورات shutdown -c -p و halt -p و poweroff خاموش میکنه. در واقع symlink ای به runlevel 6 هستش.

 1: این runlevel سیستم رو به وضعیت تک-کاربره میبره، بشکلی که فقط کاربر root قادره login کنه. در این وضعیت، خبری از شبکه و محیط گرافیگی نیست. پس ایده آل ترین وضعیت برای مدیران هست که سیستم رو تعمیر و maintenance کنند.

 2: این runlevel سیستم رو به وضعیت چند-کاربره میبره، بشکلی که می تونید با هر کاربری login کنید. در این وضعیت، خبری از شبکه و محیط گرافیگی نیست.

 3: این runlevel مثل 2 runlevel عمل میکنه و در واقع symlink ای به runlevel 2 هستش.

 4: این runlevel سیستم رو به وضعیت چند-کاربره میبره، بشکلی که می تونید با هر کاربری login کنید. اما در محیط گرافیکی/GUI و بهمراه شبکه.

نکته: اگر در توضیحات این runlevel کلمه X11 یا session manager یا display manager بود، یعنی این runlevel محیط گرافیکی براتون مهیا میکنه. (اگر داخل پکیجتون باشه)

 5: این runlevel مثل 2 runlevel عمل میکنه و در واقع symlink ای به runlevel 2 هستش.

 6: این runlevel سیستم رو بترتیب با اجرای دستورات shutdown -r و reboot ریستارت می کنه.

 

نکته: در پشت پرده، این اعداد runlevel درواقع فایلهایی هستن که توسط برنامه init اجرا میشن. مثل rc.0 rc.4 rc.6 و...

 

حالا عدد بین id: و :initdefault: رو با توجه به محتوای فایل inittab خودتون به وضعیت دلخواهتون تغییر بدید و بعد فایل رو ذخیره کنید... با اینکار login manager پیشرفض سیستم - که معمولاً kdm یا gdm یا xdm هستش - هم مشخص میشه.

نکته: اگر از سیستم عامل لینوکس Slackware استفاده می کنید، پیشنهاد میکنم از runlevel 4 استفاده کنید.

 

اینم بدونید که لینوکس Slackware, Frugalware, Gentoo, SUSE و RedHat تنها توزیع هایی هستند که init و runlevel شون به Linux Standard Base نزدیکه.

۹۴/۰۳/۰۱

نظرات (۰)

هیچ نظری هنوز ثبت نشده است
کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">