From Wikipedia, the free encyclopedia
Софтуерът (програмно осигуряване, програмно обезпечение, на английски: software, буквално „меко изделие“, също и „лек товар, леко снаряжение“) е съвкупността от цялата информация от инструкции и данни, необходими за работата на всяка електронноизчислителна машина. Употребява се главно в сферата на информационните технологии.
За информацията в тази статия или раздел не са посочени източници. Въпросната информация може да е непълна, неточна или изцяло невярна. Имайте предвид, че това може да стане причина за изтриването на цялата статия или раздел. |
Обикновено инструкциите се задават като съвкупност от алгоритми, групирани като програми с различно предназначение. Освен самите алгоритми, за изпълнението на програмите са необходими и начални данни. Резултатът от действието на даден алгоритъм може да служи като начални данни за стартирането на друг и т.н., обединявайки програмите в едно. В този смисъл все повече се налага и терминът софтуер, който исторически се е наложил като антоним на хардуер – физическата част на компютърните системи. Все пак границата между софтуер и хардуер се размива, когато се отчете, че програмното осигуряване има все пак някакви физически носители, от които изчислителната машина чете програмите. Тези носители, както и инструкциите за работа с програмите и тяхната поддръжка (документация), са спомагателни елементи от софтуера.
В масовите електронноизчислителни машини (компютри) голяма част от софтуера е разположена на външна памет и може лесно да бъде променяна от потребителите според нуждите им. Инструкциите в централните процесори и специализираните интегрални схеми обаче се задават при програмирането им, и не могат да бъдат променяни директно от потребителя.
По принцип хардуерът е неизползваем без програмно осигуряване или софтуер. Най-ясно разликата между софтуер и хардуер се обяснява така: Хардуерът е всяко едно видимо и осезаемо устройство, както самият компютър, така и всяко едно периферно устройство. Софтуерът е само видим, но не и осезаем, когато работи – това са именно програмите.
Със създаването на алгоритми и писането на програми се занимават програмистите. Според нивото на действие на написаните от тях инструкции има език за програмиране на ниско ниво, на средно ниво и на високо ниво. Езиците на високо ниво позволяват лесно редактиране от програмист, и това се нарича изходен код (програмен код). За да се превърне в изпълними инструкции от машината, той се компилира (превежда) към обектен код или машинен език.
Езикът за програмиране от високо ниво може да бъде и скриптов език. Когато е написан на скриптов език, се компилира при изпълнението на програмния код (интерпретиране). Скриптовете обикновено са малки до средно големи програми, които изпълняват потребителски команди или вършат действия в определен ред. Пример за това са JavaScript, Perl, Tcl или PHP. Програмите, писани на скриптов език, са по-бавни при стартиране (защото всеки път програмният код трябва да се преведе на машинен език), но обикновено по-лесно и бързо се разработват и тестват.
Към системния софтуер се отнасят програми, изпълняващи системни функции и грижещи се за компютърния хардуер и връзката между него и потребителя. Предназначението на системния софтуер е да освободи авторите на приложни програми от пряко взаимодействие с компютърния хардуер, който е много разнороден. Той дава достъп до хардуера, който е унифициран и независим от начина на работа на конкретните устройства.
В инструменталния софтуер са включени програми, които осигуряват средства за използване и обслужване на компонентите на компютъра, както и средства за разработване на програми и различни приложения. В тази група попадат сервизните програми (Utilities), които осигуряват диагностика, управление на устройства, презапис от един на друг носител, архивиране, антивирусни програми и др. Програмните езици също са в тази категория.
Потребителски приложения и програми, работещи като краен продукт и тясно свързващи потребителя със софтуер от по-ниско ниво. Това са най-известните сред потребителите програми, с който те имат пряк контакт и използват най-често. Пример за такъв софтуер са компютърните игри, текстовите редактори, уеб браузърите и т.н.
Това е приложна програма за писане на текст, удобна на програмиста за въвеждане и редактиране на програмния код. Някои текстови редактори поддържат функции, улесняващи програмирането на съответния език:
Компилаторът е програма, която съединява фрагментите на разработвания софтуер, за да се получи машинния код, който е разбираем за процесора на компютъра. Това е преводачът от съответния програмен език към инструкции, разбираеми от процесора – който от своя страна ще изпълнява програмата.
Това е софтуер, който разединява на съставни фрагменти дадена компилирана програма.
Основен инструмент на кракерите.
Дебъгерите са специален вид програми, използвани при разработката на софтуер. С тях се проследява поетапно изпълнението на разработвания софтуер, с цел откриване и отстраняване на грешки.
Понякога са необходими и други инструменти като:
Повечето софтуерни продукти имат софтуерна документация, описваща начина на работа на програмата, така че тя да може да бъде използвана от крайните потребители. Без ясна документация софтуерът трудно може да бъде използван, особено когато става дума за силно специализирани и сравнително сложни продукти, като Photoshop или AutoCAD.
Често софтуерът включва и техническа документация, предназначена за използване от разработчиците. Тя може да бъде във вид на коментари в самия изходен код или обособена в отделни файлове. Предназначението на тази документация е да улесни бъдещата поддръжка и промяна на софтуера.
Софтуерът е обект на защита на авторското право и правата за ползването му обикновено се уреждат чрез специален договор, наричан софтуерен лиценз, а понякога и с по-специфичното Лицензно споразумение за крайния потребител (на английски: End User License Agreement, EULA).
Лицензите предоставят на потребителя правото да ползва софтуера при определени условия. Предоставянето на това право обикновено става в рамките на няколко широко прилагани модела:
За разлика от останалите произведения, обект на авторско право, които не подлежат на патенти, в някои страни софтуерът може да се защити с патент. На местата, където съществуват софтуерни патенти, това право принадлежи на автора на компютърно-имплементирано изобретение или на неговия работодател. Софтуерните патенти са обичайна, но силно критикувана практика в Съединените щати, а в Европейския съюз не съществуват.
Софтуерната индустрия е част от сектора на услугите, която обхваща софтуерните компании и програмисти, занимаващи се с производството, разпространението и поддръжката на софтуера. Тъй като софтуерът се използва в разнородни области от математиката до компютърните игри, повечето компании се специализират в дадена относително тясна подобласт.
Сред най-големите софтуерни компании са Майкрософт, Оракъл, Новел, Ес А Пе, Симантек, Адоби Систъмс, Корел. В софтуерния сектор работят и много организации с нестопанска цел, най-влиятелните сред които са Фондацията за свободен софтуер, Проектът Гну, Фондация Мозила. Освен това съществуват и редица организации, като W3C и IETF, разработващи стандарти за взаимодействие между софтуера.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.