بایوس (BIOS) چیست؟
بایوس (BIOS) برنامهای روی قطعهای از مادربورد (Motherboard) است که وظیفه هماهنگ کردن و پیکربندیهای پایهای و همچنین بوت کردن سیستم عامل را بر عهده دارد.
کلمه بایوس به چه معناست؟
کلمه بایوس (BIOS) (بخوانید /ˈbaɪ.ɒs/) مخفف عبارت Basic Input/Output System به معنای “سامانه ورودی/خروجی پایهای” بوده و معمولاً با نامهای زیر نیز شناخته میشود:
- System BIOS (بایوس سیستم)
- ROM BIOS (بایوس فقط خواندنی)
- PC BIOS (بایوس کامپیوتر)
- بایاس یا بیوس (به اشتباه)
مفهموم BIOS برای اولین بار توسط Gary Kildall (که یک محقق کامپیوتر بود) بیان شد و برای اولین بار در سیستم عاملش CP/M ظاهر شد. بعدها در نسخههایی از سیستم عامل MS-DOS فایلهایی قرار گرفتند که کار مشابه BIOS را انجام میدادند.
بایوس چیست؟
بایوس یک سفت افزار (Firmware) است که در داخل یک تراشه (Chip) بر روی همه مادربرد (Motherboard) در کامپیوترهای شخصی سازگار با IBM قرار میگیرد. سفت افزار یا فریم ویر به برنامههای سطح پایین تقریباً ثابتی (البته طی شرایطی قابل تغییر هستند) گفته میشود که در چیپهای الکتریکی ذخیره شده و معمولاً کنترل آن دستگاه را بر عهده میگیرند.
سفت افزار BIOS فقط خواندنی است به همین دلیل به آن ROM BIOS نیز گفته میشود. توجه کنید که حافظه فقط خواندنی هم تحت شرایطی مانند آپدیت کردن و … قابل عوض شدن است. زمانی که کامپیوتر را روشن میکنید، بایوس وارد عمل شده و همان طور که از نامش پیداست، انواع خروجیها و ورودیها را تشخیص داده، مدیریت کرده و آنها را تست میکند. پس از تست کردن نوبت به آن میرسد که سیستم عامل را راه اندازی کند. این کار با تشخیص دادن رکورد راه انداز اصلی (MBR) روی حافظه تنظیم شده (حافظهای که در بایوس تنظیم میشود تا بوت از طریق آن حافظه انجام گیرد. مثل هارد دیسک ها، فلش مموری ها و …) انجام میگیرد.
وظایف بایوس
همانطور که گفته شد، بایوس کارهای ابتدایی برای راه اندازی سیستم را انجام میدهد. این کارهای ابتدایی همان وظایف بایوس هستند که تعدادی از آنها عبارت اند از:
- * Power On Self Test (به اختصار POST): بایوس قطعات سخت افزاری را قبل از راه اندازی سیستم عامل تست و آزمایش میکند تا از سالم بودن و کارکردن صحیح آنها مطمئن شود. درصورت وجود مشکلی در قطعات سخت افزاری (مثلاً نصب نبودن RAM) این خطا توسط بوقهایی که به Beep معروف اند به کاربر اطلاع داده میشود.
- * درایوهای بایوس: درایوها رابط بین سخت افزار و نرم افزار هستند. بایوس نیز با استفاده از درایوهای سطح پایین امکان کنترل سایر قطعات و ورودیها مانند کیبورد را فراهم میکند. به این ترتیب امکان کنترل کردن قطعات و آماده سازی آنها فراهم میشود.
- * راه اندازی سیستم عامل: مهمترین وظیفه بایوس. بایوس با استفاده از رکورد راه انداز اصلی (MBR) موجود در حافظههای جانبی، کنترل سیستم را به سیستم عامل میسپارد. این فرایند آخرین کاری است که بایوس هنگام روشن کردن کامپیوتر انجام میدهد. بایوس برای این کار به ترتیب حافظههایی که برای بوت شدن اولویت بندی شدهاند را چک کرده و درصورتی که همه چیز Ok باشد (!) سیستم عامل را بارگذاری میکند.
- * پیکربندیهای بایوس: بایوس به کاربر این امکان را میدهد که بنابر نیاز وی، تطابق و هماهنگی قطعات، کارایی و عملکرد سیستم، تنظیمات پایهای سخت افزارها را انجام دهد. برای مثال کاربر میتواند برای حافظههای مختلف اولویت بوت شدن را تنظیم کند، ماژول صدای Onboard، کنترلر USB را تنظیم کند، درگاههای مختلف از جمله درگاه موازی و سریال را پیکربندی کند، درصورت نیاز منابع را Overclock کند و … . این کار با استفاده از رابط بایوس یعنی Setup انجام میگیرد.
- فعال کردن بایوس سایر قطعات: ممکن است فکر کنید که بایوس خودش به تنهایی عمل آماده سازی را انجام میدهد اما اگر دقت کنید، برای مثال انواع مختلفی از کارتهای گرافیک با درایوهای مختلف وجود دارد. گنجاندن این همه درایو در بایوس تقریباً غیرممکن است. IBM با یک ایده عالی این مشکل را برطرف کرد؛ نصب کردن یک بایوس دیگر روی کارتهای اضافی از قبیل کارت گرافیک. به این ترتیب بایوس مادربورد فقط بایوس کارت گرافیک را شناخته و آن را فعال کرده و ما تصویر را از طریق آن بایوس هنگام روشن کردن کامپیوتر بدست میآوریم.
- کنترل قطعات سخت افزاری: این مورد یکی از مهمترین وظایف بایوس است. بایوس با استفاده از درایوها و پیکربندیهای خود، منابع سیستمی را کنترل میکند. این کنترل ابتدایی و پایهای بوده و صرفاً به معنای بالا بردن کارایی نیست.
*: وظایف اصلی بایوس
مراحل راه اندازی سیستم عامل
خب تا اینجا با چند مورد از وظایف اصلی بایوس آشنا شدیم. بهتر است به نحوه راه اندازی سیستم عامل توسط بایوس نیز نگاهی داشته باشیم. توجه کنید که مراحل با استفاده از توضیحات موجود در کتاب PCI and PCI-X Hardware and Software: Architecture and Design و سایت flint.cs.yale.edu نوشته شدهاند:
1- دکمه روشن کردن کامپیوتر را فشار میدهیم. به دلیل این که تولید کردن جریان قابل اعتماد توسط منبع تغذیه (PSU) کمی طول میکشد، سیگنال Reset (لینک ویکیپدیا) به پردازنده (CPU) ارسال میشود. پس از آن که منبع تغذیه سیگنال Power Good را بازگرداند (این سیگنال توسط استاندارد ATX مشخص شده و به معنای داشتن جریان الکتریکی مناسب است)، سیگنال Reset متوقف شده و پردازنده شروع به کار میکند. اینجاست که میگوئیم کامپیوتر روشن شده است.
2- پس از شروع به کار کردن پردازنده، این قطعه باید دستورات موجود در رم را بخواند اما به دلیل این که هیچ چیزی داخل رم نیست، این کار عملاً بیهوده است. سازندگان پردازندهها طبق قراردادی، برای شروع، محلی از حافظه ROM بایوس را دریافت کرده و آن را اجرا میکنند. این مکان به آدرس FFFFFFF0h (در پردازنده 80386 و x86های بعد) که درست پس از آدرس فضای 32 بیتی است، بوده و نام آن Reset Vector (لینک ویکیپدیا) است که در پردازندهها دقیقاً پس از سیگنال Reset پردازش میشود.
3- اولین دستور توسط پردازنده اجرا میشود. این دستور چیزی نیست جز یک دستور ساده Jump (دستور JMP) برای پرش به خط ابتدایی برنامه بایوس اصلی. پس از آن، بایوس شروع به اجرا شدن میکند. اولین کاری که بایوس انجام میدهد بررسی قطعات سخت افزاری برای اطمینان از سالم و قابل استفاده بودن است در این کار اطلاعاتی از قطعات سخت افزار نیز به دست میآید. این پروسه POST نام داشته و در صورتی که طی این پروسه خطایی دیده شود، بایوس پردازش را قطع کرده و برای مطلع کردن کاربر صداهای بیپ (Beep)ای را از طریق بازر (Buzzer) روی مادربورد پخش میکند. با استفاده از این بیپها میتوان مشکل را یافت و آن را برطرف نمود. درصورتی که پروسه POST بدون خطا به اتمام برسد، نوبت به قدم بعدی میرسد.
4- قدم بعدی نمایش اطلاعات روی مانیتور کاربر است. همانطور که گفته شد، گنجاندن درایوهای متنوع در بایوس به دلیل تنوع زیاد کارتهای گرافیک، عملاً غیرممکن است. برای حل این مشکل، در خود کارتهای گرافیکی بایوسی تعبیه میشود و معمولاً اولین دستور آن در آدرس C000h حافظه کارت گرافیکی قرار داده میشود. بایوس مادربورد لحظهای کنترل را به بایوس کارت گرافیک میسپارد و پس از آن که مانیتور تصویر را به درستی نمایش داد، کنترل دوباره به بایوس مادربورد داده میشود.
ممکن است متوجه شده باشید که قبل از نشان داده شدن اطلاعات بایوس مادربورد، اطلاعاتی مختصر درباره کارت گرافیک نشان داده میشود. دلیل آن نیز این است که بایوس کارت گرافیکی اولین اطلاعات را برای نشان دادن به مانیتور میفرستد و پس از آن کنترل را به بایوس اصلی میسپارد.
5- در قدم بعدی، بایوس مادربورد به دنبال سایر بایوسها (در صورت وجود) در قطعات دیگر (از جمله هارد دیسکهای ATA یا IDE) میگردد. این کار معمولاً در آدرس حافظه C800h انجام میگیرد. درصورتی که در سیستم هیچ کارت گرافیکی برای نمایش وجود نداشته باشد، معمولاً علاوه بر آدرس C800h، آدرس C000h (که برای کارت گرافیک است) نیز بررسی میشود. درصورت پیدا شدن بایوسی، محتوای آن نیز اجرا شده سپس کنترل به بایوس اصلی برگردانده میشود.
6- صفحه Startup بایوس در این مرحله نشان داده شده و پس از آن تستهای بیشتری روی منابع اصلی (مثل RAM) انجام میگیرد. پس از اتمام این تستها، سخت افزارهایی مانند هارد دیسکها، درایوهای DVD/CD، حافظههای USB و منابعی از این قبیل شناسایی شده و اطلاعات آنها جمع آوری میشود. در نهایت ممکن است اطلاعات مختصری درباره منابع سیستم به کاربر نشان داده شود. در این مرحله تنظیمات ذخیره شده در CMOS (در بخش بعدی توضیح داده خواهد شد) بارگذاری میشوند.
7- در این مرحله، طبق پیکربندیهای انجام شده (یا به صورت پیش فرض) حافظههای جانبی به صورت اولویت بندی شده برای موجود بودن سیستم عامل بررسی میشوند. این بررسی با استفاده از MBR (در هارد دیسکها)، VBR (در فلاپی درایوها) و … انجام میگیرد و درصورتی که حافظهای بوتیبل (Bootable – قابل بوت) نباشد، بایوس به سراغ اولویت بعدی میرود. درصورت پیداش شدن حافظه قابل بوت، بایوس با استفاده از رکورد بوت آن، کنترل را بر عهده سیستم عامل میگذارد. درصورت پیدا نشدن خطاهایی از جمله “No boot device”، “No boot device available” نشان داده میشوند.
بایوس خود شامل رابط پوستهای (بین رابط گرافیکی و متنی) است و به کاربر این امکان را میدهد تا تنظیمات و پیکربندیها مورد نیاز برای سخت افزارها، ورودیها، حافظهها جانبی، اولویت راه اندازی، تنظیمات زمان و تاریخ و … را انجام دهد. این رابط به CMOS Setup یا BIOS Setup یا به اختصار Setup معروف است و کاربر در مرحله نشان دادن صفحه Startup میتواند به آن وارد شود. ممکن است بر روی ستاپ رمز گذاشته شود.
چیپ BIOS و CMOS
تراشه یا همان چیپ اصلی بایوس معمولاً به صورتی است که بتوان آن را به صورت فیزیکی از روی بورد جدا کرد. این قابلیت این امکان را به کاربر میدهد تا درصورتی که بایوس وی به عنوان یکی از مهمترین قطعات مادربورد صدمه دیده باشد یا در برنامه اصلی آن تغییراتی ایجاد شود که بایوس را به کلی غیرقابل استفاده کند، بدون تعویض مادربورد، آن تراشه را با یک تراشه جدید (دقیقاً با همان مدل) تعویض کند. در تصویر زیر دو نوع چیپ بایوس را از دو تولید کننده بزرگ مشاهده میکنید. چیپهای بایوس میتوانند به صورت مربعی (مثل تصویر زیر) یا به صورت مستطیلی باشند همچنین ممکن است این چیپ به صورت کامل به بایوس وصل شده باشد و جدا کردن آن به راحتی انجام نپذیرد.
همانطور که میدانید، تنظیمات موجود در BIOS Setup (یا CMOS Setup) باید در محلی ذخیره شده تا در هنگام راه اندازی دوباره بتوان از آنها استفاده کرد. در تنظیمات در داخل تراشهای به نام CMOS (مخفف Complementary metal–oxide–semiconductor) ذخیره میشود. این تراشه درواقع یک نوع حافظه غیرفرار (البته در ادامه خواهید فهمید که چندان هم غیرفرار نیست!) است که کاملاً با حافظه اصلی (RAM) متفاوت است.
در این نوع حافظه که به NVRAM نیز معروف است، دادهها به کمک یک باتری لیتیومی (به صورت عمومی از نوع CR2032) نگه داری میشوند. حجم این حافظهها به صورت معمول 64 یا 128 بایت بوده و مقادیر بایتهای آن به صورت قرار دادی مشخص میشود. برای مثال 12 بایت اول برای تنظیمات ساعت RTC است. برای اطلاعات بیشتر CMOS Memory Map را بخوانید.
باتریهای سیماس (CMOS) میتوانند به طور متوسط، 5 سال انرژی مورد نیاز تراشه CMOS را تامین کنند. همچنین در کنار باتری معمولاً یک کریستال 32.768 کیلوهرتزی (KHz) نیز یافت میشود که وظیفه به روز نگه داشتن ساعت و تاریخ را برعهده دارد. مقادیر ساعت و تاریخ پس از تنظیم در Setup بایوس در داخل تراشه CMOS ذخیره شده و هنگام خاموش بودن کامپیوتر، تراشه با استفاده از باتری یاد شده عمل به روز نگه داشتن ساعت را انجام میدهد. مقادیر ساعت و تاریخ که در داخل سیستم عامل (مثلاً ویندوز) مشاهده میکنید، از این طریق بدست میآید.
البته لازم به ذکر است که باتری ممکن است در سوکتها متنوعی دیده شود همچنین این باتری بک آپ بعضاً به شکلهای دیگری یافت میشود. توجه کنید که درصورتی که این باتری وجود نداشته باشد یا نتواند انرژی مورد نیاز را فراهم کند، دادههای ذخیره شده در CMOS و در نتیجه تنظیمات BIOS از دست خواهند رفت. یعنی از دلایلی که باعث پاک شدن تنظیمات BIOS میشود، از کار افتادن این باتری است.
تولیدکنندگان بایوس:
در لیست زیر، برخی از مهمترین تولیدکنندگان چیپهای بایوس نوشته شده است. سه مورد اول رایج ترین شرکتها هستند: