Om du någonsin har sysslat med anpassade ROMs eller manuellt installerat en uppdatering av operativsystemet Android kan du ha stött på termen ”firmware”. När du flashar en OS-uppdatering måste programvaran byggas för enhetsspecifik firmware eller hårdvara. Denna skillnad är en del av förklaringen till varför det kan ta så lång tid att lansera den senaste versionen av Android till alla enheter.
Det är inte omedelbart uppenbart, men det finns en avgörande skillnad mellan fast programvara och mjukvara, varav den senare förmodligen är en mycket mer bekant term. I ett nötskal kan man säga att fast programvara sitter mycket nära hårdvaran, medan mjukvara sitter ovanpå den fasta programvaran. Det finns lite mer än så, och vissa områden där det finns utrymme för en liten överlappning. Så låt oss utforska firmware vs mjukvara lite djupare.
Firmware vs mjukvara
Både firmware och mjukvara är kodbitar som körs på hårdvaran i din telefon och andra prylar. Den viktigaste skillnaden är vad de är utformade för att göra, var de sparas och hur lätt de är att uppdatera och ändra.
Mjukvara anses i allmänhet vara ett program eller en bit kod som är utformad för användarinteraktion. Det är den ”översta nivån” av kod som gör det möjligt för användare att göra vad de behöver. Detta kan vara en app på din smartphone, en widget på hemskärmen och strax därunder även själva operativsystemet Android. Programvara skrivs vanligtvis i ett högnivåspråk, till exempel Java, med många bibliotek och färdiga funktioner som underlättar utvecklingen.
Mjukvara – interaktiva tillämpningar som exekveras på en enhets hårdvara
Mjukvara körs på CPU:n och andra huvudprocessorer och använder sig av RAM- och flash-lagring för att spara och läsa in data. En annan viktig punkt är att programvaran kan ändras utan att behöva justera någon hårdvara, vilket gör den enkel att uppdatera. Med vissa undantag är programvara utformad för att vara så hårdvaruoberoende som möjligt.
Firmware är i jämförelse inte utformad för att kunna interageras direkt med av en användare. Istället är det den dolda ”lägsta nivån” av kod som körs på din enhet. Även om det strängt taget kan finnas olika nivåer av firmware, precis som vi kan betrakta olika nivåer av programvara. I stället för att köras på huvudprocessorn körs firmware ofta på mindre processorer som är avsedda för delar av maskinvaran. Det kan till exempel handla om en minneskontroller för en flashminnesenhet. Firmware skrivs vanligtvis i ett lågnivåspråk, som C, med lite biblioteksstöd eftersom koden är mycket skräddarsydd för enskilda enheter.
Firmware – kod på låg nivå som styr och konfigurerar en enhets specifika hårdvara
Firmware är kod som konfigurerar hur hårdvaran ska fungera och tillhandahåller dess grundläggande funktioner. Det är den viktiga ryggraden som ser till att hårdvaran fungerar och kan nås av programvara på högre nivå. Hårdvara som kör sin egen firmware är bl.a. flashminneskretsar, CPU:er och bildskärmar. Det kan vara lite svårare att uppdatera fast programvara, eftersom programvara som körs ovanpå är beroende av den. Det är därför du inte behöver starta om telefonen efter att ha uppdaterat en app, men måste göra det när du installerar en större uppdatering av Android-versionen.
Håller din smartphone igång
Kampen mellan fast programvara och mjukvara pågår inuti din smartphone. Faktum är att de två är viktiga för att hålla allting igång på ett smidigt sätt. Du kommer aldrig att interagera med den fasta programvaran direkt, men den utför ett antal viktiga funktioner.
Den fasta programvaran inuti din smartphone omfattar kod som körs inuti kameramodulen. Denna hanterar bildinsamling och tidig bearbetning, innan den överlämnar data till ISP och andra bearbetningskomponenter. På samma sätt kommer skärmen också att ha en egen liten mikroprocessor, komplett med firmware, för att hantera färgdata, ljusstyrka, gamma och andra inställningar. Till och med processorn har sin egen firmware i form av en kärna på låg nivå för att optimera schemaläggning av uppgifter, klockfrekvenser och strömförbrukning.
Mjukvaran för smarta telefoner omfattar operativsystemet Android och sedan de appar som körs ovanpå det. Så alla dina appar är programvara, inklusive Facebook, Chrome, Gmail och Play Store.
Som du kan se kommer du regelbundet att interagera med, uppdatera, lägga till och ta bort programvara från din enhet. Firmware förblir fast i bakgrunden.