I am not a Windows fan, but this outage has nothing whatsoever to do with Windows. A badly behaved kernel level driver that's marked as boot load (or in the case of Linux in /etc/modules) will crater any operating system.
The problem here is that someone didn't do basic argument verification and verify they weren't passed a null pointer. One would think this would be automatic, but I had some "genius" at a previous job code review a null pointer check in my code, arguing that it wasn't necessary because it had been done in another function. My response was, "you shouldn't assume that. Ever." This is why.