علی کنگرانی
علی کنگرانی
خواندن ۳ دقیقه·۳ سال پیش

نحوه بوت شدن یه سیستم لینوکسی

مراحل بالا اومدن یک سیستم لینوکسی:

به عنوان ادمین یک سیستم لینوکسی، دونستن این موضوع می تونه دید خیلی خوبی به شما بده که می تونید ازش تو کار های مختلفی استفاده کنید. به طور کلی یک سیستم که داره از سیستم عامل لینوکس استفاده می کنه، از زمانی که دکمه روشن رو فشار بدین، تو ۶ مرحله بالا میاد که این زیر در موردشون حرف می زنیم.

تو شکل زیر می تونید یک دید کلی از اتفاقاتی که می افته به دست بیارید.


۱. برای روشن کردن هر سیستمی، اولین کاری که باید بکنیم اینه که دکمه پاور رو بزنیم. تو این مرحله به SMPS (Switched_Mode Power Supply) برق می رسه که کارش اینه که برق AC رو به DC تبدیل کنه. بعد از این کار، این قطعه برق DC رو به تمام قطعات سخت افزاری سیستم می رسونه. به محض رسیدن برق، پردازنده به کار می افته و اولین کاری که انجام میده اینه که BIOS رو فعال می کنه. BIOS تو این مرحله ۲ کار خیلی مهم انجام میده.

۱. اجرای فرایند POST (Powe On Self Test): بایوس، یک لیست از تمام قطعاتی که در زمان بوت قبلی سیستم بهش وصل بودن رو داره. اینجا به هر کدوم یه پالس الکتریکی می فرسته که ببینه سر جاشون هستن یا نه. اگه قطعات یه سیگنال برگشت ارسال کنن، بایوس سلامتشون رو تایید می کنه. اگرم نفرستن اعلام می کنه که قطعه خرابه. اگرم یه قطعه جدید سیگنال برگردونه، سلامتش رو تایید می کنه و تو لیستش می نویسه که دفعه بعد که بوت می شه چکش کنه که سالم هست یا نه.

۲. پیدا کردن اولین قطعه ای که می شه باهاش سیستم رو بوت کرد: در اینجا بایوس اولین قطعه‌ (دیسک) ای رو که می شه باهاش سیستم رو بوت کرد رو مشخص می کنه و کنترل رو به پردازنده بر می گردونه.

۲. به محض اینکه پردازنده کنترل رو دست می گیره، سعی می کنه MBR (Master Boot Record) رو لود کنه. آدرس MBR میشه ۵۱۲ بایت اول دیسکی که قراره سیستم ازش بوت بشه. تو این بخش مشخصات Boot loader اصلی سیستم هستشبه همراه اطلاعات جدول پارتیشن ها (Partition Table) که مشخص می کنن که چه پارتیشنی از کجا شروع می شه و کجا تموم می شه و اینکه نوع پارتیشن چیه (primary یا extended). آخرین اطالعاتی که تو MBR هستش، یه شمارس که بهش می گن Magic Number. اگه یه موقع MBR از بین بره، از این شماره استفاده می کنن که برش گردونن (خوبه از این شماره بک آپ بگیریم).

۳. تو بخش قبلی، پردازنده جای Boot loader رو پیدا کرد. اینجا خود Boot loader لود می شه روی مموری. بوت لودر سیستم، توی ۳۰ کیلوبایت اول دیسک (دقیقا بعد از MBR) هستش. Boot loader که میاد بالا، از کاربر سوال می کنه که با چه پارامترهایی سیستم رو بالا بیاره. ملموس ترین پارامتر اینه که کاربر می تونه انتخاب کنه که سیستم عامل با چه کرنلی بالا بیاد. اگه کاربر هیچ کاری تو این مرحله انجام نده، Boot loader بعد از یه مدتی کرنل پیش فرض رو روی مموری لود می کنه و کنترل سیستم رو می ده بهش.

۴. کرنل که هسته سیستم عامله، تا زمان خاموش شدن سیستم روی مموری می مونه و کنترل همه چیز رو به عهده داره. اولین کاری که کرنل انجام میده، اجرا کردن برنامه init هستش.

۵. برنامه init که مخفف Initialization هستش، اولین پروسه ای هستش که روی سیستم اجرا می شه. این برنامه در قالب یه اسکریپت در /etc/rc.d/rc.sysinit قرار داره که همه بخش های مختلف سیستم عامل رو بررسی می کنه. با توجه به Run level مشخص شده، init پروسه های لازم رو اجرا می کنه و سیستم رو به حالتی در میاره که بشه ازش استفاده کرد. برای هر Run level اسکریپت های مشخصی وجود داره که آدرسشون به شکل روبرو هستش، /etc/rc[0-6].d/ که از Run level صفر تا ۶ هستن. در آخر init اطلاعات موجود تو فایل /etc/inittab رو می خونه که یک جدول از دستوراتی هستن که سیستم باید در زمان شروع به کار اجراشون کنه.

۶. تو این مرحله دیگه همه چیز آماده هستش و کرنل کنترل کامل سیستم رو داره. حالا کاربر می تونه وارد سیستم بشه و ازش استفاده کنه.

booting processlinuxBootingstarting systemboot process
شاید از این پست‌ها خوشتان بیاید