Virtuaalikone

Virtuaalikone (harv. näennäiskone, ) on ohjelmallisesti toteutettu tietokone, jossa voidaan ajaa ohjelmia kuin aidossa koneessa virtualisointitekniikan avulla.

 Määritelmiä 
Alun perin yhdysvaltalaiset Gerald J. Popek ja Robert P. Goldberg määrittelivät virtuaalikoneen olevan "aidon koneen tehokas ja eristetty vastine". Nykyään on käytössä virtuaalikoneita, joille ei ole olemassa lainkaan todellisia laitteistototeutuksia.Smith, Daniel E.; Nair, Ravi. "The Architecture of Virtual Machines". Computer 38 (5): s. 32–38. IEEE Computer Society.

Virtuaalikonemonitori tai hypervisor on ohjelma, laiteohjelma (firmware) tai laitteisto, joka suorittaa virtuaalikoneita. 

 Mikrovirtuaalikone 
Mikrovirtuaalikone (Micro-VM tai microVM) tarkoittaa kevennettyä virtuaalikonetta, jota on karsittu ja hypervisor ei tarjoa eräitä laitteita sille lainkaan. Esimerkiksi PCI-väylä ja ACPI eivät ole saatavilla, vaan virtuaalikoneella on vain muutama laite. Tällä saadaan nopeutettua virtuaalikoneiden käynnistymistä ja tuhoamista lyhytaikaisten eristettyjen toimintojen suorittamista varten, ja virtuaalikoneen tarvitsema muistimäärä on pieni. Yhdellä palvelimella voidaan ajaa tuhansia mikrovirtuaalikoneita. Mikrovirtuaalikoneiden konsepti syntyi 1960-luvulla IBM:n projektissa M44/44X, jossa käyttöjärjestelmää muokattiin paravirtualisoinnin tapaan (vertaa Xen). M44/44X johti myös CP-40 -hypervisorin kehittämiseen S/360:lle ja CP/CMS:n kehitykseen.

Erään esityksen mukaan koska osa mikrovirtuaalikoneen toiminnoista ohjataan isäntäympäristön ytimelle suorituskyvyn vuoksi, tätä saatetaan käyttää ohittamaan virtuaaliympäristön tarjoamia suojauksia hyökkäyksessä isäntäympäristöön.

 Muut määritelmät 
Java-virtuaalikone (JVM) on abstrakti kone (virtuaalikone), joka suorittaa sille käännettyjä Java-ohjelmia. JVM on toteutettu ohjelmallisesti oikean laitteiston ja käyttöjärjestelmän päällä ajettavaksi.
Java-kielellä tehdyt ohjelmat käännetään tavukoodiksi ja suoritetaan JVM:llä oikeassa ympäristössä.

 Virtuaalikoneita ja -ympäristöjä 
 Kernel-based Virtual Machine (KVM)
 Java-virtuaalikoneet (Java-ohjelmointikielellä toteutettujen ohjelmien suorittamista varten)
 Common Language Infrastructure (.NET-ympäristön ydinkomponentti)
 VirtualBox
 Xen
 z/VM-käyttöjärjestelmä
 VMwaren tuotteet

 Palvelut 
Useat pilvipalvelut tarjoavat asiakkaille virtuaalikoneita, joita suoritetaan palveluntarjoajan laitteistolla. Näitä palveluja ovat esimerkiksi Amazon Elastic Compute Cloud ja Google Compute Engine.

 Katso myös 
 Abstrakti kone
 Virtualisointi

 Lähteet