نرمافزار
نرمافزار (به انگلیسی: software) مجموعهای از دستورات و الگوریتمها است که به کامپیوتر دستور میدهد چه وظایفی را انجام دهد. این دستورات و الگوریتمها توسط برنامهنویس نوشته و طراحی میشوند.
در علوم رایانه و مهندسی نرمافزار، یک نرمافزار رایانهای همه اطلاعاتی است که توسط سامانه رایانهای پردازش میشود، که شامل برنامهها و داده است.
نرمافزار رایانهای شامل برنامههای رایانهای، کتابخانهها، و دادههای مرتبط غیرقابل اجرا (مثل مستندات برخط و رسانههای دیجیتالی) است. سختافزار و نرمافزار رایانهای به هم احتیاج دارند و هیچکدام به صورت واقعی قابل استفاده به خودی خود نیست.
انواع نرمافزار
نرمافزارها را میتوان به دو دستهی سیستمی و کاربردی تقسیم کرد:
نرمافزار سیستمی
نرمافزار سیستمی نوعی برنامه کامپیوتری است که برای اجرای سختافزار و برنامههای کاربردی کامپیوتر طراحی شدهاست و رابطی بین سختافزار و برنامههای کاربردی میباشد. از نرمافزارهای سیستمی میتوان به برنامههای سودمند، مترجمها و سیستمعاملها اشاره کرد.
سیستمعاملها رابطی بین کاربر و سختافزار کامپیوتر هستند. هر سیستم کامپیوتری، برای اجرای برنامههای خود به یک سیستمعامل نیاز دارد. از سیستمعاملهای معروف میتوان به ویندوز، مک و لینوکس برای کامپیوتر و اندروید و آیاواس برای تلفنهای هوشمند اشاره کرد.
نرمافزار کاربردی
نرمافزار کاربردی، همان اپلیکیشن (اپ) است که برای فعالیتها و وظایف خاصی طراحی و کدنویسی شده و کار مشخصی را برای کاربر نهایی انجام میدهد. مرورگرهای وب، واژهپردازها، مدیاپلیرها، صفحات گسترده، رایانامهخوانها و ویرایشگرهای گرافیکی نمونههایی از نرمافزارهای کاربردی هستند.
نرمافزارهای کاربردی، برنامههای مورد استفاده کاربرند و نرمافزارهای سیستمی، مدیریت رایانه را برعهده دارند. مهمترین نرمافزار سیستم، سیستمعامل است.
نرمافزارها با اهداف مختلفی تولید میشوند و هر نرمافزار ویژگیهای انحصاری دارد و نیازهای مشخصی را برطرف مینماید. به عنوان مثال، نرمافزار دیجیکالا نیاز خرید آنلاین و غیرحضوری را برطرف میکند و نرمافزار تلگرام نیاز افراد برای ارتباط با یکدیگر را برآورده میسازد و ویژگیهایی مانند امکان فرستادن ایموجی و گیفهای متنوع، امکان فرستادن فایل متنی، صوتی و تصویری را در اختیار کاربر قرار میدهد.
سیستمعامل
وقتی برنامهای روی رایانه نصب میشود، برخی اجزای سختافزاری به فرمان آن برنامه در میآیند. به عنوان مثال، هنگامی که از یک برنامه پخش موسیقی استفاده میکنید، کارت صدای رایانه با آن برنامه همکاری میکند تا موسیقی پخش شود. این تنها بخشی از وظایف سیستمعامل است.
ارتباط بین نرمافزار و سختافزار توسط برنامهنویسی انجام میشود. سیستمعامل یک برنامه نرمافزاری است که همه منابع و امکانات سختافزاری را مدیریت میکند و به همین دلیل به آن نرمافزار سطح پایین (زبان ماشین) میگویند. سیستمعامل اجازه استفاده از منابع سختافزاری را به نرمافزارها میدهد و مسئولیت صحت عملکرد سیستم و منابع آن را بر عهده دارد.
انواع سیستمعاملها:
بخشهای اصلی سیستمعامل:
- مدیریت پردازش و پردازشگر
- مدیریت حافظه
- مدیریت دستگاههای ورودی و خروجی (I/O)
- مدیریت فایلها و اطلاعات
درخواستهایی که توسط رابط کاربری نرمافزار ارسال میشوند نیز توسط سیستمعامل پردازش میشوند.
دستهبندی کلی نرمافزارها از دیدگاه معماری:
- کاربر بنیان
- کارگزار بنیان
- کاربر کارگزار بنیان
واژه نرمافزار به معنای برنامه رایانهای به کار میرود، اما میتواند معانی دیگری نیز داشته باشد. بیشتر کاربران فقط با ظاهر گرافیکی نرمافزارها کار میکنند و بسیاری از عملیات آنها از دید کاربر پنهان است. هر نرمافزار مجموعهای از کدها است که از الگوریتمهای مشخصی پیروی میکند.