Upravljački program

Iz Vikipedije, slobodne enciklopedije
(preusmereno sa Драјвер)
Skoči na: navigacija, pretraga

Upravljački program ili veznik (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 zahtijeva izvršenje neke naredbe od veznika, veznik zahtijeva izvršenje te naredbe od odgovarajućeg uređaja. Kada uređaj da odgovor, taj odgovor se proslijeđuje pozivajućem programu.

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

Namjena[uredi]

Veznici 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 zahtijevati posebne naredbe za svoje pravilno izvršavanje ili posebne vrste parametara. Da bi se izbjeglo pisanje različitih programa za različite vrste uređaja, veznici preuzimaju na sebe teret različitosti a programer može da koristi jedinstveni skup naredbi za komunikaciju s veznikom. Veznici 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 veznik za određenu vrstu tvrdog diska će te naredbe prevesti u one koje ta vrsta razumije.

Struktura[uredi]

U strukturi veznika 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 veznika, 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 veznike za linuks, bez novčane nadoknade[1][2][3]. Na taj način proizvođači računarske opreme ne moraju da pišu veznike svoje opreme za linuks.

Pored toga što veznici mogu da učestvuju u građi jezgra, oni mogu da predstavljaju i zasebne cjeline. Vindousove datoteke s nastavkom .sys i linuksove datoteke s nastavkom .ko predstavljaju veznike u obliku zasebnih cjelina, koji se mogu učitati za vrijeme 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]

Pisanje veznika za određeni uređaj zahtijeva odlično razumijevanje načina funkcionisanja tog uređaja, kao i operativnog sistema za koji se veznik piše. Veznici 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 veznici u tzv. korisničkom režimu rada mogu zadati ozbiljnu štetu operativnom i računarskom sistemu ukoliko su loše programirani. Zbog ovih problema, veznike 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 veznika 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 vrijeme, međutim, s porastom korišćenja slobodnih operativnih sistema i programa, sve veći broj dobrovoljaca piše veznike 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 veznika, stvaranjem šablona za pisanje istih, zvanog „Temelj za vindousove veznike“ (engl. Windows Driver Foundation, WDF). Ovaj šablon sadrži podšablon za veznike 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 veznika, prvenstveno one koji su zasnovani na razmjeni poruka, i podšablon za veznike u režimu rada jezgra (engl. Kernel-Mode Driver Framework, KMDF), koji pruža rješ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 vrijeme njegovog rada.

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

Primjena[uredi]

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

Odabir odgovarajućih veznika za sastavne dijelove računarskog sistema je obično ključni dio podešavanja tog računarskog sistema.

Virtuelni veznici[uredi]

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

Izvori[uredi]

Spoljašnje veze[uredi]