بخشی از مقاله
نرمافزار سیستم
نرمافزار سیستم به نرمافزاری در رایانه گفته میشود که به کارکرد سیستم رایانه یا کاربردهای سطح پایین (یا Low Level) رایانه مربوط باشد. این نرمافزارها به ساختار فیزیکی سختافزار رایانه وابسته هستند و در نوشتن آنها از زبانهای سطح پائین مانند زبان اسمبلی استفاده میشود. سیستمعامل و درایورها از نرمافزارهای سیستم هستند. از جمله زبان هایی که برای نگارش نرمافزارهای سیستمی استفاده میشود، زبان برنامه نویسی C میباشد. کار کردن با سی برای برنامه نویسان راحت تر است و آنان این زبان را به اسمبلی ترجیح میدهند. اگر برای نگارش نرمافزار سیستمی مشکل محدودیت فضای سختافزاری داشته باشیم بهتر است با زبان اسمبلی کار کنیم که حجم آن پایین تر است. نرمافزارهای سیستمی به سختافزار وابسته اند.
در برابر نرمافزار سیستم، نرمافزار کاربردی قرار دارد که برای کاربردهای سطح بالا و غیرسیستمی رایانه است و معمولاً به زبانهای سطح بالا نوشته میشود که از جزئیات سختافزاری سیستم مستقل است.
اسمبلی
زبان همگذاری یا اَسمبلی (به انگلیسی: Assembly) به مجموعه زبانهای برنامهنویسی سطح پایینی اطلاق میشود که در آن مستقیماً دستورالعملهای پردازندهٔ اصلی (CPU) نوشته میشود ( یعنی دستوراتی که ALU توانایی انجام آنها را دارد.)
به دلیل سطح پایین بودن این زبانها، نوشتن، اشکالزدایی و نگهداری برنامه سختتر است. برای هر خانوادۀ CPU یک زبان اسمبلی وجود دارد.
این زبان به زبان مادر کامپیوتر بسیار نزدیک میباشد بهطوری که تمامی برنامههای اولیه همچون ++C توسط زبان اسمبلی ساخته شده است و همچنین اکثر کارها در زمینۀ هک و مانند آن با این زبان انجام میشود. در زبان اسمبلی هر دستور زبان متناظر یک دستور باینری است. این زبان را با استفاده از اسمبلرها میتوان به زبان ماشین یعنی صفر و یک تبدیل کرد. نرمافزارهای اسمبلر بر روی سیستم نصب شده و با وارد کردن کدهای اسمبلی و اشکالزدایی کردن آن میتوان آنها را به زبان ماشین تبدیل کرد.
اسمبلر
اسمبلر یا همگذار نرم افزاری است که برنامه نوشته شده به زبان اسمبلی را به کد ماشین تبدیل می کند و یک فایل با پسوند obj تولید می کند. توجه شود که این فایل قابل اجرا نیست و بوسیله نرم افزار Linker این فایل به یک فایل با پسوند exe تبدیل می شود که این فایل جدید قابل اجرا است.
اسمبلر های معروف:
• مایکروسافت اسمبلر
• توربو اسمبلر
اَسِمبلی 64 بیتی 32 بیتی و 16 بیتی
در زبان اَسِمبلی با توجه به امکانات پردازنده و مقدار حافطهٔ آن از یک اسمبلر ۱۶ بیتی ۳۲ بیتی و یا ۶۴ بیتی استفاده میشود. در اَسِمبلی ۱۶ بیتی حافظه در ثباتهای AX BX CX DX AH AL BH BL CH CL DH DL IP CS DS ... قرار دارد. در اَسِمبلی ۳۲ بیتی ثباتهای EAX EBX ECX EDX EIP اضافه میشوند. و در اَسِمبلی ۶۴ بیتی نیز ثباتهای RAX RBX RCX RDX RIP اضافه میشوند. حافظهٔ قابل دسترس در حالات فوق به ترتیب 65536, 4294967296 و 18446744073709551616 بایت است.نکته نکته: زبان اسمبلی را به دو صورت می توان پیاده سازی کرد یکی از طریق برنامه doc و دیگری با برنامه emu که این برنامه تحت ویندوز می باشد و به صورت گرافیکی شما می توانید با این برنامه کار کنید
• درایور (رایانه): نرمافزاری است که اطلاعات خاصی از چگونگی کنترل و کارکرد و مدیریت قطعات سختافزاری رایانه را در اختیار سیستمعامل قرار میدهد.
سیستمعامل
سیستمعامل یا سامانهٔ عامل نرمافزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم میسازد که نرمافزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستمعامل خدماتی به برنامههای کاربردی و کاربر ارائه میدهد. برنامههای کاربردی یا از طریق واسطهای برنامه نویسی کاربردی (Application User Interface-APIs) و یا از طرق فراخوانیهای سیستم (system call) به این خدمات دسترسی دارند. با فراخوانی این واسطها، برنامههای کاربردی میتوانند سرویسی را از سیستمعامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرمافزار مثل واسط خط فرمان (Command Line Interface-CLI) یا یک واسط گرافیکی کاربر (Graphical User Interface-GUI) با سیستمعامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموما واسط کاربری به عنوان بخشی از سیستمعامل در نظر گرفته میشود. در سیستمهای بزرگ و چند کاربره مثل یونیکس و سیستمهای شبیه یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستمعامل اجرا میشود پیاده سازی میشود.
دلایل ایجاد سیستمعامل
یک سیستم کامپیوتری پیشرفته از یک یا چند پردازنده، مقداری حافظه اصلی، دیسکها، چاپگرها، صفحهکلید، صفحهنمایش، واسطهای شبکهای و دیگر دستگاههای ورودی و خروجی تشکیل شدهاست. اگر سیستم یکپارچهای برای مدیریت این منابع وجود نداشته باشد، هر برنامه باید به تنهایی این کار را انجام دهد. سیستمعامل یک لایه نرمافزاری فراهم میکند که وظیفه مدیریت منابع سیستم را از دوش برنامههای کاربردی رهانیده و کار برنامهنویسی را سادهتر مینماید. که با توجه به نسخههای جدید سیستم عاملها که به دلیل بهره مندی از تکنولوژی گرافیک و امکان استفاده از ماوس، امکان استفاده ساده و آسان را برای کاربران مبتدی فراهم نمودهاست. در حقیقت سیستمعامل واسط بین سختافزار رایانه و کاربر میباشد.
وظایف سیستمعامل
سیستمعامل دو کار عمده انجام میدهد: در نگرش پایین به بالا، منابع منطقی (مانند فایلها) و منابع فیزیکی (مانند دستگاههای سختافزاری) رایانه را مدیریت و کنترل میکند.
در نگرش بالا به پایین، وظیفه سیستمعامل این است که یک ماشین توسعه یافته (Extended Machine) یا ماشین مجازی (Virtual Machine) را به کاربران ارائه کند تا آنها بتوانند آسان تر برنامه نویسی نمایند و درگیر پیچیدگیهای سختافزاری رایانه نشوند.
به طور کلی، وظایف سیستمعامل شامل موارد زیر است:
• استفاده بهینه تر از منابع و جلوگیری از به هدر رفتن آنها
• تخصیص و آزاد سازی منابع
• اداره صفها و زمان بندی استفاده از منابع
• حساب داری میزان استفاده از منابع
• ایجاد امنیت
• ایجاد، حذف و اداره فرایندها
• ایجاد مکانیسمهای ارتباط بین فرایندها و همگام سازی آنها
• مدیریت فایلها و پوشهها
• مدیریت حافظههای اصلی و جانبی
• برقراری امکان دسترسی چندتایی (Multiaccess) و اجرای هم روند (Concurrent) فراینده
ا
• به اشتراک گذاری منابع (Resource Sharing)
• تعیین راهکارهایی برای اداره بن بست (deadlock)ها
• جلوگیری از شرایط رقابتی (Race Condition) و تداخل یا در هم قفل شدن (Interlock) فرایندها
• جلوگیری از گرسنگی (Starvation)
سیستمعاملهای فعلی
در سالهای اخیر رقابت بشتر بین سیستمعاملهای مایکروسافت ویندوز، اپل مک اواس و لینوکس جریان دارد که آماری که در ماه ژوییه ۲۰۱۱ توسط وبگاه W3Schools به ثبت رسیده حاکی از آن است که هم اکنون بیش از ۸۰ درصد کاربران اینترنت از سیستمعامل ویندوز استفاده میکنند.
آمار موجود که مربوط به اوت ۲۰۱۰ میباشد به شرح زیر است:
• ویندوز ۷ : ۳۷.۸٪
• ویندوز ویستا : ۶.۷٪
• ویندوز اکس پی : ۳۹.۷٪
• ویندوز ۲۰۰۳ : ۰.۹٪
• مک اواس : ۸.۱٪
• لینوکس : ۵.۲٪
از سیستمعاملهای مشهور کامپیوترهای شخصی میتوان به اسامی زیر اشاره کرد:
• یونیکس
• لینوکس
• مک اواس
• ویندوز اکسپی
• ویندوز ویستا
• ویندوز انتی
• ویندوز ۷
• ویندوز سیئی
• سولاریس
• بی اس دی
• داس
• ام وی اس
• ویلز
• پالم
همچنین از سیستمعاملهای موجود روی گوشیهای تلفن همراه نسل جدید میتوان به اسامی زیر اشاره کرد:
• گوگل_اندروید
• iOS
• ویندوز موبایل
• ویندوز فون
• سیمبیَن
• UIQ
• بادا
• بلک بری
• پالم
تاریخچه
اولین کامپیوترها فاقد سیستمعامل بودند. در اوایل سال ۱۹۶۴ فروشندگان کامپیوترهای تجاری ابزار کاملا گستردهای را برای تسهیل توسعه، زمانبندی، و اجرای کارها روی یک سیستم پردازش دستهای فراهم میکردند. برای مثال کامپیوتر تولید شده توسط UNI
1. مورد فهرست شمارهای
2. مورد فهرست شمارهای
VAC.
در ابتدا سیستمعامل روی مین فریمها مستقر میشد و کمی بعد سیستمعامل میکروکامپیوترهای ابتدایی که فقط از یک برنامه در هر زمان پشتیبانی میکردند و به یک زمانبند بسیار ابتدایی نیاز داشتند. هر برنامه زمانی که در حال اجرا بود تحت کنترل کامل ماشین قرار داشت. چند وظیفهای (اشتراک زمانی) اولین بار در مین فریمها و در ۱۹۶۰ عرضه شد. ابتدا کامپیوترها به اندازه یک زمین فوتبال بودند اما امروزه در کف یک دست جا میگیرند.
مین فریمها
میکرو کامپیوترها
میکروکامپیوترهای اولیه نیاز یا ظرفیت داشتن یک سیستمعامل پیچیده که روی مین فریمها توسعه یافته بود نداشتند.
انواع سیستمعامل
سیستمعامل تک پردازنده
این نوع سیستمعاملها، سیستمعاملهای نسل چهارم (نسل فعلی) هستند که بر روی یک پردازنده اجرا میشوند.از قبیل XP,Vista,۹۸,Me که بیشتر محصول شرکت مایکرو سافت میباشند.
سیستمعامل شبکهای
این نوع سیستمعاملها، از کنترل کنندههای واسط شبکه و نرمافزارهای سطح پایین به عنوان گرداننده استفاده میکنند و برنامههایی برای ورود به سیستمهای راه دور و دسترسی به فایل از راه دور در آنها به کار گرفته میشود.
سیستمعامل توزیع شده
این سیستمعاملها خود را مانند سیستمعاملهای تک پردازنده به کاربر معرفی میکنند، اما در عمل از چندین پردازنده استفاده میکنند. این نوع سیستمعامل در یک محیط شبکهای اجرا میشود در این نوع سیستم یک برنامه پس از اجرا در کامپوترهای مختلف جواب نهایی به سیستم اصلی کاربر بر میگردد سرعت پردازش در این نوع سیستم بسیار بالاست.
سیستمعامل بیدرنگ
از این نوع سیستمهای عامل برای کنترل ماشین آلات صنعتی، تجهیزات علمی و سیستمهای صنعتی استفاده میگردد. یک سیستمعامل بیدرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامههای کاربردی مختص کاربران هستند. یکی از بخشهای مهم این نوع سیستمهای عامل، مدیریت منابع موجود کامپیوتری بگونهای است که یک عملیات خاص در زمانی که میبایست، اجراء خواهند شد، مهمتر اینکه مدیریت منابع بگونه ایست که این عمل در هر بار وقوع، مقدار زمان یکسانی بگیرد.
نرمافزار کاربردی
نرمافزار کاربردی (به انگلیسی: Application software) عبارت است از نرمافزاری که با استفادهٔ مستقیم از منابع و قابلیتهای رایانه کاری را مستقیماً برای کاربر انجام میدهد. باید توجه داشت که این عبارت در مقابل عبارت نرمافزار سیستمی معنی پیدا میکند.
نرمافزار سیستمی در مقابل در پسزمینه عمل میکند و خدماتی را فراهم میکند که دیگر نرمافزارها و یا سیستمعامل میتوانند برای انجام کارهای خود از آن استفاده کنند. اما در عوض معمولاً مستقیماً با کاربر عادی در تماس نیست و خدماتی را به او ارایه نمیدهد.
در عمل بیشتر نرمافزارهایی که کاربران با آنها سر و کار دارند از این دسته محسوب میشوند. برای مثال میتوان به نرمافزارهای رومیزی یعنی واژهپردازها، صفحه گستردهها، نرمافزارهای طراحی گرافیکی، بازیهای رایانهای و امثال آنها اشاره کرد.
بسیاری نرمافزارهای کاربردی، برای توسعهدهندگان ابزار رابط برنامهنویسی کاربردی هم فراهم میکنند تا بتوان از قابلیتهای نرمافزار در نرمافزارهای جدید استفاده کرد. برای مثال نرمافزار ادوبی آکروبات هنگام نصب ایپیآی فراهم میکند که برنامهنویس میتواند با استفاده از آن تواناییهای آکروبات را در برنامهٔ خود به کار گیرد.
برای عنوان نمونههای دیگر میتوان به نرمافزارهای پردازش متن، برگههای گسترده (صفحات گسترده) و نرمافزارهای پخش نوا و نما اشاره کرد.