NO340567B1 - Hierarkisk virtualisering med en flernivå virtualiseringsmekanisme - Google Patents

Hierarkisk virtualisering med en flernivå virtualiseringsmekanisme Download PDF

Info

Publication number
NO340567B1
NO340567B1 NO20080757A NO20080757A NO340567B1 NO 340567 B1 NO340567 B1 NO 340567B1 NO 20080757 A NO20080757 A NO 20080757A NO 20080757 A NO20080757 A NO 20080757A NO 340567 B1 NO340567 B1 NO 340567B1
Authority
NO
Norway
Prior art keywords
partition
virtualization
hypervisor
virtualization stack
daughter
Prior art date
Application number
NO20080757A
Other languages
English (en)
Other versions
NO20080757L (no
Inventor
Eric P Traut
Original Assignee
Microsoft Technology Licensing Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing Llc filed Critical Microsoft Technology Licensing Llc
Publication of NO20080757L publication Critical patent/NO20080757L/no
Publication of NO340567B1 publication Critical patent/NO340567B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Separation By Low-Temperature Treatments (AREA)
  • Coupling Device And Connection With Printed Circuit (AREA)

Description

TEKNISK FELT
Den foreliggende beskrivelsen angår feltet datamaskiner. Mer spesifikt angår den virtualisering av datamaskiner.
BAKGRUNN
Begrepet virtualisering innebærer virtualisering av maskinvare i datamaskiner slik at flere operativsystemer kan kjøre i hver sin separate partisjon på en enkelt fysisk datamaskin. Programvare for virtualisering abstraherer maskinvaren på ulike måter slik at ulike operativsystemer vekselvirker med programvaren, og programvaren i sin tur vekselvirker med maskinvaren.
De fleste virtualiseringssystemer inneholder en enkelt Virtuell-Maskin-Monitor (VMM) programvare. I noen sammenhenger kalles denne VMM-programvaren en "hypervisor". En hypervisor er laget for å kjøre direkte på maskinvare. Som sådan er den øverste myndighet for hvordan maskinvaren benyttes. Av denne grunn er det generelt slik at det kun kan finnes én hypervisor på en maskin (på ett stykke maskinvare). En hypervisor tillater flere "gjeste" operativsystemer (OSer), eller "gjester" for enkelhets skyld, å kjøre samtidig på ett system.
En VMM eller hypervisor kan utformes med visse mål for øye. Ingeniører må avveie sikkerhet, kompleksitet, ytelse og så videre. Noen VMMer og hypervisorer tillater vekselvirke med gjestene gjennom et programvaregrensesnitt. Som med ethvert grensesnitt blir versjonering viktig. En gjest skrevet for en versjon av en hypervisor kan være inkompatibel med en annen versjon av hypervisoren.
Det er således situasjoner hvor det ville være nyttig å kjøre flere kopier av en hypervisor på en enkelt maskin. En versjon kunne for eksempel være ekstremt enkel og tilby høye sikkerhetsgarantier, og en annen versjon kunne tilby mer komplekse og intrikate egenskaper. Slike multiple versjoner kunne kjøre ved siden av hverandre.
Dette er uheldigvis ikke mulig med dagens løsninger fordi det kan være kun én hypervisor på maskinen. En tradisjonell tilnærming til dette problemet er å bruke rekursiv virtualisering, hvorved hypervisorer "nøstes". En enkelt "virkelig" hypervisor sitter på bunnen, og en eller flere andrenivå-hypervisorer kjører over denne. En ulempe med dette arrangementet er dårlig ytelse. Fordi hypervisorene på andre nivå ble skrevet med forutsetning om direkte tilgang til maskinvare, vil de ikke yte så bra. Kort sagt avtar ytelsen til det totale virtualiserte systemet geometrisk med hvert ytterligere nivå av nøstede hypervisorer.
I tillegg tilbyr mange prosessorer maskinvaresupport for ett virtualiseringsnivå, men de støtter sjelden mer enn ett. Således blir det, sett fra et maskinvareperspektiv, vanskelig å implementere flere hypervisorer på en enkelt fysisk maskin. Således ville det være fordelaktig å frembringe mekanismer for å kjøre virtualiseringsprogramvare direkte på maskinvare slik at flere versjoner av programvaren kjører direkte på maskinvaren samtidig.
US 2003/0037089 A1 beskriver en primær virtuell-maskin-monitor i et rekursivt virtualiseringssystem som kan bruke fordelingsinformasjon for å fordele en datter-eller sekundær virtualiseringsmonitor som styrer flere virtuelle maskiner. I det rekursive virtualiseringsmiljø, vil en datter- eller sekundær virtuell-maskin-monitor operere på et ikke-privilegert nivå for å fordele virtuelle maskiner i en virtuell maskin.
SAMMENFATNING
Hovedtrekkene ved den foreliggende oppfinnelse fremgår av de selvstendige krav. Ytterligere trekk ved oppfinnelsen er angitt i de uselvstendige krav.
Gjenstanden beskrevet i den foreliggende søknaden angår hierarkisk virtualisering med en flernivå virtualiseringsmekanisme. I ett eksempel benyttes en fremgangsmåte for å frembringe slik virtualisering hvor en første partisjon vedlikeholdes med en hypervisor. En første virtualiseringsstakk innen den første partisjonen vekselvirker med en andre partisjon, for eksempel ved å opprette en andre partisjon og allokere dens ressurser. Hypervisoren it slikt hierarkisk arrangement av partisjoner, hvor en virtualiseringsstakk i en partisjon styrer en annen partisjon, kjenner faktisk til hver partisjon og kan kommunisere direkte med hver partisjon. Fordi hypervisoren kan kommunisere med hver partisjon, kan den også holde oversikt over enhver ressurs innen enhver gitt partisjon.
Videre kan den andre partisjonen legge til det hierarkiske forholdet mellom partisjonene ved å opprette en tredje partisjon ved å benytte sin egen andre virtualiseringsstakk. I tillegg kan en tredje virtualiseringsstakk i den første partisjonen eksistere ved siden av den første virtualiseringsstakken. Denne tredje virtualiseringsstakken kan opprette en fjerde partisjon som er uavhengig av de ovennevnte første, andre og tredje partisjonene. Alternativt kan den første virtualiseringsstakken opprette den fjerde partisjonen siden en virtualiseringsstakk kan opprette og styre mer enn en partisjon til enhver tid.
I et annet eksempel i beskrivelsen diskuteres sikkerheten i den hirerarkiske virtualiseringen. Således tilveiebringes en morpartisjon, og denne morpartisjonen har en virtualiseringsstakk. En datterpartisjon opprettes av virtualiseringsstakken i morpartisjonen, men datterpartisjonen styres ikke fullstendig av morpartisjonen fordi den har minst en ressurs (eller en del av en ressurs) under sin eksklusive kontroll. Av sikkerhetsgrunner kan det forekomme at en datterpartisjon ikke kan stole på sin morpartisjon. Hvis det er tilfellet, kan visse ressurser i datteren ikke nås av moren. For å implementere denne frikoblingen av datteren fra morpartisjonen, ber datterpartisjonen morpartisjonen om å få eksklusiv kontroll over ressurser og andre objekter, og hypervisoren, som øverste myndighet i dette virtualiserte miljøet, sikrer at morpartisjonen følger datterpartisjonens forespørsler.
Denne sammenfatningen er tatt med for å innføre enkelte konsepter i forenklet form. Disse er ytterligere beskrevet i den detaljerte beskrivelsen nedenfor. Denne sammenfatningen er ikke ment å identifisere nøkkeltrekk eller essensielle trekk ved søknadsgjenstanden i følge kravene. Den er heller ikke ment som et hjelpemiddel for å bestemme omfanget av oppfinnelsen i følge kravene.
KORT BESKRIVELSE AV FIGURENE
Den foregående sammenfatningen så vel som den etterfølgende detaljerte beskrivelsen forstås bedre når de leses sammen med de vedføyde figurene. For å illustrere den foreliggende søknadsgjenstanden, vises ulike aspekter ved den. Følgende figurer er vedlagt: Figur 1 er et blokkdiagram som representerer den logiske lagdelingen i maskinvare-og programvarearkitekturen for et virtualisert operativmiljø i et datamaskinsystem. Figur 2A er et blokkdiagram som representerer et virtualisert databehandlingssystem hvor virtualiseringen utføres av et vertsoperativsystem (enten direkte eller via en hypervisor). Figur 2B er et blokkdiagram som representerer et alternativt virtualisert databehandlingssystem hvor virtualiseringen utføres av en virtuell-maskin-monitor som kjører ved siden av et vertsoperativsystem. Figur 3 illustrerer en type virtualisering med nøstede hypervisorer og partisjoner. Figur 4A illustrerer hierarkisk virtualisering med en flernivå virtualiseringsmekanisme som gjør behovet for nøstede hypervisorer overflødig. Figur 4B gir en oversikt over hvordan hypervisorens mikrokjerne og virtualiseringsstakken passer inn i et eksempel på implementasjon. Figur 4C illustrerer et scenario hvor en datterpartisjon ber en morpartisjon om eksklusiv kontroll over sine egne ressurser. Figur 5 illustrerer poenget at flere virtualiseringsstakker kan være inneholdt i en partisjon. Figur 6 illustrerer arrangementet av virtualiseringsstakker og deres tilhørende partisjoner i et hierarkisk oppsett. Figur 7 illustrerer forholdet mellom en hypervisors mikrokjerne og en virtualiseringsstakk som bringer til veie virtualiseringstjenester for hierarkisk virtualisering, og Figur 8 viser de ulike komponentene som utgjør virtualiseringsstakken og deres forhold til hverandre.
DETALJERT BESKRIVELSE
Oversikt
Beskrivelsen nedenfor starter med en generell og kort drøfting av virtuelle maskiner. Deretter skiftes fokus til en drøfting av hierarkisk virtualisering med en flernivå virtualiseringsmekanisme. Her drøftes relevante aspekter ved hierarkisk virtualisering hvor en partisjon, som inneholder en virtualiseringsstakk og vedlikeholdes av en hypervisor, kan opprette og styre en annen partisjon, eller alternativt kan ha flere enn en virtualiseringsstakker som kan opprette og styre ytterligere partisjoner. I begge tilfeller kan hypervisoren kommunisere direkte med hver partisjon i hierarkiet fordi den kjenner til hver partisjon fra starten av. Til sist drøftes mekanismen som muliggjør hierarkisk virtualisering del for del ved først å dele den opp i en hypervisor mikrokjerne og en virtualiseringsstakk. Hvert av elementene og hver av komponentene i disse to delene drøftes deretter mer detaljert.
Virtuelle maskiner
Figur 1 er et diagram som representerer den logiske lagdelingen i maskinvare- og programvarearkitekturen for et virtualisert operativmiljø i et datamaskinsystem. I figuren kjører et virtualiseringsprogram 110 direkte eller indirekte på den fysiske maskinvarearkitekturen 112. Virtualiseringsprogrammet 110 kan være en virtuell-maskin-monitor som kjører ved siden av et vertsoperativsystem eller et vertsoperativsystem med en hypervisorkomponent hvor hypervisorkomponenten utfører virtualiseringen. Virtualiseringsprogrammet 110 virtualiserer en gjestemaskinvarearkitektur 108 (vist med stiplede linjer for å illustrere at denne komponenten er en partisjon eller en "virtuell maskin"), dvs maskinvare som ikke faktisk eksisterer, men i stedet er virtualisert av virtualiseringsprogrammet 110. Et gjesteoperativsystem 106 kjører på gjestemaskinvarearkitekturen 108, og en programvareapplikasjon 104 kjører på gjesteoperativsystemet 106. I det virtualiserte operativmiljøet på Fig 1 kan programvareapplikasjonen 104 kjøre i et databehandlingssystem 102 selv om programvareapplikasjonen 104 er laget for å kjøres på et operativsystem som er generelt inkompatibelt med et vertsoperativsystem og maskinvarearkitekturen 112. Figur 2A illustrerer et virtualisert databehandlingssystem som omfatter et vertsoperativsystem (verts-OS) programvarelag 204 som kjører direkte over en fysisk datamaskins maskinvare 202, hvor verts-OS 204 gir tilgang til ressursene i den fysiske datamaskinens maskinvare 202 ved å tilby grensesnitt til partisjonene A 208 og B 210 som kan brukes av operativsystemene 212 og 214 henholdsvis. Dette gjør det mulig å skjule verts-OS 204 for operativsystem lagene 212 og 214 som kjører over det. Igjen, for å utføre virtualiseringen, kan verts-OS 204 være et spesiallaget operativsystem med innebygde virtualiseringsfunksjoner eller alternativt et standard operativsystem med en inkorporert hypervisorkomponent som utfører virtualiseringen (ikke vist).
Vi viser igjen til Fig. 2A, hvor det over verts-OS 204 er to partisjoner. Partisjon A 208 kan for eksempel være en virtualisert Intel 386 prosessor. Og partisjon B 210 kan for eksempel være en virtualisert versjon av en av prosessorne i Motorolas 680X0 familie. Innen hver partisjon 208 og 210 kjører gjesteoperativsystemer (gjeste-OSer), henholdsvis A 212 og B 214. På gjeste-OS A 212 kjører to applikasjoner, applikasjon A1 216 og applikasjon A2 218, og på gjeste-OS B 214 kjører applikasjon B1 220.
I forbindelse med Fig. 2A er det viktig å merke seg at partisjon A 208 og partisjon B 210 (som er vist med stiplede linjer) er virtualiserte representasjoner av datamaskinvare som kun eksisterer som programvarekonstruksjoner. De er muliggjort av at det eksekveres spesialisert virtualiseringsprogramvare som ikke bare presenterer partisjon A 208 og partisjon B 210 til henholdsvis gjeste-OS A 212 og gjeste-OS B 214, men som også utfører alle programvarestegene som trengs for at gjeste-OS A 212 og gjeste-OS B 214 skal kunne vekselvirke indirekte med den virkelige fysiske datamaskinens maskinvare 202.
Figur 2B illustrerer et alternativt virtualisert databehandlingssystem hvor virtualiseringen utføres av en virtuell-maskin-monitor (VMM) 204' som kjører ved siden av vertsoperativsystemet 204". I visse tilfeller kan VMM 204' være en applikasjon som kjører på vertsoperativsystemet 204" og som vekselvirker med datamaskinens maskinvare 202 kun gjennom vertsoperativsystemet 204". I andre tilfeller, som vist i Fig. 2B, kan VMM 204' i stedet utgjøre et delvis uavhengig programvaresystem som på noen nivåer vekselvirker indirekte med datamaskinens maskinvare 202 gjennom vertsoperativsystemet 204", mens VMM 204' på andre nivåer vekselvirker direkte med datamaskinens maskinvare 202 (på samme måte som vertsoperativsystemet vekselvirker direkte med datamaskinens maskinvare). I ytterligere andre tilfeller kan VMM 204' utgjøre et fullstendig uavhengig programvaresystem som på alle nivåer vekselvirker direkte med datamaskinens maskinvare 202 (på samme måte som vertsoperativsystemet vekselvirker direkte med datamaskinens maskinvare) uten å benytte vertsoperativsystemet 204" (selv om den fortsatt vekselvirker med vertsoperativsystemet 204" for å koordinere bruk av datamaskinens maskinvare 202, unngå konflikter og lignende).
Alle disse variasjonene for å implementere de ovennevnte partisjonene er kun eksempler på implementasjoner, og ingen ting i dette skal tolkes som en begrensning av oppfinnelsen til en bestemt utførelsesform.
Hierarkisk virtualisering med en flernivå virtuell- maskin- monitor ( VMM)
Hierarkisk virtualisering kan oppnås med en flernivå virtualiseringsmekanisme i form av en virtuell-maskin-monitor (VMM) eller en hypervisor. For eksempel kan funksjonaliteten som tradisjonelt tilbys av en monolittisk hypervisor splittes i en mikrokjerne som kjører direkte på maskinvare og en virtualiseringsstakk som opererer innen en partisjon. Denne formen for flernivåarkitektur muliggjør hierarkisk virtualisering ved at en virtualiseringsstakk innen en partisjon kan opprette og styre (eller "vedlikeholde" for korthets skyld) andre partisjoner. Disse partisjonene kan i sin tur inneholde andre virtualiseringsstakker som kan vedlikeholde ytterligere partisjoner. Det er viktig å merke seg at denne typen arkitektur er forskjellig fra en typisk "nøstet" rekursiv virtualisering, og forbedrer ytelsen av denne.
Figur 3 illustrerer, som kontrast til hierarkisk virtualisering med en flernivå virtualiseringsmekanisme, rekursiv virtualisering. I rekursiv virtualisering er hypervisorene "nøstet". En enkelt "virkelig" hypervisor sitter på bunnen, og en eller flere andre-nivå hypervisorer kjører oppå denne. For eksempel viser Fig. 3 en "virkelig" hypervisor A 301 som kjører på en maskins maskinvare 300. Hypervisorer B 302 og C 308 er nøstet inne i gjestepartisjoner B 314 og C 316, og gjestepartisjonene B 314 og C 316 vedlikeholdes av den "virkelige" hypervisoren A 301.
De nøstede hypervisorene B 302 og C 308 kan hver for seg vedlikeholde sine egne gjestepartisjoner. For eksempel vedlikeholder hypervisor B 302 en gjestepartisjon B.1 304 og gjestepartisjon B.2 306. Tilsvarende vedlikeholder hypervisor C 308 en gjestepartisjon C.1 310 og gjestepartisjon C.2 312. Selv om det ikke er vist i Fig. 3 er det klart for fagfolk på området at gjestepartisjonene B.1 304, B.2 306, C.1 310 og C.2 312 inne i gjestepartisjonene B 314 og C 316 kan være verter for ytterligere nøstede hypervisorer. Disse ytterligere nøstede hypervisorene kan vedlikeholde ytterligere nøstede partisjoner, og så videre.
Dette rekursive arrangementet har imidlertid ulemper med svak ytelse. Fordi hypervisorene på andre (og høyere) nivå er skrevet under forutsetning av at de har direkte tilgang til maskinvare, vil de ikke yte godt. I tillegg tilbyr mange prosessorer maskinvarestøtte for ett nivå av virtualisering, men de tilbyr sjelden støtte for flere enn ett. Endelig, i et slikt nøstet oppsett er ingen hypervisor kjent med alle partisjoner, og kan heller ikke kommunisere direkte (f eks via hyperkall) med alle partisjoner. Hvis for eksempel hypervisor A 301 vil kommunisere med gjest B.1 304, må kommunikasjonen gå gjennom hypervisor B 302, hvilket er svært ineffektivt.
I motsetning til Fig. 3 viser figurene 4A og 4B hierarkisk virtualisering med en flernivå virtualiseringsmekanisme som overflødiggjør behovet for å bruke nøstede hypervisorer. Således forestiller Fig. 4A en hypervisor med splittet funksjonalitet (som virker på flere nivå) ved siden av en tradisjonell hypervisor. På venstre side av Fig. 4A vises et tradisjonelt hypervisoroppsett. På høyre side er oppsettet beskrevet i følge oppfinnelsen, hvor en hypervisor er delt i en virtualiseringsstakk 402 og en mikrokjernedel 400.
Mikrokjernen 400 er svært liten og enkel, og den vekselvirker med maskinvaren 403. Den tilbyr kun de mest grunnleggende tjenestene som trengs for å partisjonere en maskins ressurser. De mer komplekse delene av hypervisor 401 er "skjøvet ut" til en eller annen valgt gjestepartisjon 405 i form av en virtualiseringsstakk 402. Virtualiseringsstakken 402 tar seg av funksjoner som virtualisering av maskinvareenheter, minnehåndtering, oppretting av partisjoner, konfigurasjon og så videre.
Fig. 4B gir en oversikt over hvordan hypervisorens mikrokjernedel og virtualiseringsstakk forholder seg til hverandre i et typisk virtualiseringsmiljø. I en utførelsesform av den foreliggende oppfinnelse sitter hypervisorens mikrokjerne 400 således direkte på den fysiske maskinvaren 403, og virtualiseringsstakk 1 402, som tilhører hypervisorens mikrokjerne 400, er skjøvet ut til en morpartisjon 404. Virtualiseringsstakken 402 er i sin tur i stand til å vedlikeholde sine egne partisjoner. I
Fig. 4B vedlikeholder virtualiseringsstakken 402 en datterpartisjon A 406 og en datterpartisjon B 408.
Fra et sikkerhetssynspunkt er det interessant at datterpartisjoner faktisk kan mangle tillit til sine morpartisjoner, selv om morpartisjoner vanligvis styrer datterpartisjoner. Fordi en morpartisjon som standard har kontroll over en datterpartisjon, kan den vedlikeholde ressursene inne i en datterpartisjon. Hvis skadevoldende programvare noen gang infiltrerte en morpartisjon, ville datterpartisjonen være utsatt for den skadevoldende programvaren. Av denne grunn beskrives en annen utførelsesform hvor en datterpartisjon kan be sin morpartisjon om å bli frigjort eller frikoblet fra morpartisjonens kontroll. En slik frikobling etterfølges av at morpartisjonen oppgir sin kontroll over datterpartisjonens ressurser (så som minnesider) og medfører at morpartisjonen avinstallerer sine overvåkingsrutiner (som kan forsyne morpartisjonen med informasjon vedrørende innholdet i datterpartisjonen).
Fig. 4C viser således et tilfelle der en datterpartisjon A 406 ber 410 en morpartisjon 404 om å bli frikoblet. En dertil egnet komponent i virtualiseringsstakken behandler denne forespørselen. Det som typisk kan skje er at forespørselen foretas av et operativsystem (dvs kjernen i OSet) i datterpartisjonen A 406 eller i en form for driver i datterpartisjonen A 406. Denne forespørselen rettes så til en bootlaster i morpartisjonen 404. Bootlasteren kan være en opplyst bootlaster (dvs en bootlaster som kjenner til virtualisering). På denne måten kan morpartisjonen 404 forhindre enhver tukling med datterpartisjonen 406, siden datterpartisjonen A 406 ikke kan hackes gjennom morpartisjonen 404 så snart den er frikoblet.
Det er hypervisor 400 som faktisk håndhever (412) reglene for forespørselen, siden den er øverste myndighet i ethvert virtualisert system. I Fig 4C er for eksempel en del av minnet i datterpartisjonen A 406 utilgjengelig for 414 for morpartisjonen 404. Således mangler morpartisjonen 404 tilgang til ressurser i datterpartisjonen A 406. Morpartisjonen 404 kan likevel ha tilgang til andre deler av datterpartisjonen A 406. På tilsvarende måte er datterpartisjonen B 408 utilgjengelig 414 for morpartisjonen 404. Morpartisjonen 404 er derfor overhode ikke klarert, slik at datterpartisjonen B 408 blir svært sikker. Dette betyr at morpartisjonen 404 ikke kan vite noe om datterpartisjonen B 408. Interessant nok bemerkes at i visse utførelsesformer av oppfinnelsen kan morpartisjonen 404 i egenskap av morpartisjon 404 terminere datterpartisjonen B 408 hvis datterpartisjonen oppfører seg på en ikke tillatt eller uventet måte, til tross for at morpartisjonen 404 har begrenset (eller ingen) kontroll over en fullt frikoblet partisjon, så som partisjon B 408.
I en ytterligere utførelsesform av den foreliggende oppfinnelsen viser Fig. 5 at flere virtualiseringsstakker kan befinne seg i en partisjon. For eksempel kan en første virtualiseringsstakk 1 502 befinne seg i en morpartisjon 508 sammen med en andre virtualiseringsstakk 2 503. Den første virtualiseringsstakken 1 502 er i stand til å vedlikeholde flere datterpartisjoner (i forhold til morpartisjonen den befinner seg i). Således vedlikeholder virtualiseringsstakk 1 502 datterpartisjon 1A 504 og datterpartisjon 1B 506. På samme måte vedlikeholder virtualiseringsstakk 2 503 datterpartisjon 2A 505 og datterpartisjon 2B 507. Selv om kun to virtualiseringsstakker er vist, kan et vilkårlig antall virtualiseringsstakker befinne seg i en gitt partisjon, og hver av disse virtualiseringsstakkene kan vedlikeholde et vilkårlig antall datterpartisjoner.
En grunn til å ha flere virtualiseringsstakker samtidig i en partisjon, er for eksempel at en virtualiseringsstakk 502 kunne være innrettet mot å støtte strippede sikre partisjoner, mens en annen virtualiseringsstakk 503 kunne være innrettet mot å tilby full støtte for alle typer ressurser. Selvsagt ville den førstnevnte virtualiseringsstakken 502 være en god del sikrere (og følgelig også dens partisjoner) fordi den ville være proporsjonalt mindre kompleks enn den sistnevnte virtualiseringsstakken 503. Sikkerhet og kompleksitet ville måtte avveies mot hverandre i denne sammenhengen. Således kunne, for eksempel, den sistnevnte virtualiseringsstakken 503 tilby støtte for IDE (Integrated Device Electronics) og SCSI (Small Computer System Interface), mens den førstnevnte versjonen 502 ikke ville tilby slik støtte.
I enda en ytterligere utførelsesform, som er vist i Fig. 6, kan de ovennevnte virtualiseringsstakkene og deres tilhørende partisjoner ordnes på en hierarkisk måte. Således vedlikeholder en hypervisors mikrokjerne 600 en morpartisjon 608. og virtualiseringsstakk 1 602 som tilhører hypervisorens mikrokjerne 600 befinner seg i morpartisjonen 608. Virtualiseringsstakk 1 602 vedlikeholder en første datterpartisjon 1A 604 og en andre datterpartisjon 1B 606.En andre virtualiseringsstakk 2 610 vedlikeholder to ytterligere datterpartisjoner (eller datterdøtre av den opprinnelige partisjonen 608): datterpartisjon 2A 605 og datterpartisjon 2B 607.
Selv om det ikke er vist i Fig. 6, skal det forstås at hver av datterpatrisjonene 605 og 607 som vedlikeholdes av den andre virtualiseringsstakken 2 610 i sin tur kunne vedlikeholdt en eller flere tertiære virtualiseringsstakker, og disse stakkene kunne i sin tur vedlikeholde ytterligere datterpatrisjoner. Kort sagt forsøker Fig. 6 å illustrere at arkitekturen med hypervisorens mikrokjerne og virtualiseringsstakk muliggjør hierarkisk virtualisering. Partisjoner kan inneholde flere virtualiseringsstakker, og slike virtualiseringsstakker kan vedlikeholde flerte partisjoner, som i sin tur kan vedlikeholde ytterligere virtualiseringsstakker og så videre.
En fordel med denne typen hierarkisk orden er at den støtter flernivå administrasjon av store maskiner. For eksempel kan en "maskinadministrator" styre virtualiseringsstakken i en "rotpartisjon" (dvs den øverste morpartisjonen). Denne administratoren kan så opprette underpartisjoner som har egne virtualiseringspartisjoner, og tilordne hver av dem et sett maskinressurser (minne, prosessorer, nettverkskort, disker og så videre). Denne administratoren kan så la andre administratorer (for eksempel administratorer på team-nivå) partisjonere ressursene de ble tildelt ytterligere. I et slikt tilfelle er virtualiseringsstakken på nivå to begrenset til å benytte ressursene som ble tildelt av virtualiseringsstakken på første nive, dvs på rotnivå, men de tildelte ressursene kan brukes på passende måte etter ønske og behov. Et styringssystem for virtuelle maskiner som kjenner til hierarkiet kan presentere hierarkiet som sådan, og tillate en administrator på hvert nivå å reallokere ressurser mellom partisjonene de (han/hun) kontrollerer.
Denne typen hierarkisk scenario bør skilles fra den nøstede tilfellet som ble drøftet med i referanse til Fig. 3. Ulikt det nøstede tilfellet som har flere hypervisorer som kjører i nøstede partisjoner, og hvor hver hypervisor ikke er kjent med basepartisjoner (underliggende) eller avledete partisjoner (overliggende), er det i det hierarkiske tilfellet en enkelt hypervisor som kjenner til alle partisjonene. I dette tilfellet muliggjør flere virtualiseringsstakker at det opprettes ulike hierarkiske forhold mellom partisjonene. Det er interessant å merke seg at den foreliggende hypervisoren kan kommunisere direkte med enhver annen partisjon, selv når slike partisjoner vedlikeholdes i et hierarkisk forhold til hverandre av de ulike tilhørende virtualiseringsstakkene. Dette er i motsetning til tidligere kjent teknikk, og betyr at behovet for å gå gjennom en eller flere andre hypervisorer eller virtualiseringsprogramvare blir overflødig. En slik direkte kommunikasjon kan oppnås gjennom direkte hyperkall fra hypervisoren til enhver gitt partisjon.
Hypervisor med mikrokjerne og virtualiseringstjenester
Som nevnt over, støttes hierarkisk virtualisering av arkitekturen med hypervisorens mikrokjerne og virtualiseringsstakk. Figur 7 fokuserer på hypervisorkomponentene, som omfatter hypervisorens mikrokjerne 702 og virtualiseringstjenester 704 i hypervisoren. (Figur 8 nedenfor fokuserer på arkitekturen i virtualiseringsstakken.)
Med henvisning til figur 7, er det nederste laget i mikrokjernen 702 et abstraksjonslag for maskinvare (hardware abstraction layer) 706, som har ansvaret for å abstrahere plattformspesifikke egenskaper for mikrokjernen 702. Andre moduler i dette laget og laget drøftet nedenfor kan benyttes, hvilket er velkjent for fagfolk på området. Disse lagene og modulene de inneholder er kun ment som eksempler, og presenteres her for drøftingens del. De skal ikke tolkes begrensende eller dispositivt på noen måte.
På toppen av dette laget er minnehåndteringslaget 710. Dette laget har en minnehåndteringsmodul som tilbyr primitiv intern minnehåndtering for hypervisor 700 og en ressurshåndteringsmodul som lagrer ressurspolitikkene for en gitt CPU og minnebruk. Komponenter på høyere nivå har ansvaret for å håndheve disse politikkene.
Endelig inneholder det tredje kjernelaget 712 minst fire eksempelmoduler:
For det første en sikkerhetsaksesshåndteringsmodul som styrer tilgangsrettigheter for partisjoner og ressurser som kan deles eller flyttes mellom partisjoner; for det andre en trådhåndterer som håndterer interne tråder i hypervisor 700; for det tredje en tidshåndterer som håndterer timerkøer og timerinterrupt, og for det fjerde en tidsfordeler (scheduler) som implementerer tidsfordeling i hypervisor 700.
Tilsvarende kan fire lag benyttes i virtualiseringstjenestene 704.
Det første laget er virtualiseringsabstraksjonslaget 714, som inneholder en virtualiseringsabstaksjonsmodul. Denne abstraherer virtualiseringsutvidelsene som tilbys av en prosessor.
Over dette ligger et partisjonslag 716 som inneholder minst tre av de følgende moduler: En partisjonshåndteringsmodul som håndterer partisjonsobjektene og tilhørende datastrukturer; en virtuell-prosessorhåndteringsmodul, som håndterer en eller flere virtuelle prosessorer assosiert med hver partisjon - i dette oppsettet har hver prosessor sin egen prosessortilstand og kjører på sin egen hypervisorstakk; og en syntetisk interruptkontroller som implementerer en interruptkontroller tilsvarende en x86 avansert programmerbar interruptkontroller.
Det neste laget vedrører adresserom met. Dette laget kan ha en adressehåndteringsmodul som håndterer definisjonen av en gjests fysiske adresserom og dets avbildning på underliggende fysiske minneressurser. Selvsagt kan andre moduler benyttes for å hjelpe til med å manipulere
adresseromsmekanismer, og dette er kun et eksempel på en modul.
Til sist inneholder virtualiseringstjenestene 704 fire moduler: Først behandler en fordelingshåndterer (dispatch manager) innkommende hendelser, og fordeler dem på passende måte; for det andre fordeler en hyperkallhåndteringsmodul hyperkall fra en gjest; for det tredje en avbrudsshåndteringsmodul som som håndterer fordeling og ruting av oppfangede hendelser (eng. intercepts), for eksempel aksesskall til modellspesifikke registre, eksekvering av visse instruksjoner og så videre; og for det fjerde en instruksjonskompletteringsmodul som håndterer sluttføring av visse instruksjoner under virtualisering.
Komponenter i virtualiseringsstakken
I en annen utførelsesform viser figur 8 de ulike komponentene som utgjør virtualiseringsstakken og deres forhold til hverandre. Beslektede komponenter som ikke beskrives her er beskrevet i en beslektet søknad kalt "Systems and methods for multi-level intercept processing in a virtual machine environment", serienummer 11/078 141, levert 11. mars 2005. Den "eksterne monitor" beskrevet i sistnevnte søknad er en delkomponent i den virtuelle stakken som drøftes i den foreliggende søknaden.
En gitt virtualiseringsstakk 800 kan implementeres i brukermodus 802 og kjernemodus 804. Videre kan kjernemodusen 804 ha komponenter så som et API og meldingshåndteringsbibliotek 806 for hypervisoren, og en infrastrukturdriver 810 for virtualisering. Bruker-modus 802 kan ha komponenter så som en virtuell maskintjeneste 812 og en arbeidsprosess 814 for den virtuelle maskinen.
Hver av disse komponentene kan ha en spesifikt definert oppgave. For eksempel eksponererer hypervisorens API-bibliotek 806 hypervisorens API til komponenter på høyere nivå, slik at disse kan kalle hypervisoren ved bruk av normale konvensjoner for operativsystem kal I. Dette biblioteket kan finnes i alle partisjoner som inneholder opplyst kode (dvs kode som kjenner til virtualisering) - enten de er vert for en virtualiseringsstakk eller ikke.
Videre tillater hypervisorens meldingshåndteringsbibliotek 806 kallende kode å registrere returkall på kjernenivå for meldinger som mottas fra hypervisoren eller fra andre partisjoner. Slike meldinger leveres som interrupter mellom partisjonene med meldingen som nyttelast. Dette grensesnittet gjør det mulig at en partisjon er vert for flere parallelle virtualiseringsstakker. For eksemepl kan en tredjepart implementere en virtualiseringsstyakk som befinner seg i samme morpartisjon som originalpartens virtualiseringsstakk. Eller flere versjoner av originalpartens virtualiseringsstakk kan kjøre side om side.
Så kommer Virtialiserings InfrastrukturDriveren (VID) 810, som innkapsler hoveddelen av virtualiseringsstakkens kjernemodusfunksjonalitet. Denne inneholder flere delkomponenter. For eksempel inneholder den virtualiseringsstakkens minnehåndtering (Virtualization Stack Memory Manager - VSMM). Denne komponentent har ansvaret for å håndtere en pool av systemets fysiske minnesider som "eies" av virtualiseringsstakken, og som brukes til å støtte gjestens fysiske minne i datterpartisjonene som håndteres av den aktuelle virtualiseringsstakken. Denne delkomponenten støtter overtildeling av minne og minneside-deling mellom partisjonene (for sider med identisk innhold). Den har også et sett av grensesnitt som gjør det mulig for brukermoduskomponenter å definere layout av en virtuell maskins fysiske adresserom (Guest Physical Address - GPA) og å plassere lese- og skriveoperasjoner på minnesideområder (f eks til bruk i snapshots eller varm migrering).
Videre inneholder VID 810 en modul for komplettering av komplekse instruksjoner (Complex Instruction Completion). Denne delkomponenten kan tilke komplekse instruksjoner som vedrører minne, og som ikke håndteres direkte av hypervisoren. Denne støtten kreves for visse tilfeller av enhetsemulering (f eks tilgang til planart VGA-minne, skriving til ROM eller tilgang til en emulert enhets minnemappede registre).
VID 810 inneholder også en prosessorintercepter. Denne delkomponenten gjør det mulig for brukermoduskomponenter å spesifisere virtuelle prosessorintercepts. For eksempel kan en emulert enhetsmodul ønske å motta en intercept-notifikasjon når et bestemt område av l/O-porter blir aksessert gjennnom en INN eller UT-instruksjon. Andre eksempler på prosessorintercepter omfatter: MSR-aksess, CPUID, unntak og HLT. Denne komponenten sporer de installerte interceptene og ruter intercept-notifikasjoner på passende måte.
Til sist kan VID 810 inneholde en delkomponent for å opprette og styre partisjoner (Partition Create and Control). Denne delkomponenten gjør det mulig for komponenter på brukernivå å opprette, slette og håndtere partisjoner, spesifisere partisjonsvise ressurser og kvoter, og å definere politikker for tidsdeling og tilgangskontroll. For eksempel kan man tenke seg at en ny partisjon opprettes ved å først gjøre et hyperkall til en modul i hypervisoren, (f eks HvCreatePartition). Deretter opprettes en eller flere virtuelle prosessorer ved å kalle et hyperkall HvCreateVp. Minne tilordnes gjestens 'fysiske' adresserom (GPA) i den nyopprettede partisjonen ved å utføre enda et hyperkall, f eks HvMapGpaPages. Et hyperkall Hvlnstalllntercepts ber om intercepts forvisse prosessorfunksjoner. Ulike politikker for tidsdeling og sikkerhet settes ved å utføre hyperkallet HvSetPartionProperty. Initialiseringskode, f eks en OS-laster eller en system-BIOS, kopieres inn i den nyopprettede virtuelle maskinens minne. Eksekvering i den virtuelle maskinen begynner når et hyperkall HvResumePartition utføres. Disse hyperkallene er kun eksempler. Fagfolk på området innser uten videre at andre og tilsvarende metoder kan implementeres for å opprette en partisjon. Fagfolk kan identifisere tilsvarende metoder for å slette en partisjon (fjerne prosessorer, GPA-sider o s v). Det samme gjelder metoder for å håndtere partisjonens ressurser.
Som nevnt over, eksisterer både VID 810 og HV API 806 i kjernemodus 804. Det finnes imidlertid andre komponenter av virtualiseringsstakken 800 i brukermodus 802. For eksempel håndterer en virtuell maskintjeneste VMSRVC 812 et sett VM-konfigurasjoner og tilveiebringer et sett WMI-baserte APIer for å håndtere og styre virtuelle maskiner. Denne er ansvarlig for å avdele en ny VM arbeidsprosess når en virtuell maskin startes. Denne tjenesten kan lages slik at det er mulig å starte den om uten at noen av VM arbeidsprosessene påvirkes (hvilket gjør systemet mer fleksibelt og robust hvis tjenesten havarerer).
En annen komponent i brukermodus 802 er Virtuell Maskin Arbeidsprosess 814. Hver virtuelle maskin har en tilhørende arbeidsprosess. Hvis en komponent inne i arbeidsprosessen havarerer, kan skaden begrenses til en enkelt virtuell maskin. I arbeidsprosessen 814 er det et rammeverk for virtualiserte enheter. En virtuell maskin er satt sammen av et sett virtuelle (maskinvare)enheter. Hver enhet har sine egne innstillinger og parametre. Mange av disse kan justeres av brukeren. Enhetsrammeverket har ansvaret for å instansiere (lage nye forekomster av) virtuelle enhetsmoduler, og for å "koble sammen" disse enhetene til en funksjonell virtuell maskin. Enhetene som inngår i en virtuell maskin er definert i et enhetsmanifest, som er en del av den virtuelle maskinens konfigurasjonsfil.
Inne i det foran nevnte rammeverket er de virtuelle enhetsmodulene (VDEVene). Disse plugg-inn-modulene inneholder logikken som som trengs for å instansiere, initialisere, lagre, hente, og terminere en virtuell enhet. Noen virtuelle enheter implementerer full emulering av de opprinnelige maskinvareenhetene. Disse virtuelle enhetene kalles emulerte enhetsmoduler, og bruker l/O og minne-intercepts for å agere på gjesteaksesser.
Inne i arbeidsprosessen 814 kan det også befinne seg en virtuell-maskin-skaper (creator). Denne komponenten har ansvaret for å opprette og håndtere en kjørende virtuell maskin. Den håndterer politikker som gjelder hele den virtuelle maskinen, og agerer på forespørsler om dynamiske ressursendringer. Den har også ansvaret for stopp og start, lagring og fremhenting, ta snapshot og varm migrering av den virtuelle maskinen.
Selv om den foreliggende søknadsgjenstanden er beskrevet i forbindelse med de foretrukne utførelsesformene som er vist i de ulike figurene, er det underforstått at andre tilsvarende utførelsesformer kan benyttes, eller at trekk kan modifiseres eller tilføyes i de beskrevne utførelsesformene for å utføre de samme funksjonene i den foreliggende oppfinnelsen uten at oppfinnelsen endres. For eksempel ble en utførelsesform drøftet i forbindelse med hierarkisk virtualisering muliggjort ved bruk av en flernivå virtualiseringsmekanisme. Andre mekanismer som tilsvarer funksjonaliteten i de beskrevne utførelsesformene skal imidlertid også omfattes av oppfinnelsen. Derfor skal ikke den foreliggende oppfinnelsen begrenses til bestemte utførelsesformer, men fortolkes ut fra bredden og omfanget av de vedføyde kravene.

Claims (20)

1. Fremgangsmåte for å tilveiebringe hierarkisk virtualisering, omfattende: å opprettholde en første partisjon (608) med en hypervisor (600), der den første partisjon (608) omfatter en første virtualiseringsstakk (602) som er i stand til å opprette og styre mer enn én partisjon til enhver tid; og å vekselvirke med en andre partisjon (606) ved å bruke den første virtualiseringsstakk (602) i den første partisjonen (608), hvor hypervisoren (600) kjenner til den første partisjonen (608) og den andre partisjonen (606), og hvor den første partisjon og den andre partisjon er virtualiserte representasjoner av datamaskinvare, og den andre partisjon har minst én ressurs som er eksklusivt styrt av den andre partisjon.
2. Fremgangsmåte i følge krav 1, hvor hypervisoren (400) videre kjenner til minst én ressurs (416) i den første partisjonen (406) og den andre partisjonen (414), og hvor hypervisoren (400) er konfigurert til å holde en fortegnelse over den minst ene ressursen (416) etter forespørsel.
3. Fremgangsmåte i følge krav 1, hvor den andre partisjonen (606) kommuni-serer direkte med hypervisoren (600).
4. Fremgangsmåte i følge krav 1, hvor den første virtualiseringsstakken (602) oppretter den andre partisjonen (606).
5. Fremgangsmåte i følge krav 4, hvor den andre partisjonen (606) inneholder en andre virtualiseringsstakk (610) som er konfigurert til å opprette og vekselvirke med en tredje partisjon (605).
6. Fremgangsmåte i følge krav 1, hvor den første partisjonen (508) inneholder den første virtualiseringsstakken (502) og også en andre virtualiseringsstakk (503), hvor den første virtualiseringsstakken (502) og den andre virtualiseringsstakken (503) befinner seg i den første partisjonen (508) samtidig i en viss tidsperiode.
7. Fremgangsmåte i følge krav 1, hvor den første virtualiseringsstakken (508) oppretter den andre partisjonen (504) og en tredje partisjon (506).
8. Databehandlingssystem for tilveiebringelse av sikret hierarkisk virtualisering, omfattende: datamaskinvare, et vertsoperativsystem konfigurert til å kjøres på datamaskinvaren, idet vertsoperativsystemet eksponerer eller fremviser et grensesnitt til en morpartisjon (404) med en hypervisor (400), hvor morpartisjonen (404) har en virtualiseringsstakk (402) som er i stand til å opprette og styre mer enn én partisjon til enhver tid, og en datterpartisjon (406), hvor datterpartisjonen (406) er opprettet av virtualiseringsstakken (402) i morpartisjonen (404), og hvor datterpartisjonen (406) har minst én ressurs (414) som er eksklusivt styrt av datterpartisjonen (406), og hvor morpartisjonen og datterpartisjonen er virtualiserte representasjoner av datamaskinvare, og hvor hypervisoren (400) kjenner til morpartisjonen (404) og datterpartisjonen (406).
9. System i følge krav 8, hvor ressursen (414) omfatter minst én minneside.
10. System i følge krav 8, hvor datterpartisjonen (406) oppnår eksklusiv styring av ressursen (414) ved å sende en forespørsel (410) til morpartisjonen (404).
11. System i følge krav 10, hvor hypervisoren (400) validerer (412) at morpartisjonen (404) har rettet seg etter forespørselen (410) som ble sendt av datterpartisjonen (406).
12. System i følge krav 10, hvor forespørselen (410) som sendes av datterpartisjonen (406), sendes av en operativsystemkjerne i datterpartisjonen (406).
13. System i følge krav 10, hvor forespørselen (410) som sendes av datterpartisjonen (406), sendes av en driver i datterpartisjonen (406).
14. System i følge krav 10, hvor forespørselen (410) som sendes av datterpartisjonen (406), sendes til en bootlaster i morpartisjonen (404).
15. Datamaskinlesbart medium med datamaskineksekverbare instruksjoner som tilveiebringer hierarkisk virtualisering, omfattende: å bruke en første partisjon (608) til å opprette en andre partisjon (604), hvor den andre partisjonen (604) er opprettet av en virtualiseringsstakk (602) i den første partisjonen (608), hvor virtualiseringsstakken (602) er i stand til å opprette og styre mer enn én partisjon til enhver tid og å tilveiebringe en hypervisor (600) med mikrokjerne, som er konfigurert til å vekselvirke direkte med den første partisjonen (608) og den andre partisjonen (604), hvor den første partisjon og den andre partisjon er virtualiserte representasjoner av datamaskinvare, og den andre partisjon har minst én ressurs som er eksklusivt styrt av den andre partisjon.
16. Et datamaskinlesbart medium i følge krav 15, hvor virtualiseringsstakken (602) i den første partisjonen (608) videre oppretter en tredje partisjon (606).
17. Et datamaskinlesbart medium i følge krav 15, som videre omfatter en andre virtualiseringsstakk (503) lokalisert i den første partisjonen (508), hvor den andre virtualiseringsstakken (503) oppretter en tredje partisjon (505).
18. Et datamaskinlesbart medium i følge krav 15, hvor den andre partisjonen (606) har sin egen virtualiseringsstakk (610).
19. Et datamaskinlesbart medium i følge krav 18, hvor virtualiseringsstakken (610) i den andre partisjonen (606) oppretter en tredje partisjon (605).
20. Et datamaskinlesbart medium i følge krav 18, hvor virtualiseringsstakken (602) i den første partisjonen (608) og en virtualiseringsstakk (610) i den andre partisjonen (606) eksisterer samtidig i en viss tidsperiode.
NO20080757A 2005-08-30 2008-02-12 Hierarkisk virtualisering med en flernivå virtualiseringsmekanisme NO340567B1 (no)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/215,380 US8327353B2 (en) 2005-08-30 2005-08-30 Hierarchical virtualization with a multi-level virtualization mechanism
PCT/US2006/033815 WO2007027739A1 (en) 2005-08-30 2006-08-29 Hierarchical virtualization with a multi-level virtualization mechanism

Publications (2)

Publication Number Publication Date
NO20080757L NO20080757L (no) 2008-03-05
NO340567B1 true NO340567B1 (no) 2017-05-15

Family

ID=37805843

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20080757A NO340567B1 (no) 2005-08-30 2008-02-12 Hierarkisk virtualisering med en flernivå virtualiseringsmekanisme

Country Status (13)

Country Link
US (1) US8327353B2 (no)
EP (1) EP1922619B1 (no)
JP (1) JP2009506462A (no)
KR (1) KR20080047372A (no)
CN (1) CN101253481B (no)
AU (1) AU2006284910B2 (no)
BR (1) BRPI0615278A2 (no)
CA (1) CA2620087A1 (no)
MX (1) MX2008002497A (no)
NO (1) NO340567B1 (no)
RU (1) RU2398267C2 (no)
TW (1) TW200729038A (no)
WO (1) WO2007027739A1 (no)

Families Citing this family (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539063B1 (en) 2003-08-29 2013-09-17 Mcafee, Inc. Method and system for containment of networked application client software by explicit human input
US7840968B1 (en) 2003-12-17 2010-11-23 Mcafee, Inc. Method and system for containment of usage of language interfaces
US7873955B1 (en) * 2004-09-07 2011-01-18 Mcafee, Inc. Solidifying the executable software set of a computer
US7856661B1 (en) * 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7900204B2 (en) * 2005-12-30 2011-03-01 Bennett Steven M Interrupt processing in a layered virtualization architecture
US8521912B2 (en) * 2006-01-12 2013-08-27 Broadcom Corporation Method and system for direct device access
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7788665B2 (en) 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US7895573B1 (en) * 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US20070240153A1 (en) * 2006-03-29 2007-10-11 Lenovo (Singapore) Pte. Ltd. System and method for installing hypervisor after user operating system has been installed and loaded
US8191062B2 (en) * 2006-03-31 2012-05-29 Intel Corporation System for processor frequency governors to govern a processor frequency by deriving CPU utilization information based on the state of virtual machine monitor
US7870387B1 (en) * 2006-04-07 2011-01-11 Mcafee, Inc. Program-based authorization
US8352930B1 (en) 2006-04-24 2013-01-08 Mcafee, Inc. Software modification by group to minimize breakage
US8555404B1 (en) 2006-05-18 2013-10-08 Mcafee, Inc. Connectivity-based authorization
US8429746B2 (en) 2006-05-22 2013-04-23 Neuraliq, Inc. Decoy network technology with automatic signature generation for intrusion detection and intrusion prevention systems
US20140373144A9 (en) 2006-05-22 2014-12-18 Alen Capalik System and method for analyzing unauthorized intrusion into a computer network
US20080028472A1 (en) * 2006-07-25 2008-01-31 International Business Machines Corporation Heterogeneous evolutionary self-formatting Internet protocols
US8272048B2 (en) * 2006-08-04 2012-09-18 Apple Inc. Restriction of program process capabilities
US20080178143A1 (en) * 2006-10-05 2008-07-24 Cort Dougan System, Method and Computer Program Product for Developing, Configuring, Installing and Testing Software
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US7975267B2 (en) * 2007-03-30 2011-07-05 Bennett Steven M Virtual interrupt processing in a layered virtualization architecture
JP4926120B2 (ja) * 2007-04-26 2012-05-09 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. データ処理システムおよびデータ処理方法
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
US8176487B2 (en) * 2007-08-02 2012-05-08 International Business Machines Corporation Client partition scheduling and prioritization of service partition work
US8645974B2 (en) * 2007-08-02 2014-02-04 International Business Machines Corporation Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device
US7984449B2 (en) * 2007-08-15 2011-07-19 International Business Machines Corporation In-band communication with virtual machines via a hypervisor message bus
US8195931B1 (en) 2007-10-31 2012-06-05 Mcafee, Inc. Application change control
US8521966B2 (en) * 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
US8181174B2 (en) * 2007-12-28 2012-05-15 Accenture Global Services Limited Virtual machine configuration system
US8819647B2 (en) * 2008-01-25 2014-08-26 International Business Machines Corporation Performance improvements for nested virtual machines
US8515075B1 (en) 2008-01-31 2013-08-20 Mcafee, Inc. Method of and system for malicious software detection using critical address space protection
US8140834B2 (en) 2008-02-26 2012-03-20 International Business Machines Corporation System, method and computer program product for providing a programmable quiesce filtering register
US8380907B2 (en) * 2008-02-26 2013-02-19 International Business Machines Corporation Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8458438B2 (en) * 2008-02-26 2013-06-04 International Business Machines Corporation System, method and computer program product for providing quiesce filtering for shared memory
US8527715B2 (en) * 2008-02-26 2013-09-03 International Business Machines Corporation Providing a shared memory translation facility
JPWO2009113571A1 (ja) * 2008-03-11 2011-07-21 日本電気株式会社 複数の基盤ソフトウェアを動作可能な情報処理装置および方法
US7941688B2 (en) * 2008-04-09 2011-05-10 Microsoft Corporation Managing timers in a multiprocessor environment
US8615502B2 (en) 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US8307405B2 (en) * 2008-04-28 2012-11-06 International Business Machines Corporation Methods, hardware products, and computer program products for implementing zero-trust policy in storage reports
US8336099B2 (en) * 2008-05-08 2012-12-18 International Business Machines Corporation Methods, hardware products, and computer program products for implementing introspection data comparison utilizing hypervisor guest introspection data
US9262194B2 (en) * 2008-06-10 2016-02-16 Apple Inc. Virtual machine communications
US8468356B2 (en) 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
US8327355B2 (en) * 2008-07-15 2012-12-04 International Business Machines Corporation Method, computer program product, and hardware product for supporting virtual machine guest migration overcommit
US8793652B2 (en) 2012-06-07 2014-07-29 International Business Machines Corporation Designing and cross-configuring software
US9280335B2 (en) 2010-09-30 2016-03-08 International Business Machines Corporation Semantically rich composable software image bundles
US8458717B1 (en) 2008-09-23 2013-06-04 Gogrid, LLC System and method for automated criteria based deployment of virtual machines across a grid of hosting resources
US8732716B2 (en) * 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US8544003B1 (en) 2008-12-11 2013-09-24 Mcafee, Inc. System and method for managing virtual machine configurations
US9086913B2 (en) * 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US8387031B2 (en) * 2009-01-23 2013-02-26 International Business Machines Corporation Providing code improvements for nested virtual machines
US9450783B2 (en) * 2009-05-28 2016-09-20 Red Hat, Inc. Abstracting cloud management
US9152200B2 (en) * 2009-06-23 2015-10-06 Hewlett-Packard Development Company, L.P. Resource and power management using nested heterogeneous hypervisors
EP3716060A1 (en) 2009-07-31 2020-09-30 NEC Corporation Control server, service providing system, and method of providing a virtual infrastructure
US8341627B2 (en) * 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8381284B2 (en) * 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US8495628B2 (en) * 2009-08-23 2013-07-23 International Business Machines Corporation Para-virtualization in a nested virtualization environment using reduced number of nested VM exits
US9069591B1 (en) * 2009-09-10 2015-06-30 Parallels IP Holding GmbH Patching host OS structures for hardware isolation of virtual machines
US8479196B2 (en) * 2009-09-22 2013-07-02 International Business Machines Corporation Nested virtualization performance in a computer system
US9027038B2 (en) * 2009-10-21 2015-05-05 General Dynamics C4 Systems, Inc. Methods and apparatus for constructing a secure and flexible operating system
US9552497B2 (en) * 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
US20110153715A1 (en) * 2009-12-17 2011-06-23 Microsoft Corporation Lightweight service migration
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
EP2539846B1 (en) * 2010-02-22 2018-08-22 Virtustream IP Holding Company LLC Methods and apparatus for data center management independent of hypervisor platform
US8495512B1 (en) * 2010-05-20 2013-07-23 Gogrid, LLC System and method for storing a configuration of virtual servers in a hosting system
US8789189B2 (en) 2010-06-24 2014-07-22 NeurallQ, Inc. System and method for sampling forensic data of unauthorized activities using executability states
US9106697B2 (en) 2010-06-24 2015-08-11 NeurallQ, Inc. System and method for identifying unauthorized activities on a computer system using a data structure model
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
US8458698B2 (en) * 2010-11-18 2013-06-04 International Business Machines Corporation Improving performance in a nested virtualized environment
US8819677B2 (en) * 2010-11-23 2014-08-26 International Business Machines Corporation Virtual machine data structures corresponding to nested virtualization levels
US8839240B2 (en) * 2010-11-29 2014-09-16 International Business Machines Corporation Accessing vendor-specific drivers for configuring and accessing a self-virtualizing input/output device
US9075993B2 (en) 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
US8490090B2 (en) * 2011-02-17 2013-07-16 International Business Machines Corporation Multilevel support in a nested virtualization environment
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
US8798541B1 (en) * 2011-04-11 2014-08-05 Vmware, Inc. System and method for socket backed host controller interface emulation for virtual bluetooth adapter
EP2521035B1 (de) * 2011-05-06 2018-02-21 Siemens Aktiengesellschaft Verfahren und Anordnung zur Konfigurierung einer Ressource für eine virtuelle Laufzeitumgebung
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
US8843924B2 (en) 2011-06-17 2014-09-23 International Business Machines Corporation Identification of over-constrained virtual machines
US8949428B2 (en) 2011-06-17 2015-02-03 International Business Machines Corporation Virtual machine load balancing
US8966084B2 (en) 2011-06-17 2015-02-24 International Business Machines Corporation Virtual machine load balancing
US8966478B2 (en) * 2011-06-28 2015-02-24 The Boeing Company Methods and systems for executing software applications using hardware abstraction
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
RU2486584C2 (ru) * 2011-09-16 2013-06-27 Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг РФ) Способ построения иерархической системы сетевого взаимодействия виртуальных рабочих мест
RU2486578C2 (ru) * 2011-09-16 2013-06-27 Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг России) Способ построения системы сообщений многоуровневой несимметричной транспортной системы
US8621178B1 (en) * 2011-09-22 2013-12-31 Emc Corporation Techniques for data storage array virtualization
US8695010B2 (en) 2011-10-03 2014-04-08 International Business Machines Corporation Privilege level aware processor hardware resource management facility
US8694738B2 (en) 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US8826305B2 (en) * 2012-04-18 2014-09-02 International Business Machines Corporation Shared versioned workload partitions
WO2013171944A1 (ja) * 2012-05-15 2013-11-21 日本電気株式会社 仮想マシン管理システム、仮想マシン管理方法およびプログラム
CN102750178B (zh) 2012-06-08 2015-04-29 华为技术有限公司 通信设备硬件资源的虚拟化管理方法及相关装置
US9122780B2 (en) * 2012-06-20 2015-09-01 Intel Corporation Monitoring resource usage by a virtual machine
WO2014004747A2 (en) 2012-06-26 2014-01-03 Lynuxworks, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
JP5660082B2 (ja) * 2012-07-03 2015-01-28 横河電機株式会社 プロセス制御装置及びシステム
US20140053272A1 (en) * 2012-08-20 2014-02-20 Sandor Lukacs Multilevel Introspection of Nested Virtual Machines
US9563480B2 (en) * 2012-08-21 2017-02-07 Rackspace Us, Inc. Multi-level cloud computing system
CN103051963B (zh) * 2012-11-30 2018-02-13 北京视博数字电视科技有限公司 一种数字电视终端设备的安全控制方法
US9384024B2 (en) 2012-12-18 2016-07-05 Dynavisor, Inc. Dynamic device virtualization
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
US9304793B2 (en) * 2013-01-16 2016-04-05 Vce Company, Llc Master automation service
US9229752B2 (en) * 2013-03-12 2016-01-05 International Business Machines Corporation Systems and methods to offload hardware support using a hypervisor subpartition
US9152450B2 (en) 2013-03-12 2015-10-06 International Business Machines Corporation Offloading service requests to a second guest hypervisor in a logical partition shared by a plurality of guest hypervisors
US9342343B2 (en) * 2013-03-15 2016-05-17 Adventium Enterprises, Llc Wrapped nested virtualization
US9058239B2 (en) 2013-06-20 2015-06-16 International Business Machines Corporation Hypervisor subpartition as concurrent upgrade
JP5608797B2 (ja) * 2013-07-31 2014-10-15 株式会社日立製作所 仮想化プログラム、仮想計算機システム及び計算機システム制御方法
EP3061030A4 (en) 2013-10-24 2017-04-19 McAfee, Inc. Agent assisted malicious application blocking in a network environment
US9910689B2 (en) 2013-11-26 2018-03-06 Dynavisor, Inc. Dynamic single root I/O virtualization (SR-IOV) processes system calls request to devices attached to host
WO2015130837A1 (en) 2014-02-25 2015-09-03 Dynavisor, Inc. Dynamic information virtualization
US9424062B1 (en) * 2014-03-24 2016-08-23 Amazon Technologies, Inc. Virtualization infrastructure support
CN104951694B (zh) 2014-03-24 2018-04-10 华为技术有限公司 一种管理虚拟机的隔离方法及装置
US9390267B2 (en) 2014-05-15 2016-07-12 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features
CA2969422A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization, hypervisor, apis of interest, and/or other features
WO2015176048A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Aspects of hardware virtualization, hypervisors, code detection
WO2016004263A1 (en) 2014-07-01 2016-01-07 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features
US9417896B2 (en) * 2014-05-19 2016-08-16 International Business Machines Corporation Allocating hypervisor resources
JP2015225436A (ja) * 2014-05-27 2015-12-14 株式会社エヌ・ティ・ティ・データ リソース提供支援装置、リソース提供支援システム、リソース提供支援方法
US11782745B2 (en) 2014-07-01 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features
US9781054B1 (en) 2014-07-25 2017-10-03 Google Inc. Quota-based resource scheduling
US9851998B2 (en) * 2014-07-30 2017-12-26 Microsoft Technology Licensing, Llc Hypervisor-hosted virtual machine forensics
CA2973367A1 (en) 2015-01-07 2016-07-14 Countertack Inc. System and method for monitoring a computer system using machine interpretable code
US10101915B2 (en) * 2015-06-24 2018-10-16 Vmware, Inc. Methods and apparatus to manage inter-virtual disk relations in a modularized virtualization topology using virtual hard disks
US9928010B2 (en) 2015-06-24 2018-03-27 Vmware, Inc. Methods and apparatus to re-direct detected access requests in a modularized virtualization topology using virtual hard disks
US10126983B2 (en) 2015-06-24 2018-11-13 Vmware, Inc. Methods and apparatus to enforce life cycle rules in a modularized virtualization topology using virtual hard disks
US9804789B2 (en) 2015-06-24 2017-10-31 Vmware, Inc. Methods and apparatus to apply a modularized virtualization topology using virtual hard disks
US11422840B2 (en) * 2015-08-28 2022-08-23 Vmware, Inc. Partitioning a hypervisor into virtual hypervisors
CN105224388A (zh) * 2015-09-14 2016-01-06 北京百度网讯科技有限公司 基于嵌套虚拟化的云系统持续集成方法和装置
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10353727B2 (en) 2016-05-26 2019-07-16 International Business Machines Corporation Extending trusted hypervisor functions with existing device drivers
US11442760B2 (en) * 2016-07-01 2022-09-13 Intel Corporation Aperture access processors, methods, systems, and instructions
RU2626550C1 (ru) * 2016-08-09 2017-07-28 Акционерное Общество "Научно-Исследовательский Институт Микроэлектронной Аппаратуры "Прогресс" Программно-аппаратная платформа и способ ее реализации для беспроводных средств связи
KR102511451B1 (ko) 2016-11-09 2023-03-17 삼성전자주식회사 리치 실행 환경에서 보안 어플리케이션을 안전하게 실행하는 컴퓨팅 시스템
US10942757B2 (en) * 2017-02-27 2021-03-09 Red Hat, Inc. Virtual machine security through guest-side emulation
US10394585B2 (en) * 2017-03-07 2019-08-27 Microsoft Technology Licensing, Llc Managing guest partition access to physical devices
WO2018176393A1 (en) 2017-03-31 2018-10-04 Intel Corporation Techniques for virtual machine transfer and resource management
CN107766001B (zh) * 2017-10-18 2021-05-25 成都索贝数码科技股份有限公司 一种基于用户群组的存储配额方法
US10931528B2 (en) * 2018-05-04 2021-02-23 VCE IP Holding Company LLC Layer-based method and system for defining and enforcing policies in an information technology environment
EP3811264A4 (en) 2018-06-24 2022-03-02 Hex Five Security, Inc. CONFIGURATION, ENFORCEMENT AND MONITORING THE SEPARATION OF TRUSTED EXECUTION ENVIRONMENTS
US10831532B2 (en) 2018-10-19 2020-11-10 International Business Machines Corporation Updating a nested virtualization manager using live migration of virtual machines
GB2581482B (en) * 2019-02-15 2021-02-24 Promon As Security virtual-machine software applications
US11494214B2 (en) * 2019-03-28 2022-11-08 Amazon Technologies, Inc. Verified isolated run-time environments for enhanced security computations within compute instances
KR102440562B1 (ko) * 2020-11-17 2022-09-06 주식회사 알티스트 계층적으로 구성된 파티션을 활용한 파티션 재시작 방법
US11983555B2 (en) 2021-08-03 2024-05-14 Red Hat, Inc. Storage snapshots for nested virtual machines
US20230229757A1 (en) * 2022-01-18 2023-07-20 Xilinx, Inc. Hierarchical hardware-software partitioning and configuration

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037089A1 (en) * 2001-08-15 2003-02-20 Erik Cota-Robles Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4253145A (en) * 1978-12-26 1981-02-24 Honeywell Information Systems Inc. Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
DE3428634A1 (de) 1984-08-03 1986-02-13 Unilever N.V., Rotterdam Huelsenfoermiger traeger
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
JPS62221041A (ja) 1986-03-24 1987-09-29 Hitachi Ltd 仮想計算機システムにおけるデイスパツチ制御装置
JP2705121B2 (ja) 1988-07-08 1998-01-26 株式会社日立製作所 電子計算機システム
JP3138985B2 (ja) 1989-03-14 2001-02-26 富士通株式会社 仮想計算機
JP2864255B2 (ja) 1989-09-14 1999-03-03 富士通株式会社 仮想計算機方式の計算機システム
US5325526A (en) * 1992-05-12 1994-06-28 Intel Corporation Task scheduling in a multicomputer system
JP3543441B2 (ja) 1995-09-19 2004-07-14 株式会社日立製作所 大域的なリソースキャッピング方法
JPH09282196A (ja) 1996-04-18 1997-10-31 Hitachi Ltd 複合論理プロセッサシステムのプログラム走行制御方式
US5946487A (en) * 1996-06-10 1999-08-31 Lsi Logic Corporation Object-oriented multi-media architecture
AU7101498A (en) 1997-04-02 1998-10-22 Microsoft Corporation Method for integrating a virtual machine with input method editors
US6282701B1 (en) * 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
US6633916B2 (en) * 1998-06-10 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for virtual resource handling in a multi-processor computer system
US6141732A (en) * 1998-03-24 2000-10-31 Novell, Inc. Burst-loading of instructions into processor cache by execution of linked jump instructions embedded in cache line size blocks
US6438671B1 (en) * 1999-07-01 2002-08-20 International Business Machines Corporation Generating partition corresponding real address in partitioned mode supporting system
US7140015B1 (en) * 1999-09-29 2006-11-21 Network Appliance, Inc. Microkernel for real time applications
JP3630087B2 (ja) 2000-05-10 2005-03-16 日本電気株式会社 自動データ処理装置
US6990663B1 (en) * 2000-06-08 2006-01-24 International Business Machines Corporation Hypervisor virtualization of OS console and operator panel
US7085705B2 (en) * 2000-12-21 2006-08-01 Microsoft Corporation System and method for the logical substitution of processor control in an emulated computing environment
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
WO2003027842A2 (en) * 2001-09-25 2003-04-03 Koninklijke Philips Electronics N.V. Software support for virtual machine interpreter (vmi) acceleration hardware
US7406522B2 (en) * 2001-09-26 2008-07-29 Packeteer, Inc. Dynamic partitioning of network resources
US20030110205A1 (en) * 2001-12-07 2003-06-12 Leith Johnson Virtualized resources in a partitionable server
WO2003052542A2 (fr) 2001-12-14 2003-06-26 David Carrere Procede et dispositif de traitement de l'information
US6934888B2 (en) * 2002-03-07 2005-08-23 International Business Machines Corporation Method and apparatus for enhancing input/output error analysis in hardware sub-systems
US6725284B2 (en) * 2002-04-25 2004-04-20 International Business Machines Corporation Logical partition hosted virtual input/output using shared translation control entries
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6895491B2 (en) * 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US7197585B2 (en) * 2002-09-30 2007-03-27 International Business Machines Corporation Method and apparatus for managing the execution of a broadcast instruction on a guest processor
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7962545B2 (en) 2002-12-27 2011-06-14 Intel Corporation Dynamic service registry for virtual machines
US7000051B2 (en) * 2003-03-31 2006-02-14 International Business Machines Corporation Apparatus and method for virtualizing interrupts in a logically partitioned computer system
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US7376948B2 (en) * 2003-04-24 2008-05-20 International Business Machines Corporation Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7424709B2 (en) 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7913226B2 (en) * 2003-10-01 2011-03-22 Hewlett-Packard Development Company, L.P. Interposing a virtual machine monitor and devirtualizing computer hardware at runtime
US7376949B2 (en) * 2003-10-01 2008-05-20 Hewlett-Packard Development Company, L.P. Resource allocation and protection in a multi-virtual environment
WO2005036806A2 (en) 2003-10-08 2005-04-21 Unisys Corporation Scalable partition memory mapping system
US20070067366A1 (en) * 2003-10-08 2007-03-22 Landis John A Scalable partition memory mapping system
US7552426B2 (en) * 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
US20050091022A1 (en) * 2003-10-24 2005-04-28 Konstantin Levit-Gurevich Ultra fast multi-processor system simulation using dedicated virtual machines
US7146482B2 (en) * 2003-11-25 2006-12-05 International Business Machines Corporation Memory mapped input/output emulation
US7234037B2 (en) * 2003-11-25 2007-06-19 International Business Machines Corporation Memory mapped Input/Output operations
US7467381B2 (en) * 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US20050132367A1 (en) 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management
US7421533B2 (en) * 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
US7478388B1 (en) * 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US7249208B2 (en) * 2004-05-27 2007-07-24 International Business Machines Corporation System and method for extending the cross-memory descriptor to describe another partition's memory
US7562179B2 (en) * 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
US20060070066A1 (en) * 2004-09-30 2006-03-30 Grobman Steven L Enabling platform network stack control in a virtualization platform
US8145872B2 (en) * 2004-11-08 2012-03-27 International Business Machines Corporation Autonomic self-tuning of database management system in dynamic logical partitioning environment
US7757231B2 (en) * 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US7853960B1 (en) * 2005-02-25 2010-12-14 Vmware, Inc. Efficient virtualization of input/output completions for a virtual device
US7685635B2 (en) * 2005-03-11 2010-03-23 Microsoft Corporation Systems and methods for multi-level intercept processing in a virtual machine environment
US7443878B2 (en) * 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
US7779164B2 (en) * 2005-04-04 2010-08-17 Oracle America, Inc. Asymmetrical data processing partition
US8578385B2 (en) * 2005-04-21 2013-11-05 Microsoft Corporation Method and system for virtual service isolation
US8166473B2 (en) * 2005-04-21 2012-04-24 Microsoft Corporation Method and system for a resource negotiation between virtual machines
US8375386B2 (en) * 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
US8387049B2 (en) * 2005-07-15 2013-02-26 International Business Machines Corporation Facilitating processing within computing environments supporting pageable guests
US9785485B2 (en) * 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037089A1 (en) * 2001-08-15 2003-02-20 Erik Cota-Robles Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor

