Lizzy prefers a single big kernel all compiled at once.
Pro's & Con's
- Faster because there's no context switches between drivers
- Driver bugs may corrupt data in kernel space and/or cause panics
- Beginners may not realize they need to organize a monolithic kernel just as carefully as a microkernel if not more so
- All the drivers get loaded into memory at once; loading drivers at run-time requires an extra system
Going further than Lizzy
- Add a module system to your kernel so you can load drivers at run-time
- Add good IPC and a system to allow userspace programs to access certain hardware, giving you a hybrid kernel
Note that neither are necessarily good ideas. Monolithic or microkernel is a matter of choice, not rungs on the ladder to progress. A module system may seem more obviously good, but it depends how many drivers you have.
Lions' Commentary on UNIX 6th Edition, with Source Code and other books on traditional Unix, Linux, and BSD kernel design. Unix v6 or xv6 source code, perhaps the source of some BSD.
Lizzy's opponents position
Microkernel and similar (layered, modular).
See also the famous Tanenbaum–Torvalds debate
- Unix v6
Not Windows; that's a hybrid.