Friday, March 21, 2014

listen: i worked support for microsoft. i'm telling you the story from the inside. from microsoft training. from documents written by microsoft engineers. it might sound incredible, but it's the actual, blunt truth.

i'm transferring files around right now, and this is a good example. it took almost ten minutes for me to transfer a few gb of files from my laptop (which is running a 64 bit windows 7, with a core i5 and 4 gb of ram - certainly better hardware specs on paper than my desktop) to a usb key. it took 30 seconds to transfer the same data from the same usb to my pc's hard drive, which is currently running an xp x64. if i were to do that on a fully patched vista, it would take ten hours.

ten hours!? yes. ten hours.

...because intel won't update the chipset to conform to the very different driver signing standards. the way windows handles drivers was a huge update from xp to vista.

i'm willing to accept that a lot of hardware manufacturers initially didn't understand how to rewrite their drivers for vista/7/etc. but, they did eventually figure it out. and there's really no excuse for not doing so, other than driving the hardware market.

it's a very widespread problem.

https://www.google.ca/#q=vista+slow+file+transfer&safe=off

all those answers are dead wrong. it's the change in driver framework.

(specifically, chipset drivers)

windows 98 is no longer useable for a number of reasons (for me it's mostly sata drivers), but it would be way faster than xp, too.

generally speaking, the older an operating system is, the faster it is (when compared on the same hardware). of course, it's going to have less functionality. it may be less safe to access the internet with, in theory if not in practice.

this may seem counter-intuitive, but it shouldn't. making something more complex makes it work slower. what doesn't make any sense at all is the idea that upgrading your os will make your machine run faster.

this is a brief explanation.

"If we're only using two isolation rings, it's a bit unclear where device drivers should go-- the code that allows us to use our video cards, keyboards, mice, printers, and so forth. Do these drivers run in Kernel mode, for maximum performance, or do they run in User mode, for maximum stability? In Windows, at least, the answer is it depends. Device drivers can run in either user or kernel mode. Most drivers are shunted to the User side of the fence these days, with the notable exception of video card drivers, which need bare-knuckle Kernel mode performance. But even that is changing; in Windows Vista, video drivers are segmented into User and Kernel sections. Perhaps that's why gamers complain that Vista performs about 10 percent slower in games. "

https://blog.codinghorror.com/understanding-user-and-kernel-mode/

this explains a bit about the actual problem, without getting into it. i don't really want to spend any more time looking around about this. it's something that nobody seems to want to be published. i wouldn't know this if it weren't for reading internal support memos that said DON'T TELL THE CUSTOMERS THIS all over them.

but, as i've stated, this is irreversible on some hardware, without getting the manufacturers to update their drivers. what's happening is that the drivers are running in kernel mode, when microsoft wants them to run in user mode. this is producing huge amounts of security checks (by design) that slow the fuck out of the file operations. what intel needs to do is rewrite their drivers to run in user mode, like microsoft wants them to do. but they'd rather blame it on vista and tell people they have to upgrade their hardware, as microsoft blames it on the hardware manufacturers (at least internally).

https://msdn.microsoft.com/windows/hardware/drivers/wdf/user-mode-driver-framework-frequently-asked-questions

the result is unusable hardware, on any windows version beyond and including vista.

but, the design changes in how vista uses drivers make xp faster (by design) anyways.

you can think of it as a trade-off between speed and security. xp is all speed, weaker security. vista is all security. now as the hardware has caught up, it's evened out (in terms of perception). but xp remains inherently waaaaay faster.

i mean, this isn't entirely microsoft's fault. it's as much on intel and others (my problem is with intel, i don't know how much others have caught up. initially, nvidia was dragging their feet on this a whole lot.). but, what the hardware people were saying at the time was that microsoft didn't give them enough warning. their engineers had to go through a lengthy retraining process. it's apparently not the kind of change you can gloss over in a weekend. the retraining required was substantial.

how much of that is an excuse, i don't know. but there's a reason that microsoft is widely acknowledged as incompetent. and the whole driver framework switch from xp to vista really demonstrates it.

even so, there's no excuse for this still being an issue, 8 years later.