why microkernels don’t work

You can almost just see it from this diagram of connected boxes.  I want to think of the whole system as a series of connected state machines.  The arrows show how information is moved around the system with the green arrows identifying paths that carry data to and from the memory. When you fill in the details, you start to see that the proposed sheering off of the “fileserver” from the remaining “kernel” does not actually split state as much as it reproduces it. So much of the state of the rump Kernel needs to be available to the FileServer that the proposed modularity disintegrates.”’

The counter argument, in its best form, can be found at QNX.

http://www.qnx.com/developers/docs/6.3.2/neutrino/sys_arch/fsys.html