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 features that are supported by the software stack or components that are needed to support the features of the software stack, select, based on the information specifying whether or not a particular feature of the features specified by the information 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, wherein the controller is to select the first vBIOS from among the plurality of vBIOS based on the controller determining, from the information about the software stack, that the software stack does not support the particular feature and that the first vBIOS is without a routine supporting the particular feature, and generate a first virtual machine including the software stack and the selected first vBIOS, and cause execution of the software stack and the selected first vBIOS in the first virtual machine.