Assembler och lågnivåprogrammering för x86-system · Lektion

Grunderna i hypervisorer och virtualisering

Få insikt i de grundläggande begreppen inom maskinvaruvirtualisering, hur hypervisorer fungerar och hur de samverkar med processorn.

Lektion 3 av 411 steg

Grunderna i hypervisorer och virtualisering är en gratis lektion i Assembler och lågnivåprogrammering för x86-system på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Assembler och lågnivåprogrammering för x86-system, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Assembler och lågnivåprogrammering för x86-system innehåller totalt 4 lektioner.

Vad är virtualisering?

Föreställ dig att flera datorer, var och en med sitt eget operativsystem, körs på en enda fysisk maskin. Detta kraftfulla koncept kallas virtualisering.

Det gör att du kan dela en dators resurser, som processor, minne och lagring, mellan flera virtuella miljöer.

Varför vi virtualiserar

Virtualisering erbjuder många fördelar och är därför en grundpelare i modern datorteknik:

  • Serverkonsolidering: Kör många servrar på färre fysiska maskiner och sparar därmed utrymme och energi.
  • Resursisolering: Varje virtuell maskin (VM) är isolerad, så att problem i en maskin inte påverkar andra.
  • Utveckling och testning: Skapa snabbt nya miljöer för programutveckling och testning utan att påverka produktionssystem.
  • Säkerhet: Isolera potentiellt riskfyllda program i en sandlåda.

Hypervisorn: VMM

I centrum för virtualisering finns hypervisorn, även kallad Virtual Machine Monitor (VMM).

Hypervisorn är ett programvaru- eller firmwarelager som skapar och kör virtuella maskiner. Den hanterar den fysiska maskinvarans resurser och tilldelar dem till de olika virtuella maskinerna.

Typ 1: bare-metal-hypervisors

Det finns två huvudtyper av hypervisors.

Typ 1-hypervisors körs direkt på värddatorns fysiska maskinvara, utan ett underliggande operativsystem. De kallas ofta bare-metal-hypervisors.

  • Exempel: VMware ESXi, Microsoft Hyper-V, Xen.
  • Fördelar: Hög prestanda, effektivitet och säkerhet tack vare direkt åtkomst till maskinvaran.

Typ 2: hostade hypervisors

Däremot körs typ 2-hypervisorer som ett program ovanpå ett befintligt operativsystem (det så kallade värdoperativsystemet).

Värdoperativsystemet hanterar maskinvaran, och hypervisorn virtualiserar sedan resurser för de virtuella gästmaskinerna.

  • Exempel: Oracle VirtualBox, VMware Workstation, Parallels Desktop.
  • Fördelar: Enklare att konfigurera och använda på en stationär dator, samt lämpligt för testning och personligt bruk.

Virtuella maskiner och gästoperativsystem

En virtuell maskin (VM) är en emulering av ett datorsystem. Den fungerar som en fysisk dator, komplett med en egen virtuell CPU, ett eget minne, en egen hårddisk och egna nätverksgränssnitt.

Operativsystemet som körs inuti en VM kallas gästoperativsystem (till exempel Windows, Linux eller macOS).

CPU-interaktion och privilegieringsnivåer

Kom ihåg att operativsystem vanligtvis körs i Ring 0 (det mest privilegierade läget) för att få åtkomst till maskinvaran. Gästoperativsystem i en VM *tror* att de befinner sig i Ring 0.

Hypervisorn fångar upp privilegierade instruktioner från gästoperativsystemet och översätter dem. På så sätt säkerställs att gästen inte kan styra maskinvaran direkt, vilket förhindrar konflikter och upprätthåller isoleringen.

Maskinvaruassisterad virtualisering

Moderna processorer innehåller särskilda tillägg som gör virtualisering betydligt effektivare. Dessa kallas tekniker för maskinvaruassisterad virtualisering:

  • Intel VT-x (Virtualization Technology for x86)
  • AMD-V (AMD Virtualization)

Dessa tillägg introducerar nya CPU-lägen (som VMX root- och non-root-lägen) som gör det möjligt för hypervisorn att hantera virtuella maskiner mer direkt. Därmed minskar kostnaden för att fånga upp och översätta instruktioner.

Virtualisering i praktiken

Virtualisering är grundläggande för många moderna tekniker:

  • Molntjänster: Publika moln (AWS, Azure och Google Cloud) bygger på omfattande virtualiserad infrastruktur.
  • Containerisering: Tekniker som Docker bygger vidare på virtualisering på operativsystemnivå.
  • Säkerhetssandlådor: Otillförlitlig programvara körs i isolerade virtuella maskiner för att förhindra att systemet äventyras.
  • Äldre program: Äldre programvara kan fortsätta köras på modern maskinvara.

Snabbtest

Vilka av följande kännetecken gäller för en typ 1-hypervisor?

Sammanfattning: Grunderna i virtualisering

I den här lektionen utforskade vi virtualiseringens fascinerande värld. Vi lärde oss vad virtualisering är, varför den är så viktig och vilken central roll hypervisorn har.

Nu förstår Ni skillnaden mellan typ 1-hypervisorer (bare-metal) och typ 2-hypervisorer (hosted), hur virtuella maskiner och gästoperativsystem samverkar samt hur viktig maskinvaruassisterad virtualisering (VT-x/AMD-V) är för effektiv prestanda.

Gratis att börja

Lär dig Assembly med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Grunderna i hypervisorer och virtualisering” gratis?

Ja – hela texten till ”Grunderna i hypervisorer och virtualisering” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Assembler och lågnivåprogrammering för x86-system, kan Ni uppgradera till CoddyKit PRO. Kursen i Assembler och lågnivåprogrammering för x86-system innehåller totalt 4 lektioner.

Vad lär jag mig i ”Grunderna i hypervisorer och virtualisering”?

Få insikt i de grundläggande begreppen inom maskinvaruvirtualisering, hur hypervisorer fungerar och hur de samverkar med processorn. Ni övar på Assembler och lågnivåprogrammering för x86-system med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Assembler och lågnivåprogrammering för x86-system?

Du behöver inga förkunskaper. Utbildningen i Assembler och lågnivåprogrammering för x86-system på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Grunderna i hypervisorer och virtualisering”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Assembler och lågnivåprogrammering för x86-system-lektionen?

Ja. Varje Assembler och lågnivåprogrammering för x86-system-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Paging och Memory Management Unit (MMU)
  2. Skyddsringsnivåer och privilegier
  3. Grunderna i hypervisorer och virtualisering
  4. Segmentering och Global Descriptor Table (GDT)
← Tillbaka till Assembler och lågnivåprogrammering för x86-system