The history of GDI in Kernel and userspace
by freedom_india (780002)
The problem with XP, NT 4.0 and benefits of NT 3.5 and Vista is the GDI running in UserSpace versus kernel.
Up until NT 3.5 the GDI was run under user space. Hence if the driver crashed, you don't get a BSOD which signifies a kernel panic.
The reason why Windows GDI was placed in userspace was because NT 3.5 was also capable of supporting other UI like POSIX UI(which never came to be), and OS/2 UI. So theoritically you could run the NT kernel on a OS/2 GUI or even POSIX GUI if available.
With its infinite wisdom and going against the advice of Helen Custer and NT Architect, Microsoft threw the GDI into Kernel for quicker response times (official reason). The real reason was OS/2 was licked and Microsoft wanted to be a monopoly (without knowing that EU will kick its ass in future). So it threw out POSIX developments (it still remains in basic limited form to be of any real use, much like a Bank's IVR).
This brought in a rash of new problems: Driver developers were not exactly "Code Complete Quality" material. Hell, they were worse than Power Builder programmers. (all offense intended. So sue me PB programmers)
A small freemem(*) call here, a malloc(*) pointer there, and before you know, you had a memory leak, and executable code in Kernel scratching up the wall for a non-existent memory address space.
WTF was the kernel to do? Allow a badly written driver to corrupt the system more? Nope. Not even Microsoft was that stupid. So, the kernel took down the entire system with a BSOD to signify that somewhere something crashed and that the OS cannot recover unless i rebooted the system entirely.
There started the jokes about BSOD, screensavers etc.
Microsoft was tired of these jib jabs, and also since processor power had increased from 33 Mhz on a 80386 to 2048 MHz on an IA64, it started to move back the GDI to user space from kernel in Vista.
But then, this being Microsoft, it did a half-ass job anyway without talking to the driver developers.
Of course no developer worth his salt would read MSDN to know about the details of privilege de-escalation and re-escalation: that was for the n00bs. A better way to release the driver into the wild and wait for some poor unsuspecting soul to scream.... which is what exactly nvidia, ATI, Xerox, Canon and AMD did.
What they didn't realize was that users were paying customers (surprise!) and that Microsoft wielded had a bigger stick.
So all these device makers and driver makers got fcuked front and back.
Now, having experienced the pain of such fcuking by Bubba (Microsoft), they made sure their drivers were well tested for Windows 7.
Which is why Windows 7 looks nicer, works better and is more crash proof than XP.
Hell, i even upgraded by nvidia display driver yesterday without rebooting.