Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
In a microkernel where the disk driver runs in a normal userspace process, won't everything blow up if it gets swapped out? How do people prevent that from happening?
I haven't got to writing a disk driver yet, but I would suggest that if each of your processes has a structure containing a 'flags' field, make one of those flags signal the memory manager not to page out that process.