1. A computing device comprising: a software stack; a hypervisor to manage execution of the software stack; and a controller comprising a processor to: receive information about the software stack, the information specifying whether or not a feature is supported by the software stack, select, based on the information specifying whether or not the feature is supported by the software stack, a first virtual basic input output system (vBIOS) from among a plurality of vBIOS comprising the first vBIOS and a second vBIOS, wherein the first vBIOS and the second vBIOS are different, determine if the selected first vBIOS is on the computing device, and if the selected first vBIOS is not on the computing device, download the selected first vBIOS from a server on a network, and cause execution of the software stack and the selected first vBIOS in a first virtual machine.