Ett hårdvaruabstraktionslager är en metod för att dölja den fysiska hårdvaran från datorns programvara. Lagret fungerar som en mellanhand och separerar hårdvaran och mjukvaran från varandra. Dessutom maskerar det de faktiska processerna för de två systemen från varandra. Huvudsyftet med det här lagret är att tillåta programvara att köras på hårdvara som den inte specifikt var avsedd att köras på. Medan nästan alla operativsystem använder dessa lager i viss utsträckning, är de vanligast i emulering och inbäddade system.
Datorarkitektur är uppbyggd i lager. Datorn börjar med hårdvaruskiktet och bygger upp till applikations- eller mjukvaruskiktet. Varje steg upp i lager går närmare mjukvara och längre från hårdvara. Dessutom kräver varje steg upp mer bearbetning och resurser för att fungera. Till exempel är systemets kärna en av de mest grundläggande mjukvarorna på systemet, men den är mer komplex och resurskrävande än hårdvaran den sitter på och mindre än operativsystemet som kräver att den körs.
Vanligtvis är vart och ett av dessa lager uppbyggt av verkliga komponenter, antingen hårdvara eller mjukvara. Ett hårdvaruabstraktionslager är lite av båda. Det är ett mjukvarusystem som fungerar som ett hårdvarusystem. Den sitter mellan datorns kärna och hårdvarusystemen. Hårdvaruabstraktionslagrets uppgift är att maskera majoriteten av systemet och få kärnan att tro att den fungerar på en annan uppsättning hårdvara. När hårdvaran och kärnan kommunicerar översätter hårdvaruabstraktionslagret informationen fram och tillbaka.
Det vanligaste skälet till att använda ett hårdvaruabstraktionslager är att tillåta programvara att köras på hårdvara som den inte är tänkt att vara på. Lagret sitter ovanpå hårdvaran och tillåter installation av ett operativsystem och applikationer. I huvudsak gör det att lagren inuti datorn förgrenar sig i två olika banor. Den ena vägen följer systemets verkliga hårdvara medan den andra följer den abstrakta versionen.
Nästan alla operativsystem har en liten mängd abstraktion inbyggd. Detta gör att systemet kan köra ett bredare utbud av maskiner, förutsatt att de är inom en bred uppsättning parametrar. Denna typ av abstraktion är så liten och vanlig att den sällan hänvisas till som ett hårdvaruabstraktionslager.
Verklig abstraktion finns vanligtvis på en av två platser. Hårdvaruemulering tillåter ett komplett operativsystem och program att fungera på en dator som de inte byggdes för. Denna form av abstraktion är vanlig i nästan alla moderna datorer, eftersom flera webbprogram fungerar genom virtuella system. Inbyggda system är den andra typen. Dessa små operativsystem kör allt från bilar till kaffekannor och använder ofta ett hårdvaruabstraktionslager för att öka antalet enheter som kan använda systemet utan modifiering.