بهتر است پاسخ به این سوال را با یک مثال ساده آغاز کنیم. برای برگزاری یک مسابقه فوتبال و انجام آن به نحو احسن دو عامل اصلی به نام بازیکنها و مربی حضور دارند. تمامی بازیکنها توسط شخص مربی مدیریت میشوند و باید تابع نظرات مربی عمل کنند. در صورت عدم رعایت دستورات، کل تیم به هرج و مرج و بینظمی کشیده شده و نتیجاتا منجر به دریافت گل میگردد. بنابراین با وجود اینکه شخص مربی در زمین و در بین بازیکنها دیده نمیشود اما نقش کلیدی و محوری در هدایت تیم ایفا مینماید. حال همین مثال در مورد رایانه نیز صدق میکند. اگر بازیکنان را نرم افزار و سخت افزار یک رایانه فرض کنیم، مربی در حکم سیستم عامل بوده و وظیفه هماهنگی بین سخت افزار و نرم افزار را بر عهده دارد.
یکی از مهمترین بخشهای یک رایانه، سیستم عامل آن است. سیستم عامل وظیفه کنترل سخت افزار و ایجاد ارتباط بین نرم افزار و سخت افزار را به کمک عوامل متعددی انجام میدهد. سیستم عامل بستر اصلی مدیریت نرم افزار، اجرای انواع اپلیکشنها و مدیریت منابع سیستم همچون میزان حافظه اختصاص داده شده به یک نرم افزار، ارسال و دریافت دستورات پردازنده مرکزی و گرافیکی و… است.
در کامپیوتر به هر هر عملی همچون باز کردن یا بستن یک برنامه، تایپ یک حرف، انجام محاسبات ریاضی و مواردی از این دست یک عملیات گفته میشود. بعضی از سیستمهای عامل تنها توان انجام یک عمل در ثانیه را دارند و به فرض در یک زمان واحد نمیتوانند یک عملیات همچون ضرب دو عدد و باز کردن یک برنامه را انجام دهند. این دسته از سیستمهای عامل که به تک عملیاتی معروف هستند، عملیات درخواستی کاربر و یا هر عملیات دیگر، باید یکی یکی پردازش شده و به پایان برسد در این حالت سیستم عامل نمیتواند در یک زمان بیش از یک دستور را به انجام برساند و ممکن است برای اجرای چند دستور ساده، زمان زیادی را هدر دهد. از سیستم عاملهای تک عملیاتی میتوان به DOS اشاره کرد که البته این روزها کاربرد کمتری دارد.
امروزه اکثر سیستم عاملها در رده چند عملیاتی قرار میگیرند. این دسته میتوانند به طور همزمان چندین دستور مختلف را انجام دهند و به مدیریت منابع رایانه بپردازند. در سیستمهای عامل چند عملیاتی، منابع سخت افزاری به چندین قسمت متناسب با برنامههای در حال اجرا تقسیم میگردد. سیستم عامل فضای بیشتری از حافظه رم و پردازنده را در اختیار برنامههایی که احتیاج به محاسبات بیشتر و سنگینتری دارند قرار داده و به نرم افزارهای سبکتر، مقدار محدودتری را اختصاص میدهد. به عبارت سادهتر سیستم عامل با مدیریت هوشمند، باعث اجرای صحیح و سریعتر نرم افزار میشود. از سیستم عاملهای معروف چند عملیاتی میتوان ویندوز، لینوکس، مکینتاش، اندروید و IOS را نام برد. سالانه با آپدیتها و عرضه نسخههای جدیدتر سیستم عاملهای مذکور، یکی از مهمترین بخشهایی که دستخوش تغییرات میشود، نحوه مدیریت سیستم چند عملیاتی است.
در همهی سیستم عاملها معمولا دو محیط برای کاربر در نظر گرفته شده است که میتوان از طریق آنها فرمان مورد نظر را به کامپیوتر داد. این دو بخش به محیط نوشتاری و محیط گرافیکی تقسیم میشود. در محیط نوشتاری تمامی دستورات، فقط توسط نوشتن به رایانه داده میشود و هیچ محیط گرافیکی وجود ندارد. حتی در تعدادی از سیستم عاملها همچون نسخههای قدیمی DOS، موس قابل شناسایی نیست و تنها ابزار ورودی کیبورد است. البته در محیط ویندوز نیز در صورت باز کردن CMD، به محیطی بسیار شبیه Dos بر خواهید خورد که در اینجا نیز، فقط توسط نوشتن مستقیم دستورات، عملیات مورد نظر انجام میشود. اما به دلیل رابط کاربری بسیار ضعیف سیستمهای نوشتاری، امروزه سیستم عاملهای گرافیکی بیشترین سهم بازار رایانهها، تبلت و اسمارت فونها را در بر گرفتهاند. سیستمهای عامل گرافیکی دارای یک محیط GUI هستند که با توجه به نوع سیستم عامل و طراحی زیر ساختهای آن، اطلاعات میتوانند توسط صفحه کلید، موس، دستهی بازی و یا صفحات لمسی وارد گردند. از بین سیستم عاملهای رایج، لینوکس بیشترین توازن بین محیط گرافیکی و نوشتاری را رعایت کرده است. سیستم عامل ویندوز نیز در نسخههای قدیمیتر بیشتر نوشتاری بود اما کم کم به سمت گرافیکیتر شدن حرکت کرد به طوریکه از ویندوز ویستا به بعد، تمایل بیشتری به محیط گرافیکی نسبت به محیط نوشتاری پیدا کرد. در حال حاظر سیستم عامل مکینتاش مخصوص رایانههای رومیزی اپل و سیستم عامل محبوب اندروید و IOS بیشترین تمایل به محیط گرافیکی را دارند به طوریکه تقریبا دستورات نوشتاری جایی در این سیستم عاملها ندارد.
علاوه بر نظارت نرم افزاری، کنترل سخت افزار در اختیار کامل سیستم عامل است. سیستم عاملهای ابتدایی معمولا مستیقما به سخت افزار دسترسی داشته و به درستی توان مدیریت این بخش را ندارند. اما سیستم عاملهای هوشمند، غالبا توسط تعدادی واسطهی متخصص بخشهای مختلف سخت افزار را زیر نظر دارند. از ابزارهای واسطه رایج میتوان به Direct X، Open Gl، Open CL، Dalvik، ART، Vulkan و… اشاره کرد. البته نقش اصلی واسطهی بین سیستم عامل و سخت افزار، درایور سخت افزار است. درایور هر سخت قطعه سخت افزاری یا توسط ویندوز نصب شده و یا باید کاربر اقدام به نصب آن بکند. البته هنوز هم در بسیاری از موارد سیستم عامل بدون دخالت ابزارهای واسطه مستقیما دستورات را به سخت افزار ارسال و پاسخ را دریافت میکند. دستورات میتوانند از یک عملیات ساده جمع گرفته تا اجرای بازیهای رایانهای و یا رندر گیری توسط ویندوز و ابزارهای واسطه به انجام برسد. یکی از مهمترین وظایف سخت افزاری سیستم عامل که معمولا بدون هیچگونه واسطهای انجام میگیرد، آدرس دهی حافظه اصلی (رم) میباشد. آدرس دهی رم بدین معناست که هر برنامه یا عملیات در حال اجرا، چه تعداد بلوک حافظه و همچنین کدام بلوکهای حافظه را اشغال کند تا پردازش به پایان برسد. هر نرم افزار در حال اجرا توسط سیستم عامل دارای بخشها و مرزهایی تعیین شده در حافظه اصلی است به طوریکه روند اجرای یک عملیات یا برنامه در روند اجرای دیگری هیچ دخالتی ندارد. حال تصور کنید که سیستم عامل این وظیفه را به درستی انجام ندهد. به عنوان مثال فرض کنید شما در حال انجام محاسبات ریاضی با نرمافزار ماشین حساب هستید و همزمان نرم افزارهای بسیار زیادی در بستر سیستم عامل در حال اجرا و پردازش هستند. حال اگر آدرس دهی رم به درستی صورت نگیرد، محاسبات سایر نرمافزارها و یا محاسبات شما وارد نرم افزارهای دیگر شده و به کل پردازش مختل شده و یا نتایجی اشتباهی تحویل داده میشود. سیستم عاملهای امروزی به دو دسته 32 بیتی و64 بیتی تقسیم میشوند. تفاوت این دو دسته در قدرت آدرس دهی رم خلاصه میشود. سیستم عاملهای 32 بیتی، قادر به آدرس دهی 4 گیگابایت حافظه اصلی هستند که اتفاقا بزرگترین ضعف این دسته در مقابل 64 بیتیها میباشد. در عوض یک سیستم عامل 64 بیتی قادر به آدرس دهی 2 به توان 64 ریز بلوک حافظه یعنی چیزی در حدود 18 میلیارد گیگابایت هستند و از این نظر نا محدود به شمار میروند. سیستم عاملهای 16 بیتی نیز فقط در نسخههای اولیه Dos دیده میشود که امروزه تقریبا هیچ کاربردی ندارند.
سیستم عامل وظیفه برقراری ارتباط شبکه و امنیت و نظارت بر دسترسی کاربران به اطلاعات موجود را نیز بر دوش دارد. در صورت عدم حضور سیستم عامل، هیچ دیوار امنیتی جهت جلوگیری از سرقت اطلاعات قادر به ادامه فعالیت نیست. به عبارت دیگر تمامی نرم افزارها جهت برقراری ارتباط با سخت افزار نیازمند بستر سیستم عامل هستند.