مراحل گام به گام بوت تا اجرای ویندوز
از هنگامی که کامپیوتر را روشن می کنید تا وقتی که سیستم عامل بالا می آید و کامپیوتر قابل استفاده می شود ، مدت زمانی طول می کشد . در این زمان تنظیمات مختلف روی کامپیوتر اعمال و آماده سازی های لازم انجام می شود . به مجموعه ی این کارها "بوت" گفته می شود .
بوت
Boot مخفف واژه Bootstrapping است . این کلمه در حالت کلی به معنای تکنیکی است که در آن ، یک سیستم ساده شرایط را برای بالا آمدن یک سیستم پیچیده تر مهیا می سازد .
در فرآیند بالا آمدن سیستم عامل هم ، همین مورد اتفاق می افتد . یعنی هنگامی که کامپیوتر را روشن می کنید ، ابتدا یک برنامه کوچک که روی MBR است ، اجرا شده و شرایط سخت افزاری و نرم افزاری را بررسی می کند . در صورت لزوم تنظیمات آن را تغییر می دهد و بعد ، کنترل سیستم را بدست سیستم عامل اصلی می سپرد . سیستم عامل بخش دوم بوت را انجام می دهد و کامپیوتر را برای استفاده مهیا می سازد . MBR یا Master Boot Record ، اولین سکتور هارددیسک است که اطلاعات مربوط به بوت بر روی آن قرار داده می شود .
هنگامی که کامپیوتر روشن می شود چه اتفاقی می افتد ؟
بعد از روشن شدن کامپیوتر ، اول از همه ، مرحله ای به نام POST(Power On Self Test) انجام می شود . در این مرحله ابتدا سخت افزارها تشخیص داده شده و بعد مورد بررسی اجمالی قرار می گیرند تا مشکل حادی نداشته باشند . بعد از این بررسی مختصر ، یک بوق زده می شود که نشان از سلامت سیستم دارد .
اگر به جای این تک بوق ، بوق های ممتد یا منقطع زده شود ، یعنی یکی از قطعات سخت افزاری آسیب دیده و یا از جای خود خارج شده است و کامپیوتر قادر به ادامه کار نیست . مثلا بوق ممتد نشانه ی اشکال در رم است و بوق منقطع از وقوع ایراد در کارت گرافیکی خبر می دهد .
سپس MBR نوع سیستم فایل را تشخیص می دهد و بعد کنترل را به دست Boot Loader می سپارد که وظیفه ی آن بالا آوردن سیستم عامل است و البته در سیستم عامل های مختلف فرق می کند . در توزیع های لینوکس ، "بوت لودر" معمولا Lilo یا Grub است و در غالب نسخه های ویندوز NTLDR نام دارد که مخفف عبارت NT Loader است .
مراحل بوت در ویندوز
در حالت کلی در تمام سیستم عامل های مبتنی بر ویندوز ان تی ، NT Loader وظیفه ی لود یا همان بارگذاری ویندوز را برعهده دارد و از دو بخش تشکیل شده است که قسمت اول آن ، StartUp Module و قسمت دوم آن OS Loader نام دارد . این دو بخش هر دو در داخل NTLDR قرار دارند .
ابتدا قسمت اول اجرا می شود . این برنامه در ابتدای کار خود ، پردازنده را به حالت حفاظت شده (Protected Mode) می برد . با این کار Paging حافظه فعال شده و جداول صفحات (Page Tables) ، جدول توصیف گر وقفه (Interrupt Descriptor Table)و جدول توصیف گر عمومی (General Descriptor Table) ساخته می شود .این کارها باعث می شود تا سیستم عامل توان اجرا شدن پیدا کند .
چون در حال پیش فرض پردازنده در حالت واقعی (Real Mode) قرار دارد ، در این حالت تنها 640 کیلوبایت حافظه رم برای سیستم عامل در نظر گرفته می شود . با رفتن به حالت حفاظت شده ، تمام حافظه برای سیستم عامل قابل دسترس خواهد بود و می تواند حافظه را آدرس دهی کند . در اینجا کار StartUp Module پایان یافته است و کنترل سیستم به دست OS Loader سپرده می شود که اولین کاری که انجام می دهد شناسایی و ایجاد دسترسی به وسیله ای است که بوت از روی آن انجام می شود .
Hibernate شده یا نشده؟
سپس بررسی می شود که سیستم آخرین بار به Hibernate (خواب زمستانی ) رفته است یا خیر؟برای این منظور در پوشه ی اصلی ویندوز بدنبال فایل Hiberfil.sys می گردد . اگر این فایل پیدا شد ، بررسی می شود که آیا درون آن Active Set قرار داده شده است یا خیر؟ ( Active Set مجموعه ای از تنظیمات است که آخرین بار در ویندوز اجرا شده است ) . اگر جواب مثبت بود ، Active Set به حالت غیر فعال تبدیل ، سپس درون رم بارگذاری شده ، کنترل به هسته ویندوز سپرده می شود و کامپیوتر از همان جائی که Hibernate شده به کار ادامه می دهد . اما اگر Hibernate نشده بود روند کار به گونه دیگر خواهد بود و فایل Boot.ini پردازش خواهد شد .
وظیفه ی Boot.ini
در این حالت ابتدا محتویات فایل Boot.ini خوانده خواهد شد که محتویات اصلی آن عبارتند از مشخصات سیستم عامل های نصب شده بر روی کامپیوتر . در صورت نصب چندین ویندوز بر روی سیستم تان حتما مشاهده کرده اید که بهنگام بوت از شما پرسیده می شود که کدام ویندوز را می خواهید اجرا کنید و اگر در فرصت چند ثانیه ای گزینه ای را انتخاب نکنید ، یکی از گزینه ها بطور پیش فرض انتخاب خواهد شد . اطلاعات مربوط به این منو در فایل Boot.ini قرار دارد و همچنین بعضی از تنظیمات پیش فرض ویندوز را می توان در آن گنجاند . این فایل باید بر روی درایوی قرار داشته باشد که بوت از روی آن انجام می گیرد و چنانچه این فایل موجود نباشد ، NTLDR در پوشه ی پیش فرض نصب ویندوز به دنبال آن می گردد .
این پوشه در ویندوزهای 2003 و ایکس پی در آدرس C:\Windows و در سایر ویندوزها در آدرس C:\WINNT است . اگر NTLDR فایل Boot.ini را پیدا نکند ، یک پیغام خطا داده و با این حال به کار خود ادامه می دهد .
NTdetect.com وارد می شود!
حالا نوبت به اجرای برنامه ی NTdetect.com است که اطلاعاتی کلی راجع به سخت افزار را از بایوس گرفته و به NTLDR می دهد . وقتی این کار تمام شد پیغام Starting Windows نمایش داده می شود که حتما آن را دیده اید .در همین لحظه با فشردن دکمه ی F8 وارد منوی پیشرفته بوت ویندوز می شود و می توانید نحوه ی بوت شدن را از بین گزینه هایی مثل Debugging Mode ، Safe Mode و غیره انتخاب کنید . بهرحال چه F8 را بفشارید و یا این کار را انجام ندهید ، بوت ادامه پیدا می کند .
سرانجام ، هسته ی ویندوز
نوبت به بارگذاری هسته ویندوز (NTOSKrnl.exe) می رسد که اصلی ترین بخش ویندوز است و بسیاری از کارهای اساسی مثل مدیریت حافظه ، مجازی سازی سخت افزار و مسائلی از این قبیل را بعهده دارد . اطلاعات گرفته شده از NTdetect هم به هسته سپرده می شود و همچنین hal.dll هم به حافظه فراخوانده می شود . این فایل شامل هسته Hardware Abstraction Layer است . hal بعنوان لایه ای مابین سخت افزار و نرم افزار اجازه می دهد که برنامه ها به راحتی بتوانند به سخت افزارها دسترسی پیدا کنند بدون آنکه نیاز به دانستن پروتکل های مخصوص داشته باشند .
وقتی هسته در حافظه قرار گرفت ، درایورهای سخت افزار های کامپیوتر هم بارگذازی می شوند ، هر چند که فعلا کارشان را شروع نمی کنند .
اگر تا اینجا بوت با موفقیت انجام شده باشد ، اطلاعات مربوط به آن در رجیستری ذخیره می شود تا چنانچه در دفعه بعد مراحل بوت سیستم با مشکل روبرو شد ، بتوانید با انتخاب گزینه ی Last Known Good Configuration از منوی بوت ، ویندوز را با تنظیمات قبلی راه اندازی کنید .
در مرحله نوبت به شروع بکار درایور System File می رسد . سپس صفحه ای را می بنید که لوگوی ویندوز بر آن نقش بسته است . در این مرحله کنترل به هسته ویندوز سپرده می شود و اکنون زیسیستم ها و سرویس های سطح بالا راه اندازی می شوند .
زیرسیستم Win32 که کنترل دستگاههای ورودی/خروجی و دسترسی به نمایشگر را در اختیار دارد نیز در همین قسمت اجرا می شود . بعد از این کار ، صفحه Login نمایش داده می شود تا کاربر نام کاربری و رمز عبور خود را وارد کند . البته اگر تنها یک کابر برای سیستم تعریف شده باشد ، این مرحله ممکن است بطور خودکار پیش برود .
اکنون راه اندازی سایر سرویس ها و درایورها بر اساس اولویت ادامه می یابد و برنامه هائی که در Startup قرار دارند ، اجرا می شوند و د نهایت بوت به پایان می رسد .
طبیعی است که پاک شدن هر کدام از این فایل ها می تواند مشکلی جدی در بوت شدن سیستم بوجود آورد و بهمین دلیل است که اغلب آنها بصورت مخفی و محافظت شده روی درایو C قرار دارند .
منبع : مجله ی رایانه خبر شماره ی 50