کلید رایانه را میزنید و بعد از نشان دادن لوگو و تعدادی پیام روی صفحات سیاه، لوگوی سیستمعامل و لود شدن آن را میبینید. آن صفحات سیاه و پیامهای روی آن مربوط به اجرای عملیاتی است که در هر رایانه شخصی هنگام بوت شدن انجام میگیرد تا بعد نوبت به سیستمعامل برسد اما این دستورها کجا نوشته شده و پردازنده از کجا میداند چه کارهایی باید انجام شود؟ اینجاست که یکی از اصلیترین قطعات رایانه یعنی بایوس (BIOS) وارد میشود.
بایوس در اصل به firmware گفته میشود که فرامین آن در قطعهای سختافزاری بهصورت یک چیپ نصب شده روی مادربورد است. هنگام روشن شدن رایانه، این بایوس است که عملیات بوت را انجام میدهد و آن بوقهایی که گاهی موقع روشن شدن رایانه میشنوید، کار همین بایوس است!
تاریخچه و ساختار
نام BIOS مخفف Basic Input/Output System است که در زمان سیستمعامل CP/M در سال ۱۹۷۵ ابداع شد. آن زمان بایوس در اصل بخشی از خود سیستمعامل بود که وظیفه راهاندازی بوتلودر و دیگر بخشهای سیستمعامل را به عهده داشت.
در رایانههای IBM PC که پس از آن معرفی شد، از یک چیپ بهصورت مستقل از سیستمعامل برای ذخیره firmware (دستورات سختافزاری) بایوس استفاده میشد که برای توصیف آن نیز همان اصطلاح BIOS یا (System BIOS) به کار گرفته شد. این بایوسهای ابتدایی محیط کاربری نداشتند و پیامها یا اخطارها روی صفحه نمایش داده میشد و البته بوقهایی برای خطاهای سختافزاری زده میشد. در ادامه تغییراتی در این مدل داده شد که به کاربر اجازه میداد تنظیماتی را مربوط به بایوس انجام دهد و وضعیت سیستم را در یک محیط مشاهده کند. این محیط در رایانهها با زدن کلیدهایی مانند Del یا یکی از کلیدهای ترکیبی F قابلدسترسی است. (منظور همان صفحه تنظیماتی است که ابتدای بالا آمدن رایانه با دکمه F1 یا F12 به آن هدایت میشوید)
جالب است بدانید اینکه امروزه ما از PCها یا همان رایانههای شخصی ساخت شرکتهای مختلف استفاده میکنیم، به دلیل همین بایوس یا بهتر بگوییم «هک شدن» این بایوس است! ابتدا بایوسها مخصوص رایانههای ساخت شرکت IBM بود که بهطور اختصاصی توسط همین شرکت ساخته میشد، اما پس از مهندسی معکوس بایوس، شرکتهای دیگر موفق شدند رایانههایی مطابق با IBM PC بسازند که رایانهای که من و شما داریم، یکی از آنهاست. شرکتهایی مانند Pheonix وAmerican Megatrends از سازندههای اصلی بایوس به شمار میرفتند که امروزه جای خود را به شرکتهایی مانند winbond، اینتل و شرکتهای سازنده مادربورد دادهاند.
در رایانههای قدیمیتر، محتویات بایوس در یک ROM که یک حافظه فقط خواندنی است نوشته میشد، اما در مادربوردهای جدید، این قطعه به یک حافظه فلش (flash) تبدیل شده که امکان بازنویسی آن بدون جدا کردنش وجود دارد. این امر اجازه بهروزرسانی بایوس و افزودهشدن قابلیتهای جدید به آن یا رفع باگهای آن را میدهد.
BIOS و محتویات آن شاید از نظر سختافزاری کاملا مشخص باشد، اما بر سر اینکه چگونه باید تلفظ شود، تا امروز هنوز بحث است! تلفظ غالب آن «بایوس» است، اما کاربران و منابع زیادی نیز آن را «بایاس» میخوانند.
کارکرد
بایوس در رایانهها چهار عملکرد اصلی دارد:
POST : نخستین کاری که هنگام روشن شدن رایانه یا فشردن دکمه ریست روی کیس (بوت سرد) توسط بایوس انجام میشود، آزمون Power-On Self-Test است. آزمون POST متشکل از چک کردن، شناسایی و راهاندازی قطعات اصلی رایانه مانند پردازنده، رم، کنترلگرهای intrupt و DMA و بخشهای دیگری از چیپست، کارت گرافیک، کیبورد، هارد و دیگر قطعات سختافزاری است. این آزمون برای این صورت میگیرد که پیش از بارگذاری سیستمعامل، ایرادی در سختافزار رایانه وجود نداشته باشد. در صورت موفقیتآمیز بودن POST، سیستم ادامه کار میدهد. اما در صورت وجود خطا در POST، مشکل با استفاده از بوقهای خاصی که به احتمال زیاد شنیدهاید، به کاربر اطلاع داده میشود. تعداد و کوتاهی یا بلندی این بوقها هر کدام مربوط به خطای سختافزاری خاصی میشود که به شرکت سازنده بایوس بستگی دارد. برای دیدن جدول این بوقها و معانی آنها میتوانید به این آدرس مراجعه کنید: http://goo.gl/zhyMFP
اجرای روند بوت: پس از اینکه POST با موفقیت صورت گرفت، کار اصلی بایوس یعنی استارت روند بوت آغاز میشود. در این مرحله، بایوس به دنبال قطعه نرمافزاری به نام «بوتلودر» (boot loader) میگردد که وظیفه بارگذاری سیستمعامل را به عهده دارد. بوتلودر روی حافظهای قرار دارد که با عنوان «دستگاه بوت» (boot device) شناخته میشود. دستگاه بوت عملا همان حافظهای است که شما رایانه را با آن بوت میکنید و میتواند هارددیسک، CD و DVD یا یک حافظه فلش باشد. بایوس با یافتن بوتلودر، آن را اجرا میکند و کنترل رایانه را به دست آن میدهد. این روندی است که به آن «بوت شدن» (booting) گفته میشود و شاید برایتان عجیب باشد که این کلمه در اصل مخفف Bootstrapping است!
اینکه بایوس چه دستگاهی را برای بوت انتخاب کند، بر اساس اطلاعات دریافتی از POST و همچنین تنظیمات خود بایوس انجام میشود. بیشتر کاربرانی که حداقل یکبار سیستمعاملی روی رایانه شان نصب کرده باشند، با این تنظیمات یعنی «اولویت بوت» آشنا هستند. در اولویت بوت، فهرستی از دستگاههایی که به ترتیب، بوت بر اساس آنها صورت گیرد مشخص میشود. بایوس با نگاه به این فهرست، چک میکند که کدام یک از این دستگاهها قابلیت بوت شدن دارند یا bootable هستند و آن را انتخاب میکند. اینکه میشنوید مثلا برای نصب ویندوز باید فلش bootable درست کرد، دقیقا یعنی فلشی که بتواند توسط بایوس برای بوت شدن انتخاب شود. البته در بایوسهای اولیه، این فهرست قابلتغییر نبود و فقط فلاپیدیسک و بعد هارددیسک در این فهرست نصب شده بود.
در رابطه با هارددیسک یا دستگاههایی شبیه آن مانند فلش، این چک کردن با بارگذاری نخستین بخش آن یا (boot sector) در رم انجام میگیرد. اگر مشکلی در خواندن این بخش باشد (به دلایل مختلف سختافزاری یا نرمافزاری)، بایوس دستگاه را غیرقابل بوت تشخیص میدهد و سراغ دستگاه بعدی در فهرست میرود. کاربران قدیمیتر یادشان است یکی از مخربترین کارهایی که یک ویروس رایانهای میتوانست انجام دهد خراب کردن این بخش بود که به خطای Bad Sector منجر میشد. شاید بپرسید بوت شدن از CD یا DVD چگونه است؟ از دیدگاه تاریخی، رایانهها تلاش میکردند ابتدا از فلاپیدیسک و بعد از هارد بوت شوند و جالب اینجاست که در ادامه نیز روند مستقلی برای بوتشدن از سیدی یا دیویدی تعریف نشد. بنابراین CD-ROMها عملا بهصورت شبیهسازی یک فلاپیدیسک با ظرفیت بالا (MB 1.44) بوت میشوند که در داخل این فلاپیدیسک شبیهسازیشده، برنامه ادامه روند خواندن از دیسک قرار دارد!
ارائه دسترسی به سختافزار: یکی از کارکردهای قدیمیتر بایوس که امروزه کمتر از آن استفاده میشود، ارائه سرویسهای سطحپایین به برنامهها بخصوص سیستمعامل است. در رایانههای امروزی شما با نصب ویندوز، درایورهای مربوط به سختافزار رایانهتان را هم نصب میکنید تا سیستمعامل به کمک آنها با سختافزار ارتباط برقرار کند. اما در دوره سیستمعاملهایی مثل DOS، این وظیفه بایوس بود که این دسترسی را تامین کند.
بر این اساس، بایوس کتابخانهای از توابع مربوط به ورودی یا خروجیهای سیستمی را در اختیار سیستمعامل قرار میداد تا از آن استفاده کند. این دسترسیها شامل مواردی چون ورودی از کیبورد، خروجی به کارت گرافیک یا موارد دیگر میشد. در رایانههای امروزی، این دسترسیها فقط تا پیش از بارگذاری سیستمعامل به عهده بایوس است و پس از آن سیستمعامل کنترلگر مطلق است.
عملیات استاندارد و خاص: بجز موارد بالا، بایوسها مسئول انجام کارهای استانداردی مانند ذخیره پسورد اصلی رایانه، تاریخ و زمان و موارد دیگری که معمولا با نام امکانات CMOS شناخته میشود نیز هستند. علاوه بر این در بایوسهای جدیدتر، قابلیتها و تنظیمات سطح بالاتری نیز قرار داده شده است. این امکانات که با استفاده از واسطههایی مانند ACPI در اختیار کاربر قرار میگیرد، شامل مواردی چون مدیریت قدرت (power management) و نمایش وضعیت پردازنده یا هارد میشود.
آینده بایوس
تا اینجا با بایوس و عملکرد آن آشنا شدید، اما باید بدانید دوران بایوس عملا تمام شده است. در چند سال اخیر و در مادربوردهای جدید، بایوسها جای خود را به فناوری دیگری به نام UEFI (Unified Extensible Firmware Interface) دادهاند.
فرمویر UEFI که توسط شرکت اینتل توسعهیافته، تمامی عملکردهای بایوس را همراه قابلیتهای جدیدتری در اختیار رایانه و کاربر میگذارد که برخی آنها عبارت است از:
امکان بوت از حافظههای بزرگ (بیشتر از دو ترابایت) با سیستم پارتیشنبندی GUID
معماری و درایورهای مستقل از پردازنده
محیط سطح بالا و منعطفِ پیش از سیستمعامل با امکاناتی چون استفاده از ماوس و دسترسی به شبکه
منبع: جام جم کلیک