VirtualBox
**Virtuaalikone** (harv. **näennäiskone**, engl. *Virtual Machine, VM*) 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.

*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
-------

1. ↑  Smith, Daniel E.; Nair, Ravi. "The Architecture of Virtual Machines". Computer 38 (5): s. 32–38. IEEE Computer Society.
2. ↑  Ankur Kumar: Goodbye virtual machines, hello microVMs *admin-magazine.com*.  2022. Viitattu 31.8.2023. (englanniksi)
3. ↑  Thomas Claburn: It doesn't work with Docker, K8s right now, but everyone's going nuts anyway for AWS's Firecracker microVMs *theregister.com*.  27.11.2018. Viitattu 31.8.2023. (englanniksi)
4. ↑  Liam Proven: FreeBSD can now boot in 25 milliseconds *theregister.com*.  29.8.2023. Viitattu 31.8.2023. (englanniksi)
5. ↑  Liam Proven: Before the PC: IBM invents virtualisation *theregister.com*.  14.7.2011. Viitattu 31.8.2023. (englanniksi)
6. ↑  Liam Proven: Before the PC: IBM invents virtualisation (sivu 2) *theregister.com*.  14.7.2011. Viitattu 31.8.2023. (englanniksi)
7. ↑  Attacks are Forwarded: Breaking the Isolation of MicroVM-based Containers Through Operation Forwarding (PDF) *usenix.org*.  9.-11.8.2023. Viitattu 4.9.2023. (englanniksi)
8. 1 2 3  The lean, mean, virtual machine *javaworld.com*. Viitattu 29.2.2020. (englanniksi)