Управљачки програм

Из Википедије, слободне енциклопедије

Управљачки програм или везник (енгл. driver) је рачунарски програм који омогућава комуникацију између програма вишег нивоа (оперативног система, апликација итд.) и рачунарске опреме. Једноставно речено, управљачки програми омогућавају оперативном систему да користи одређену рачунарску опрему, коју обичан корисник уопште не би могао да користи.

Управљачки програм обично комуницира с уређајима преко магистрале или рачунарског подсистема на који је дати уређај прикачен. Када одређени програм захтијева извршење неке наредбе од везника, везник захтијева извршење те наредбе од одговарајућег уређаја. Када уређај да одговор, тај одговор се прослијеђује позивајућем програму.

Управљачки програми су различити за различите врсте рачунарске опреме и различите оперативне системе.

Намјена[уреди]

Везници поједностављују програмирање тако што за све различите врсте одређеног типа уређаја (нпр. за све штампаче или све мониторе итд.) пружају јединствен скуп наредби које програмер мора да познаје, без улажења у посебности дате врсте уређаја. Јер, свака врста одређеног типа уређаја може захтијевати посебне наредбе за своје правилно извршавање или посебне врсте параметара. Да би се избјегло писање различитих програма за различите врсте уређаја, везници преузимају на себе терет различитости а програмер може да користи јединствени скуп наредби за комуникацију с везником. Везници прихватају ове наредбе и преводе их у одговарајуће наредбе за дату врсту уређаја. Тако, на примјер, програмери могу да користе наредбу write за писање и read за читање са сваког тврдог диска, а везник за одређену врсту тврдог диска ће те наредбе превести у оне које та врста разумије.

Структура[уреди]

У структури везника разликујемо два апстрактна слоја: логички и физички. Логички слој рукује одређеним типом уређаја, попут мрежних картица, тврдих дискова итд. Физички слој рукује одређеном врстом датог типа уређаја. На примјер, логички слој драјвера за серијске портове рукује, између осталог, протоколом XON/XOFF, који је заједнички за све врсте серијских портова. Физички слој истог везника, међутим, комуницира с одређеном врстом серијског порта. На примјер, наредбе за серијски порт с чипом 16550 UART се разликују од наредби серијског порта с чипом PL-011; физички слој обрађује те разлике. По договору, захтјеви програма вишег нивоа прво стижу у логички слој. Потом се логички слој обраћа физичком слоју, који дате захтјеве преводи у разумљиве за дату врсту рачунарске опреме. У обрнутом случају, подаци од уређаја пролазе прво кроз физички слој, преко логичког слоја до датог програма вишег нивоа.

Линуксови драјвери су уграђени у језгро оперативног система. Ако су доступни технички детаљи о одређеној врсти уређаја, развојни тим језгра Линукса гарантује да ће написати одговарајуће везнике за линукс, без новчане надокнаде[1][2][3]. На тај начин произвођачи рачунарске опреме не морају да пишу везнике своје опреме за линукс.

Поред тога што везници могу да учествују у грађи језгра, они могу да представљају и засебне цјелине. Виндоусове датотеке с наставком .sys и линуксове датотеке с наставком .ko представљају везнике у облику засебних цјелина, који се могу учитати за вријеме рада оперативног система. Њихова предност је што се могу учитати по потреби, и уклонити из меморије када више нису потребни, што штеди меморијски простор језгра.

Развој[уреди]

Писање везника за одређени уређај захтијева одлично разумијевање начина функционисања тог уређаја, као и оперативног система за који се везник пише. Везници имају висок ниво дозвола у свом радном окружењу и могу проузроковати велику штету за рачунарски систем ако се не напишу добро и ствари крену наопако[4], за разлику од већине програма вишег нивоа, нарочито апликација, чија се упутства у случају опасности могу обуставити без веће штете по оперативни и рачунарски систем. Чак и везници у тзв. корисничком режиму рада могу задати озбиљну штету оперативном и рачунарском систему уколико су лоше програмирани. Због ових проблема, везнике углавном пишу инжењери који раде у фирмама које производе рачунарску опрему, јер имају више података о посебностима рада одређеног уређаја у односу на већину људи ван фирме. Обично се логички слој везника за неки тип опреме пише од стране произвођача датог оперативног система, док физички слој пишу произвођачи дате врсте уређаја. У скорије вријеме, међутим, с порастом коришћења слободних оперативних система и програма, све већи број добровољаца пише везнике за разне врсте опреме. Да би се то остварило, битно је да произвођач одређеног уређаја пружи детаљне податке о начину његовог функционисања. Иако ови подаци могу бити откривени тзв. обрнутим инжењерингом, тај поступак је много спорији него код програма.

Мајкрософт је покушао да смањи ризик при коришћењу лоше написаних везника, стварањем шаблона за писање истих, званог „Темељ за виндоусове везнике“ (енгл. Windows Driver Foundation, WDF). Овај шаблон садржи подшаблон за везнике у корисничком режиму рада (енгл. User-Mode Driver Framework, UMDF), који налаже да се на основу њега пишу одређене врсте везника, првенствено оне који су засновани на размјени порука, и подшаблон за везнике у режиму рада језгра (енгл. Kernel-Mode Driver Framework, KMDF), који пружа рјешења за проблеме који се често дешавају у овом режиму, укључујући отказивање улаза/излаза, управљање електричном енергијом и проблеме с уређајима који се прикључују рачунарском систему за вријеме његовог рада.

Епл има шаблон „I/O Kit“ („Опрема за улаз/излаз“) која је лишена ауторског права и служи за писање везника за Mac OS X.

Примјена[уреди]

Везници се данас користе у повезивању програма вишег нивоа и широке лепезе рачунарске опреме. Ту се убрајају:

Одабир одговарајућих везника за саставне дијелове рачунарског система је обично кључни дио подешавања тог рачунарског система.

Виртуелни везници[уреди]

Посебна врста везника су тзв. виртуелни везника. Они се користе у окружењима гдје се симулира рад неког другог окружења, нпр. рад линукса под оперативним системом виндоус. Умјесто да се том симулатору дозволи приступ рачунарској опреми, ствара се посебна виртуелна машина и виртуелни везници за њу, тако да симулатор „мисли“ да приступа правој опреми преко везника, док ти виртуелни везници заправо захтијевају приступ опреми преко правих везника. На овај начин се чува безбједност оперативног система-домаћина и анализира рад оперативног система-госта.

Извори[уреди]

Спољашње везе[уреди]

  • UpDrivers.com – бесплатни везници за виндоус ((en))
  • DynamicLink.nl – потпун и абецедно уређен списак свих 1536 „.sys“ везника за виндоус] ((en))
  • rcnp.osaka-u.ac.jp – упутство за писање везника ((en))