Also Published As

Publication number Publication date
US20070050764A1 (en) 2007-03-01
EP1922619A1 (en) 2008-05-21
TW200729038A (en) 2007-08-01
NO20080757L (no) 2008-03-05
BRPI0615278A2 (pt) 2011-05-17
WO2007027739A1 (en) 2007-03-08
AU2006284910B2 (en) 2011-01-20
EP1922619A4 (en) 2009-01-07
AU2006284910A1 (en) 2007-03-08
JP2009506462A (ja) 2009-02-12
RU2008107734A (ru) 2009-09-10
MX2008002497A (es) 2008-04-10
KR20080047372A (ko) 2008-05-28
CN101253481A (zh) 2008-08-27
RU2398267C2 (ru) 2010-08-27
CA2620087A1 (en) 2007-03-08
CN101253481B (zh) 2012-07-04
US8327353B2 (en) 2012-12-04
EP1922619B1 (en) 2016-11-02

Similar Documents

Publication Publication Date Title
US11868792B2 (en) Dynamic device virtualization for use by guest user processes based on observed behaviors of native device drivers
NO340567B1 (no) Hierarkisk virtualisering med en flernivå virtualiseringsmekanisme
US7743389B2 (en) Selecting between pass-through and emulation in a virtual machine environment
JP5042848B2 (ja) 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法
US8589940B2 (en) On-line replacement and changing of virtualization software
US7376949B2 (en) Resource allocation and protection in a multi-virtual environment
US7945436B2 (en) Pass-through and emulation in a virtual machine environment
KR20120111734A (ko) 프로세서 코어들의 하이퍼바이저 격리
US7840790B1 (en) Method and system for providing device drivers in a virtualization system
WO2018184701A1 (en) Method for operating virtual machines on a virtualization platform and corresponding virtualization platform
Stoica et al. Virtual Machines Disco and Xen (Lecture 10, cs262a)
Kanda et al. SIGMA system: A multi-OS environment for embedded systems
Kaneda et al. A virtual machine monitor for providing a single system image
US20240211288A1 (en) Hierarchical virtualization
US20230036017A1 (en) Last-level cache topology for virtual machines
US20240028361A1 (en) Virtualized cache allocation in a virtualized computing system
表祐志 Computer Systems Management with a Para Pass-through Virtual Machine Monitor

Legal Events

Date Code Title Description
CHAD Change of the owner's name or address (par. 44 patent law, par. patentforskriften)

Owner name: MICROSOFT TECHNOLOGY LICENSING, US

MM1K Lapsed by not paying the annual fees