title: VMware ESX Server
text: # VMware ESX Server
  
  VMware ESX Server è un prodotto per la virtualizzazione di livello enterprise offerto da VMware Inc., sussidiaria di Dell Technologies e ancor prima una divisione di EMC Corporation. ESX Server è un componente di un'offerta VMware più grande, VMware Infrastructure, che aggiunge servizi di amministrazione e di affidabilità al prodotto base.
  
  Il server base richiede almeno una componente di storage stabile - come può essere un array di Hard Disk - per archiviare il kernel della virtualizzazione e i file di supporto. Una variante di questa impostazione, chiamata ESX Server 3i, viene distribuita gratuitamente senza Service Console integrata e spostando il kernel del server in un dispositivo hardware dedicato (nei prossimi server anche memoria flash).
  
  Entrambe le varianti supportano i servizi offerti da Virtual Infrastructure. In quest'ultima, l'unica via per usare gli agenti (di management & monitoring) che prima venivano installati nella Service Console, è usando i CIM Providers forniti da Vmware. La gestione da riga di comando invece può essere eseguita con il Remote CLI (nel caso della versione gratuita è limitato in accesso "sola lettura").
  
  La lista di differenze fra le due versioni è consultabile sul sito VMware ESX and ESXi Comparison
  
  ## Descrizione tecnica
  
  ### Termini e definizioni
  
  VMware, Inc. definisce l'hypervisor usato da VMware ESX Server come "vmkernel".
  
  ### Architettura
  
  Il server ESX include un microkernel che si interfaccia direttamente con la macchina. Nelle versioni ESX 3 e precedenti all'avvio viene lanciato un kernel Linux (una versione modificata di Red Hat Enterprise Linux) che analizza l'hardware della macchina e alcuni componenti di gestione, per poi cedere il controllo al componente vmkernel sviluppato di VMware. Questo è un microkernel con tre interfacce verso l'esterno:
  
  * hardware
  * sistema guest
  * servizio console (servizio di gestione delle macchine virtuale che gira sul kernel che ha fatto partire vmkernel)
  
  **Interfaccia con l'hardware**
  
  Il microkernel vmkernel si occupa direttamente sia della CPU sia della memoria. Si può presumere che utilizzi la tecnologia Scan-Before-Execution (SBE) di VMware per gestire le istruzioni della CPU privilegiate.
  
  L'accesso al rimanente hardware (come i dispositivi di rete o le memorie di massa) avviene utilizzando dei moduli. Alcuni dei moduli derivano dal codice sorgente di Linux. Per accedere a questi moduli, un modulo aggiuntivo chiamato vmklinux implementa l'interfaccia usata dai moduli Linux.
  
  Il vmkernel usa i seguenti driver:
  
  * net/e100
  * net/e1000
  * net/bcm5700
  * net/bnx2
  * net/tg3
  * net/forcedeth
  * net/pcnet32
  * block/cciss
  * scsi/adp94xx
  * scsi/aic7xxx
  * scsi/aic79xx
  * scsi/ips
  * scsi/lpfcdd-v732
  * scsi/megaraid2
  * scsi/mptscsi_2xx
  * scsi/qla2200-v7.07
  * scsi/megaraid_sas
  * scsi/qla4010
  * scsi/qla4022
  * scsi/vmkiscsi
  * scsi/aacraid_esx30
  * scsi/lpfcdd-v7xx
  * scsi/qla2200-v7xx
  
  Questi driver sono sostanzialmente quelli descritti nella "Hardware Compatibility List" di VMware. Tutti questi moduli rientrano nella licenza GPL e sono stati adattati dai programmatori per essere eseguiti tramite vmkernel. VMware li ha adattati al sistema di caricamento dei moduli di vmkernel, oltre ad altre modifiche minori.
  
  