مراحل LOAD شدن WINDOWS
|
Start up windows برای بوت شدن سیستم 5 مرحله داریم که در این 5 مرحله از یک سری فایل ها استفاده می شود که در مورد آنها توضیح داده می شود. مرحله اول : pre boot sequence 1. Post (power on self test) بایوس سخت افزار را تست می کند مثل رم ، هارد و ... که آیا io هاشان درست به آنها assign شده IRQ گرفتند یا نه و ... 2. COMPUTER BIOS بوت دیوایس ها را پیدا می کند و سپس از آن لیست MBR را پیدا می کند. Master boot record اولین سکتور رسانه بوت می باشد. تا از آن طریق سیستم بتواند بوت شود. 3. MBR تمام پارتیشن ها را برای پیدا کردن پارتیشن اکتیو اسکن می کند و تا فایل های bootable را از آنجا یافته در حافظه لود کرده تا بوسیله آنها سیستم بوت شود. یکی از فایل های بسیار مهم فایل ntldr می باشد. این فایل همان لودر ویندوز است که بسیاری از وظایف و کار های ویندوز را انجام می دهد. ارور های مرحله pre boot sequence 1. خطا های سخت افزاری مثل عدم قرار گرفتن مناسب رم در اسلت که معمولا با صدای بوق قابل تشخیص است. 2. Mbr از دست رفته که با fix boot یا fixmbr و یا دستور fdisk /mbr دوباره سازی می شود. برای این کار باید وارد recovery consol شویم که یکی از راه های آن بوت با سی دی ویندوز و انتخاب گزینه repare می باشد. 3. Floppy و یا usb روی دستگاه قرار دارد.
مرحله دوم : boot sequence بعد از اینکه لودر فایل ntldr را در ممری لود کرد اطلاعات مربوط به hardware configuration ها را جمع می کند. بعد از آن یک سری فایل ها از جمله ntldr ، boot.ini ، NTDETECT.COM و .... برای لود کردن کرنل os . boot sequence چهار فاز دارد 1. 1. initialize کردن boot loader base در این مرحله سیستم از محیط 16 بیتی آماده ورود به محیط 32 بیتی یا real mode می شود. در این قسمت سیستم به یک سری مینی درایور یا مینی فایل سیستم درایور نیاز دارد که آنها را لود و initialize می کند. 2. :operating system selection از روی فایل boot.ini که محل آن در پارتیشن c (active partition) می باشد. در این فایل لیست operating system ها ، time out و مد بالا آمدن سیستم مشخص می شود. این Ntldr است که boot.ini را می خواند. 3. hardware detection: در این مرحله دو فایل داریم به نام های NTDETECT.COM و ntoskernel.exe داریم که وظیفه hardware detection را دارند NTDETECT.COM تمام install hardware و component های مربوط به os ی که انتخاب کرده ایم را شناسایی کرده و تحویل ntldr می دهد تا ntldr اطلاعات را از hkey_local_machine\hardware در رجیستری بخواند. 4. hardware profile: با hardware profile می توانیم کامپیوتر را برای حالت های مختلف به گونه ای تنظیم کنیم که لود کمتری داشته باشد. مثلا اگر کامپیوترمان را در محل های مختلفی استفادی می کنیم و در یک محل پرینتر و در محل دیگری سخت افزار های دیگری به آن وصل می کنیم می توانیم پروفایل های مختلفی تعریف کنیم تا در هر جا فقط درایور های لازم لود شود. که در این صورت بعد از انتخاب os باید پروفایل را انتخاب نمایید. پروفایل Last known good configuration پروفایلی است که آخرین باری که با کامپیوترتان بوت کردید و بوتتان موفقیت آمیز بود اطلاعات مربوط به hardware ها و driver ها را به عنوان Last known good configuration ذخیره می کند. در صورتی که یک پروفایل بیشتر نداشتید بدون نشان دادن منوی پروفایل ها بالا می آید. در صورتی که به هر دلیل درایور ها خراب شده باشند مثلا update کرده ایم اما به درستی update نشده و یا uninstall شده باشند مثل کارت گرافیک می توانیم در مد 16 بیتی یا safe mode بالا آمده درایور مربوطه را اصلاح نماییم و یا با last known good configuration بالا بیاییم برای این کار در هنگام بوت f8 را زده که در آنجا option های مختلف بوت را می بینیم. تنظیمات فایل boot.ini [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
timeout یعنی چند ثانیه برای انتخاب os صبر کند و اگر بیش از این زمان os ی را انتخاب نکردید با os پیش فرض بالا می آید. Os پیش فرض نیز در خط بعد از timeout با عنوان default مشخص شده است. multi(0): برای کنترلر های IDE و scsi برای کنترلر های scsi استفاده می شود. disk(0) : برای multi همیشه disk صفر است اما برای scsi شماره دیسک را داریم. Rdisk(0) شماره دیسک برای غیر از scsi است مثل multi و برای scsi دیگر از آن استفاده نمی شود. partition(1) شماره پارتیشن از 1 شروع می شود و علت اینکه از اسم پارتیشن استفاده نمی کند این است که هنوز آن را نمی فهمد. ="Microsoft Windows XP Professional": نام os که می توانید این نام را تغییر دهید. /noexecute=optin : عمده ویروس ها موقعی که OS بوت می شود بالا می آیند noexecute به شما کمک می کند که Option های غیر سیستم عامل می خواهند بوت و execute بشوند در زمان بوت شدن os execute نشوند. یعنی فقط سرویس های اصلی را run کند و option ها را run نکند.
1. configuration selection در این مرحله hardware profile لود می شود.
بعد از configuration selection وارد کرنل ویندوز xp می شود. در این مرحله فایلی به نام NTOSKernel.exe هم load و هم initialize می شود. این فایل تمام device driver ها و سرویس های مربوط با آن OS را لود می کند. برای start و stop کردن سرویس ها: Cmd à net start/stop …service name … این دستور به تنهایی لیست سرویس ها را نشان می دهد Cmd à net start/stop برای راحتی بیشتر برای نوشتن نام سرویس ها ابتدا net start را زده نام دستور را از اینجا کپی می کنیم برای این کار با موس روی سرویس راست کلیک کرده و بعد مارک می کنیم در انتها نیز راست کلیک کرده در جایی که می خواهیم past می کنیم. نکته : در cmd هر چیزی که بین آن فاصله باشد باید آن را داخل “” بگذاریم مثلا "local host" در services.msc هر سرویس status های مختلفی دارد سرویس های مختلف ممکن است به همدیگر وابسته باشند مثلا اگر workstation را stop کنیم دیگر computer browser کار نمی کند چرا که سرویس های زیادی به این وابسته هستند. روی هر سرویس که دابل کلیک کنید تبی به نام recovery وجود دارد که اگر اولین بار سرویس fail شد می توانیم script بنویسیم و یا پارامتر تعیین کنیم که در صورت fail شدن چه اتفاقی بیفتد. در log on tab هم می گوید ؟؟؟؟ Status سرویس ها نیز سه حالت دارد یا Automatic ، manual و یا disable می باشد در وضعیت Automatic هر وضعیتی که خود سرویس داشته باشد به آن اعمال می شود اما قابل start و stop کردن نیز می باشد. Manual نیز می توانید به صورت دستی start و stop کنیم. و سرویس به صورت اتوماتیک در صورت بالا آمدن start نمی شود. مرحله سوم kernel load بعد از اینکه تمام سرویس ها و دیوایس درایور ها لود و initialize شد و hardware profile تان را انتخاب می کنید ntldr فایل configuration شما را می سازد و کامپیوتر وارد مرحله لود کرنل می شود. در این مرحله است که صفحه نمایش مشکی می شود. و وارد محیط 32 بیتی می شوید در این مرحله ntldr اعمال زیر را انجام می دهد: 1- ntoskernel.exe را لود می کند اما initialize نمی کند 2- HAL.dll یا hardware abstraction layer را لود می کند (hardware ها) 3- لیست سخت افزار ها را از رجیستری ادرس زیر می خواند: Hkey_localmachine/system 4- در این مرحله یک کنترل ستی را به کامپیوتر ست و initialize می کند کنترل ست حاوی یک سری configuration system یعنی اطلاعات مربوط به osی که در حال بالا آمدن است می باشد. اکنون کنترل ست ها را initialize می کند تا بوسیله آن تمام device driver ها را لود و start کند. در مرحله بعدی تمام device driver هایی که value آنها 0x0 را لود می کند. این value ها را از hkey_localmachine/system/currentcontrolset/control/systemgrouporder بر می دارد. و بعد order آنها را تعیین می کند. و دستور لود آنها را به ntldr می دهد مشکلات مرحله لود و اکشنی که سیستم در صورت بروز این مشکلات اتخاذ می کند: ارور های مربوط به ارور کنترلر های 0x0 و 0x1 و 0x2 : ارور هایی که معمولا با آمدن یک صفحه آبی و پیام شامل 0x0 و 0x1 و 0x2 : (ignore)0x0: ارور اتفاق می افتد اما ارور قابل ریکاور است و یا ارور در بوت شدن سیستم خللی وارد نمی کند و بدون نشان دادن هیچ اروری آن را رد می کند. 0x1(normal): ارور اتفاق می افتد اما با نشان دادن اروری در هر حال آن را رد می کند و ممکن است در آینده مشکل ساز شود این ارور در از حالت قبلی کریتیکال تر است. 0x2(severe): این مرحله را severer می گویند ارور در این مرحله مانع از بوت شدن سیستم می شود به همین خاطر سیستم با استفاده از last known good control set مجددا سیستم را در وضعیت قبلی بالا می آورد در واقع وقتی که در این مرحله fail شد از کنترل ست های last known good control set استفاده می کند و در واقع تمام ارور ها را ignore کرده و بالا می آید. 0x3(critical): در این مرحله نیز باز هم از last known good control set استفاده می کند اما باز هم نمی تواند بالا بیاید به همین خاطر boot sequnse را stop کرده و error message را نمایش می دهد. مرحله چهارم kernel initialization: 1- hardware key های مربوط به آن os ایجاد می شود و آنها را داخل رجستری می نویسد که شامل اطلاعاتی مثل IRQ ها ، component و ... می باشد. 2- نکته بسیار مهم در این مرحله ایجاد کنترل ست clon control set می باشد که در واقع مجموعه کنترل ست هایی است که در این لحظه سیستم در حال لود آن می باشد در واقع از همه کنترل ست هایی که در مرحله قبلی ست می کرد یک کپی می گیرد 3-حال در این مرحله تمام device driver ها از current control set هم لود و هم initialize می شوند. سرویس های مهم : Smss.exe à session manager تمام session هایی که ویندوز روی os می زند تا اینکه بتواند برنامه ای را اجرا کند را excute می کند.
بعد از مراحل بالا win log on process اجرا می شود که شما می توانید پنجره log on را ببینید. در مرحله بعد clon control set یک کپی از current control set می گیرد سپس فایل ها را اسکن می کند تا ببیند تمام سرویس ها لود شده اند و value های 0x2 به صورت کامل لود شده و هیچ مشکلی ندارند و در صورت تایید یک کپی از آنها گرفته در last known good control set می ریزد. تا دفعه بعد بتوانیم در صورت بروز مشکل با last known good configuration بالا بیاییم. Summary: Pre boot sequence
|