Microsoft Dev Explains Why Windows is Slower than Linux
170 replies, posted
[QUOTE]"I Contribute to the Windows Kernel. We Are Slower Than Other Operating Systems. Here Is Why."[/QUOTE]
[QUOTE][URL="https://news.ycombinator.com/item?id=5689391"]I was explaining on Hacker News why Windows fell behind Linux in terms of operating system kernel performance and innovation.[/URL] And out of nowhere an anonymous Microsoft developer who contributes to the Windows NT kernel wrote a fantastic and honest response acknowledging this problem and explaining its cause. His post has been deleted! Why the censorship? I am reposting it here. This is too insightful to be lost. [Edit: The anonymous poster himself deleted his post as he thought it was too cruel and did not help make his point, which is about the social dynamics of spontaneous contribution. However he let me know he does not mind the repost at the condition I redact the SHA1 hash info, which I did.] [Edit: A second statement, apologetic, has been made by the anonymous person. See update at the bottom.]
"""
I'm a developer in Windows and contribute to the NT kernel. (Proof: the SHA1 hash of revision #102 of [Edit: filename redacted] is [Edit: hash redacted].) I'm posting through Tor for obvious reasons.
Windows is indeed slower than other operating systems in many scenarios, and the gap is worsening. The cause of the problem is social. There's almost none of the improvement for its own sake, for the sake of glory, that you see in the Linux world.
Granted, occasionally one sees naive people try to make things better. These people almost always fail. We can and do improve performance for specific scenarios that people with the ability to allocate resources believe impact business goals, but this work is Sisyphean. There's no formal or informal program of systemic performance improvement. We started caring about security because pre-SP3 Windows XP was an existential threat to the business. Our low performance is not an existential threat to the business.
See, component owners are generally openly hostile to outside patches: if you're a dev, accepting an outside patch makes your lead angry (due to the need to maintain this patch and to justify in in shiproom the unplanned design change), makes test angry (because test is on the hook for making sure the change doesn't break anything, and you just made work for them), and PM is angry (due to the schedule implications of code churn). There's just no incentive to accept changes from outside your own team. You can always find a reason to say "no", and you have very little incentive to say "yes".
There's also little incentive to create changes in the first place. On linux-kernel, if you improve the performance of directory traversal by a consistent 5%, you're praised and thanked. Here, if you do that and you're not on the object manager team, then even if you do get your code past the Ob owners and into the tree, your own management doesn't care. Yes, making a massive improvement will get you noticed by senior people and could be a boon for your career, but the improvement has to be very large to attract that kind of attention. Incremental improvements just annoy people and are, at best, neutral for your career. If you're unlucky and you tell your lead about how you improved performance of some other component on the system, he'll just ask you whether you can accelerate your bug glide.
Is it any wonder that people stop trying to do unplanned work after a little while?
Another reason for the quality gap is that that we've been having trouble keeping talented people. Google and other large Seattle-area companies keep poaching our best, most experienced developers, and we hire youths straight from college to replace them. You find SDEs and SDE IIs maintaining hugely import systems. These developers mean well and are usually adequately intelligent, but they don't understand why certain decisions were made, don't have a thorough understanding of the intricate details of how their systems work, and most importantly, don't want to change anything that already works.
These junior developers also have a tendency to make improvements to the system by implementing brand-new features instead of improving old ones. Look at recent Microsoft releases: we don't fix old features, but accrete new ones. New features help much more at review time than improvements to old ones.
([B]That's literally the explanation for PowerShell. Many of us wanted to improve cmd.exe, but couldn't.[/B])
More examples:
[I]We can't touch named pipes. Let's add %INTERNAL_NOTIFICATION_SYSTEM%! And let's make it inconsistent with virtually every other named NT primitive.
We can't expose %INTERNAL_NOTIFICATION_SYSTEM% to the rest of the world because we don't want to fill out paperwork and we're not losing sales because we only have 1990s-era Win32 APIs available publicly.
We can't touch DCOM. So we create another %C#_REMOTING_FLAVOR_OF_THE_WEEK%!
XNA. Need I say more?
Why would anyone need an archive format that supports files larger than 2GB?
Let's support symbolic links, but make sure that nobody can use them so we don't get blamed for security vulnerabilities (Great! Now we get to look sage and responsible!)
We can't touch Source Depot, so let's hack together SDX!
We can't touch SDX, so let's pretend for four releases that we're moving to TFS while not actually changing anything!
Oh god, the NTFS code is a purple opium-fueled Victorian horror novel that uses global recursive locks and SEH for flow control. Let's write ReFs instead. (And hey, let's start by copying and pasting the NTFS source code and removing half the features! Then let's add checksums, because checksums are cool, right, and now with checksums we're just as good as ZFS? Right? And who needs quotas anyway?)
We just can't be fucked to implement C11 support, and variadic templates were just too hard to implement in a year. (But ohmygosh we turned "^" into a reference-counted pointer operator. Oh, and what's a reference cycle?)[/I]
Look: Microsoft still has some old-fashioned hardcore talented developers who can code circles around brogrammers down in the valley. These people have a keen appreciation of the complexities of operating system development and an eye for good, clean design. The NT kernel is still much better than Linux in some ways --- you guys be trippin' with your overcommit-by-default MM nonsense --- but our good people keep retiring or moving to other large technology companies, and there are few new people achieving the level of technical virtuosity needed to replace the people who leave. We fill headcount with nine-to-five-with-kids types, desperate-to-please H1Bs, and Google rejects. We occasionally get good people anyway, as if by mistake, but not enough. Is it any wonder we're falling behind? The rot has already set in.[/QUOTE]
[url]http://blog.zorinaq.com/?e=74[/url]
more in the source
someone posted a tl;dr on another forum, it sorta explains some of this guy's stuff, it's not the best: "[I]tl;dr: In the Linux world, people are praised in glory for even small improvements in efficiency. In the Microsoft world, your managers don't care if you improve performance by 5% (the percentage needs to be very large in order for people to care). There is also no 'formal or informal program of systemic performance improvement.' Also, Google & other large companies keep buying Microsoft's devs to work for them.[/I]"
an example of what not enough testing can cause: [url]http://blogs.technet.com/b/markrussinovich/archive/2007/08/27/1833290.aspx[/url] (network performance was reduced by playing audio in Windows Vista)
[quote]our good people keep retiring or moving to other large technology companies, and there are few new people achieving the level of technical virtuosity needed to replace the people who leave. We fill headcount with nine-to-five-with-kids types, desperate-to-please H1Bs, and Google rejects. We occasionally get good people anyway, as if by mistake, but not enough. Is it any wonder we're falling behind? The rot has already set in.[/quote]
Sounds a bit fatalistic doesn't it?
Steve Jobs was very anal about minor performance increases
That's why osx is as fast as some distros of Linux fyi
I'm literally revising OS architecture at this very moment, so this fascinates me.
It's an interesting balance with Linux, the community means progress is made fast, but everything is bare, and every vulnerability is known about and exploitable.
It's basically just reaffirming what everybody else already knows, isn't it? Microsoft operating systems are bloated and inefficient, and so is the company. They need to clean out their attics and get back to the basics.
[QUOTE=Awesomecaek;40609405]Sounds a bit fatalistic doesn't it?[/QUOTE]
Microsoft has some serious management issues and it shows in some of their products. Honestly not being dependent on Windows would be the best thing to happen to the computer industry.
Proved what I thought for a long time, that Microsoft doesn't bother to do stuff like this because people simply cannot switch to another OS.
[QUOTE=Big Dumb American;40609427]It's basically just reaffirming what everybody else already knows, isn't it? Microsoft operating systems are bloated and inefficient, and so is the company. They need to clean out their attics and get back to the basics.[/QUOTE]
honestly that doesn't seem like it's going to happen, seems almost like people moving away from Windows (which they are doing due to iOS and Android, but that's also moving people away from PC's entirely regardless of OS or OEM) would be easier and more doable that Microsoft unfucking itself
[QUOTE=meppers;40609420]Steve Jobs was very anal about minor performance increases
That's why osx is as fast as Linux fyi[/QUOTE]
Linux is a lot of things. Slow and fast, possibly much faster than OSX.
I think you mean 'OSX is as fast as Ubuntu'
[QUOTE=Genericenemy;40609471]Proved what I thought for a long time, that Microsoft doesn't bother to do stuff like this because people simply cannot switch to another OS.[/QUOTE]
hence why the people who go "why should I leave Windows even if X got my programs, I am familiar etc" holds no water.
I'd try Mint but I game too much and the command line is daunting as hell.
I'd love to see Microsoft dedicate a year of development to cleaning out their code.
[QUOTE=Naaz;40609507]I'd try Mint but I game too much and the command line is daunting as hell.[/QUOTE]
Mint doesn't actually [I]require [/I]any use of the terminal.
I mean, if you want to be super productive you will eventually use it, but if you're a non-power user you will use it just as much as you have to use CMD.
[QUOTE=Daniel M;40609518]I'd love to see Microsoft dedicate a year of development to cleaning out their code.[/QUOTE]
what I've noticed in allot of these threads is people wanting, sometimes even begging, Microsoft to do something they simply will never be doing. I call this "The Microsoft Problem". It's people wanting Microsoft to do all these different things, when they could just simply not use Microsoft products and avoid the problem in the first place. But thanks to their monopoly on program compatibility, very few will do that.
[QUOTE=The Baconator;40609452]Microsoft has some serious management issues[/QUOTE]
I can name one obvious product, but you'd all be able to guess it.
Microsoft needs to start all over, yet provide backwards compatibility through some sort of "virtualization" service.
[QUOTE=Naaz;40609507]I'd try Mint but I game too much and the command line is daunting as hell.[/QUOTE]
I Installed Mint yesterday, the instalation and day to day usage doesn't require the terminal at all (but I prefer it of course, apt-cache search <terms> and apt-get install <package> is just much quicker than using a graphical tool).
[QUOTE=danharibo;40609566]I Installed Mint yesterday, the instalation and day to day usage doesn't require the terminal at all (but I prefer it of course, apt-cache search <terms> and apt-get install <package> is just much quicker than using a graphical tool).[/QUOTE]
[code]
sudo su
apt-get update && apt-get upgrade
[/code]
Bam, system is getting updated.
[QUOTE=The Baconator;40609480]honestly that doesn't seem like it's going to happen, seems almost like people moving away from Windows (which they are doing due to iOS and Android, but that's also moving people away from PC's entirely regardless of OS or OEM) would be easier and more doable that Microsoft unfucking itself[/QUOTE]
Sure, but this isn't the first time a Titan has fallen. Same thing happened to Apple way back in the day, in the late 90's or early millennials, when Microsoft rose back into power. Once upon a time, Apple was the educational standard; you found them in just about every school computer lab in the country. Then they got toppled and lost most of their major contracts when Microsoft came in with something better, faster, and cheaper.
Microsoft is still a huge business, and even if they fall apart and lose their lion's share of the market to Google, or Linux, or anybody else, they won't stop being a player. They'll just have to clean house and get back to what made them popular in the first place, like Apple did when this happened to them.
If I didn't fall into PC gaming, I'd use a distro.
[QUOTE=Durrsly;40609637]If I didn't fall into PC gaming, I'd use a distro.[/QUOTE]
It's perfectly possible to dual boot, a lot of linux distros don't need a whole lot of space either so you can put them on a pretty small partition.
[QUOTE=Durrsly;40609637]If I didn't fall into PC gaming, I'd use a distro.[/QUOTE]
I'm happy Valve is venturing into this market for Linux based OS's the only reason I use Windows is for games.
[QUOTE=Big Dumb American;40609427]It's basically just reaffirming what everybody else already knows, isn't it? Microsoft operating systems are bloated and inefficient, and so is the company. They need to clean out their attics and get back to the basics.[/QUOTE]
Microsoft is in a shitty spot. Windows essentially needs a complete rewrite from the ground up, but if they do this they'll lose most of their corporate customers and never get them back. If Windows 9 breaks everything and companies are forced onto OSX or Linux, we'll be at Windows 20 before any of them are willing to switch back.
MS is forced to ride on a turtle, everyone else can ride on hares, and this is the real world where the turtle doesn't win
Is there any proof this is a microsoft dev? The source is a blog posting about a [b]comment[/b] that was apparently deleted. The blog owner had this to say about himself
[QUOTE]I live in the Los Angeles metro area, and work for Adconion as a senior software engineer. I graduated in 2003 from EPITA (École Pour l'Informatique et les Techniques Avancées), a computer science school located near Paris, France. I am passionate about free and open source software, high-performance computing, GPGPU, computer and network security, assembly optimization (AMD64, x86, ATI CAL IL), low-level programming, reverse engineering, security vulnerability research and exploitation, Linux, BSD, Solaris kernels internals, operating systems design, computer architecture, etc.[/QUOTE]
It's not like I'd have a huge doubt for some of the things in the post but this is nowhere near credible enough to be considered legitimate in my opinion.
[editline]11th May 2013[/editline]
[QUOTE=Zeke129;40609704]Microsoft is in a shitty spot. Windows essentially needs a complete rewrite from the ground up, but if they do this they'll lose most of their corporate customers and never get them back. If Windows 9 breaks everything and companies are forced onto OSX or Linux, we'll be at Windows 20 before any of them are willing to switch back.
MS is forced to ride on a turtle, everyone else can ride on hares, and this is the real world where the turtle doesn't win[/QUOTE]
Do you have any idea how insane it is to suggest re-writing an OS from the ground up? Besides, Linux's performance is honestly not that much better than windows - especially in the areas that most of us are concerned with. Valve's L4D2 implementation that they got running as best as possible on both windows and linux had only the very slightest increase in performance on linux... and you want a complete re-write of an OS that's been in development for decades over that?
They need to replace NTFS ASAP.
Proud to be on Linux. Only on Windows when I'm playing something. Other than that, I'm on Mint.
[QUOTE=kurry;40609680]It's perfectly possible to dual boot, a lot of linux distros don't need a whole lot of space either so you can put them on a pretty small partition.[/QUOTE]
It's quite a hassle to dualboot though.
[QUOTE=PredGD;40609811]Proud to be on Linux. Only on Windows when I'm playing something. Other than that, I'm on Mint.[/QUOTE]
I've even managed to convince my dad to switch too, he has Mint Linux Mate on his 2nd PC and has already asked me about installing it onto the computer we have wired into the TV downstairs.
The whole platform is getting a ton of attention from indie devs and even some larger developers, I don't find myself playing games often but the majority of my game library runs on Linux.
Yeah there needs to be a rewrite, though they do not need to break everything doing so. They could have Windows 7 as the main backwards compatible os, while the rewrite could be something of it's own and both be supported. That is what Microsoft should really be doing right now.
[QUOTE=Elspin;40609710]
Do you have any idea how insane it is to suggest re-writing an OS from the ground up? Besides, Linux's performance is honestly not that much better than windows - especially in the areas that most of us are concerned with. Valve's L4D2 implementation that they got running as best as possible on both windows and linux had only the very slightest increase in performance on linux... and you want a complete re-write of an OS that's been in development for decades over that?[/QUOTE]
You can't keep adding new coats of paint if the wall itself is rotting and falling apart
There will come a time where the core components of Windows need to be redone
[QUOTE=Zeke129;40609927]You can't keep adding new coats of paint if the wall itself is rotting and falling apart
There will come a time where the core components of Windows need to be redone[/QUOTE]
If parts need to be re-written, they will be - that's not the same as starting from scratch. Windows is nowhere near "rotting and falling apart" anyway, it's come a long way and gotten a lot better since it started and I'm not really seeing it going away anytime soon.
Sorry, you need to Log In to post a reply to this thread.