 Microkernels were meant as a response to changes in the computer world, and to several challenges adapting existing "mono-kernels" to these new systems.New device drivers, protocol stacks, file systems and other low-level systems were being developed all the time.This code was normally located in the monolithic kernel, and thus required considerable work and careful code management to work on.