Софтвер (Software)

Софтвер (Software)

Сам по себи, хардвер је безначајан без програма који га покрећу и података са којима програми раде.
Управо ти програми и подаци чине софтверски подсистем рачунара.
Софтвер се дели на:

  1. оперативни систем рачунара;
  2. системски софтвер (програми оријентисани ка хардверу рачунара) ;
  3. апликативни софтвер.

 

Оперативни систем

Оперативни систем представља пакет системских програма који служе за контролу хардвера, контролу софтвера, као и за повезивање хардвера, софтвера и корисника. Он обједињује у јединствену функционалну целину хардвер (делове рачунара), софтвер (програме на рачунару) и лајфвер (кориснике рачунара) и представља везу између корисника рачунара и самих рачунарских компоненти – хардвера.

Основне функције ОС су:

  1. управљање периферним јединицама, меморијом, процесором
  2. управљање подацима и програмима,
  3. контрола функционисања рачунарског система (укључује и откривање и отклањање грешака).

Оперативни системи могу се поделити на основу:

  • броја програма који могу истовремено да буду у меморији (монопрограмски и мултипрограмски)
  • броја корисника који могу истовремено да користе рачунар (једнокориснички и вишекориснички)
  • начина задавања команди (оперативни системи командног типа – системски промпт, DOS, UNIX, и OS графичког типа Windows, Linux, macOS)
  • преносивости на различите архиектуре (преносиви који раде на различим рачунарима,  рецимо Linux и непреносиви (власнички) – пројектовани да раде на само једном рачунару Windows i macOS )

Типичан оперативни систем се састоји од следећих компонената:

  • микрокода,
  • језгра (kernel) и
  • љуске (омотача, шкољке – shell).

Микрокод је скуп програма специфичан за одређени хардвер рачунара. Традиционално, овај скуп је груписан у један модул, који се назива BIOS (Basic Input Output Sistem). Скуп програма је груписан у ROM меморију, на чипу који се налази у саставу основне плоче, тако да његово писање обавља произвођач основне плоче (класичан ROM).  Kada se vaš računar pokrene, BIOS pokreće, izvršava power-on self-test (POST) i inicijalizuje hardver računara. BIOS potom prenоsi kontrolu na boot loader koji se nalazi u uređaju – obično na hard disku, (ali boot loader može pokrenuti i USB uređaj ili CD/DVD). Boot loader zatim učitava vaš operativni sistem – Windows, Linux, macOS X ili sl.
У почетку BIOS је биo смештен у ROM меморију и није дозвољавао измене, временом његове функције су се проширивале тако да је корисник имао све више опција за промену и контролисање захваљујући чињеници да се BIOS складиштио касније у PROM меморији (која је дозвољавала једно програмирање после фабричког)
 a затим у CMOS RAM меморији  (Complementary Metal-oxide-semiconductor SRAM) која се као и ROM i PROM напајала из батерије на матичној плочи.
Новији рачунари уместо BIOS-а користе UEFI (Unified Extensible Firmware Interface) који је смештен у NAND флеш меморији која је усавршена верзија EEPROM меморије и која је non-volatile меморија у пуном значењу.


Језгро је скуп програма оперативног система који:

  • контролише приступ рачунару,
  • организује меморије, организује датотеке тј. фајлове,
  • распоређује рад процеса
  • распоређује системске ресурсе

Ови програми раде у посебном режиму рада, хардверски заштићено од могућих утицаја корисника.


Љуска је командни интерфејс који интерпретира улазне команде корисника или њихових програма и активира одговарајуће системске програме који чине језгро система. Преко љуске корисник комунцира са оперативним системом тј. рачунаром.

 

Системски софтвер

Системски програми су оријентисани према Back end компоненти рачунарског система одн. према механизмима функционисања програма и према начинима организације података на меморијама у оквиру оперативног система тако да тај софтвер претежно користе програмери, софтвер инжењери као и систем администратори . . . Back end компонента се назива још и Data Access Layer ili sloj pristupa podacima.

Програми преводиоци

Програми преводиоцу су софтверски алати које програмери користе у свом раду одн. писању програма.

