There is also that whole thing about kqueue/epoll vs Overlapped I/O which I think is pretty cool.
The more I read about Windows, the more I find the cool stuff is underneath, buried under a mountain of developer-hostile commercial choices, a philosophical rejection of the command-line that dates to the '90s, bad tacked-on security, sprawling and messy APIs, and a forever-incomplete UI wavering between garish and spartan. Once you get past all that (and all the terrible software built on top of it), NT is actually a very interesting system to play with.
Desktop features and performance have (understandably) being sidelined and ignored over the years, with everything tuned to servers. Almost everyone paid to work in Linux including Linus are funded by Linux server companies.
Example of someone quitting over his desktop performance patches being repeatedly ignored:
>In a 2007 interview, he notes that he initially got into kernel hacking as a hobby. Starting in 2003, he wrote some low impact code, learned from it, and then dug deeper into scheduling and desktop response. Eventually, major developers (Linus included) got wind of his work and asked him to clean it up for mainline submission. He proceeded to churn out some other projects in the realm of desktop performance: the Staircase Scheduler, Plugsched (a hotplug CPU scheduler to integrate the Staircase Scheduler), and the Staircase Deadline Scheduler . Fast forward, and Con is starting to feel like constant requests for bug fixes and resolution for corner cases is more of a job and less of an intellectual hobby. Throw in some more corner cases, a few extremely vocal users, and a medical condition (related to programming) that landed Con immobile for 6 weeks, and he decides to throw in the towel. In addition to the frustration, he also felt that mainline developers weren’t concerned enough with desktop interactivity.