Interface to Hardware
The vmkernel handles CPU and memory directly, using scan-before-execution (SBE) to handle special or privileged CPU instructions and the SRAT (system resource allocation table) to track allocated memory.
Access to other hardware (such as network or storage devices) takes place using modules. At least some of the modules derive from modules used in the Linux kernel. To access these modules, an additional module called vmklinux implements the Linux module interface. According to the README file, “This module contains the Linux emulation layer used by the vmkernel.”
The vmkernel uses the device drivers
net/e100
net/e1000
net/e1000e
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