- Firmver je kod ugrađen u neisparljivu memoriju koji direktno kontroliše hardver, dok softver radi na operativnim sistemima i mnogo je fleksibilniji i lakši za promjenu.
- Ažuriranje firmvera ispravlja greške, zatvara ranjivosti i poboljšava kompatibilnost i performanse, ali nosi veće rizike od jednostavnog ažuriranja softvera ili drajvera.
- Drajveri, firmver i softver rade zajedno: firmver upravlja uređajem, drajver prevodi komande operativnog sistema, a aplikacije koriste te servise za obavljanje zadataka.
- Održavanje službenog i ažurnog firmvera i softvera ključno je za sigurnost, stabilnost i pravilno funkcioniranje bilo koje povezane opreme ili uređaja.

Ako svakodnevno radite s tehnologijom - bilo da programirate ugrađene sisteme, konfigurišete računar ili jednostavno koristite mobilni telefon - vjerovatno ste hiljadu puta naišli na ove termine. softver, firmver, drajveri, BIOS, UEFI i ažuriranjaSvi izgledaju kao bliski srodnici, ali uopće ne znače isto. Razumijevanje svakog od njih nije samo dobro tehničko znanje: pomaže vam da donosite bolje odluke prilikom dizajniranja proizvoda, održavate svoje uređaje zdravim i izbjegavate sigurnosne prijetnje.
U svijetu razvoja ugrađenih sistema, stvari postaju još komplikovanije, kao u projektima koji koriste Replikant OSNije neuobičajeno da se u jednom projektu miješaju vrlo niskonivojski firmver, kontrolni kod, RTOS i logika aplikacijeI to unutar tima, neki to zovu "firmver", drugi "softver", a treći "magični mikrokod". Hajde da sve ovo mirno riješimo: šta je firmver, šta je softver, po čemu su slični, po čemu se razlikuju i kako se uklapaju primjeri iz stvarnog svijeta poput kontrolera King Kong 3 Pro Max, koji je prestao da radi neispravno nakon ažuriranja firmvera.
Šta je tačno firmver?
Kada govorimo o firmveru, mislimo na vrlo specifična vrsta softvera integriranog u sam hardverTo su instrukcije koje se nalaze u neisparljivom memorijskom čipu (ROM, EPROM, EEPROM, Flash) i izvršavaju se direktno u mikrokontroleru ili procesoru uređaja kako bi se hardver oživio.
Originalna ideja iza termina, koju je skovao Ascher Opler još 1967. godine, bila je da se opiše nešto na pola puta između hardvera i softvera: mikroprogram čvrsto povezan s uređajemkoji definira kako bi se to kolo trebalo ponašati, koja vremena treba poštovati, koje protokole koristiti i koja stanja treba upravljati. Danas se koncept razvio, ali jezgra ostaje ista: kod vrlo blizak hardveru.
U mnogim relativno jednostavnim uređajima (pametna kartica, senzor, daljinski upravljač konzole, moderna mašina za pranje veša) taj firmver je de facto cijeli "interni operativni sistem"Pokreće čip, upravlja ulazima i izlazima (pinovima, senzorima, dugmadima), pokreće malu mašinu stanja i kontroliše komunikaciju s drugim uređajima.
U složenijim sistemima, kao što su PC ili server, firmver se obično fokusira na ključne zadatke poput pokretanja sistema, inicijalizacije hardvera i osnovnih usluga niskog nivoa. Vaš BIOS ili UEFI je jednostavno to... prilično sofisticiran firmver koji se pokreće prije operativnog sistema i omogućava vam sve, od uključivanja računara do podešavanja napona, RAM profila ili redoslijeda pokretanja.
Važna karakteristika je gdje se pohranjuje. Firmver se pohranjuje u nepromjenjive uspomene Specifično za uređaj: stari ROM-ovi ili EPROM-ovi (programabilni samo jednom ili sa posebnim fizičkim brisanjem) i, danas, gotovo uvijek u NAND Flash memoriji, koja omogućava ponovno pisanje sadržaja kada je vrijeme za ažuriranje.
Vrste firmvera: niski nivo, visoki nivo i podsistemski
Nisu svi firmveri jednaki. U praksi, obično se razlikuju u nekoliko slojeva, ovisno o tome koliko su integrirani s hardverom i koliko ih je lako ažurirati ili zamijeniti.
Firmver niskog nivoaNajviše je povezan s hardverom, do te mjere da se smatra gotovo dijelom samog kola. Obično se pohranjuje u ROM-u ili nekoj drugoj jednom programabilnoj memoriji, tako da Nije namijenjeno prepisivanjuDefiniše minimalno bitno ponašanje uređaja. U mnogim SoC-ovima, mikrokontrolerima ili visoko kritičnim uređajima, još uvijek postoji neki osnovni mikrokod koji korisnik nikada ne dodiruje.
Firmver visokog nivoaTo je i dalje ugrađeni kod, ali se sada nalazi u reprogramabilnoj fleš memoriji i Podržava ažuriranjaOvo je ažuriranje koje dobijete kada preuzmete novu verziju za svoj ruter, SSD, bežični kontroler ili kameru. Obično uključuje ispravke grešaka, poboljšanja performansi, nove funkcije i sigurnosne zakrpe.
Firmver podsistemaMnogi veliki uređaji (serveri, moderni automobili, mrežni prekidači itd.) grupiraju različite, relativno autonomne module, svaki sa svojim vlastitim firmverom. Na primjer, podsistem napajanja servera Ima mikrokontroler sa svojim firmverom za upravljanje ventilatorima, redundantnim napajanjima, temperaturnim senzorima i stanjima napajanja.
Među najtipičnijim primjerima firmvera su BIOS/UEFI, firmver za USB diskove, tvrde diskove, SSD-ove, grafičke kartice, senzore, pametne kartice, rutere, štampače, pametni uređaji i tako dalje: gotovo sve što danas priključite ima jedan ili više firmvera unutra.
Kako funkcionišu ažuriranja firmvera
Ažuriranje firmvera u osnovi se sastoji od prepišite kod unutar tog neisparljivog memorijskog čipaProces se obično naziva "flešovanje" jer većina modernih uređaja koristi fleš memoriju za pohranjivanje tog koda, kao što je slučaj kod skutera. M365.
Zašto ga ažurirati? Najčešći razlozi su ispraviti greške, zatvoriti sigurnosne ranjivosti, poboljšati stabilnost, dodati funkcije ili prilagoditi kompatibilnost s novim standardima ili perifernim uređajimaUpravo to je spasilo vaš kontroler za King Kong 3 Pro Max: greška u internoj logici uzrokovala je neispravan rad pritiska na dugmad ili pokretanje nasumičnih radnji. Proizvođač je izdao novi firmver koji je ispravio ovu logiku i nakon što ga je flešovao, kontroler se počeo ponašati kako treba.
U nekim uređajima povezanim na internet (ruteri, pametni televizori, određeni mobilni telefoni, IoT uređaji) sam uređaj Povremeno provjeravajte ima li novijih ažuriranja firmvera.Preuzima ga i instalira gotovo bez problema. U drugim slučajevima, morate otići na web stranicu proizvođača, preuzeti ispravnu datoteku i koristiti određeni alat da je primijenite.
Učestalost ažuriranja također znatno varira: kućni ruter ili povezani automobil mogu povremeno primati važna ažuriranja, dok Mali industrijski senzor ili jednostavan kućanski aparat mogu godinama raditi s istim firmverom. ako se ne otkriju ozbiljni problemi.
Međutim, proces flešovanja je ključan. Dok se novi firmver upisuje u fleš memoriju, ako nestane struje, uređaj se zamrzne ili se proces prekine, komponenta može postati neupotrebljiva. U najgorem slučaju, biće "pokvarena". doslovno pretvoren u elektronsku ciglu Više se ne pokreće. Zato naglašavaju da ga ne treba isključivati niti dodirivati ništa dok pratite traku napretka ažuriranja firmvera.
Gdje se nalazi firmver i kako komunicira?
Firmver se, kao što smo spomenuli, čuva u memorije koje ne gube svoj sadržaj kada se uređaj isključiHistorijski gledano, korištene su ROM i EPROM memorije, koje su zahtijevale posebnu opremu ili čak ultraljubičasto svjetlo za brisanje njihovog sadržaja. Vremenom su ih zamijenile EEPROM i Flash memorije, koje se mogu električno reprogramirati s većom lakoćom i sigurnošću.
Mnoge moderne matične ploče uključuju dva memorijska čipa za BIOS/UEFIGlavni čip i rezervna kopija. Ako nešto pođe po zlu tokom ažuriranja, ploča se može pokrenuti sa "dobre" kopije i omogućiti vraćanje firmvera bez slanja uređaja proizvođaču. Ranije, kada ovaj sistem sa dva čipa nije postojao, kvar treptanja je obično značio zamjenu ploče ili fizičko reprogramiranje čipa u fabrici.
Što se tiče komunikacije, različiti mikrokontroleri, senzori i moduli uređaja povezuju se s firmverskim čipom putem Interfejsi male snage i brzine kao što su UART, I2C ili SPIOve linije omogućavaju glavnom CPU-u da čita ili učitava dijelove firmvera tokom pokretanja sistema ili da omogući vanjskom programeru da napiše novu verziju kada je potrebno ažuriranje.
Nakon pokretanja, taj firmver je odgovoran za diktiranje kako se hardver sinhronizuje sa ostatkom sistemaOn određuje koje tajminge memorija mora poštovati, koji su naponi važeći, kako pregovarati o brzinama na podatkovnoj magistrali, šta učiniti u slučaju greške itd. On je doslovno unutrašnji "mozak" mnogih komponenti.
Zašto je toliko važno da ažurirate firmver?
Nije samo stvar hira proizvođača: Ignorisanje ažuriranja firmvera može biti veoma skupo.posebno u pogledu sigurnosti i stabilnosti. Svaka nova verzija obično donosi mješavinu funkcionalnih ispravki grešaka, zakrpa za ranjivosti, a ponekad i novih mogućnosti koje je hardver već podržavao, ali je bio onemogućen.
Neki uobičajeni razlozi za ažuriranje su Aktivirajte optimizacije performansi, smanjite potrošnju energije, poboljšajte kompatibilnost s drugim komponentama, spriječite poznate greške i ojačajte sigurnost od napadaU slučaju procesora ili matičnih ploča, viđeni su firmveri koji omogućavaju funkcije koje su u početku bile neaktivne ili ograničene komercijalnom strategijom ili nedostatkom testiranja prilikom lansiranja.
Ranjivosti na nivou firmvera su posebno opasne jer Mogu ostati nevidljivi za antivirusni softver i preživjeti čak i potpunu ponovnu instalaciju operativnog sistema.Ako napadač uspije izvršiti zlonamjerni kod na tom nivou, dobija vrlo duboku i trajnu kontrolu nad mašinom. Zato proizvođači objavljuju zakrpe firmvera kako bi zatvorili te ranjivosti i preporučljivo ih je primijeniti; posebno zato što nepodržani uređaji Prestaju da ih primaju.
Međutim, najbolje je to učiniti razumno: potrebno je samo instalirati firmver preuzet sa službene web stranice proizvođača ili putem njihovih službenih alata. Firmver koji modificiraju treće strane može promijeniti deklariranu funkcionalnost komponente ili namjerno uvesti skrivena vrata. A ako proces ne uspije, nema garancije oporavka.
U svakodnevnoj upotrebi, alati poput paketa za upravljanje SSD-om, uslužnih programa za matične ploče ili dijagnostičkih aplikacija (na primjer, AIDA64) omogućavaju vam da provjerite instaliranu verziju firmvera i uporedite je s onom koju je proizvođač objavio u svom repozitoriju. Ako vidite novu verziju sa značajnim ispravkama, Vrijedi planirati nadogradnju..
Slučaj "obmanjujućeg" firmvera i prevara
Budući da firmver prenosi karakteristike uređaja operativnom sistemu, neki beskrupulozni proizvođači ga koriste za prikriti ili falsificirati stvarne hardverske specifikacijeNažalost, to je uobičajena praksa s određenim proizvodima nepoznatih marki ili nepouzdanih prodavača.
Dobro poznati primjer bio je slučaj određenih "2TB SSD-ova" koji su se prodavali na online platformama po smiješno niskim cijenama. Njihov firmver je modificiran kako bi se naznačio ogroman kapacitet sistema, ali fizički su bili malo veći od... Memorijske kartice od 64 GB u maskiKada je korisnik pokušao zapisati podatke preko stvarnog kapaciteta, došlo je do oštećenja podataka.
Alati poput H2testw-a su posebno dizajnirani za otkrivanje ovih vrsta prevara: Oni provjeravaju koliko podataka se može zapisati i pročitati u cijelosti.ignorirajući kapacitet koji je deklarirao firmver. Ako kupite sumnjivo jeftine diskove za pohranu podataka ili USB fleš diskove, vrijedi ih provesti kroz neke testove.
Postoje i slučajevi hardvera koji ne ispunjava specifikacije postavljene u testovima kvalitete. U tim slučajevima, pošteni proizvođač ga prodaje kao drugačiji, smanjeni model s drugačijim firmverom i drugim nazivom robne marke. Problem nastaje kada neko pokuša "nadograditi" taj proizvod flešovanjem firmvera sa skupljih modela, riskirajući da ga učini neupotrebljivim ili da ga gurne izvan njegovih stvarnih mogućnosti.
Šta je softver i po čemu se razlikuje od firmvera?
Prelazeći na drugog glavnog protagonista, softver je, u suštini, cijeli skup programa, podataka i instrukcija koji se izvršavaju na računarskom sistemu za obavljanje određenih zadataka. To je logički dio koji se oslanja na hardver, ali nije njegov fizički dio.
To je širi i fleksibilniji koncept od firmvera. Softver obuhvata sve od operativni sistemi i upravljački programi uređaja za korisničke aplikacije, igre, razvojne alate ili skriptePohranjuje se na tvrdim diskovima, SSD-ovima, vanjskoj memoriji ili se učitava u RAM memoriju tokom rada.
Možemo ga podijeliti u nekoliko širokih kategorija. S jedne strane, aplikativni softver, a to je onaj koji direktno koristimo: programe za obradu teksta, web preglednike, proračunske tablice, programe za uređivanje slika, poslovne CRM-ove, naučne simulatore, multimedijalne plejere, edukativne aplikacije ili kancelarijske pakete poput Microsoft Officea.
S druge strane, the sistemski softveršto se nalazi između aplikacija i hardvera: operativni sistemi poput Windowsa, macOS-a ili Linuxa; upravljački programi uređaja; uslužni programi za upravljanje sistemom; BIOS i UEFI; prevodioci programskih jezika; a također, ako ćemo biti precizni, dobar dio firmvera može se smatrati specifičnim sistemskim softverom ili alternativama poput Ubuntu Touch.
A mi također imamo softver za programiranjeTo jest, svi alati koje programeri koriste: kompajleri, debugeri, razvojna okruženja, biblioteke, middleware koji povezuje aplikacije sa sistemskim servisima itd. Sve je to softver koji radi preko drugog, još osnovnijeg, sloja softvera.
Kako softver funkcioniše u sistemu
Da bi program uradio nešto korisno, mora učitati s medija za pohranu podataka u RAM memoriju i izvršava ga CPU. Operativni sistem upravlja ovim procesom: alokacijom memorije, otvaranjem datoteka, upravljanjem dozvolama i koordinacijom resursa između više aplikacija.
El aplikativni softver Ne zna kako, ili ne želi znati kako, direktno komunicirati s hardverom. Umjesto toga, oslanja se na operativni sistem i upravljačke programe da zatraže stvari poput "napiši ovu datoteku", "nacrtaj ovaj prozor" ili "pošalji ove podatke putem mrežne kartice". Zato ista aplikacija može raditi na različitim modelima računara sve dok operativni sistem podržava taj hardver.
El sistemski softver Počinje čim uključite računar. Na PC-u, UEFI (firmware) prvo stupa na scenu, inicijalizirajući osnove i prenoseći kontrolu na program za učitavanje operativnog sistema. Odatle, kernel preuzima i obrađuje sve bitne funkcije: raspoređivanje procesa, upravljanje memorijom, komunikaciju s hardverom putem drajvera, sigurnost na nivou korisnika i tako dalje.
U međuvremenu, korisnik pokreće aplikacije koje rade "preko" tog sistema. Svaka radi u svom memorijskom prostoru i koristi usluge operativnog sistema bez brige o detaljima niskog nivoa kao što su Kako CPU komunicira s kontrolerom diska? ili koje specifične instrukcije su potrebne USB portu da bi probudio uređaj.
Kvalitet softvera se mjeri kroz mnogo dimenzija: pouzdanost, performanse, sigurnost, kompatibilnost, jednostavnost instalacije, održavanje, upotrebljivost, lokacija, mogućnost testiranjaitd. Aplikacija može biti vrlo moćna, ali ako se ruši svaki drugi dan ili je puna ranjivosti, to nije dobro.
Firmver naspram softvera: ključne sličnosti i razlike
U praksi, firmver i softver imaju zajedničku osnovu: Oba su izvršni kod sastavljen od instrukcija za procesorSa stanovišta kompajlera, nema toliko magije: na kraju, sve postaje samo niz opkodova koje CPU razumije.
Zato ćete u mnogim oglasima za posao vidjeti pozicije poput "inženjer za ugrađeni firmver" i "inženjer za ugrađeni softver" sa gotovo identični opisiU sistemima bez operativnog sistema (bare metal), ista oprema je obično odgovorna i za hardverske drajvere i zaglavlja mikrokontrolera, kao i za logiku aplikacije koja koristi te drajvere.
Ono što firmver zaista razlikuje od ostatka softvera jeste njegovo nivo hardverske povezanosti, okruženje u kojem se izvršava i kako se implementira i ažuriraFirmver se nalazi unutar uređaja, u njegovoj vlastitoj memoriji, i obično je ključan za hardver da bi uradio bilo šta korisno.
Nasuprot tome, tipičan softver (aplikacije, usluge, čak i operativni sistemi) se instalira i deinstalira relativno lako, često se ažurira, distribuira se putem interneta ili na fizičkim medijima i nije toliko vezan za jedan hardverski model. Isti program može raditi na desetinama različitih konfiguracija sve dok postoji kompatibilan operativni sistem i odgovarajući drajveri.
Možemo sažeti neke važne praktične razlike: firmver se pohranjuje u Interna ROM/Flash memorija, koja se pokreće direktno na uređaju, osjetljivija je za ažuriranje i kontrolira osnovni rad hardvera.Softver se pohranjuje na diskovima ili u oblaku, učitava se u RAM memoriju, pokreće se na operativnom sistemu i koristi se za obavljanje korisničkih ili sistemskih zadataka višeg nivoa.
Firmver vs. drajver: još jedna uobičajena zabuna
Još jedna stvar koja postavlja mnoga pitanja je razlika između firmver i drajverOba su povezana s hardverom, ali igraju u različitim ligama.
Firmver, kao što smo već spomenuli, je unutar samog uređajaTo je kod koji se izvršava na vašem mikrokontroleru i definira kako se komponenta ponaša, kako se inicijalizira, kako komunicira i koja stanja podržava. Bez firmvera, mnogi hardverski dijelovi bi bili praktično inertni.
Vozač je, s druge strane, softver koji radi na operativnom sistemune na uređaju. Djeluje kao prevodilac između sistema i hardvera: prima pozive iz kernela ili aplikacija („pošalji ove podatke preko mreže“, „nacrtaj ovaj okvir“) i transformiše ih u komande koje uređaj i njegov firmver razumiju.
Na primjer, u štampaču postoji interni firmver koji kontroliše motore, glave za štampanje, senzore za papir i mastilo itd. Ali također morate instalirati drajver na svoj računar ili mobilni uređaj kako bi operativni sistem znao kako da ga koristi. kako razgovarati s tim određenim štampačemBez drajvera, sistem ne bi znao koje komande da šalje; bez firmvera, štampač ne bi znao šta da radi s njima.
Nadalje, rizik povezan s ažuriranjima je drugačiji. Ako ažuriranje upravljačkog programa pođe po zlu, obično je dovoljno ponovo pokrenuti računar u sigurnom načinu rada, deinstalirati upravljački program i vratiti se na prethodnu verziju. Ali ako se firmver ošteti tokom flešovanja, Možete potpuno izgubiti uređajosim ako ne postoji dobro osmišljen mehanizam oporavka.
Zašto se objavljuju nove verzije firmvera i softvera?
Vraćajući se na pitanje koje obično izaziva sve ove sumnje: kada vidite da je dostupno novo ažuriranje, da li je ono dostupno samo da bi bilo kompatibilno s novim aplikacijama? Kratak odgovor je Ne: kompatibilnost je samo dio priče.
Proizvođači objavljuju nove verzije firmvera, drajvera i softvera iz više razloga: Ispravljanje grešaka otkrivenih nakon lansiranja, poboljšanje performansi, smanjenje potrošnje energije, kompatibilnost s novim operativnim sistemima ili standardima, aktivacija dodatnih hardverskih funkcija i, što je najvažnije, sigurnosne zakrpe suočavanje s novootkrivenim ranjivostima.
Na bežičnom kontroleru kao što je vaš King Kong 3 Pro Max, ažuriranje firmvera može prilagoditi Upravljanje tipkama, krivulje analognih palica, stabilnost Bluetooth veze i kompatibilnost s novim konzolama ili sistemimaNe radi se toliko o "novim aplikacijama" koliko o poboljšanju ponašanja uređaja i njegovom povećanju robusnosti.
Na ruteru, SSD-u ili procesoru, ažuriranja firmvera mogu biti razlika između uređaja ranjivog na sigurnosne propuste i mnogo sigurnijeg sistema. Na računaru, ažuriranje BIOS-a/UEFI-ja, drajvera i operativnog sistema značajno smanjuje rizik od problema i poboljšava ukupnu kompatibilnost sa modernim softverom.
U konačnici, razumijevanje uloge koju svaki sloj igra – hardver, firmver, drajveri, operativni sistem, aplikacije – omogućava vam da donesete odluku. kada ažurirati, kako to učiniti sigurno i šta očekivati od svakog ažuriranjaNe nudi svaka promjena verzije iste prednosti, niti se isplati riskirati s istom učestalošću na svim uređajima, ali potpuno ignoriranje firmvera rijetko je dobra ideja.
Kada dizajnirate ili održavate ugrađene sisteme ili povezani proizvodiJasno razgraničenje između firmvera i softvera, osiguranje integriteta internog koda, primjena mehanizama poput sigurnog pokretanja i digitalnih potpisa te pažljivo planiranje strategija ažuriranja ono je što čini razliku između pouzdanog uređaja na duge staze i onog koji stvara probleme pri najmanjoj provokaciji.
