نرم افزار یکی از بخش های اساسی کامپیوتر به شمار می آید. که در واقع سخت افزار کامپیوتر را به کار می گیرد. بعبارت دیگر رابط بین کاربر و سخت افزار را نرم افزار می نامند.
علوم کامپیوتری
واحد محاسبه و منطق یا ALU دستگاهی است که عملیات پایه مانند چهار عمل اصلی حساب (جمع و تفریق و ضرب و تقسیم)، عملیات منطقی (و، یا، نقیض)، عملیات قیاسی (برای مثال مقایسه دو بایت برای شرط برابری) و دستورها انتصابی برای مقدار دادن به یک متغیر را انجام میدهد. این واحد جائیست که «کار واقعی» در آن صورت میپذیرد.
البته CPUها به دو دسته کلی RISC و CISC تقسیمبندی میشوند. نوع اول پردازش گرهای مبتنی بر اعمال ساده هستند و نوع دوم پردازشگرهای مبتنی بر اعمال پیچیده میباشند. پردازشگرهای مبتنی بر اعمال پیچیده در واحد محاسبه و منطق خود دارای اعمال و دستورهایی بسیار فراتر از چهار عمل اصلی یا منطقی میباشند. تنوع دستورها این دسته از پردازندهها تا حدی است که توضیحات آنها خود میتواند یک کتاب با قطر متوسط ایجاد کند. پردازندههای مبتنی بر اعمال ساده اعمال بسیار کمی را پوشش میدهند و در حقیقت برای برنامهنویسی برای این پردازندهها بار نسبتاً سنگینی بر دوش برنامهنویس است. این پردازندهها تنها حاوی 4 عمل اصلی و اعمال منطقی ریاضی و مقایسهای به علاوه چند دستور بیاهمیت دیگر میباشند. هرچند ذکر این نکته ضروری است که دستورها پیچیده نیز از ترکیب تعدادی دستور ساده تشکیل شدهاند و برای پیادهسازی این دستورها در معماریهای مختلف از پیادهسازی سختافزاری (معماری CISC) و پیادهسازی نرمافزاری (معماری RISC) استفاده میشود.
(قابل ذکر است پردازندههای اینتل از نوع پردازنده مبتنی بر اعمال پیچیده میباشند)
واحد کنترل همچنین این مطلب را که کدامین بایت از حافظه حاوی دستورالعمل فعلی اجرا شوندهاست را تعقیب میکند، سپس به واحد محاسبه و منطق اعلام میکند که کدام عمل اجرا و از حافظه دریافت شود و نتایج به بخش اختصاص داده شده از حافظه ارسال گردد. بعد از یک بار عمل، واحد کنترل به دستورالعمل بعدی ارجاع میکند (که معمولاً در خانه حافظه بعدی قرار دارد، مگر اینکه دستورالعمل جهش دستورالعمل بعدی باشد که به رایانه اعلام میکند دستورالعمل بعدی در خانه دیگر قرار گرفتهاست).
برنامه رایانهای فهرستهای بزرگی از دستورالعملها (احتمالاً به همراه جدولهایی از داده) برای اجرا روی رایانه هستند. خیلی از رایانهها حاوی میلیونها دستورالعمل هستند، و بسیاری از این دستورها به تکرار اجرا میشوند. یک رایانه شخصی نوین نوعی (درسال 2003) میتواند در ثانیه میان 2 تا 3 میلیارد دستورالعمل را پیاده نماید. رایانهها این مقدار محاسبه را صرف انجام دستورالعملهای پیچیده نمیکنند. بیشتر میلیونها دستورالعمل ساده را که توسط اشخاص باهوشی «برنامه نویسان» در کنار یکدیگر چیده شدهاند را اجرا میکنند. برنامهنویسان مجموعههایی از دستورالعملها را توسعه میدهند تا یکسری از وظایف عمومی را انجام دهند (برای نمونه، رسم یک نقطه روی صفحه) و سپس آن مجموعه دستورالعملها را برای دیگر برنامهنویسان در دسترس قرار میدهند.
رایانههای امروزه، قادرند چندین برنامه را در آن واحد اجرا نمایند. از این قابلیت به عنوان چندکارگی (multitasking) نام برده میشود. در واقع، CPU یک رشته دستورالعملها را از یک برنامه اجرا میکند، سپس پس از یک مقطع ویژه زمانی دستورالعملهایی از یک برنامه دیگر را اجرا میکند. این فاصله زمانی اکثراً بهعنوان یک برش زمانی (time slice) نام برده میشود. این ویژگی که CPU زمان اجرا را بین برنامهها تقسیم میکند، این توهم را بوجود میآورد که رایانه همزمان مشغول اجرای چند برنامهاست. این شبیه به چگونگی نمایش فریمهای یک فیلم است، که فریمها با سرعت بالا در حال حرکت هستند و به نظر میرسد که صفحه ثابتی تصاویر را نمایش میدهد. سیستمعامل همان برنامهای است که این اشتراک زمانی را بین برنامههای دیگر تعیین میکند.
نخستین رایانههای رقمی، با قیمتهای زیاد و حجم بزرگشان، در اصل محاسبات علمی را انجام میدادند، انیاک یک رایانه? قدیمی ایالات متحده اصولاً طراحی شده تا محاسبات پرتابهای توپخانه و محاسبات مربوط به جدول چگالی نوترونی را انجام دهد. (این محاسبات بین دسامبر 1941 تا ژانویه 1946 روی حجمی بالغ بر یک میلیون کارت پانچ انجام پذیرفت! که این خود طراحی و سپس تصمیم نادرست بکارگرفته شده را نشان میدهد) بسیاری از ابر رایانههای امروزی فقط برای کارهای ویژه ممحاسبات جنگافزار هستهای استفاده میگردد. [نیازمند منبع]
CSIR Mk I نیز که نخستین رایانه استرالیایی بود برای ارزیابی میزان بارندگی در کوههای اسنوئی (Snowy)این کشور بهکار رفته، این محاسبات در چارچوب یک پروژه عظیم تولید برقابی انجام گرفت.
برخی رایانهها نیز برای انجام رمزگشایی بکار گرفته میشد، برای مثال Colossus که در جریان جنگ جهانی دوم ساخته شد، جزو اولین کامپیوترهای برنامهپذیر بود (البته ماشین تورینگ کامل نبود). هرچند رایانههای بعدی میتوانستند برنامهریزی شوند تا شطرنج بازی کنند یا تصویر نمایش دهند و سایر کاربردها را نشان دهد.
سیاستمداران و شرکتهای بزرگ نیز رایانههای اولیه را برای خودکارسازی بسیاری از مجموعههای داده و پردازش کارهایی که قبلاً توسط انسانها انجام میگرفت، بکار بستند - برای مثال، نگهداری و بروزرسانی حسابها و داراییها. در موسسات پژوهشی نیز دانشمندان رشتههای مختلف شروع به استفاده از رایانه برای مقاصدشان نمودند.
کاهش پیوسته قیمتهای رایانه باعث شد تا سازمانهای کوچکتر نیز بتوانند آنها را در اختیار بگیرند. بازرگانان، سازمانها، و سیاستمداران اغلب تعداد زیادی از کامپیوترهای کوچک را برای تکمیل وظایفی که قبلاً برای تکمیلشان نیاز به رایانه بزرگ (mainframe) گرانقیمت و بزرگ بود، به کار بگیرند. مجموعههایی از رایانههای کوچکتر در یک محل اغلب بهعنوان خادم سرا(server farm) نام برده میشود.
با اختراع ریزپردازندهها در دهه? 1970 این امکان که بتوان رایانههایی بسیار ارزان قیمت را تولید نمود، بوجود آمد. رایانههای شخصی برای انجام وظایف بسیاری محبوب گشتند، از جمله کتابداری، نوشتن و چاپ مستندات. محاسبات پیشبینیها و کارهای تکراری ریاضی توسط صفحات گسترده (spreadsheet)، ارتباطات توسط پست الکترونیک، و اینترنت. حضور گسترده رایانهها و سفارشی کردن آسانشان باعث شد تا در امورات بسیار دیگری بکار گرفته شوند.
در همان زمان، رایانههای کوچک، که معمولاً با یک برنامه ثابت ارائه میشدند، راهشان را به سوی کاربردهای دیگری باز مینمودند، کاربردهایی چون لوازم خانگی، خودروها، هواپیماها، و ابزار صنعتی. این پردازشگرهای جاسازی شده کنترل رفتارهای آن لوازم را سادهتر کردند، همچنین امکان انجام رفتارهای پیچیده را نیز فراهم نمودند (برای نمونه، ترمزهای ضدقفل در خودروها ). با شروع قرن بیست و یکم، اغلب دستگاههای الکتریکی، اغلب حالتهای انتقال نیرو، اغلب خطوط تولید کارخانهها توسط رایانهها کنترل میشوند. اکثر مهندسان پیشبینی میکنند که این روند همچنان به پیش برود… یکی از کارهایی که میتوان بهوسیله رایانه انجام داد برنامه گیرنده ماهوارهاست.
بزرگترین بخش نرمافزاری سیستمهای کامپیوتری سیستمهای عامل هستند که توسط توسعه دهندگان برای استفاده هر چه راحتتر و سریع تر از امکانات کامپیوتر طراحی شدهاست.
امروزه در کامپیوترها از چهار نوع سیستم عامل استفاده میشود که در بین کاربران محبوب هستند:
- لینوکس(مانند ubuntu , mint , kali linux و... )
- مک
- ویندوز(مانند ویندوز 10 , ویندوز 8 , ویندوز 7 و...)
- مختص کاربری خاص
تمامی این سیستمهای عامل با طرح و رابط کاربری خودشان طیف مخاطبان خودشان را دربردارند.
در اکثر اداره جات و شرکتها از ویندوز برای سیستم عامل خود استفاده مینمایند
بیشتر برنامه نویسان و طراحان نیز مک و لینوکس رو به عنوان سیستم عامل محبوب قرار دادهاند.
ویندوز محصول شرکت مایکروسافت میباشد که بنیانگذار آن بیل گیتس میباشد.
سیستم عامل مکینتاش مخصوص سیستمهای اپل میباشد که توسط استیو جابز بنیانگذاری شدهاست.
و سیستم عامل لینوکس هم توسط جمعی از برنامه نویسان بزرگ جهان ساخته شده و کدهای آن به صورت آزاد در دسترس عموم قرار دارد تا هر شخصی بتواند سیستم عامل لینوکس را بر اساس سلیقه خودش استفاده نماید. سیستم عاملها برای استفادههای اختصاصی خاص طراحی و تولید میشود.