Управљачки програм — разлика између измена

Садржај обрисан Садржај додат
Ranching је преместио страницу Управљачки програм на Драјвер преко преусмерења
м Разне исправке
Ред 1:
'''Драјвер''' или '''управљачки програм''' ({{јез-енгл|driver}}) је рачунарски програм који омогућава комуникацију између програма вишег нивоа ([[оперативни систем|оперативног система]], [[апликација]] итд.) и [[хардвер|рачунарске опреме]]. Једноставно речено, управљачки програми омогућавају оперативном систему да користи одређену рачунарску опрему, коју обичан корисник уопште не би могао да користи.
#Преусмери [[Драјвер]]
 
Управљачки програм обично комуницира с уређајима преко [[Магистрала (рачунарство)|магистрале]] или рачунарског подсистема на који је дати уређај прикачен. Када одређени програм захтева извршење неке наредбе од драјвера, драјвер захтева извршење те наредбе од одговарајућег уређаја. Када уређај да одговор, тај одговор се прослеђује позивајућем програму.
 
Управљачки програми су различити за различите врсте рачунарске опреме и различите оперативне системе.
 
== Намена ==
Управљачки програми поједностављују програмирање тако што за све различите врсте одређеног типа уређаја (нпр. за све [[штампач]]е или све [[монитор]]е итд.) пружају јединствен скуп наредби које програмер мора да познаје, без улажења у посебности дате врсте уређаја. Јер свака врста одређеног типа уређаја може захтевати посебне наредбе за своје правилно извршавање или посебне врсте параметара. Да би се избегло писање различитих програма за различите врсте уређаја, драјвери преузимају на себе терет различитости а [[програмер]] може да користи јединствени скуп наредби за комуникацију с драјвером. Драјвери прихватају ове наредбе и преводе их у одговарајуће наредбе за дату врсту уређаја. Тако, на примјер, програмери могу да користе наредбу <code>write</code> за писање и <code>read</code> за читање са сваког [[Тврди диск|тврдог диска]], а драјвер за одређену врсту тврдог диска ће те наредбе превести у оне које та врста разумије.
 
== Структура ==
У структури драјвера разликујемо два апстрактна слоја: логички и физички. Логички слој рукује одређеним типом уређаја, попут [[Мрежна картица|мрежних картица]], тврдих дискова итд. Физички слој рукује одређеном врстом датог типа уређаја. На примјер, логички слој драјвера за [[Серијски порт|серијске портове]] рукује, између осталог, протоколом <code>XON/XOFF</code>, који је заједнички за све врсте серијских портова. Физички слој истог драјвера, међутим, комуницира с одређеном врстом серијског порта. На примјер, наредбе за серијски порт с чипом -{16550 UART}- се разликују од наредби серијског порта с чипом -{PL-011}-; физички слој обрађује те разлике. По договору, захтјеви програма вишег нивоа прво стижу у логички слој. Потом се логички слој обраћа физичком слоју, који дате захтјеве преводи у разумљиве за дату врсту рачунарске опреме. У обрнутом случају, подаци од уређаја пролазе прво кроз физички слој, преко логичког слоја до датог програма вишег нивоа.
 
