پاسخ به:مجموعه ترفندهای لینوکس ♦ تایپیک ویژه ♦
یک شنبه 10 فروردین 1393 10:21 PM
نگاهی دقیقتر به فرایند راهاندازی لینوکس
امروزه شما قادرید براحتی یکی از توزیعهای لینوکس را تهیه کرده و آنرا نصب و استفاده نمایید بدون اینکه واقعا نیاز داشته باشید تا بخشهای فنی سیستمعامل را درک نمایید. مقاله حاضر نگاهی اجمالی به فرایند راهاندازی سیستم لینوکس شما دارد.
اصطلاح فنی راهاندازی کامپیوتر را فرایند بوت یا Boot strapping میگویند و یا بطور خلاصهتر بوت (boot یا booting). بخش آغازین این فرایند توسط کدهای ذخیره شده در ROM کامپیوتر شما انجام میشود. این بخش در همه سیستمعاملها یکسان میباشد. وظیفه این کد بارگذاری مدیر بوت لینوکس (Linux Boot Loader) برای ادامه فرایند میباشد.
برنامههای مدیر بوت
برنامههای مدیر بوت برنامههایی هستند که توسط ROM کامپیوتر (یا همان BIOS) بارگذاری میشوند. در لینوکس دو مدیر بوت رایج وجود دارد.
لیلو (LiLO) مدیر بوت سنتی لینوکس و گراب (Grub) مدیر بوتی جدیدتر میباشد.
هرکدام از این برنامهها ابتدا مقداری اطلاعات پیکربندی را دریافت کرده و سپس هسته لینوکس یا سیستمعامل دیگری را بارگذاری میکند و ادامه فرایند بوت را به آن میسپارد.
مهمترین تفاوت بین لیلو و گراب در نحوه دریافت اطلاعات پیکربندی است. فایل پیکربندی لیلو با اجرای دستور lilo بصورت ثابت ذخیره میگردد. این اطلاعات یا در رکورد بوت اصلی (MBR یا Master Boot Record) دیسک یا در رکورد بوت پارتیشن لینوکس ذخیره میشود. اطلاعات پیکربندی که توسط دستور lilo استفاده میشود، عموما در فایل etc/lilo.conf ذخیره میشود. در زیر یک مثال از این فایل پیکربندی را مشاهده مینمایید.
در مثال بالا امکان انجام بوت از روی دو هسته مختلف یعنی vmlinuz و vmlinuz.old وجود دارد. هنگام بوت شما میتوانید یکی از این هستهها را انتخاب نمایید. با فشردن کلید TAB در اعلان لیلو، گزینههای موجود لیست میشوند. در صورتی که هسته جدیدی را با ویرایش فایل etc/lilo.conf اضافه کردهاید و یا هر تغییر دیگری در فایل پیکربندی لیلو اعمال کردهاید، باید پس از آن دستور lilo را اجرا نمایید تا این تغییرات اعمال شوند.
گراب فایل پیکربندی را هنگام بوت میخواند. حجم MBR فقط ۵۱۲ بایت است و تنها بخشی از گراب که عهده دار فرایندهای بسیار ابتدایی بوت است در آن ذخیره میشود. بقیه اطلاعات از روی پارتیشنی که اطلاعات بوت گراب در آن ذخیره شده است، بارگذاری میگردد.
گراب توسط برنامه grub-install نصب میشود. فایل پیکربندی گراب به طور معمول در مسیر boot/grub/menu.lst قرار دارد. در زیر یک مثال از این فایل را مشاهده مینمایید:
در صورتی که شما کامپیوتر خود را با یک سیستمعامل عامل اختصاصی از ردموند به اشتراک گذاشتهاید، حواستان باشد که آنها اعتقاد دارند که سیستمعاملی جز سیستمعامل خودشان وجود ندارد و بنابراین اگر ویندوز را پس از لینوکس نصب کنید، بر روی MBR خواهد نوشت. به همین علت ابتدا ویندوز را نصب نمایید.
سطوح اجرایی لینوکس
سطوح اجرایی لینوکس به شما آرایهای از پیکربندیهای سیستمی ارائه میکنند. بدون مشخص کردن، معمولا سیستم با سطح اجرایی پیشگزیده که ممکن است ۳، ۲ یا ۵ باشد، بوت میشود. این سطح اجرایی پیشگزیده را میتوانید با ورود برخی کلمات کلیدی هنگام بوت تغییر دهید.
به طور استاندارد ۷ سطح اجرایی در لینوکس وجود دارد. از ۰ تا ۷. سطح اجرایی ۰ به معنی خاموش کردن سیستم، سطح اجرایی ۱ به معنی حالت تک کاربر و سطح اجرایی ۶ به معنی بوت مجدد (Reboot) سیستم هستند. سطوح اجرایی دیگری که رایج هستند عبارتند از سطح اجرایی ۳ که یک سیستم چند کاربره بدون محیط گرافیکی است، حالت اجرایی ۵ که محیط اجرایی چندکاربره همراه با محیط گرافیکی است. البته در سیستمهای مبتنی بر لینوکس دبیان، سطوح اجرایی ۳ و ۵ با سطح اجرایی ۲ جایگزین شدهاند. در بسیاری از سیستمها، یک سطح اجرایی دیگر موسوم به S وجود دارد که مشابه به سطح اجرایی ۱ بوده ولی برای ورود به آن نیاز به کلمه عبور ریشه میباشد. این بدلیل مسائل امنیتی است.
محتویات فایل etc/inittab مشخص کننده سطوح اجرایی سیستم شما و سطح اجرایی پیشگزیده میباشد. در زیر مثالی از این فایل را مشاهده مینمایید:
خط id:5:initdefault به معنی این است که سطح اجرایی پیشگزیده کامپیوتر شما سطح اجرایی ۵ است.
خطوط l1:1:wait:/etc/init.d/rc 1 و به همین ترتیب، باعث میشوند تا اسکریپت etc/init.d/rc سطح اجرایی مربوطه را بصورت یک آرگومان ارسال نماید. سپس این اسکریپت پروسههای خاص سطح اجرایی ارسال شده را آغاز میکند. تمام اسکریپتهای کنترل کننده پروسههای مختلف در مسیر etc/init.d/ ذخیره شدهاند.
به طور معمول، بطور معمول پروسههایی که با ورود به یک سطح اجرایی، اجرا یا متوقف خواهند شد در زیر دایرکتوریهایی مانند rc2.d یا rc5.d (همنام با شماره سطح اجرایی مربوطهشان) ذخیره شدهاند. این فایلها لینکهای Symbolic به اسکریپتهای موجود در etc/init.d/ میباشند. لینکهایی که با K آغاز میشوند، هنگام ورود به سطح اجرایی مربوطه نابود (Kill) خواهند شد. لینکهایی که با S شروع میشوند، هنگام ورود به آن سطح اجرایی شروع (Start) خواهند شد. این لینکها بصورت الفبایی اجرا میشوند، به این معنی که ابتدا لینکهای K آغاز شده و سپس لینکهای S. ترتیب اجرای لینکهای K و S با عددی دو رقمی که بلافاصله پس از حروف S یا K قرار میگیرد، تعیین میشود.
این روش، روش استاندارد برای اجرای پروسهها در آغاز فرایند بوت میباشد. این سیستم استاندارد به System V Init موسوم میباشد که مشابه با سیستمعامل یونیکس است.
در صورتی که همه چیز به خوبی پیش رفته باشد، سیستم شما هم اکنون در حال اجرا بر روی سطح اجرایی انتخاب شده است. برای تغییر سطح اجرایی میتوانید بصورت کاربر ریشه وارد شده و دستور init را در خط فرمان تایپ نمایید. برای مثال init 3.