Upravljački program

S Vikipedije, slobodne enciklopedije

Upravljački program ili drajver (engl. driver) je računarski program koji omogućava komunikaciju između programa višeg nivoa (operativnog sistema, aplikacija itd.) i računarske opreme. Jednostavno rečeno, upravljački programi omogućavaju operativnom sistemu da koristi određenu računarsku opremu, koju običan korisnik uopšte ne bi mogao da koristi.

Upravljački program obično komunicira s uređajima preko magistrale ili računarskog podsistema na koji je dati uređaj prikačen. Kada određeni program zahteva izvršenje neke naredbe od drajvera, drajver zahteva izvršenje te naredbe od odgovarajućeg uređaja. Kada uređaj da odgovor, taj odgovor se prosleđuje pozivajućem programu.

Upravljački programi su različiti za različite vrste računarske opreme i različite operativne sisteme.

Namena[uredi | uredi izvor]

Upravljački programi pojednostavljuju programiranje tako što za sve različite vrste određenog tipa uređaja (npr. za sve štampače ili sve monitore itd.) pružaju jedinstven skup naredbi koje programer mora da poznaje, bez ulaženja u posebnosti date vrste uređaja. Jer svaka vrsta određenog tipa uređaja može zahtevati posebne naredbe za svoje pravilno izvršavanje ili posebne vrste parametara. Da bi se izbeglo pisanje različitih programa za različite vrste uređaja, drajveri preuzimaju na sebe teret različitosti a programer može da koristi jedinstveni skup naredbi za komunikaciju s drajverom. Drajveri prihvataju ove naredbe i prevode ih u odgovarajuće naredbe za datu vrstu uređaja. Tako, na primjer, programeri mogu da koriste naredbu write za pisanje i read za čitanje sa svakog tvrdog diska, a drajver za određenu vrstu tvrdog diska će te naredbe prevesti u one koje ta vrsta razumije.

Struktura[uredi | uredi izvor]

U strukturi drajvera razlikujemo dva apstraktna sloja: logički i fizički. Logički sloj rukuje određenim tipom uređaja, poput mrežnih kartica, tvrdih diskova itd. Fizički sloj rukuje određenom vrstom datog tipa uređaja. Na primjer, logički sloj drajvera za serijske portove rukuje, između ostalog, protokolom XON/XOFF, koji je zajednički za sve vrste serijskih portova. Fizički sloj istog drajvera, međutim, komunicira s određenom vrstom serijskog porta. Na primjer, naredbe za serijski port s čipom 16550 UART se razlikuju od naredbi serijskog porta s čipom PL-011; fizički sloj obrađuje te razlike. Po dogovoru, zahtjevi programa višeg nivoa prvo stižu u logički sloj. Potom se logički sloj obraća fizičkom sloju, koji date zahtjeve prevodi u razumljive za datu vrstu računarske opreme. U obrnutom slučaju, podaci od uređaja prolaze prvo kroz fizički sloj, preko logičkog sloja do datog programa višeg nivoa.

Linuksovi drajveri su ugrađeni u jezgro operativnog sistema. Ako su dostupni tehnički detalji o određenoj vrsti uređaja, razvojni tim jezgra Linuksa garantuje da će napisati odgovarajuće drajvere za linuks, bez novčane nadoknade[1][2][3]. Na taj način proizvođači računarske opreme ne moraju da pišu drajvere svoje opreme za linuks.

Pored toga što drajveri mogu da učestvuju u građi jezgra, oni mogu da predstavljaju i zasebne celine. Windows datoteke s nastavkom .sys i linuksove datoteke s nastavkom .ko predstavljaju drajvere u obliku zasebnih celina, koji se mogu učitati za vreme rada operativnog sistema. Njihova prednost je što se mogu učitati po potrebi, i ukloniti iz memorije kada više nisu potrebni, što štedi memorijski prostor jezgra.

Razvoj[uredi | uredi izvor]

