Тази статия се нуждае от подобрение. Необходимо е: изчистване на повторения. Ако желаете да помогнете на Уикипедия, използвайте опцията редактиране в горното меню над статията, за да нанесете нужните корекции. |
Системният софтуер е софтуер, който е проектиран да управлява компютърния хардуер и да осигурява платформа за работа на приложния софтуер. За разлика от приложния софтуер, не е създаден, за да бъде управляван от крайния потребител.
Основните типове системен софтуер са:
При написването на една програма (сорс програма) на програмен език, посредством системния софтуер, тя минава през различни трансформации преди да може да бъде изпълнена. [1]
Компилаторът е компютърна програма, която превежда (компилира) даден компютърен изходен код в семантично отговарящ код на език от (обикновено) по-ниско ниво. Целевият език може да бъде машинен език или асемблерен език за конкретен процесор или процесорна фамилия, както и междинен език за конкретна виртуална машина (например байткод за виртуална машина на Java) или друг език от високо ниво. Когато се компилира до машинен език, крайният продукт е изпълнима програма или обектен код.
Резултатът от превеждането е код, изпълним на платформата на самия компилатор.
Резултатът е изпълним код, предназначен за платформа, различна от тази на компилацията. Използва се например при създаване на код за вградени системи, където или няма възможност, или е по-трудно да се създават програми.
Този компилатор превежда програмата последователно и на един път (single-pass) за всеки компилиран блок, т.е. компилаторът не се връща обратно на вече преведени части. Много програмни езици са замислени така, че да бъдат превеждани еднопреходно (напр. Паскал).
Този компилатор превежда програмата на няколко стъпки и намира приложение най-вече за:
Асемблерът е програма, която създава обектен код, като превежда комбинации от мнемоники, синтаксис за операции и режими за адресиране в техните числови еквиваленти. Това представяне обикновени включва операционен код, както и контролни битове. Асемблерът също изчислява константни изрази и намира адресите в паметта. Употребата на символични референции е ключова характеристика за асемблерите, спестяваща досадните изчисления и ръчната смяна на адреси, след модификации в програмите. Повечето асемблери също така включват улесняващи макро инструкции за извършване на текстови замествания, за генериране на често срещани кратки поредици от инструкции вътре в кода, вместо извикване на подпрограми. Освен това за някои асемблери е възможно да извършват някои несложни типове оптимизации на групи от специфични инструкции. Подобно на началните езици за програмиране като Fortran, Algol, Cobol и Lisp, асемблерите след 1950 година разполагат и с първите поколения текст базирани компютърни интерфейси. Може да съществуват няколко асемблера с различен синтаксис за определен процесор или друга програмируема архитектура.
След като обектният код бъде създаден от асемблера, той бива препращан към свързващия редактор (англ.: linker). Свързващият редактор приема един или повече обектни файлове и ги комбинира, като позволява връзки помежду им. Обектните файлове се свързват един към друг с помощта на символи. Такъв символ може да бъде: дефиниран външен (публично дефиниран), недефиниран външен или вътрешен.
Външно дефинираните символи могат да бъдат повиквани от други модули, а външно недефинираните символи повикват други модули, където тези символи са дефинирани. Това е известно още като „външно свързване“. Вътрешните символи, от друга страна, се използват само вътрешно в рамките на един обектен файл, с цел да се подобрят неговите способности за преместване. Обекти от библиотеки също могат да се добавят и сливат.
Свързващият редактор изчислява местата на паметта, които всеки модул ще заеме и изменя обектния код така, че той да може да бъде зареден на различен адрес.
Свързващите редактори могат да бъдат статични и динамични. Разликата е в това, че статичните създават напълно свързан изходен обектен файл. Динамичните свързващи редактори обаче отлагат свързването на недефинирани символи, в резултат на което се получава непълно свързан обектен файл. Такъв файл ще бъде напълно свързан, след като се зареди от операционната система посредством Зареждащата програма (Loader).
Зареждащата програма е тази част от операционната система, която взема вече компилиран, изпълним обектен файл и го зарежда. Обектните файлове се вземат от вторичната памет и се поставят в главната памет на системата и се подготвят за изпълнение. След като всички файлове са заредени, контролът се предава от операционната система към новозаредената програма и програмата започва да се изпълнява.
По-специално, зареждаща програма: определя големината на сегментите, текстови и данни, заделя памет и адреси от паметта за програмата, копира функциите и данните в заделената памет, копира променливите подавани на програмата в стека, инициира машинните регистри и показалеца на стека и преминава към стартова процедура.[2]
Има различни видове Зареждащи програми, като всяка има своите предимства и недостатъци. Например:
Редакторът на изходен код е текстов редактор, прилаган конкретно за редактиране на изходен код от програмистите. Той може да е отделно приложение или да е вграден в интегрирана среда за разработка (IDE) или уеб браузър. Редакторите на изходен код са основен програмен инструмент, тъй като се използва за създаване и променяне на файлове от програмистите. Има много различни редактори:
Дебъгерът е компютърна програма за проследяване на процеса на изпълнение на компютърни програми (дебъгване). Обикновено целта на такова проследяване е намиране на грешки, които се наричат „бъгове“.
Този тип програми се използва от програмисти за тестване на новосъздадени продукти, за да се предотвратят възможни неизправности в процеса на работа на дадения продукт. Когато програмата се изпълнява в дебъг режим, тя е значително забавена, за да може да се открие момента на възникването на дадения „бъг“.
Системен софтуер са приложения или програми, които са направени специално, за да контролират хардуера на персонален компютър и се използват за платформа, върху която приложният софтуер да се използва. Това значи, че системният софтуер е създаден с цел да комуникира с вътрешните компоненти на вашия компютър, като например твърдия диск, оперативната памет, процесора и други, така че на потребителя да не му се налага да го прави. Системния софтуер съдържа всички драйвъри нужни за този тип комуникация и в казано по най-лесния за разбиране начин е интерфейса между потребителя и хардуера. Операционната система (ОС) на компютъра ви не е само най-важния системен софтуер, но също и най-често използвания. Тя е софтуера, който управлява частите на компютъра по начин, по който потребителя има постоянни визуализация на действия случващи се в компютъра му. Някои от отговорностите на ОС включват трансфера на данни между паметта и твърдия диск, както и цялата информация за всички необходими компоненти на дисплея (текст, картинки, курсори и др.). Този дисплей се нарича графичен потребителски интерфейс или GUI и е цялостния резултат на ОС. Важно е да се запомни, че ОС се управлява самостоятелно от приложния софтуер и потребителя. Това значи, че ОС не зависи нито от потребителя, нито от други програми, за да функционира. Други видове системен софтуер включват BIOS и др. Тези устройства помагат на потребителя да си комуникира с инструменти като например:
Приложен софтуер са най-често използваните програми, които работят на един компютър. Те обикновено изпълняват полезни задачи, които не се асоциират с поддръжка на компютъра, зареждане на ОС, или връзка с хардуера. Приложният софтуер разчита на системния софтуер за връзка с физическите компоненти на компютъра и не може да работи без него. Ако се представят визуално, приложният софтуер би оперирал директно върху системния софтуер и би бил най-видимата част за потребителя, докато системният софтуер би останал незабележим. След това системният софтуер ще комуникира с хардуера от името на приложния софтуер и ще пренесе всяка информация от приложния софтуер. Всяка информация, нужна на хардуера, ще бъде подадена на стъпки през системния софтуер към приложния софтуер. Приложният софтуер е най-разпространеният вид софтуер и най-често се използва през графичния интерфейс на ОС. Някои от най-известните примери за приложен софтуер включват:
Този списък по никакъв начин не изчерпва какви възможности има приложния софтуер, защото ежедневно се създават нови приложения за дейностите на хората.
Операционната система е един от най-важните компоненти на един компютър и позволява на хардуера да комуникира със софтуера. Операционната система може да изпълнява както прости, така и сложни задачи. Операционните системи могат да бъдат класифицирани като многопотребителска, многопроцесна, многозадачна, многонишкова и реално времева. Операционната система не допуска различни програми и потребители, работещи едновременно, да си пречат. Потребителят взаимодейства с операционната система чрез набор от команди. Всички приложни програми се нуждаят от операционна система. Операционната система също така оптимизира работата на компютъра, като повечето от работата ѝ се извършва неявно. Системата отговаря за управлението на мрежовите връзки. Имайки предвид развитието на новите технологии, операционните системи трябва да се развиват, за да могат да ги поддържат. Като цяло операционната система е ядрото на всеки един компютър.