اغلب برای افراد مشکل است که تفاوت بین سخت افزار و نرم افزار را درک نمایند و این به این دلیل است که این دو موضوع در طراحی،ساخت وپیاده سازی سیستمها بسیار به هم وابستهاند . برای درک بهتر تفاوت بین آنها لازم است که ابتدا مفهوم BOIS را درک کنید.
BOISتنها کلمه ای است که میتواند تمام درایورهایی را که در یک سیستم به عنوان واسط سخت افزار سیستم و سیستم عامل کار میکنند ، را شرح دهد.
BOISدر حقیقت نرم افزار را به سخت افزار متصل مینماید . قسمتی از بایوس بر روی چیپ ROM مادربرد و قسمتی دیگر بر روی چیپ کارتهای وفق دهنده قرار دارد که FIRE WARE(یعنی میانه افزار یا سفت افزار)نامیده میشود .
یک PC میتواند شامل لایههایی (بعضی نرم افزاری و بعضی سخت افزاری ) باشد که واسط بین یکدیگرند. در اکثر اوقات شما میتوانید یک کامپیوتر (PC) را به چهار لا یه تقسیم کنید که هر کدام از لایهها به زیر مجموعههایی کوچکتر تقسیم کنیم . در شکل 1-5 چهار لایه نمونه از یک PC را مشاهده میکنید . هدف از این نوع طراحی این است که سیستم عاملها و نرم افزارهای مختلف بر روی سخت افزارهای مختلف اجرا شوند (حالت مستقل از سخت افزار ) . نشان میدهد که چگونه دو ماشین متفاوت با سخت افزارهای مختلف که از یک نسخه بایوس استفاده میکنند ، میتوانند انواع نرم افزارها و سیستم عاملهای مختلف را اجرا کنند . بدین طریق دو ماشین با دو پردازنده مختلف، رسانههای ذخیره سازی متفاوت و دو نوع واحد گرافیکی و غیره ... ، یک نرم افزار را اجرا کنند .
در معماری این لایهها برنامههای کاربردی با سیستم عامل از طریق API(Application Program Interface) ارتباط برقرار میکنند .
API بر اساس سیستم عاملی که مورد استفاده قرار میگیرد و مجموعه توابع و دستورالعملهایی که برای یک بسته نرم افزاری ارائه میدهد ، متغیر میباشد . به طور مثال یک بسته نرم افزاری میتواند از سیستم عامل برای ذخیره و بازیابی اطلاعات استفاده کند و خود نرم افزار مجبور نیست که این کارها را انجام دهد.
نرم افزارها طوری طراحی شدهاند که ما میتوانیم آنرا بر روی سیستمهای دیگر نصب و اجرا نمائیم و این به دلیل مجزا شدن سخت افزار از نرم افزار است و نرم افزار از سیستم عامل برای دستیابی به سخت اقزار سیستم استفاده میکند . سپس سیستم عامل از طریق واسطها به لایههای بایوس دستیابی پیدا میکند .بایوس شامل نرم افزارهای گرداننده ای است که بین سخت افزار و سیستم عامل ارتباط برقرار میکند . به خودی خود سیستم عامل هیچگاه نمی تواند مستقیما به سخت افزار دستیابی پیدا کند ، در عوض مجبور است از طریق برنامههای گرداننده ای که به این کار تخصیص یافتهاند عمل کند .
یکی از وظایف تولید کنندگان قطعات سخت افزاری آن است که گرداننده ای برای قطعات تولیدی خود ارائه دهند ، و چون گردانندهها باید بین سخت افزار و نرم افزار عمل نمایند ، باید گردانندههای هر سیستم عامل مجزا تولید شوند . بنابراین کارخانه سازنده قطعات باید گردانندههای مختلفی ارائه دهد تا قطعه مورد نظر بتواند بر روی سیستم عاملهای مزسوم کار کند .
چون لایههای بایوس همانند یک سیستم عامل به نظر میرسند ، مهم نیست که با چه سخت افزاری کار میکند ، و ما میتوانیم سیستم عاملها را بر روی هر کامپیوتری و با هر نوع مشخصات سخت افزاری نصب و استفاده نمائیم .
برای مثال شما میتوانید Windows 98 را بر روی دو سیستم متفاوت با پردازنده ،هارد دیسک،و کارت گرافیکی و ... که متفاوت از یکدیگرند نصب و اجرا کنید، اما بر روی هر دو سیستم همان کارائی خود را داراست، و زیرا که گردانندهها همان عملکرد پایه را انجام میدهند و مهم نیست که بر روی چه سخت افزاری کار میکنند .
معماری سخت افزار و نرم افزار بایوس
البته بایوس ، نرم افزاری است که شامل گردانندههای مختلفی است که که رابط بین سخت افزار و سیستم عامل هستند یعنی بایوس نرم افزاری است که همه آن از روی دیسک بارگذاری نمی شود بلکه قسمتی از آن ، قبلا بر روی چیپهای موجود در سیستم یا برروی کارتهای وفق دهنده نصب شده اند.
بایوس در سیستم به سه صورت وجود دارد :
1-ROM BIOS نصب شده بر روی مادر برد.
2- بایوس نصب شده بر روی کارتهای وفق دهنده (همانند کارت ویدئویی)
3- بارگذاری شده از دیسک(گردانندهها)
چون بایوس مادربرد مقدمات لازم را برای گردادنندهها و نرم افزارها ی مورد نیاز فراهم میکند ،د اکثرا به صورت سخت افزاری که شامل یک چیپ ROM میباشد موجود است.
سالهای پیش هنگامی که سیستم عامل DOS بر روی سیستم اجرا میشد خود به تنهائی کافی بود و گرداننده ای (Driver) مورد نیاز نداشت . بایوس مادربرد به طور عادی شامل گردانندههایی است که برای یک سیستم پایه همانند صفحه کلید، فلاپی درایو،هارد دیسک ، پورتهای سزیال و موازی و غیره ... است.
به جای اینکه برای دستکاههای جدید لازم باشد که بایوس مادربرد را ارتقاء دهید، یک نسخه از گرداننده آن را بر روی سیستم عامل خود نصب مینمائید تا سیستم عامل پیکربندی لازم را در هنگام بوت شدن سیستم را برای استفاده ار آن دستگاه انجام دهد ، برای مثال میتوانیم CD ROM،Scanner،Printer،گردانندههای PC CARD را نام برد.چون این دستکاهها لازم نیستند که در هنگام راه اندازی سیستم فعال باشند ، سیستم ابتدا ازهارد دیسک راه اندازی میشود وسپس گردانندههای آنرا بار گذاری مینماید.
البته بعضی از دستگاهها لازم است که در طول راه اندازی سیستم عامل فعال باشند ، اما این امر چگونه امکان پذیر است مثلا قبل از آنکه گرداننده کارت ویدئویی از ROM BIOS و یا از رویهارد دیسک فراخوانی شود شما چگونه میتوانید اطلاعات را بر روی مانیتور ببینید ..
یک جواب این است که در ROM تمام گردانندههای کارت گرافیکی وحود داشته باشد اما این کار غیر ممکن نیست زیرا کارتهای بسیار متنوعی وجو دارد که هر کدام گرداننهده مربوط به خود را داراست که این خود باعث میشود صدها نوع ROM مادربرد به وجود آید که هر کدام مربوط به یک کارت گرافیکی میباشد.
اما هنگامی که IBM،PCهای اولیه خود را اختراع نمود راه حل بهتری ارائه داد . او ROM مادربرد را طوری طراحی کرد که شکاف (Slot)کارت گرافیکی را برای پیدا کردن ROM نصب شده روی کارت گرافیکی را جستجو کند .
و اگر ROM روی کارت را میتوانست پیدا میکرد ، مرحله اولیه راه اندازی را قبل از اینکه سیستم عامل از روی دیسک فراخوانی (Load) شود ،اجرا مینمود. بدین وسیله از تعویض ROM قرار داده شده بر روی مادربرد برای استفاده و فعال کردن دستگاه مورد نظر،ممانعت میکند.
کارتهای مختلفی که تقریبا بر روی همه آنها ROM وجود دارد ، شامل موارد زیر هستند :
کارتهای ویدئویی که همیشه دارای BIOS میباشند.
وفق دهندههای SCSI که امکان استفاده از دستگاههای با اتصالات SCSI را فراهم میآورد .
کارتهای شبکه که امکان راه اندازی سیستم با استفاده از فایل سرور که معمولا Boot Rom یا IPL(Initial Program Load) ROM نامیده میشوند، را فراهم میآورد ..
استفاده از دستگاههای IDE
بردهای Y2K که برای کامل کردن CMOS RAM هستند .
BIOS و CMOS RAM
اکثر افراد BIOS رابا CMOS RAM اشتباه میگیرند ، این از آنجا سرچشمه میگیرد که برنامه Setup برای پیکربندی BIOS و ذخیره آن در CMOS RAM میشود استفاده میشود.
در حقیقت BIOS و CMOS RAM دو چیز متفاوت از هم میباشند. بایوس مادربرد در یک چیپ ROM به طور ثابت ذخیره شده است.
همچنین بر روی مادربرد یک چیپ است که RTC/NVRAM نامیده میشود ، که زمان سیستم را نگهداری میکند و یک حافظه فرار و ثابت است که اولین بار در چیپ MC146818 ساخت شرکت موتورلا استفاده شده است، و ظرفیت آن 64 بایت است که 10 بایت آن مربوط به توابع ساعت است ..
اگرچه این چیپ غیر فرار نامیده میشود اما با قطع برق ، ساعت و تاریخ تنظیم شده در آن و دادههای درون RAM پاک میشود .
در حقیقت غیر فرار نامیده میشود چون با استفاده از تکنولوژی CMOS(Complementarry Metal-Oxide Semicondector) ساخته شده است ، در نتیجه با یک جریان بسیار کم که بوسیله باطری سیستم تامین میگردد ، پایدار باقی میماند که اکثر مردم به این چیپ ،CMOS RAM میگویند .
هنگامی که وارد BIOS Setup میشوید و پارامترهای خود راتنظیم و ذخیره مینمایید ، این تنظیمات در ناحیه ای از چیپ RTC/NVRAM ذخیره میشوند(که همچنین CMOS RAM نیز نامیده میشود).
و در هر موقع که سیستم خود را راه اندازی میکنید پارامترها از CMOS RAM خوانده میشوند و تعیین میکنند که سیستم چگونه پیگربندی شده است.
BIOS مادربرد :
همه مادربردها شامل یک چیپ مخصوص هستند که بر روی آن نرم افزاری قرار دارد که BIOS یا ROM BIOS نامیده میشود . این چیپ ROM شامل برنامههای راه اندازی و گردانندههایی است که که در هنگام راه اندازی سیستم مورد نیاز است و یک واسطه به سخت افزار پایه سیستم است .
اغلب به CMOS RAM (حافظه پاک نشدنی NVRAM(Non-Volatile نیز میگویند ، چون با 1 میلینیوم آمپر فعال میشود و تا هنگامی که باطری لیتیوم فعال باشد ، دادهها باقی میمانند.
BIOS مجموعه ای از برنامههایی است که در یک یا چند چیپ ذخیره شده است ، که در طول راه اندازی سیستم این مجموعه از برنامهها قبل از هر برنامه ای حتی سیستم عامل بارگذاری میشوند .
BIOS در اکثر سیستمهای PC ها شامل چهار تابع است: