Tyler wrote:
For one thing, Windows (NT) never blue screens on an application failure, only kernel problem.
Yes, that's how I understand it. Unfortunately, NT is rather monolithic in design and faults in kernel-mode device drivers can equally cause a BSOD.
In a microkernel environment, however, it should be easier to restart a driver. For example, consider that the display driver crashes (quite a common occurence on my XP machine, unfortunately). The kernel needs to detect this somehow (as the error might not cause an exception), close down the process, inform all clients that the driver is not currently responding to messages and that all recently sent messages might not have been processed, and then restart it, informing clients that it has done so.
To take it one step further, what if the microkernel itself does something silly and needs to be shut down? We could have control transferred to a watcher program that simply reloads the kernel and attempts to restart it whilst maintaining process information, but I don't know how feasible this is. Besides, what watches the watcher?
Regards,
John.