Originally Posted by Kamel
actually, the "true" answer from a technical standpoint is freebsd/mac comes out on top, then windows, then linux. the reason why windows is slightly faster than linux at multitasking is because linux uses what's called "preemptive multi-tasking". basically what this means is, the linux kernel always maintains 100% control of the program. in a windows os, the kernel gives the processor to a program, then tells it to pass it on until it gets back around. this is slightly faster, but gives the possibility that a single application can take down the entire computer. in linux this is not possible because the kernel never releases the processor to an application exclusively. therefore, in order to crash linux, you would have to crash the kernel itself.
This is not true, every Windows with NT kernel has preemptive multi-tasking and even Windows 95 didn't have cooperative multi-tasking as you've described it. The only OSes I know of that actually use cooperative multi-tasking are Oberon and Plurix.
While Linux only is preemptible on the Application side, kernel modules still are not preemptible unless you enable the very experimental and very not working "preemptive kernel" option when compiling the kernel. "Not working" because many drivers still can't be preempted, not because the kernel does something wrong.
Besides, you're messing up the term "crashing" with "freezing".
An application or driver that can't be preempted by the system and doesn't give up the cpu FREEZES the System. On windows (NT) neither apps nor drivers can do that (though they can freeze the GUI which makes Windows useless), on linux apps can't, drivers can.
Crashing means, an app or driver can get the system into a state from which it can't recover and where it can't work properly anymore. This is usually caused by a faulty security system which might enable an application or driver to get write access to OS memory. This does happen in Windows a lot (BSOD and GPF are both symptoms for this kind of error) while similar errors on Linux are unheard of. But this has nothing to do with Multi-Tasking.