سیستمعامل یا OS مخفف Operating System برنامهای است که پس روشن شدن سیستم توسط یک برنامهی بوت در رایانه شما بارگذاری میشود، این برنامه تمام برنامههای کاربردی دیگر را در یک کامپیوتر مدیریت میکند. برنامههای کاربردی برای اجرا یا ارائه خدمات از طریق رابط برنامه تعریف شده در برنامه (API) یک درخواست برای خدمات ایجاد کرده و سپس از سیستم عامل استفاده میکنند.
علاوه بر این، کاربران میتوانند از طریق رابط کاربریهای دیگر مانند خط فرمان یا یک رابط کاربری گرافیکی (GUI) مستقیماً با سیستمعامل ارتباط برقرار کنند. همچنین سیستم عامل، سخت افزار رایانه را قادر میسازد تا با نرم افزارهای دیگر ارتباط برقرار کرده و کار کند، بدون وجود سیستم عامل در رایانه، نمیتوان با برنامههای کاربردی و سختافزارها کار کرد.
تاریخچهی سیستمعاملها
اولین سیستم عامل مورد استفاده GM-NAA I/O بود که در سال ۱۹۵۶ توسط بخش تحقیقات جنرال موتورز برای IBM 704 خودش تولید شد. مدتها پس از آن، زمانی که کامپیوترهای شخصی در سال ۱۹۷۵ میلادی برای اولین بار معرفی شدند، کاربر با استفاده از یک رابط خط فرمان که نیاز به دستورات داشت کارهای خود را از طریق سیستمعامل انجام میداد که کاری بسیار سخت و طاقت فرسا بود. امروزه تقریباً در هر رایانه از یک سیستم عامل با GUI که مخفف اصطلاح Graphical User Interface است، استفاده شده که کار با سیستمعاملها را بسیار آسانتر کرده است.
سیستمِ عامل، سیستمعامل یا نرمافزار عامل؟
ممکن است برخی از افراد سیستمعامل را با عنوان “نرمافزار عامل” استفاده کنند. اگرچه این اصطلاح درست است، اما مناسبتر این است که این نرم افزار “سیستمعامل” خوانده شود. همچنین اصطلاح سیستمعامل درستتر از سیستمِ عامل است.
سیستمعامل چیست؟
سیستمعامل برنامهای است که در تمام لحظات روی کامپیوتر شما در حال اجراست و به عنوان واسطی بین کاربران یک کامپیوتر و سخت افزار عمل میکند. این نرم افزار معمولاً هستهی سیستم یا کرنل (Kernel) نامیده میشود. هدف یک سیستم عامل این است که محیطی را فراهم کند که کاربر بتواند برنامههایش را به روشی موثر و راحت اجرا کند. تمام برنامههای دیگر برخی برنامههای سیستمی و برخی برنامههای کاربردی هستند. در کل میتوان گفت که سیستم عامل یک برنامه برای مدیریت سخت افزار کامپیوتر است.
یک سیستم عامل شبیه یک دولت است. به خودی خود کاری انجام نمیدهد، اما محیطی را فراهم میکند که برنامههای دیگر بتواند کارهای مفیدی انجام دهند.
وظایف اصلی هر سیستم عامل
سیستم عامل یک Resource Allocator است، یعنی منابعی همچون حافظه، زمانکاری پردازنده، دستگاههای ورودی و خروجی و… را طبق الگوریتمهایی به متقاضیان اختصاص میدهد.
همچنین سیستمعاملها یک Control Program نیز هستند، یعنی اجرای برنامهها را کنترل میکند تا از خطاها و استفاده نادرست از سیستم جلوگیری کنند.
خدمات سیستمعامل به برنامههای کاربردی
همانطور که گفته شد سیستم عامل تمام برنامههای کاربردی دیگر را در یک کامپیوتر مدیریت میکند. خدماتی که این برنامه برای برنامههای کاربردی انجام دهد میتواند موارد ذیل را شامل شود:
در یک سیستم عامل چند وظیفهای (مانند ویندوز در سیستم کامپیوتری یا اندروید در تلفن همراه) چندین برنامه همزمان میتوانند اجرا شوند، این سیستمعامل است که تعیین میکند برنامهها باید به چه ترتیب اجرا شوند و قبل از نوبت یک برنامه دیگر، چقدر زمان باید برای هر برنامه مجاز باشد.
به اشتراک گذاری حافظه داخلی میان چندین برنامه کاربردی را مدیریت میکند.
این برنامه از ورودی و خروجیهای دستگاههای سخت افزاری متصل مانند هارد دیسک، چاپگر و پورتها استفاده میکند تا دستورات را اجرا یا نتیجه آن را نمایش دهد.
همچنین در زمان مشکل در عملکرد و هرگونه خطایی که ممکن است در برنامهای رخ دهد یک پیام در مورد آن خطا به کاربر (یا به اپراتور سیستم) ارسال میکند.
سیستم عامل میتواند مدیریت کارهای گروهی را بارگیری و اجرا کند (به عنوان مثال چاپ) این عمل به گونهای انجام میشود که برنامه ایجاد کننده از این کار آزاد شود. یعنی زمانی که شما دستور پرینت ۱۰۰ صفحه از یک فایل در برنامه Word میدهید همچنان میتوانید با برنامه Word کار کنید زیرا عمل پرینت در پس زمینه اجرا میشود.
در رایانههایی که میتوانند پردازش موازی ارائه دهند (برای مثال در کامپیوترهایی که پردازنده چند هستهای دارند) یک سیستمعامل میتواند نحوه تقسیم برنامه را به گونهای مدیریت کند که به طور همزمان روی هر هسته از پردازنده اجرا شوند.
در کل میتوان گفت کلیه سیستمهای رایانهای (سخت افزاری و نرم افزاری) به سیستمعامل نیاز دارند و سیستمهای عامل باید با ویژگیهای مختلف توسعه داده شوند تا نیازهای خاص در عوامل مختلف را برآورده سازند.
انواع سیستمعامل در پلتفرمهای مختلف
هر پلتفرم و بستر بر اساس نیاز خود و سختافزارهایی که در آن به کار برده شده سیستمعامل متفاوتی دارد. به عنوان مثال گوشیهای همراه از سیستم عاملهایی چون اندروید، iOS، ویندوز فون و… بهره میبرند که هر کدام مزایا، معایب و طرفداران خود را دارند.
سیستم عاملها میتوانند روی کامپیوترهای شخصی، سرورها، گوشیهای همراه، گجتهای هوشمند و بسیاری از لوازم الکترونیکی دیگر نصب باشند. هر یک از این سیستم عاملها گستردگی عملکرد خود را دارند.
برای مثال سیستمعامل یک سنسور بررسی رطوبت خاک جهت آبیاری در بازهی زمانی تعریف شده یک پردازش از محیطش انجام داده و یک سیگنال به سیستم آبیاری ارسال میکند تا نیاز به آبیاری را اطلاع رسانی کند. یا یک سیستم عامل جاسازی شده برای استفاده در رایانههای ساخته شده در سیستمهای بزرگتر مثل اتومبیل، چراغ راهنمایی، تلویزیون دیجیتال، دستگاههای خودپرداز، کنترل هواپیما، پایانههای فروش (POS)، دوربینهای دیجیتال، سیستمهای GPS، آسانسور، گیرندهها، کنتورهای هوشمند و…
سیستم عامل شبکه (NOS) نیز یک سیستم عامل رایانهای است در بستر مختص خودش که همان شبکههای کامپیوتری طراحی شده است. این OS در درجه اول برای پشتیبانی از کلاینتها، رایانه شخصی و موارد دیگری که به یک شبکه وصل میشوند (برای مثال یک شبکه LAN) ارائه شده است.
سیستم عامل Real Time یا (RTOS) یک سیستم عامل است که توانایی خاصی را در یک محدودیت زمانی، مشخص یا تضمین میکند. به عنوان مثال، یک سیستم عامل ممکن است برای اطمینان از کارکرد درست یک شی خاص در یک ربات در خط مونتاژ طراحی شده باشد.
نمونههایی از سیستم عاملهای کامپیوتری
سیستمعاملهای رایانهای سیستم عاملهایی هستند که تنها روی سیستمهای کامپیوتری، رایانههای شخصی و یا سرورها اجرا میشوند، این سیستم عاملها کاراییهای خاص خود را داشته و هرکدام پلتفرم مخصوص خود را دارند. موارد ذیل چند نمونه از سیستم عاملهای کامپیوتری هستند.
مایکروسافت ویندوز (Microsoft Windows) سیستم عامل سازگار با کامپیوتر است، این نوع از سیستمعاملها رایج ترین و پرکاربردترین نوع سیستمعامل هستند، یا OSX تنها سیستمعامل رایانهای مختص اپل مکبوکهای اپل است.
سیستمعامل اوبونتو (Ubuntu) یک نوع رایج از لینوکس است که برای کامپیوترها استفاده میشود، این نوع سیستمعامل به دلیل امنیت بالای آن پرکاربردترین سیستم عامل در سرورها است.
نمونههایی از سیستم عاملهای تلفنهای همراه و تبلت
سیستمعامل گوشیهای همراه نیز همانند سایر سیستم عاملها وظیفه تعیین توابع و ویژگیهای موجود در دستگاه شما مانند بررسی اثر انگشت، عملکرد صفحه کلید، احراز هویت با رمزنگاریهایی مانند WAP، همگام سازی برنامهها، ارسال و دریافت ایمیل، پیام کوتاه و موارد دیگر را بر عهده دارند.
سیستمعامل تلفن همراه همچنین تعیین میکند که برنامههای شخص ثالث (برنامههای تلفن همراه) در دستگاه شما اجرا شوند یا خیر. نوع سیستمعامل را سازندههای تلفن همراه برای دستگاه خود انتخاب میکنند.از انواع این سیستم عاملها میتوان به موارد زیر اشاره کرد:
اندروید (Android) یک سیستمعامل اپن سورس (open source) یا متنباز است. عبارت «متنباز» بدین معناست که کد بنیادی این سیستمعامل، رایگان محسوب میشود و هرکسی میتواند بخشی از کدها را با توجه به نیازهای خود تغییر دهد. به دلیل متنباز بودن و مشخصههای انعطافپذیر این سیستمعامل، حضور اندروید محدود به گوشیها نمانده و گجتهای متعددی مانند کنسولهای بازی، یخچالهای هوشمند و دیگر موارد از اندروید بهره میبرند.
سیستم عامل IOS که توسط شرکت اپل مختص محصول iPhone Apple ساخته شده است. به دلیل ساخت سیستم عامل بر اساس مشخصات سخت افزاری این سیستمعامل دارای هماهنگی و عملکرد مناسب بین نرمافزار و سختافزار است. این برنامه دارای امنیت بسیار بالایی است تا جایی که امکان اتصال با سایر برندها را مخل امنیت میداند. در سیستم iOS فایلهای سیستمی از کاربران مخفی شده است و همین باعث شده تا هنگ کردن گوشی به مقدار قابل توجهی کاهش یابد. همچنین یک دستیار شخصی و راهنمای هوشمند به نام Siri دارد که به عنوان یک نرمافزار کاربردی برای این سیستم عامل کار میکند.
وظایف سیستمعامل
وظیفهی اصلی که یک سیستم عامل انجام میدهد، تخصیص منابع و خدمات از جمله اختصاص حافظه، دستگاهها، پردازندهها و اطلاعات است. سیستمعامل همچنین شامل برنامههایی برای مدیریت این منابع مانند کنترلر ترافیک، برنامهی زمانبندی، ماژول مدیریت حافظه، برنامههای I/O و سیستم فایل است.
وظیفهی سیستم عامل در رابطه با حافظهها
سیستم عامل حافظه اصلی (Memory Primary یا Main Memory) را مدیریت میکند، حافظه اصلی از مجموعهی بزرگی از بایتها ساخته شده که در آن به هر بایت آدرس خاصی اختصاص داده میشود. حافظه اصلی ذخیره سازی بسیار سریع است و به CPU به طور مستقیم دسترسی دارد. برای اجرای یک برنامه، ابتدا باید در حافظه اصلی بارگذاری شود. یک سیستم عامل فعالیتهای زیر را برای مدیریت این حافظه انجام میدهد:
مشخصات و کارکرد حافظه اولیه را حفظ میکند، یعنی این که بایتهای حافظه توسط کدام برنامه کاربر استفاده میشوند. همچنین تمامی آدرسهای حافظه که قبلاً اختصاص داده شدهاند و آدرسهای حافظه که هنوز مورد استفاده قرار نگرفتهاند در این سیستم ثبت میشود.
در سیستم عاملهای چند وظیفهای، سیستم عامل تصمیم میگیرد که کدام فرآیند به حافظه دسترسی داشته باشند، و این دسترسی چه مدت باشد. این حافظه را زمانی که پردازهای برای اجرا درخواست میدهد جهت پردازش اختصاص میدهد و با پایان یافتن فرآیند یا انجام یک عمل I/O، حافظه را خالی میکند. همچنین هنگامی که حافظه اختصاص داده میشود، مکانهایی که از حافظه اختصاص داده شده را بررسی میکند. اگر که پس از پایان زمان یا پردازه حافظه آزاد نشود دلیل ایجاد مشکل را جستجو و ردیابی میکند و وضعیت را بهروز نگه میدارد.
در کل میتوان گفت که در سیستم عاملها، مدیریت حافظه عملکردی است که زمانبندی، در دسترس بودن، میزان اختصاص و اولویت در حافظهی اولیهی کامپیوتر را بر عهده دارد. همچنین مسئولیت مدیریت حافظههای بزرگ و انتقال دادهها از روی RAM (یا همان حافظه اولیه) به روی حافظهی Cache را بر عهده دارد.
همانطور که گفته شد عملکرد مدیریت حافظه، بخشهای هر مکان از حافظه را اختصاص داده یا خالی نگه میدارد. این وظیفه در سیستمعامل تعیین میکند که چگونه حافظه در بین فرآیندهای رقابتی (برای مثال پردازشهای مختلف در برنامههای در حال اجرا) تخصیص یابد، همچنین تصمیم میگیرد که یک برنامه، حافظه را چه زمانی دریافت کند و به چه میزان از حافظه دسترسی داشته باشد.
وظیفهی سیستم عامل در رابطه با امنیت سیستم و فایلها
سیستم عامل از رمز عبور برای محافظت از دادههای کاربر و سایر تکنیکها مانند احراز هویت و اختصاص دسترسیها استفاده میکند. همچنین از دسترسی غیرمجاز به برنامهها و دادههای کاربر جلوگیری میکند و از این طریق امنیت سیستم و فایلها را برقرار میکند.
وظیفهی سیستم عامل در رابطه با کنترل عملکرد سیستم
نظارت بر سلامت کلی سیستم برای کمک به بهبود عملکرد از وظایف این سیستم است. این برنامه زمان پاسخگویی بین درخواستهای خدمات و پاسخ سیستم را برای مشاهده کامل سلامتی سیستم ثبت میکند، این فعالیت میتواند با ارائه اطلاعات مهم مورد نیاز برای رفع مشکلات، به بهبود عملکرد سیستم رایانهای شما کمک کند.
وظیفهی سیستم عامل در رابطه با محاسبات کارکرد سیستم
سیستم عامل زمان و منابعی را که توسط کارها و کاربران مختلف استفاده میشود، نگه میدارد، از این اطلاعات میتوان برای ردیابی میزان استفاده از منابع برای یک کاربر خاص یا گروه کاربر استفاده کرد. برای مثال کاربر مورد نظر چقدر از فضای هارد دیسک را برای ذخیره فایلهایش استفاده کرده است.
وظیفه سیستم عامل در رابطه با کمک در تشخیص خطاها
سیستم عامل به طور مداوم سیستم را بررسی و ردیابی میکند تا خطاها را تشخیص داده و از عملکرد نادرست سیستم رایانهای جلوگیری کند.
وظیفه سیستم عامل در رابطه با هماهنگی بین سایر نرمافزارها و کاربران
سیستمهای عامل همچنین مفسرها، کامپایلرها، اسمبلرها و سایر نرمافزارها را برای کاربران مختلف سیستمهای رایانه اختصاص داده و هماهنگی بین آنها را انجام میدهند. برای مثال باز کردن لینک ایمیل در outlook نیاز به اجرای مرورگر دارد که این هماهنگی و اجرا توسط سیستم عامل انجام میشود.
وظیفهی سیستمعامل در رابطه با مدیریت پردازنده
در یک محیطی مانند رایانه که در لحظه چندین وظیفه یا در اصطلاح task برای انجام و پردازش به پردازنده ارسال میشود، سیستم عامل ترتیب دستیابی این فرآیندها یا پردازشها را به پردازنده و زمان پردازشِ هر task را تعیین میکند. این عملکرد سیستم عامل زمانبندی پردازش یا Process Scheduling نام دارد. یک سیستم عامل فعالیتهای زیر را برای مدیریت پردازنده انجام میدهد.
وضعیت انجام پردازشها را نگه میدارد. ترافیک ارسالی به پردازنده را کنترل میکند و بر اساس اولویت های اجرا CPU را به یک فرآیند اختصاص میدهد.
وظیفهی سیستم عامل در رابطه با مدیریت سخت افزارها
سیستم عامل ارتباط سخت افزارها را از طریق درایور مخصوص آنها مدیریت کرده و فعالیتهای زیر را برای مدیریت دستگاهها انجام میدهد.
مشخصات و دستورالعمل همهی سختافزارها و دستگاههای متصل به سیستم را نگه میدارد و برنامههای مربوط به انتقال یا دریافت داده از طریق دستگاههای ورودی و خروجی را تعیین میکند. برای مثال شما با فشردن کلید a در برنامه Word قصد تایپ دارید، این کلید یک کد به سیستمعامل ارسال میکند که نمایانگر حرف a است. سیستمعامل این کد را دریافت کرده و در سوی دیگر تنظیم میکند که این کد به همان برنامه مورد نظر کاربر منتقل و نمایش داده شود.
این سیستم، دسترسی فرآیندها را به دستگاهها و سختافزارها را نیز مدیریت میکند، این که چطور یک پردازه به دستگاهی خاص دسترسی پیدا کند و تا چه مدت این پردازه دستگاهها را به روشی مؤثر و کارآمد در اختیار داشته باشد.
وظیفه سیستم عامل در رابطه با مدیریت فایلها
سیستم عامل تصمیم میگیرد دادهها چگونه و کجا ذخیره شوند، آدرس تمامی دادهها را روی هارد دیسک نگه میدارد تا زمان نیاز به آن داده از طریق آدرس، آن را به سرعت روی RAM بارگذاری کند، همچنین تنظیمات دسترسی کاربر و وضعیت هر فایل یا پوشه و موارد دیگر را تعیین میکند. برای مثال کاربری که فقط دسترسی خواندن یک سند متنی برای او ثبت شده اجازه تغییر یا پاک کردن آن سند را ندارد و سیستم عامل از این عملها جلوگیری میکند.
بهطور کلی سیستمعاملها بهوجود آمدند تا زندگی ما را سادهتر کرده و کمک کنند بتوانیم به راحتی از کامپیوترهایمان استفاده کنیم، سیستمعامل مورد علاقهی شما چیست؟ دیدگاهها و تجربیات خود را با ما و کاربران همیار آیتی به اشتراک بگذارید.