Рачунар разуме машински језик. Наредбе овог језика састоје се од низова јединица и нула које су означавале стања битова у меморији рачунара. Писање програма на машинском језику је веома тежак посао, подложан грешкама, па су због тога креирани други програмски језици које можемо поделити на:
– Основни симболички језик програмирања Asembler (једна наредба на овом језику обично замењује једну наредбу на машинском језику)
Више програмске језике (BASIC, Pascal, Python, Java, C, C++, C#) (једна наредба на овим језицима обично замењује више наредби на машинском језику).
Asembler програмирање је знатно сложеније од програмирања на вишим програмским језицима и оријентисано је ка одговарајућем процесору који ће тај програм да извршава. Пошто једна наредба Asemblera обично извршава једну наредбу машинског језика то је и превођење брже а програмеру пружа већу контролу и даје му могућност да уважи све техничке спецификације хардвера за који пише програм.
Програми на овом језику су се преводили тако да се свака наредба симболичког језика преводила непосредно у одговарајућу наредбу машинског језика.
Интерпретер (Interpreter) је алат који програм написан на неком програмског језику директно извршава (на машинском језику).  Дакле, програмер уз програм који је написан на неком програмског језику испоручује и интерпретер без кога тај програм неће да ради одн. интерпретер ће тај програм да извршава. Интерпретер мора да буде прилагођен оперативном систему рачунара на коме ће програм да ради.
Компајлер је алат који програм написан на неком вишем програмског језику преводи у извршни фајл који је на машинском језику. Извршни фајл има екстензију “exe” (executable – izvršni) и извршава се непосредно без присуства компајлера на циљном рачунару. Компајлирани “exe” фајлови ће знатно брже да се извршавају него фајлови које интерпретер извршава.
Дакле, предност компајлера у односу на интерпретер је у томе што се програм брже извршава као stand alone (засебна, независна) апликација без софтверских додатака  јер је на машинском језику. Интерпретер с друге стране подразумева компатибилност са свим оперативним системима јер се уз сам програм испоручује и интерпретер који тај програм извршава а сам интерпретер је прилагођен одн. креиран за одговарајући интерпретер. Ова компатибилност са различитим оперативним системима може код компајлера одн. код извршног програма некада да представља проблем.
Уношење програма (и података) у рачунар врши се помоћу посебног програма који се зове едитор (editor).

Kоришћењем програма за повезивање – линкерa (linker) преведени програм се спаја са другим програмима и системским софтвером и добија се извршни програм (извршни фајл) који се уноси у меморију рачунара и извршава преко лоадера (loader). За тражење грешака користи се посебан програм који се назива дибагер (debugger).

Помоћни програми

Помоћни програми су програми који помажу при раду са спољашњим меморијама.

Ту треба поменути, пре свега, File Manager програме одн. програме који служе за ефикаснију организацију и манипулацију подацима на спољашњим меморијама. У њима се креирају и организују фолдери, копирају, премештају, преименују, бришу фајлови али не само на локалном нивоу (на спољашњим меморијама у оквиру рачунара на коме радимо) већ и на Интернет серверима: рецимо, баве  се организацијом фајлова на неком сајту (са Back end аспекта тј. са аспекта програмера сајта, за разлику од Front end аспекта одн. из визуре корисника сајта). Најпознатији File Manager – i су:  Total Commander, FileZilla, Explorer ++, Q Dir (Quad Explorer), Clover, Explorer2 . . .

Затим, као помоћни програми, важни су архивери који служе за компримовање фајлова (више фајлова се компримује у један фајл који заузима мање меморије и самим тим се лакше манипулише њим одн. брже се меморише и преноси мрежом. Најпознатији архивери су: Win Zip, Win Rar, 7 – Zip . . .

 

Апликативни софтвер

Апликативни програми су програми оријентисани према практичној примени рачунара одн. према примени информационих технологија у свим сферама савременог друштва. То су програми коришћени од стране корисника свих профила тако да те програме зовемо и корисничким програмима.  Дакле они су  наклоњени Front end компоненти рачунарског система одн. корисници примењују те програме у својим свакодневним пословима без потреба да залазе у детаље функционисања рачунарског система па и самог програма тј. апликације коју користе . . . Front end компонента се назива још и Presentation Layer ili sloj prezentacije . . .

Класификација апликативних програма

  • Text editors, Text proccessors, текст процесори, програми за обраду теxта
  • Spreаdsheet programi, програми за табеларна (унакрсна) израчунавања
  • Database Management Systems, програми за управљање базама података
  • Векторска графика
  • Битмапирана графика
  • Sound editing, програми за обраду звука
  • CAD (Computer Aided Design)
  • 2D animacija
  • 3D animacija
  • Video editing, програми за обраду видео записа
  • Научно – Tехничка примена
  • Комуникација
  • Електронско пословање
  • Забава и разонода

 

Подела софтвера са аспекта ауторских права

Сви програми се, са апекта ауторских права, одн. према власништву и начину коришћења деле на: Proprietary software, Freeware software, Open Source software (Free software)

 

Proprietary software

Програми у власништву произвођача чије се коришћење плаћа произвођачу тог софтвера (Microsoft Office, Adobe Photoshop, Corel Draw . . .) Другачије се зову closed-source software и non-free software

 

Freeware software

Тип Proprietary software-a који се дистрибуира бесплатно од стране произвођача али у лимитираним варијантама како би се корисници мотивисали да купе пуне верзије тих програма које се, наравно, плаћају. Постоје две основне врсте Freeware software-a:  Freemium i Shareware.

Freemium software (termin nastao od reči free and premium) je софтвер који је у основном облику лимитиран одн. има само неке основне могућности. Да би корисник коритио пун потенцијал тигх програма он мора да плати лиценцу тј. да купи пуну верзију тог програма (Full version)

Shareware software je софтвер који произвођачи деле корисницима преко Интернета, часописа, на семинарима итд. а корисници имају дозволу да те верзије програма даље умножавају и деле другим корисницима. И ови програми, наравно, имају ограничене могућности у односу на пуне верзије тих програма и јављају се у неколико облика:

  • Adware (Advertising-Supported Software) су програми који у току коришћења генеришу рекламе одн. огласе преко којих се финансира произвођач или преко којих рекламира пуне верзије тих или других програма. Ове рекламе ометају комфоран рад корисника у тим програмима и њихово отклањање подразумева куповину пуне верзије тог програма . . .
  • Crippleware су програми у којима је онемогућено стандардно снимање или штампање фајлова који су крајњи продукт рада у тим програмима.  У њима, обично, може да се сними или одштампа финални фајл али са тзв. Watermark-om тј. ознаком која, у већини случајева, садржи лого произвођача и напомену да је то лимитирана верзија програма. Да би корисник могао да снима или штампа фајлове без Watermark-a он мора да купи пуну верзију тог програма . . .
  • Trialware су временски ограничени програми одн. то су програми који кад се инсталирају имају пуну функционалност један одређени временски период – Trial period (15 дана, 21 дан, месец дана, 40 дана . . .) али после истека тог периода они не раде или постају један од других типова Shareware-a (Adware, Crippleware . . .). Да би корисник радио у пуној функционалности ових програма без временског ограничења oн мора да купи пуну верзију тог програма
  • Donationware су програми који имају пуну функционалност али у току коришћења тих програма постоји могућност да корисник, опционо, дакле по свим избору, уплати онлајн донацију (on-line donation) која може да представља новчану надокнаду произвођачу тог софтвера а може да буде и донација некој непрофитабилној, хуманитарној организацији . . .
  • Nagware су програми који у току коришћења често опомињу корисника да купи пуну верзију тих програма. Иако су, у већини случајева, потпуно фукционални одн. имају пуне могућности оно не могу комфорно да се користе док корисник не купи пуну верзију тог програма и елиминише та упозорења. У литератури још се називају и begware, annoyware or a nagscreen . . .

 

Open – Source software (Free software)

Бесплатни програми које произвођачи уступају корисницима без новчане надокнаде. Корисници не само да могу да користе ове програме већ могу да их и дидтрибуирају другим корисницима а уз сам програм произвођачи дају и изворни код програма тако да корисници (програмери) могу да мењају изворни код и на тај нaчин се стварају унапређене верзије тих програма. Такође, корисници (програмери), пошто имају изворни код, могу да прилагођавају те програме специфичним потребaма и такве их дистрибуирају.

Постоји разлика између ова два појма мада у суштини они означавају исту врсту софтвера, наиме, Free software се односи на друштвени покрет за слободни софтвер који је створио Ричард Столман (Richard Stollman), чувени програмер и политички активиста који се борио против монопола на тржишту софтвера док се Open – Source software односи на методологију развоја (у стварању и унапређивању програма учествују поред произвођача и корисници – програмери захваљујући доступном отвореном коду) . . .