One thing AT said at one point about microkernels has long annoyed me. He claimed that one of the advantages of a microkernel was if your filesystem crashed, you could reboot it, and keep on going. In the normal case, if my filesystem crashes, I want my system to be stopped; we need to check the disk to make sure the bugs in the code didn't write trash to the disk before crashing. Moreover, everytime my filesystem crashes, I'm losing data; I don't want my kernel to paper over that, I want my system to start waving red flags so I get it fixed ASAP.