Virtuaalikone
Virtuaalikone (harv. näennäiskone, engl. Virtual Machine, VM) on ohjelmallisesti toteutettu tietokone, jossa voidaan ajaa ohjelmia kuin aidossa koneessa virtualisointitekniikan avulla.
Määritelmiä
[muokkaa | muokkaa wikitekstiä]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.[1]
Virtuaalikonemonitori tai hypervisor on ohjelma, laiteohjelma (firmware) tai laitteisto, joka suorittaa virtuaalikoneita.
Mikrovirtuaalikone
[muokkaa | muokkaa wikitekstiä]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.[2][3][4] Mikrovirtuaalikoneiden konsepti syntyi 1960-luvulla IBM:n projektissa M44/44X, jossa käyttöjärjestelmää muokattiin paravirtualisoinnin tapaan (vertaa Xen).[5] M44/44X johti myös CP-40 -hypervisorin kehittämiseen S/360:lle ja CP/CMS:n kehitykseen.[6]
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.[7]
Muut määritelmät
[muokkaa | muokkaa wikitekstiä]Java-virtuaalikone (JVM) on abstrakti kone (virtuaalikone), joka suorittaa sille käännettyjä Java-ohjelmia.[8] JVM on toteutettu ohjelmallisesti oikean laitteiston ja käyttöjärjestelmän päällä ajettavaksi.[8] Java-kielellä tehdyt ohjelmat käännetään tavukoodiksi ja suoritetaan JVM:llä oikeassa ympäristössä.[8]
Virtuaalikoneita ja -ympäristöjä
[muokkaa | muokkaa wikitekstiä]- 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
[muokkaa | muokkaa wikitekstiä]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
[muokkaa | muokkaa wikitekstiä]Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ Smith, Daniel E.; Nair, Ravi. "The Architecture of Virtual Machines". Computer 38 (5): s. 32–38. IEEE Computer Society.
- ↑ Ankur Kumar: Goodbye virtual machines, hello microVMs admin-magazine.com. 2022. Viitattu 31.8.2023. (englanniksi)
- ↑ 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)
- ↑ Liam Proven: FreeBSD can now boot in 25 milliseconds theregister.com. 29.8.2023. Viitattu 31.8.2023. (englanniksi)
- ↑ Liam Proven: Before the PC: IBM invents virtualisation theregister.com. 14.7.2011. Viitattu 31.8.2023. (englanniksi)
- ↑ Liam Proven: Before the PC: IBM invents virtualisation (sivu 2) theregister.com. 14.7.2011. Arkistoitu 31.8.2023. Viitattu 31.8.2023. (englanniksi)
- ↑ 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)
- ↑ a b c The lean, mean, virtual machine javaworld.com. Arkistoitu 29.2.2020. Viitattu 29.2.2020. (englanniksi)