اغلب برای افراد مشکل است که تفاوت بین سخت افزار و نرم افزار را درک نمایند و این به این دلیل است که این دو موضوع در طراحی،ساخت وپیاده سازی سیستمها بسیار به هم وابستهاند . برای درک بهتر تفاوت بین آنها لازم است که ابتدا مفهوم BOIS را درک کنید.
BOISتنها کلمه ای است که میتواند تمام درایورهایی را که در یک سیستم به عنوان واسط سخت افزار سیستم و سیستم عامل کار میکنند ، را شرح دهد.
BOISدر حقیقت نرم افزار را به سخت افزار متصل مینماید . قسمتی از بایوس بر روی چیپ ROM مادربرد و قسمتی دیگر بر روی چیپ کارتهای وفق دهنده قرار دارد که FIRE WARE(یعنی میانه افزار یا سفت افزار)نامیده میشود .
یک PC میتواند شامل لایههایی (بعضی نرم افزاری و بعضی سخت افزاری ) باشد که واسط بین یکدیگرند. در اکثر اوقات شما میتوانید یک کامپیوتر (PC) را به چهار لا یه تقسیم کنید که هر کدام از لایهها به زیر مجموعههایی کوچکتر تقسیم کنیم . در شکل 1-5 چهار لایه نمونه از یک PC را مشاهده میکنید . هدف از این نوع طراحی این است که سیستم عاملها و نرم افزارهای مختلف بر روی سخت افزارهای مختلف اجرا شوند (حالت مستقل از سخت افزار ) . شکل 1-5 نشان میدهد که چگونه دو ماشین متفاوت با سخت افزارهای مختلف که از یک نسخه بایوس استفاده میکنند ، میتوانند انواع نرم افزارها و سیستم عاملهای مختلف را اجرا کنند . بدین طریق دو ماشین با دو پردازنده مختلف، رسانههای ذخیره سازی متفاوت و دو نوع واحد گرافیکی و غیره ... ، یک نرم افزار را اجرا کنند .
در معماری این لایهها برنامههای کاربردی با سیستم عامل از طریق API(Application Program Interface) ارتباط برقرار میکنند .
API بر اساس سیستم عاملی که مورد استفاده قرار میگیرد و مجموعه توابع و دستورالعملهایی که برای یک بسته نرم افزاری ارائه میدهد ، متغیر میباشد . به طور مثال یک بسته نرم افزاری میتواند از سیستم عامل برای ذخیره و بازیابی اطلاعات استفاده کند و خود نرم افزار مجبور نیست که این کارها را انجام دهد.