Što je driver? Driver je poseban dio softverskog koda koji ima svrhu da omogući komunikaciju između komponenti računala i samog operacijskog sustava. Bez odgovarajućeg drivera, operacijski sustav ne može komunicirati ispravno sa hardverom na kojem je instaliran (matična ploča, i perifernim komponentama: printer, grafička kartica, tipkovnica, miš, monitor…).
Da bi bolje razjasnili gore napisano, poslužit ćemo se odgovarajućim grafikonima, i proći dio po dio na tu temu.
U našem jeziku često koristimo riječ driver, ali je to u stvari eng. pojam (device driver: vozač, pokretač…) što se odnosi na pokretanje nekog elektronskog sklopa da obavi predviđene zadatke.
Gdje se nalaze driveri?
Dakle, imamo više datoteka jednog drivera, i naravno više drivera na jednom PC-u. Svaki dio hardvera treba određenu softversku “podršku” da bi funkcionirao u radnoj sredini i tvorio cjelinu koju zovemo računalo.
Bez obzira koji OS koristili (MS Windows, Linux, iOS, pa čak i Android), za pravilan rad uređaja potrebno je imati odgovarajuće drivere. Driver je ključni dio koda, pomoću kojeg se odvija interakcija između korisnika i stroja.
U nastavku ćemo Operacijski sustav označavati sa OS, radi lakšeg čitanja, pa krenimo:
Svaki OS u svojoj strukturi ima kernel. To je program koji upravlja ulazno/izlaznim signalima iz softvera, dalje ih prevodi u signale (instrukcije) koje će razumjeti CPU i druge elektronske komponente koje međusobno komuniciraju.
Ukratko, možemo napisati da je kernel zadužen za upravljanje procesima, upravljanje memorijom, datotečnim sustavom, upravlja različitim perifernim uređajima, mrežom i drugim dijelovima računalnog hardvera. Na donjoj shemi, kernel je 4. sloj ako brojimo od gore prema dolje, i u njemu se nalaze driver datoteke.
Driver dijelimo na dvije osnovne grupe: user driver i device driver.
User driver možemo opisati kao onaj dio softvera kojem obični korisnik ima pristup korištenjem naprednih postavki OS-a. User driver je dio koda dostupan korisniku zbog potrebe određenih postavki, kalibriranja i različitih izmjena za potrebno ponašanje hardvera.
Device driver smatramo dio softvera koji je skriven i ne vidi se korištenjem klasičnog GUI sučelja nekog OS-a. Taj dio zapravo radi u prvim slojevima svakog OS-a, komunicira sa hardverom i stalno interpretira naredbe koje korisnik unosi. Glavna uloga device drivera je pružiti pomoć u smislu da prevodi čovjeku smislene naredbe u strojno prihvatljiv programski jezik. Naravno, prijevod se izvodi u oba smjera.
Shema za lakše razumijevanje
Na donjoj shemi možete vidjeti najbitnije dijelove nekog softverskog rješenja za upravljanje hardverom i čovjeku olakšano korištenje računala.
Prvo da pojasnimo gore napisano (Čovjeku olakšano korištenje računala): Postoji mnogo vrsta računala, i mnoga od njih ne koriste ovu strukturu sa naše sheme. Shema koju smo objavili odnosi se na osobna računala, koja koristimo svakodnevno. Ako bi pisali o robotici, avio industriji ili automobilskoj industriji, shema se ne bi podudarala sa strukturom računalnih jedinica instaliranih u spomenutim industrijskim granama.
Ako pogledate shemu od vrha prema dolje, odmah možete vidjeti sloj koji inače koristite prilikom rukovanja računalom, pametnim telefonom ili tabletom. Dakle, u prvom sloju se nalaze aplikacije koje koristite.
U drugom sloju se nalazi datotečni sustav, GUI i opcije za upravljanje uređajem, te drugim perifernim dijelovima. Datotečni sustav kontroliran je programskim rješenjima OS-a, i korisniku daje upravljanje na način kako je OS dizajniran. Služi nam za prijenos datoteka, kontrolu nad njima i sigurnu pohranu. GUI se brine da korisnik ima što lakše korištenje OS-a i svih njegovih komponenti. Da nemamo GUI, još i danas bi za svaku radnju trebali unositi naredbu, što je priznat ćemo svi zahtjevno i nimalo praktično. Treći dio (Upravljanje uređajem) je također kontroliran programskim opcijama OS-a, da bi se omogućila određena kontrola prilikom korištenja OS-a i hardvera.
U trećem sloju se nalazi sami OS, koji “nosi” na sebi 2 gornja sloja i brine se za što bolji i stabilniji rad.
Četvrti sloj: Bootloader, Upravljanje matične ploče, i Device driver. Zajedno čine cjelinu koju zovemo kernel. Pojednostavljeno možemo napisati da je Bootloader dio koda koji će pronaći Boot HDD (ili neki drugi uređaj) sa kojeg će učitati daljnji dio koda i pokrenuti sve potrebne kodove da budu spremni i u radnom stanju. Upravljanje matične ploče je još jedan neizostavan dio koda s pomoću kojeg matična ploča komunicira sa svim uređajima koji su neophodni do učitavanja OS-a. Pojam koji bi najbolje opisao taj dio koda bio bi BIOS. Device driver smo već opisali, a sada uz pomoć naše sheme vidite i gdje se nalazi.
Na kraju se svaki dio koda “oslanja” na hardver, jer to i jest poanta čitave priče; da koristimo električne komponente na nama specifičan i koristan način.
U školi smo već na prvim satima informatike učili o binarnom kodu, strojnom jeziku i tim famoznim jedinicama i nulama (1, 0). To je princip rada svakog elektroničkog sklopa, a sav software se brine da uređaji međusobno dobro komuniciraju, i da se čovjeku svaki proces interpretira na njemu što lakše razumljiv jezik.
Za kraj da stavimo još jednu grafiku (mreža piksela) u binarnom zapisu, i interpretaciji dvije boje (crna = 0, zelena = 1).
Sada je mnogo jednostavnije shvatiti na koji način funkcionira strojni jezik, i kako ga se interpretira za što lakše i bolje razumijevanje.