Sistem virtual machinesEdit
O „mașină virtuală” a fost inițial definit de Popek și Goldberg ca „un mod eficient, izolat duplicat de un real calculator.”Utilizarea curentă include mașini virtuale care nu au corespondență directă cu niciun hardware real.Hardware-ul fizic,” din lumea reală „care rulează VM este în general denumit „gazdă”, iar mașina virtuală emulată pe acea mașină este în general denumită „oaspete”., O gazdă poate emula mai mulți invitați, fiecare dintre aceștia putând emula diferite sisteme de operare și platforme hardware. dorința de a rula mai multe sisteme de operare a fost motivul inițial pentru mașinile virtuale, astfel încât să permită partajarea timpului între mai multe sisteme de operare cu un singur tasking. În unele privințe, o mașină virtuală de sistem poate fi considerată o generalizare a conceptului de memorie virtuală care a precedat-o Istoric., CP / CMS de la IBM, primele sisteme care permit virtualizarea completă, au implementat partajarea timpului oferind fiecărui utilizator un sistem de operare cu un singur utilizator, Conversational Monitor System (CMS). Spre deosebire de memoria virtuală, o mașină virtuală de sistem a îndreptățit utilizatorul să scrie instrucțiuni privilegiate în codul lor. Această abordare a avut anumite avantaje, cum ar fi adăugarea de dispozitive de intrare/ieșire care nu sunt permise de sistemul standard.,pe măsură ce tehnologia evoluează memoria virtuală în scopuri de virtualizare, pot fi aplicate noi sisteme de overcommitment de memorie pentru a gestiona partajarea memoriei între mai multe mașini virtuale pe un singur sistem de operare al computerului. Poate fi posibil să partajați pagini de memorie care au conținut identic între mai multe mașini virtuale care rulează pe aceeași mașină fizică, ceea ce poate duce la maparea acestora pe aceeași pagină fizică printr-o tehnică numită kernel same-page fusing (KSM)., Acest lucru este util în special pentru paginile numai în citire, cum ar fi cele care dețin segmente de cod, ceea ce este cazul mai multor mașini virtuale care rulează același software sau similar, biblioteci software, servere web, componente middleware etc. Sistemele de operare invitate nu trebuie să fie conforme cu hardware-ul gazdă, făcând astfel posibilă rularea diferitelor sisteme de operare pe același computer (de exemplu, Windows, Linux sau versiuni anterioare ale unui sistem de operare) pentru a sprijini software-ul viitor.,utilizarea mașinilor virtuale pentru a suporta sisteme de operare separate pentru oaspeți este populară în ceea ce privește sistemele încorporate. O utilizare tipică ar fi rularea unui sistem de operare în timp real simultan cu un sistem de operare complex preferat, cum ar fi Linux sau Windows. O altă utilizare ar fi pentru software-ul nou și nedovedit încă în stadiul de dezvoltare, așa că rulează într-o cutie de nisip. Mașinile virtuale au alte avantaje pentru dezvoltarea sistemului de operare și pot include acces îmbunătățit la depanare și reporniri mai rapide.,
Mai multe VM-uri care rulează propriul sistem de operare pentru oaspeți sunt implicate frecvent pentru consolidarea serverului.
proces mașini virtualeedit
un proces VM, numit uneori o aplicație virtual machine, sau Managed Runtime Environment (MRE), rulează ca o aplicație normală în interiorul unui sistem de operare gazdă și acceptă un singur proces. Acesta este creat atunci când acest proces este pornit și distrus atunci când iese., Scopul său este de a oferi un mediu de programare independent de platformă care abstractizează detaliile hardware-ului sau sistemului de operare de bază și permite unui program să execute în același mod pe orice platformă.un proces VM oferă o abstractizare la nivel înalt – cea a unui limbaj de programare la nivel înalt (în comparație cu abstractizarea ISA la nivel scăzut a sistemului VM). VM-urile de proces sunt implementate folosind un interpretor; performanța comparabilă cu limbajele de programare compilate poate fi obținută prin utilizarea compilării just-in-time.,acest tip de VM a devenit popular cu limbajul de programare Java, care este implementat folosind mașina virtuală Java. Alte exemple includ mașina virtuală Parrot și. NET Framework, care rulează pe un VM numit Common Language Runtime. Toate acestea pot servi ca un strat de abstractizare pentru orice limbă de calculator.un caz special al VM-urilor de proces sunt sisteme care abstractizează mecanismele de comunicare ale unui cluster de calculatoare (potențial eterogen). Un astfel de VM nu constă dintr-un singur proces, ci un proces pe mașină fizică din cluster., Acestea sunt concepute pentru a ușura sarcina programării aplicațiilor concurente, lăsând programatorul să se concentreze mai degrabă pe algoritmi decât pe mecanismele de comunicare furnizate de interconectare și sistemul de operare. Ei nu ascund faptul că are loc comunicarea și, ca atare, nu încearcă să prezinte clusterul ca o singură mașină.spre deosebire de alte VM-uri de proces, aceste sisteme nu oferă un limbaj de programare specific, dar sunt încorporate într-un limbaj existent; de obicei, un astfel de sistem oferă legături pentru mai multe limbi (de exemplu, C și Fortran)., Exemple sunt Parallel Virtual Machine (PVM) și Message Passing Interface (MPI). Nu sunt mașini strict virtuale, deoarece aplicațiile care rulează deasupra au încă acces la toate serviciile OS și, prin urmare, nu se limitează la modelul de sistem.