Pisanje drajvera za određeni uređaj zahteva odlično razumevanje načina funkcionisanja tog uređaja, kao i operativnog sistema za koji se drajver piše. Drajveri imaju visok nivo dozvola u svom radnom okruženju i mogu prouzrokovati veliku štetu za računarski sistem ako se ne napišu dobro i stvari krenu naopako[4], za razliku od većine programa višeg nivoa, naročito aplikacija, čija se uputstva u slučaju opasnosti mogu obustaviti bez veće štete po operativni i računarski sistem. Čak i drajveri u tzv. korisničkom režimu rada mogu zadati ozbiljnu štetu operativnom i računarskom sistemu ukoliko su loše programirani. Zbog ovih problema, drajvere uglavnom pišu inženjeri koji rade u firmama koje proizvode računarsku opremu, jer imaju više podataka o posebnostima rada određenog uređaja u odnosu na većinu ljudi van firme. Obično se logički sloj drajvera za neki tip opreme piše od strane proizvođača datog operativnog sistema, dok fizički sloj pišu proizvođači date vrste uređaja. U skorije vreme, međutim, s porastom korišćenja slobodnih operativnih sistema i programa, sve veći broj dobrovoljaca piše drajvere za razne vrste opreme. Da bi se to ostvarilo, bitno je da proizvođač određenog uređaja pruži detaljne podatke o načinu njegovog funkcionisanja. Iako ovi podaci mogu biti otkriveni tzv. obrnutim inženjeringom, taj postupak je mnogo sporiji nego kod programa.

Majkrosoft je pokušao da smanji rizik pri korišćenju loše napisanih drajvera, stvaranjem šablona za pisanje istih, zvanog „Temelj za Windows drajvere“ (engl. Windows Driver Foundation, WDF). Ovaj šablon sadrži podšablon za drajvere u korisničkom režimu rada (engl. User-Mode Driver Framework, UMDF), koji nalaže da se na osnovu njega pišu određene vrste drajvera, prvenstveno one koji su zasnovani na razmeni poruka, i podšablon za drajvere u režimu rada jezgra (engl. Kernel-Mode Driver Framework, KMDF), koji pruža rešenja za probleme koji se često dešavaju u ovom režimu, uključujući otkazivanje ulaza/izlaza, upravljanje električnom energijom i probleme s uređajima koji se priključuju računarskom sistemu za vreme njegovog rada.

Epl ima šablon „I/O Kit“ („Oprema za ulaz/izlaz“) koja je lišena autorskog prava i služi za pisanje drajvera za Mac OS X.

Primena[uredi | uredi izvor]

Upravljački programi se danas koriste u povezivanju programa višeg nivoa i široke lepeze računarske opreme. Tu se ubrajaju:

Odabir odgovarajućih drajvera za sastavne delove računarskog sistema je obično ključni deo podešavanja tog računarskog sistema.

Virtuelni drajveri[uredi | uredi izvor]

Posebna vrsta drajvera su tzv. virtuelni drajveri. Oni se koriste u okruženjima gde se simulira rad nekog drugog okruženja, npr. rad linuksa pod operativnim sistemom Windows. Umesto da se tom simulatoru dozvoli pristup računarskoj opremi, stvara se posebna virtuelna mašina i virtuelni drajveri za nju, tako da simulator „misli“ da pristupa pravoj opremi preko drajvera, dok ti virtuelni drajveri zapravo zahtevaju pristup opremi preko pravih drajvera. Na ovaj način se čuva bezbednost operativnog sistema-domaćina i analizira rad operativnog sistema-gosta.

Izvori[uredi | uredi izvor]

  1. ^ Greg Kroa-Hartman, „Slobodan razvoj linuksovih drajvera“ (23. maj 2007) (jezik: engleski)
  2. ^ Don Marti, „Projekat razvoja linuksovih drajvera donosi plodove“ Arhivirano na sajtu Wayback Machine (30. oktobar 2007) (23. maj 2007) (jezik: engleski)
  3. ^ „Linuksovi drajveri“ Arhivirano na sajtu Wayback Machine (26. oktobar 2007) (14. jun 2007) (jezik: engleski)
  4. ^ Linux-Tutorial.info Arhivirano na sajtu Wayback Machine (27. septembar 2007) (jezik: engleski)

Spoljašnje veze[uredi | uredi izvor]

  • UpDrivers.com – besplatni drajveri za Windows (jezik: engleski)
  • DynamicLink.nl – potpun i abecedno uređen spisak svih 1536 „.sys“ drajvera za Windows] (jezik: engleski)
  • rcnp.osaka-u.ac.jp – uputstvo za pisanje drajvera (jezik: engleski)