U savremenim ugrađenim sistemima i računarima, pojmovi firmver i softver igraju ključne uloge, često se preplićući.
Svet se rapidno digitalizuje, a većina aktivnosti se obavlja uz pomoć računara. U tom kontekstu, softver i hardver su najčešće korišćeni termini kada se govori o računarima.
Mnogo pažnje se posvećuje razvoju savremenih tehnoloških uređaja. Postoji raznovrstan spektar softvera i hardvera, a uz to, možete se susresti i sa terminom firmver.
U elektronskoj industriji, firmver i softver su jednako značajni. Ponekad je teško razlikovati ova dva pojma, jer mogu imati slične svrhe.
Na primer, prilikom ručne instalacije ažuriranja Android operativnog sistema, može se govoriti o firmveru. To implicira da je softver kreiran za određeni hardver ili firmver uređaja, dok se istovremeno vrši ažuriranje operativnog sistema na vašem Android telefonu.
Ako vam sve ovo deluje zbunjujuće, dozvolite mi da vam detaljnije objasnim ovu temu.
U ovom tekstu ću razjasniti razlike i sličnosti između softvera i firmvera, kao i njihove primere upotrebe.
Krenimo!
Šta je firmver?
U računarskom svetu, firmver je posebna vrsta računarskog softvera koji pruža kontrolu niskog nivoa za specifičan hardver bilo kog uređaja. Firmver sadrži ključne funkcije uređaja i pruža apstrakciju hardvera softveru višeg nivoa, kao što su operativni sistemi.
Za manje kompleksne uređaje, firmver se ponaša kao kompletan operativni sistem, obavljajući funkcije kontrole, nadzora i manipulacije podacima. On se čuva u trajnim memorijskim uređajima, uključujući EPROM, EEPROM, fleš memoriju i ROM.
Američki naučnik Ašer Opler je 1967. godine skovao termin „firmver“. Koristio ga je da opiše mikroprogram koji se nalazi između softvera i hardvera.
Ažuriranje firmvera obično zahteva fizičku zamenu ROM-a ili reprogramiranje EPROM-a pomoću posebne procedure. Neki memorijski uređaji firmvera se ne mogu menjati nakon trajne instalacije.
Bitna svrha ažuriranja firmvera je ispravljanje grešaka, dodavanje novih funkcionalnosti uređaju i još mnogo toga. Firmver se može zamisliti kao „softver za hardver“. Iako je softver drugačiji termin, oni su povezani, ali nisu zamenljivi.
Proizvođači uređaja često objavljuju redovna ažuriranja kako bi održali hardver funkcionalnim i kompatibilnim sa novim tehnologijama. Proizvođači mrežnih rutera takođe objavljuju ažuriranja firmvera kako bi poboljšali performanse mreže. Isto važi i za proizvođače pametnih telefona, kamera i mnogih drugih uređaja. Dovoljno je posetiti web stranicu proizvođača da biste preuzeli takva ažuriranja.
Sav firmver se deli u tri glavne kategorije na osnovu nivoa integracije sa hardverom:
- Firmver niskog nivoa se smatra esencijalnim delom hardvera uređaja. Čuva se na ROM čipovima (memorija samo za čitanje) i trajnim čipovima, i stoga se ne može prepisivati ili menjati. Uređaji koji koriste firmver niskog nivoa imaju memoriju koja se može programirati samo jednom.
- Firmver visokog nivoa omogućava ažuriranja, ali je složeniji od firmvera niskog nivoa. On se nalazi na čipovima fleš memorije.
- Firmver podsistema je deo ugrađenog sistema. Primer je podsistem napajanja servera, koji radi polu-nezavisno od servera.
Primeri: BIOS ili UEFI (Unified Extensible Firmware Interface), USB diskovi, senzori, mali računari, pametne kartice, itd.
Kako funkcionišu ažuriranja firmvera?
Ažuriranja firmvera se često nude da bi se sprečilo hakovanje, poboljšala sigurnost, ispravile greške, uveli novi funkcionalnosti i omogućila interakcija sa najnovijim tehnologijama. Sastoje se od kodova koji govore hardveru da se ponaša na nov i izmenjen način.
Neki uređaji koji su povezani na internet automatski proveravaju dostupnost novog firmvera, preuzimaju ga i instaliraju. Drugi zahtevaju od korisnika da posete web stranicu kako bi preuzeli i instalirali ažuriranja firmvera. Učestalost ažuriranja može varirati u zavisnosti od upotrebe uređaja. Firmver u pametnim uređajima možda neće zahtevati česta ažuriranja.
Pametni telefoni obično ažuriraju firmver zajedno sa ažuriranjima softvera, kako bi uređaj nastavio da funkcioniše besprekorno, bez potrebe da korisnici zasebno ažuriraju verzije firmvera. Većina elektronskih uređaja zahteva da ostanu uključeni tokom ažuriranja firmvera.
Šta je softver?
Softver su podaci, programi ili instrukcije koje se koriste za obavljanje računarskih operacija za izvršavanje određenih zadataka. To je suprotan termin hardvera, koji opisuje fizičke aspekte računarskog sistema. Softver je nematerijalne prirode.
Softver se takođe može odnositi na generički termin koji se koristi za opisivanje skripti, programa i aplikacija koje se pokreću na bilo kom uređaju. Dakle, softver je promenljivi deo računara. Glavne kategorije softvera su:
- Aplikativni softver: To je softver koji zadovoljava specifične potrebe korisnika računara ili obavlja određene bitne zadatke.
- Sistemski softver: Ovaj tip softvera je dizajniran da upravlja hardverom uređaja i pruža platformu za pokretanje aplikacija.
- Softver za programiranje: Ovaj softver nudi alate za programiranje potrebne programerima softvera. Takođe se odnosi na međusoftver, koji se nalazi između sistemskog i aplikativnog softvera. Tu je i softver drajvera, koji upravlja vašim računarskim uređajima i periferijama.
Početkom 1980-ih, softver se prodavao na disketama, a kasnije na CD-ovima i DVD-ovima. Danas se većina softvera kupuje ili preuzima direktno sa interneta. Različite vrste softvera se lako mogu pronaći na web stranicama dobavljača.
Hajde da pogledamo neke od tipova dizajna softvera:
- Arhitektonski dizajn: Ovo je glavna osnova softvera, koja identifikuje strukturu sistema, glavne komponente i njihove međusobne odnose, koristeći alate za arhitektonsko projektovanje.
- Dizajn visokog nivoa: Drugi sloj dizajna softvera, koji se fokusira na implementaciju sistema, zajedno sa komponentama, u obliku modula podržanih softverskim stekovima. Pored toga, opisuje odnose između različitih modula i funkcija sistema, kao i tok podataka.
- Detaljni sloj: Treći sloj procesa dizajna softvera, koji se fokusira na detalje implementacije za specifičnu arhitekturu softvera.
Kvalitet softvera se može meriti prema karakteristikama kao što su pristupačnost, kompatibilnost, funkcionalnost, performanse, prenosivost, mogućnost instalacije, lokalizacija, efikasnost, mogućnost održavanja, sigurnost, upotrebljivost, mogućnost testiranja, pouzdanost i mnoge druge.
Kako softver funkcioniše?
Sav softver pruža podatke i instrukcije računaru kako bi radio i zadovoljio potrebe korisnika. Kao što je pomenuto, aplikativni i sistemski softver mogu raditi na različite načine.
Aplikativni softver
Aplikativni softver sadrži brojne programe koji obavljaju specifične uloge za krajnje korisnike, kao što su navigacija web stranicama i pisanje izveštaja. Takođe obavlja zadatke i za druge aplikacije. Iako je aplikativni softver ipak softver, on ne može raditi samostalno. Za to je potreban operativni sistem računara i drugi prateći sistemski softver.
Ovo su desktop aplikacije koje se instaliraju na korisnikov računar i koriste računarsku memoriju za obavljanje određenih zadataka. Zauzimaju prostor na čvrstom disku i ne zahtevaju internet vezu za obavljanje zadataka.
S druge strane, web aplikacijama je potrebna internet veza da bi radile. One se ne oslanjaju na sistemski softver ili hardver da bi funkcionisale. Uređaji koji sadrže web pretraživače omogućavaju korisnicima da brzo pokreću web aplikacije.
Sistemski softver
Sistemski softver zauzima poziciju između aplikativnog softvera i računarskog hardvera. On radi u pozadini i upravlja osnovnim funkcijama vašeg računara. Sistemski softver koordiniše hardver i softver kako biste mogli da pokrenete softver višeg nivoa za obavljanje određenih zadataka.
Sistemski softver počinje sa radom kada se računar pokrene i radi neprekidno dok je računarski sistem uključen. Napisan je u mašinskom kodu niskog nivoa ili asemblerskom jeziku. Stoga, radi nezavisno i omogućava računarskom sistemu da dobro funkcioniše.
Firmver protiv softvera: Sličnosti
Termini firmver i softver se mogu smatrati zamenljivim u kontekstu ugrađenih sistema. U industriji ugrađenih sistema, postoje neke sličnosti. U drugim slučajevima, firmver se smatra softverom niskog nivoa.
Često možete pronaći oglase za posao koji pominju „Inženjer ugrađenog softvera“ ili „Inženjer ugrađenog firmvera“ sa istim opisom posla. To se dešava zato što se aplikativna strana sistema razvija zajedno sa sistemskom stranom.
Na primer, kada radite sa „bare-metal“ dizajnom (bez operativnog sistema), imaćete samo neke fajlove specifične za proizvođače mikrokontrolera (CPU koji podržava drajvere i zaglavlja) i nekoliko drajvera nezavisnih proizvođača (za ekran i TCP/IP). Ovi fajlovi mogu da obrađuju hardversku stranu softvera.
Uz pomoć drajvera i zaglavlja, možete pisati aplikativni softver. Kasnije se svi fajlovi kombinuju u binarnu datoteku. Ako imate operativni sistem kao što je FreeRTOS ili VxWorks, RTOS preuzima odgovornost za upravljanje memorijom i prebacivanje konteksta. Uprkos tome, i dalje je potrebno da pišete aplikativni softver uz pomoć drajvera mikrokontrolera, drajvera nezavisnih proizvođača i RTOS fajlova.
Firmver protiv softvera: Razlike
Hajde da se detaljnije pozabavimo nekim razlikama između firmvera i softvera.
Firmver | Softver |
To je vrsta softvera koji kontroliše hardver i redovno se ažurira. | To je skup instrukcija za računarski sistem. |
Firmver je softver niskog nivoa koji se nalazi između operativnog sistema i hardvera. | Softver se nalazi iznad operativnog sistema i ne stupa u direktnu interakciju sa hardverom. |
Obuhvata firmver niskog nivoa, firmver visokog nivoa i firmver podsistema. | Obuhvata aplikacije, sistemski softver, softver za programiranje, međusoftver i softver drajvera. |
Njegova veličina je mala. | Njegova veličina može biti velika. |
Obično se ne menja. Programira se samo jednom. | Može se prilagođavati ili menjati u zavisnosti od potreba korisnika. Može se instalirati i deinstalirati više puta. |
Firmver se nalazi u fleš memoriji hardvera. | Čuva se na sekundarnom uređaju za skladištenje računarskog sistema. |
Tokom razvoja se koristi programski jezik niskog nivoa. | Tokom razvoja se koristi programski jezik visokog i niskog nivoa. |
Radi direktno na memorijskim čipovima koji su trajna sekundarna memorija kao što su EEPROM i fleš. | Kopira se sa prenosivih medija (DVD-ovi, USB-ovi, itd.) i instalira se na uređaje za skladištenje kao što su SSD-ovi ili čvrsti diskovi. |
Primeri su UEFI i BIOS firmver koji obezbeđuju proizvođači matičnih ploča računara. Takođe, firmver otvorenog koda rutera kao što su OpenWrt i DD-WRT. | Primeri su operativni sistemi kao što su Linux, Android, Windows, itd., i aplikacije kao što su pretraživači, aplikacije, igre, MS Office, itd. |
Firmver protiv softvera: Slučajevi upotrebe
Slučajevi upotrebe firmvera
Firmver se koristi u različitim vrstama računarske opreme, uključujući i kompleksne uređaje. Neke od upotreba firmvera u realnom svetu su:
- Lični računar: Firmver računara je ugrađen u mali memorijski čip. Periferni uređaji računara, kao što su video kartice, grafika, itd., takođe sadrže firmver.
- Kućni aparati: Mašine za pranje veša i sudova koriste firmver. On omogućava mašini da komunicira sa računarom, konfigurišući podešavanja i kontrole.
- Uređaji za skladištenje: Čvrsti diskovi, prenosivi uređaji za skladištenje i USB diskovi sadrže firmver koji omogućava uređajima da funkcionišu sa računarskim sistemom.
- Pametne kartice: Pametne kartice takođe sadrže firmver za ugradnju instrukcija u čip, kako bi se omogućile osnovne funkcije, šifrovanje i autentifikacija.
- Automobilska vozila: Vozila sadrže senzore, male računare i ugrađene sisteme sa firmverom, koji im pomaže da obavljaju svoje zadatke.
- Mobilni uređaji: Laptopovi, tableti, pametni telefoni i drugi mobilni uređaji sadrže firmver koji omogućava hardveru da radi sa različitim softverom.
Slučajevi upotrebe softvera
Pretpostavljam da je većina korisnika već upoznata sa pojmom softver. Sve što instaliraju ili preuzimaju na svoj računar ili druge uređaje je u obliku softvera. Već je postalo deo svakodnevne rutine koristiti različite vrste softvera. On ima širok spektar primena širom sveta.
U pogledu aplikativnog softvera, neki od primera su:
- Softver za obradu teksta: MS Word, Notepad i Wordpad.
- Softver za proračunske tabele: Microsoft Excel, Apple Numbers, itd.
- Softver za baze podataka: MS Access i Oracle, itd.
- Softver za simulacije: Naučni simulatori i simulatori letenja.
- Softver za preduzeća: Sistemi za upravljanje odnosima sa klijentima (CRM).
- Multimedijalni softver: Media Player i Real Player.
- Obrazovni softver: Encarta, Britannica Mathematical, Google Earth, NASA World Wind.
- Softver za prezentacije: Keynotes i Microsoft PowerPoint.
- Softver za informacione radnike: Alati za upravljanje resursima, alati za dokumentaciju, itd.
- Paketi aplikacija: Microsoft Office, OpenOffice, itd.
- Softver za pristup sadržaju: Web pretraživači, pristup sadržaju preko media plejera i još mnogo toga.
U smislu sistemskog inženjeringa, neki od primera su:
- Operativni sistemi kao što su Windows, macOS i Linux.
- Drajveri.
- Firmver.
- BIOS i UEFI.
- Prevodilac programskog jezika.
- Uslužni programi.
Zaključak
Firmver se generalno koristi za mikro kodiranje ugrađenog sistema u većini hardvera, dok se softver odnosi na programe visokog nivoa. Zamena firmvera je složen proces, dok u slučaju softvera nećete imati mnogo problema.
Međutim, firmver je sistemski softver koji kontroliše hardver uređaja. Softver je, u celini, skup instrukcija koje omogućavaju vašem računaru ili drugim uređajima da obavljaju zadatke. Nadam se da su ključne razlike i sličnosti između firmvera i softvera sada jasne.
Možda će vas interesovati i da saznate više o Internetu stvari (IoT).