In the good old days (rose-tinted spectacles required), there was only one operating system in the stack. It took care of device drivers and file IO. There were many flavours of OS, depending on the period, from UNIX and Windows to OS/2 and MacOS, and many, many others. Over time, the selection of operating systems in the data center reduced down to Linux and Windows (there are still holdouts for others, for various specific reasons, but Linux and Windows hold about 90% of the OS market). There are many flavours of Linux, but all an app developer in the enterprise really needs to know is which OS they are targeting. More and more, even that level is too low down for the app developer who is looking more at the middleware to make the final decisions.
In the age of virtualization and cloud, deciding on an OS—which version of Windows, which flavour of Linux—is a matter of choosing à la carte from a menu of preconfigured options. This ability to choose the OS—the ability to run a VM, even—is dependent upon the availability of a hypervisor, a sub-OS that runs the virtual machine, that runs the OS.