"If we look back, before virtualization existed, there have been
a lots and lots of discussions on OS designs too. For example Linux
uses the monolithic design (modulo drivers in userland). A few
other OS uses the microkernel design. Each solution brings pros and
cons. In the end most production OS tend to use the monolithic
design for all performance critical tasks."