(Operating System) نرمافزار اصلیای است که سختافزار کامپیوتر و سایر نرمافزارهای موجود روی کامپیوتر را مدیریت میکند. سیستم عامل – که با مخفف OS نیز شناخته میشود – با سختافزار کامپیوتر درگیر میشود و سرویسهایی را که برنامهها میتوانند از آنها استفاده کنند، مهیا میکند.
وظیفه سیستم عامل چیست؟
سیستم عامل، مجموعه هستهایِ نرمافزار روی یک دستگاه میباشد که همه چیز را به یکدیگر متصل نگه میدارد. سیستم عاملها با سختافزار دستگاه ارتباط برقرار میکنند. آنها هر چیزی از صفحهکلید و موس گرفته تا رادیوی وایفای و حافظه دستگاه و صفحهنمایش را اداره میکنند. به عبارت دیگر، یک سیستم عامل، دستگاههای ورودی و خروجی را مدیریت میکند. سیستم عاملها برای برقراری ارتباط با دستگاههای مورد نظر از درایورهای دستگاه که توسط سازندگان سختافزار نوشته شدهاند، استفاده میکنند.
ضمناً سیستمعاملها شامل نرمافزارهای بسیاری میشوند. نرمافزارهایی چون سرویسهای معمول سیستم، کتابخانهها و رابطهای برنامهنویسی اپلیکیشینها (API) که برنامهنویسان از آنها استفاده میکنند تا برنامههایی را که روی سیستم عامل اجرا میشوند، بنویسند.
سیستمعامل میان اپلیکیشنها و سختافزار دستگاه قرار میگیرد و از درایورهای سختافزار به عنوان رابط میان آن دو استفاده میکند. برای مثال، هر گاه اپلیکیشنی بخواهد از چیزی پرینت بگیرد، انجام آن کار را به سیستمعامل محول میکند. سیستم عامل هم دستورالعمل انجام کار را برای پرینتر میفرستد؛ سیستم عامل برای آنکه سیگنالهای درستی برای پرینتر بفرستد، از درایورهای پرینتر استفاده میکند. اپلیکیشنی که در حال پرینت کردن است نیاز ندارد بداند از چه پرینتری استفاده میکنید یا نحوه کار کردن آن چگونه است؛ این سیستمعامل است که جزئیات کار را مدیریت میکند.
سیستمعامل همچنین انجام چند کار همزمان را مدیریت میکند، برای این کار منابع سختافزاری را میان برنامههای متعدد در حال اجرا تقسیم میکند. سیستم عامل اجرا شدن پردازشها را نیز کنترل میکند. در صورتی که کامپیوترتان CPUهای متعدد یا همان هستههای متعدد داشته باشد، سیستم عامل پردازشها را میان CPUهای مختلف تقسیم میکند و با این کار امکان اجرا شدن پردازشهای متعدد را به موازات هم فراهم میکند. ضمناً با تقسیم کردن مموری میان اپلیکیشنهای در حال اجرا، مموری داخلی سیستم را نیز مدیریت میکند. سیستمعامل یک بخش بزرگ از نرمافزار است که نمایش را اجرا میکند و مسئولیت همه چیز با آن است. برای مثال، سیستم عامل حتی فایلها و منابعی که برنامهها (Program) اجازه دسترسی بهشان را دارند نیز کنترل میکند.
اکثر اپلیکیشنهای نرمافزاری برای سیستم عاملها نوشته میشوند که این باعث میشود سیستمعاملها بتوانند قسمتهای سخت کارها را انجام دهند. برای مثال وقتی بازی Minecraft را اجرا میکنید، در واقع آن را روی سیستم عامل اجرا کردهاید. Minecraft نیاز ندارد بداند هر یک از مؤلفههای مختلف سختافزاری دقیقاً چگونه کار میکنند. Minecraft دستهای از عملکردهای متنوع سیستم عامل را مورد استفاده قرار میدهد و سیستم عامل نیز آنها را به دستورالعملهای سطح پایین سختافزاری ترجمه میکند. این فرایند، برنامهنویسان بازی Minecraft و هر برنامه دیگری که روی سیستم عامل اجرا میشود را از بسیاری از دردسرها نجات میدهند.
هسته هر سیستم عاملی، برنامهای به نام کرنل است
در یک توضیح ساده، «Kernel» (یا هسته اصلی)، برنامه هستهای کامپیوتر است که در قلب سیستم عامل واقع شده است. این تک برنامه، یکی از اولین چیزهایی است که هنگام بالا آمدن سیستم عامل، بارگذاری میشود. تقسیم کردن مموری، تبدیل عملکردهای نرمافزاری به دستورالعملهایی برای CPU کامپیوتر و سر و کله زدن با ورودیها و خروجیهای سختافزار دستگاه، توسط کرنل اداره میشوند. به طور کلی کرنل در محیطی ایزوله شده اجرا میشود تا از دخالت سایر نرمافزارهای موجود روی کامپیوتر در کارش جلوگیری شود. کرنلِ سیستم عامل بسیار مهم میباشد، منتهی کرنل نیز فقط بخشی از سیستمعامل است.
این چند سطر نیز ممکن است کمی پیچیده باشند. برای مثال، لینوکس فقط یک کرنل است. با این وجود، لینوکس هم خیلی اوقات سیستم عامل نامیده میشود. اندروید نیز با وجود اینکه به مرکزیت کرنل لینوکس (Linux Kernel) ساخته شده است، با نام «سیستم عامل» شناخته میشود. نسخههای توزیعشده لینوکس، مانند Ubuntu، کرنل لینوکس را بر میدارند و به آن نرمافزارهای جانبی اضافه میکنند؛ و با این وجود، حتی به آنها نیز عنوان «سیستم عامل» اطلاق میشود.