Οι εικονικές μηχανές (Virtual Machines) είναι δημοφιλείς στον κόσμο της πληροφορικής. Χρησιμοποιούνται ευρέως τόσο στα λειτουργικά συστήματα, στις γλώσσες προγραμματισμού και στην αρχιτεκτονική των υπολογιστών. Τα τελευταία χρόνια η τεράστια ανάπτυξη των υπολογιστικών πόρων έδωσε τη δυνατότητα να αναπτυχθούν οι εικονικές μηχανές για χρήση σε εξυπηρετητές διάφορων κατηγοριών. Οι περισσότερες ιστοσελίδες που επισκέπτεστε για παράδειγμα είναι εγκατεστημένες σε εικονικές μηχανές.

Εικόνα 7.1.1. Host και guest Λ.Σ., Πηγη: By John Aplessed - Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=12351968

Γενικά, οι εικονικές μηχανές είναι κατάλληλο λογισμικό - αντί για φυσική υπολογιστική μηχανή - που επιτελεί όλες τις λειτουργίες ενός υπολογιστή. Το λογισμικό αυτό είναι εγκατεστημένο σε έναν υπολογιστή που ονομάζεται «host computer» (οικοδεσπότης) και η εικονική μηχανή αναφέρεται με τον όρο «guest». Επιπλέον, ο «host computer» ανάλογα με τα φυσικά χαρακτηριστικά του (μνήμη, κεντρική μονάδα επεξεργασίας, χωρητικότητα δίσκου κλπ.) μπορεί να εκτελεί περισσότερες από μία εικονικές μηχανές. Αυτό σημαίνει ότι για παράδειγμα ένας υπολογιστής που εκτελεί το Λ.Σ. Linux θα μπορούσε να τρέξει σε εικονική μηχανή Windows ή και Android και αντίστροφα.

Η εκτέλεση ενός Λ.Σ. σε εικονική μηχανή έχει πλεονεκτήματα όπως:

  • Ευκολία στην εγκατάσταση και τη διαχείριση. Οι διαχειριστές μπορούν εύκολα να διαμορφώσουν και να διαχειριστούν εικονικές μηχανές, και μπορούν να αντιγράψουν ολόκληρα περιβάλλοντα με ελάχιστη προσπάθεια
  • Πολλά λειτουργικά συστήματα μπορούν να εκτελεστούν ταυτόχρονα μέσα από ένα φυσικό υπολογιστή.
  • Αυξημένη ασφάλεια μια και κάθε μηχανή είναι ανεξάρτητη από τις υπόλοιπες.
  • Οικονομία πόρων. Μια εικονική μηχανή μοιράζεται τους φυσικούς πόρους του host με άλλες εικονικές μηχανές. Αυτό επιτρέπει καλύτερη χρήση των πόρων και μεγαλύτερη αποδοτικότητα.
  • Δοκιμαστικό περιβάλλον. Επιτρέπουν στους χρήστες τους προγραμματιστές και τους διαχειριστές να δοκιμάσουν νέο λογισμικό χωρίς να επηρεάζουν το λειτουργικό σύστημα του host.
  • Στα μειονεκτήματα των Λ.Σ. που εκτελούνται σε εικονικές μηχανές περιλαμβάνονται:
  • Χαμηλότερη υπολογιστική απόδοση από ένα φυσικό υπολογιστή που θα εκτελούσε το ίδιο Λ.Σ.
  • Η εκτέλεση πολλαπλών εικονικών Λ.Σ.  μπορεί να οδηγήσει σε αστάθειες τον «υπολογιστή οικοδεσπότη» (hostmachine).