[[Линукс]]ови драјвери су уграђени у [[језгро оперативног система]]. Ако су доступни технички детаљи о одређеној врсти уређаја, развојни тим језгра Линукса гарантује да ће написати одговарајуће драјвере за линукс, без новчане надокнаде<ref>[http://www.kroah.com/log/2007/01/29/#free_drivers Грег Кроа-Хартман, „Слободан развој линуксових драјвера“] (23. мај 2007) {{en}}</ref><ref>[http://www.linuxworld.com.au/index.php/id;58590129;fp;16;fpid;0 Дон Марти, „Пројекат развоја линуксових драјвера доноси плодове“] (23. мај 2007) {{en}}</ref><ref>[http://linuxdriverproject.org/twiki/bin/view „Линуксови драјвери“] (14. јун 2007) {{en}}</ref>. На тај начин произвођачи рачунарске опреме не морају да пишу драјвере своје опреме за линукс.
 
Поред тога што драјвери могу да учествују у грађи језгра, они могу да представљају и засебне целине. [[Мајкрософт виндоус|Виндоусове]] датотеке с наставком <code>.sys</code> и линуксове датотеке с наставком <code>.ko</code> представљају драјвере у облику засебних целина, који се могу учитати за време рада оперативног система. Њихова предност је што се могу учитати по потреби, и уклонити из меморије када више нису потребни, што штеди меморијски простор језгра.
 
== Развој ==
Писање драјвера за одређени уређај захтева одлично разумевање начина функционисања тог уређаја, као и оперативног система за који се драјвер пише. Драјвери имају висок ниво дозвола у свом радном окружењу и могу проузроковати велику штету за рачунарски систем ако се не напишу добро и ствари крену наопако<ref>[http://www.linux-tutorial.info/modules.php?name=Tutorial&pageid=255 Linux-Tutorial.info] {{en}}</ref>, за разлику од већине програма вишег нивоа, нарочито апликација, чија се упутства у случају опасности могу обуставити без веће штете по оперативни и рачунарски систем. Чак и драјвери у тзв. корисничком режиму рада могу задати озбиљну штету оперативном и рачунарском систему уколико су лоше програмирани. Због ових проблема, драјвере углавном пишу инжењери који раде у фирмама које производе рачунарску опрему, јер имају више података о посебностима рада одређеног уређаја у односу на већину људи ван фирме. Обично се логички слој драјвера за неки тип опреме пише од стране произвођача датог оперативног система, док физички слој пишу произвођачи дате врсте уређаја. У скорије време, међутим, с порастом коришћења слободних оперативних система и програма, све већи број добровољаца пише драјвере за разне врсте опреме. Да би се то остварило, битно је да произвођач одређеног уређаја пружи детаљне податке о начину његовог функционисања. Иако ови подаци могу бити откривени тзв. обрнутим инжењерингом, тај поступак је много спорији него код програма.
 
[[Мајкрософт]] је покушао да смањи ризик при коришћењу лоше написаних драјвера, стварањем шаблона за писање истих, званог „Темељ за виндоусове драјвере“ ({{јез-енг|Windows Driver Foundation, WDF}}). Овај шаблон садржи подшаблон за драјвере у корисничком режиму рада ({{јез-енг|User-Mode Driver Framework, UMDF}}), који налаже да се на основу њега пишу одређене врсте драјвера, првенствено оне који су засновани на размени порука, и подшаблон за драјвере у режиму рада језгра ({{јез-енг|Kernel-Mode Driver Framework, KMDF}}), који пружа решења за проблеме који се често дешавају у овом режиму, укључујући отказивање улаза/излаза, управљање електричном енергијом и проблеме с уређајима који се прикључују рачунарском систему за време његовог рада.
 
[[Епл]] има шаблон „-{I/O Kit}-“ („Опрема за улаз/излаз“) која је лишена ауторског права и служи за писање драјвера за -{[[Mac OS X]]}-.
 
== Примена ==
Управљачки програми се данас користе у повезивању програма вишег нивоа и широке лепезе рачунарске опреме. Ту се убрајају:
* [[Штампач]]и
* [[Графичка картица|Графичке картице]]
* [[Мрежна картица|Мрежне картице]]
* [[Звучна картица|Звучне картице]]
* Магистрале на матичној плочи
* Мишеви, тастатуре, [[USB]] уређаји итд.
* Медијуми за смештај података: ([[компакт-диск]]ови, [[тврди диск]]ови ([[ATA]], [[SATA]], [[SCSI]])
* Различити [[Датотечни систем|системи датотека]]
* [[Скенер]]и, [[дигитални фотоапарат]]и, камере итд.
 
Одабир одговарајућих драјвера за саставне делове рачунарског система је обично кључни део подешавања тог рачунарског система.
 
== Виртуелни драјвери ==
Посебна врста драјвера су тзв. виртуелни драјвери. Они се користе у окружењима где се [[Симулација|симулира]] рад неког другог окружења, нпр. рад линукса под оперативним системом виндоус. Уместо да се том симулатору дозволи приступ рачунарској опреми, ствара се посебна виртуелна машина и виртуелни драјвери за њу, тако да симулатор „мисли“ да приступа правој опреми преко драјвера, док ти виртуелни драјвери заправо захтевају приступ опреми преко правих драјвера. На овај начин се чува безбедност оперативног система-домаћина и анализира рад оперативног система-госта.
 
== Извори ==
{{reflist}}
 
== Спољашње везе ==
* [http://www.updrivers.com/ UpDrivers.com] – бесплатни драјвери за виндоус {{en}}
* [http://www.dynamiclink.nl/frames/sys.htm DynamicLink.nl] – потпун и абецедно уређен списак свих 1536 „.sys“ драјвера за виндоус] {{en}}
* [http://www.rcnp.osaka-u.ac.jp/unix/DOCUMENTATION/HTML/AA-PUBVD-TE_html/TITLE.html rcnp.osaka-u.ac.jp] – упутство за писање драјвера {{en}}
 
[[Категорија:Оперативни системи]]