Драјвер
Из Википедија
Драјвер је рачунарски програм који омогућава комуникацију између програма вишег нивоа (оперативног система, апликација итд.) и рачунарске опреме.
Драјвер обично комуницира са уређајима преко магистрале или рачунарског подсистема на који је дати уређај прикачен. Када одређени програм захтијева извршење неке команде од драјвера, драјвер захтијева извршење те команде од одговарајућег уређаја. Када уређај да одговор, тај одговор се прослијеђује позивајућем програму.
Драјвери су различити за различите врсте рачунарске опреме и различите оперативне системе.
Садржај |
[уреди] Намјена
Драјвери поједностављују програмирање тако што за сва различите врсте одређеног типа уређаја (нпр. за све штампаче или све мониторе итд.) пружају јединствен скуп команди које програмер мора да познаје, без улажења у посебности дате врсте уређаја. Јер, свака врста одређеног типа уређаја може захтијевати посебне команде за своје правилно извршавање или посебне врсте параметара. Да би се избјегло писање различитих програма за различите врсте уређаја, драјвери преузимају на себе терет различитости а програмер може да користи јединствени скуп команди за комуникацију са драјвером. Драјвери прихватају ове команде и преводе их у одговарајуће команде за дату врсту уређаја. Тако, на примјер, програмери могу да користе команду 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“ („Опрема за улаз/излаз“) која је лишена ауторског права и служи за писање драјвера за Мек ОС X.
[уреди] Примјена
Драјвери се данас користе у повезивању програма вишег нивоа и широке лепезе рачунарске опреме. Ту се убрајају:
- Штампачи
- Графичке картице
- Мрежне картице
- Звучне картице
- Магистрале на матичној плочи
- Мишеви, тастатуре, USB уређаји, итд.
- Медијуми за смјештај података (компакт дискови, чврсти дискови (ATA, SATA, SCSI)
- Различити датотечни системи
- Скенери, дигитални фотоапарати, камере итд.
Одабир одговарајућих драјвера за саставне дијелове рачунарског система је обично кључни дио подешавања тог рачунарског система.
[уреди] Виртуелни драјвери
Посебна врста драјвера су тзв. виртуелни драјвери. Они се користе у окружењима гдје се симулира рад неког другог окружења, нпр. рад Линукса под оперативним системом Виндоуз. Умјесто да се том симулатору дозволи приступ рачунарској опреми, ствара се посебна виртуелна машина и виртуелни драјвери за њу, тако да симулатор „мисли“ да приступа правој опреми преко драјвера, док ти виртуелни драјвери заправо захтијевају приступ опреми преко правих драјвера. На овај начин се чува безбиједност оперативног система-домаћина и анализира рад оперативног система-госта.
[уреди] Референце
- ^ Грег Кроа-Хартман, „Слободан развој Линуксових драјвера“ (23. мај, 2007) ((en))
- ^ Дон Марти, „Пројекат развоја Линуксових драјвера доноси плодове“ (23. мај, 2007) ((en))
- ^ „Линуксови драјвери“ (14. јун, 2007) ((en))
- ^ Linux-Tutorial.info ((en))
[уреди] Спољашње везе
- UpDrivers.com - бесплатни драјвери за Виндоуз ((en))
- DynamicLink.nl Потпун и абецедно уређен списак свих 1536 „.sys“ драјвера за Виндоуз] ((en))
- rcnp.osaka-u.ac.jp- Писање драјвера (упутство) ((en))

