Hva er et maskinvareabstraksjonslag?
Et abstraksjonslag for maskinvare er en metode for å skjule den fysiske maskinvaren fra datamaskinens programvare. Laget fungerer som en mellomting, og skiller maskinvare og programvare fra hverandre. I tillegg maskerer de de faktiske prosessene til de to systemene fra hverandre. Hovedformålet med dette laget er å la programvare kjøre på maskinvare som det ikke spesielt var ment å kjøre på. Mens nesten alle operativsystemer bruker disse lagene til en viss grad, er de mest vanlig i emulering og innebygde systemer.
Dataarkitektur er satt opp i lag. Datamaskinen starter med maskinvarelaget og bygger seg opp til applikasjons- eller programvarelaget. Hvert trinn opp i lag går nærmere programvare og videre fra maskinvare. I tillegg krever hvert steg opp mer behandling og ressurser for å operere. For eksempel er systemets kjerne en av de mest grunnleggende programvarestykkene på systemet, men den er mer kompleks og ressurskrevende enn maskinvaren den sitter på og mindre enn operativsystemet som krever at den skal kjøres.
Typisk består hvert av disse lagene av ekte komponenter, enten maskinvare eller programvare. Et abstraksjonslag for maskinvare er litt av begge deler. Det er et programvaresystem som fungerer som et maskinvaresystem. Den sitter mellom datamaskinens kjernen og maskinvaresystemene. Jobben for maskinvareabstraksjonslag er å maskere hoveddelen av systemet og få kjernen til å tro at den opererer på et annet sett maskinvare. Når maskinvaren og kjernen kommuniserer, oversetter maskinvaren abstraksjonslag informasjonen frem og tilbake.
Den vanligste grunnen til å bruke et maskinvareabstraksjonslag er å la programvare kjøre på maskinvare som det ikke er ment å være på. Laget sitter på toppen av maskinvaren og gjør det mulig å installere et operativsystem og applikasjoner. I hovedsak fører det til at lagene inne i datamaskinen forgrener seg i to forskjellige baner. Den ene banen følger systemets virkelige maskinvare, mens den andre følger den abstrakte versjonen.
Nesten hvert operativsystem har en liten mengde abstraksjon innebygd i det. Dette gjør at systemet kan kjøre et bredere spekter av maskiner, forutsatt at de er innenfor et bredt sett med parametere. Denne typen abstraksjon er så liten og vanlig at den sjelden blir referert til som et maskinvareabstraksjonslag.
Ekte abstraksjon finnes vanligvis et av to steder. Maskinvareemulering gjør at et komplett operativsystem og programmer kan operere på en datamaskin de ikke var bygget for. Denne formen for abstraksjon er vanlig i nesten alle moderne datamaskiner, ettersom flere webprogrammer fungerer gjennom virtuelle systemer. Innebygde systemer er den andre typen. Disse små operativsystemene kjører alt fra biler til kaffepotter og bruker ofte et maskinvareabsstraksjonslag for å øke antall enheter som kan bruke systemet uten endring.