A method for providing an
operating system access to devices, including enumerating hardware devices and virtualized devices, where resources associated with a first hardware device are divided into guest physical resources creating a
software virtualized device, and multiple instances of resources associated with a second hardware device are advertised thereby creating a hardware virtualized device. First and second permission lists are generated that specify which operating systems are permitted to access the
software virtualized device and the hardware virtualized device, respectively. First and second sets of virtual address maps are generated, where each set maps an
address space associated with either the
software virtualized device or the hardware virtualized device into an
address space associated with each
operating system included in the corresponding permission
list. The method further includes arbitrating access requests from each of the plurality of operating systems based on the permission lists and the virtual address maps.