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