Monolithic versus Microkernel
In computers, the core of an operating system is called a kernel. There are two main types of kernels: monolithic, in which the kernel is one, massive program, and microkernel, which takes the approach of running a very small kernel that interacts with lots of other small programs. In the case of a microkernel, the kernel acts as more of a central unit that keeps the other programs interacting with each other correctly.
Other types of kernels include hybrid monolithic kernels, which are a compromise between monolithic and microkernels, nanokernels, which have little to no drivers and support inside the kernel binary, and exokernels, which attempt to avoid forcing abstraction on programmers and their creations yet keeping security as much as possible.
Many debates have arisen throughout the years over which is the superior architecture, most notably that between Linus Torvalds, the creator of Linux, and Andrew Tanenbaum, the creator of Minix.