Why Windows is Slow
hype7 writes "The New York Times is running an article on why they think Windows is so slow. They boil it down to one key factor - legacy support - and they hold up Apple as an example of a company willing to make hard decisions around legacy support in order to provide a better product. From the article: 'Windows is now so big and onerous because of the size of its code base, the size of its ecosystem and its insistence on compatibility with the legacy hardware and software, that it just slows everything down ... That's why a company like Apple has such an easier time of innovation.'"
We saw this just a few hours ago.
So this kind of stuff will make Windows faster? =P From the article: "In those five years, Apple Computer has turned out four new versions of its Macintosh operating system, beating Microsoft to market with features that will be in Vista, like desktop search, advanced 3-D graphics and "widgets," an array of small, single-purpose programs like news tickers, traffic reports and weather maps."
_______
I just wish I could c:\format Internet
Ubuntu definitely ran more quickly for me than my XP machine. Not sure where you're getting that. In fact -- I've hardly ever seen an XP machine that runs 'great'. I remember when we upgraded our windows 98 machine -- it ran amazing 650 Mhz, 128 mb RAM -- I've never seen an XP machine run as quickly as that 98 machine of mine. (Not saying it can't happen -- it's just rare.) And christ -- have you seen most manufacturer basic loads? Dell, HP, Compaq, etc. machines are frequently nearly unusuable right out of the box, because of the garbage programs that come out of the box. In fact, currently my G4 Powerbook runs (1.5 Ghz) runs more quickly than my 2 Ghz Dell with windows XP.
Insightful? I have a P2 350 with 128 MB RAM running the latest Debian, and another with the same specs running Core4. Both are more responsive than my 1.5 GHz Celeron with 512 MB RAM when it's running Windows.
It's like sex, except I'm having it!
They don't mean execution speed. They mean the speed at which Microsoft makes new releases.
-Dave
RTFA -- the article is about why Windows' Vista development and Office development is slow, not why Windows XP runs slowly.
If you ask me, though, that's the right design decision. First you make a system that works according the specifications, and only after that should you worry about optimizations.
As I know that the GP post will be moded really down because of slashdot linux zealots I have to backup his statement, I use Windows XP in my HP Pavillion ZV5000 with 1024 MB of ram and I runs really good, including the Ati 9100 igp the Wifi and the modem. Oh! and the buttons to increase or decrease the volume.
I have not been able to make all those things work with ANY Linux installation out of the box, and I have tried with quite a few including FC4, Ubuntu, Mandriva and SUSE.
Who said only Microsoft could spread FUD!?
Ubuntu is an African word meaning 'I can't configure Debian'
But even stupider responses below illustrating just how many people don't read the article.
Fo those who simply refuse to RTA I will summarize, to wit: the article deals with the pace of Wiindows software releases and the recently announced delay of Vista... not the speed at which the OS loads and executes applications.
I am very small, utmostly microscopic.
And christ -- have you seen most manufacturer basic loads?
I'm a big Linux advocate but this statement is hardly fair since Microsoft isn't the ones adding all of the "crap" to the OS. Also, have you ever loaded up Redhat or Fedora or whatever with what it calls "minimum install" and then gone through to see what it installed? There is over 200-300 meg of crap. ISDN services, modem, etc. Anything installable from the CD shouldn't be on a minimum install by default. Fedora is noticable faster if you go through and remove anything unnecessary.
And before someone says it, Gentoo fixes this and yes I use it. Spending a day emerging KDE wasn't very feasible for a workstation at work though.
Two roads diverged in a wood, and I - I took the one the bus load of girls just went down.
It's not about windows being "slow" as in "OMG!!! SOLITARE LO4DZORZ ZLOW11!1!111!", but as in "Geepers! The Windows development cycle sure is taking its jolly time!".
Legacy support could include being able to run DOS, Win16, OS2 applications, switch to realmode to perform some BIOS functions should the need occur, etc.
l )
There's also code in place to check for old pieces of software which wouldn't otherwise work with newer versions of windows, eg:
I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.
(taken from http://www.joelonsoftware.com/articles/APIWar.htm
These kinds of things are going to have an effect on performance, and an even greater effect on development time (windows, late again?)
The revolution will not be televised... but it will have a page on Wikipedia
RTFA. It isn't about "slow" as in execution speed, it's about "slow" as taking a long time to come to market and introduce new features.
My Ubuntu boot times are very comparable to the XP times on the same box. Oh, and both suspend and hibernate worked flawlessly right out of the box.
Throw the bums out!
Hmm... hibernate support built into Windows which "just works" out of the box, or an unofficial kernal patch set that works most of the time, if you're lucky. Don't get me wrong, I love Linux, but there are a few things where Windows is still far ahead.
The roots of education are bitter, but the fruit is sweet.
--Aristotle
PC with 300 megahertz or higher processor clock speed recommended; 233 MHz minimum required (single or dual processor system);* Intel Pentium/Celeron family, or AMD K6/Athlon/Duron family, or compatible processor recommended 128 megabytes (MB) of RAM or higher recommended (64 MB minimum supported; may limit performance and some features) 1.5 gigabytes (GB) of available hard disk space Microsoft's minimum specifications are completely ludricous. I'm sure, you COULD run Windows XP on a machine of those specs, but forget about running anything with extensive memory requirements (Photoshop or CAD applications or some desktop publishing packages). And it takes up to 2 minutes to start a web browser (even IE). Dream on. Windows XP sucks even a 600 or 800 MHz with 256 MB of RAM.
My blog
Errr ... not really
Linux and OS X come with all drivers they'll ever need (well, most all. ATI and NVIDIA are big exceptions).
The Windows notion of drivers doesn't really work the same way on Linux. On Linux, you install everything you can possibly imagine. The kernel does some probing on bootup, and a variety of kernel-space services handle module dependancies, and it will load whatever is needed (and only what's needed) as the system boots up.
Ever try taking a hard drive with Windows on it and booting it on a system with a different motherboard? Or even just trying turning ACPI off in the BIOS? BSoD, most likely. At a minimum, you'll get 10 minutes of "Finding drivers", and a couple reboots.
Linux doesn't even blink, and modern distributions won't even mess up things like network bindings (the first ethernet card in the system remains eth0, regardless of the chipset).
Shared libraries (the linux equivalent of DLLs) work similarly. There is FAR more library dependancy on linux than Windows; few things on Linux are statically compiled. Instead, the dynamic linker does an excellent job of pulling everything together as needed. You normally don't see performance impacts from compiling in everything including the kitchen sink; and tricks like preloading and prelinking can speed things up more.
Even in terms of services, I think you'd be surprised the stuff that comes with Linux by default. With a slightly more than basic install you'll get a webserver, various network servers, and a full fledged SQL database running. Of course, most distributions also turn the firewall on by default, and block these ports (a very good thing).
I honestly think that architecture has more to do with it than you may think. Few people build a Linux kernel with only the bare essentials. Rather, most everyone builds a slim "main" kernel, and than compiles boat loads of crap into modules, which are then loaded on an as needed basis, for nearly every piece of hardware out there.
Drop an ATI or Happenhauge TV tuner into your system, and the relevant module will be loaded on demand, without user intervention, on the next reboot. Pull it out, and the module will not be loaded on the following reboot.
It presents a very streamlined vision to the user, at least when the drivers are from the mainline kernel tree (the development beta/alpha stuff is much more difficult to use).
WhiteWolf666 an exBush supporter. All you new-school,compassionate,save the children Republicans can rot in hell
No need to make the decision that high up on the upstream. And legacy device support can be useful in the embedded space, or in military systems, or a variety of strange places (aerospace).
Distribution makers need to make this decision. And if you look around, you can find distros that ship kernels that are incompatible with anything pre i586 (and some are now i686)
There really isn't much of a performance benefit to be had from removing that stuff in the kernel. The maintainers for those branches keep stuff working, and new development/optimization goes into the newer stuff.
Strangely, the kernel development process actually works quite well.
WhiteWolf666 an exBush supporter. All you new-school,compassionate,save the children Republicans can rot in hell
About three or four years ago I had to make a decision about what framework to use to develop a hosted subscription based application. Additionally, I was used to Java, knew how reliable Unix was (well at least Solaris) and was on a tight budget. After looking around I decided to give Apple a try because of WebObjects. I figured if it worked for iTunes it would surely work for our new subscription application. So, I went out and bought a 17" Powerbook, 1st edition. WebObjects back then was around $600 (today it is free). Of course my partners, who are afraid of showing up at a corporation with anything other than Microsoft of course bought a couple of Dell laptops. Well I have to say, I am still writing this on that same laptop, have been all over the cafe's in Chicago, client sites, etc., and have to say that this machine has been incredibly awesome, virus free, rock solid, and incredibly productive. I love the Unix underpinnings. WebObjects coupled with Eclipse has been an incredible framework that has definitely given us a HUGE advantage. We have been rolling out updates, improvements, etc., while people I had interviewed earlier are finally just getting their apps rolled out. Meanwhile, my partners have had to upgrade their "flaky" machines.. now to IBMs and are now experiencing other problemss. Then their is IE... yuk.. always something to code around for that, however, having created our app on OSX makes it work on Safari, IE, FireFox and Opera. So while I don't believe the "sheep" of corporate america will change anytime soon.. I don't mind anymore... as the combination of WebObject, Eclipse, Open Source, etc., has given me and my companies a definite, certifiable advantage. You mileage may vary.
Mind | Body | Spirit | Cash
The up and down buttons handle the volume because you have a third party app handling them. You can do the same on Linux. I have Dell laptop, but I assume you can handle the multimedia buttons in the same way. If you press the button and then run dmesg, the last message will say something about unrecognized scancode and then some hex. There is some way to register a scancode with a command to be run. I don't have time to look it up now, Google for it.
We (our family) have moved away from Macs because every major OS release broke half of our software. You end up paying for the new OS plus buying half of your software again. And you can't stick with the old OS because of some new software you need. For all of Windows problems, it has been doing a better job with older software.
PPC Macs run OS-X, OS9, and often, OS-6 software from 1991, which is motorola 68K code, and therefore emulated twice. Intel Macs will run OS-X PPC programs, so once again, generation - 1. Give the community a year, and you will probably find some interest in a PPC emulator allowing OS-9, 8.6, or some other favored PPC version being offered by third-parties or the emulator community for those Macs. (as an aside, I find it humorous that it's probably easier for me to run OS-360 code than PPC/OS9 at the moment, but that's depends on which is more fun to reimplement)
XP runs most programs from the NT days, and periodically older this and thats, with varying degrees of success. Still, as people I know at IBM would put it, "sometimes you have to drag the customer, kicking and screaming, into the future."
Unfortunately for Microsoft's OS team, the customer is the Office team. Given the 40% of Microsoft's income they provide, they can kick and scream quite effectively.
the more accurate the calculations became, the more the concepts tended to vanish into thin air. R. S. Mulliken
What I've never understood is why a company as large as Microsoft never tried to create a second operating systems team with the goal of having it produce a new operating system from a clean slate?
What do you think NT was? Granted, they incorporated the Win16 API, but it was pretty much a new operating system. It took them many years (i.e. until the launch of Windows XP) to merge the consumer line (windows 3.1, 95, 98, ME) and business line (NT 3.51, 4, Windows 2000) into one cohesive codebase. Remember all that hoopla about how ME was going to be built on NT technology and then it never happened (they release a broken update to 98)?
Microsoft brought across a lot of people from DEC who previously worked on VMS to create this great new operating system. In the beginning it was meant for what everyone at the time thought was Intel's future roadmap (a RISC chip that never took off). It was also built from the ground up to be cross-platform (running on DEC Alpha's, MIPS, PowerPC and x86) with a robust HAL.
NT is actually a pretty good architecture as far as OS design goes, but it's true that backwards compatability is causing some problems. My solution would be somewhat akin to what Apple did during the Mac OS 9-OS X transition (and what you are suggesting)...e.g. when a legacy windows 3.1 app is launched, a copy of Windows 3.1 is loaded up to execute it. Obviously, you wouldn't need the entire operating system, it would be much stripped down - things like device drivers would simply be stubs. Same thing for DOS programs (something like DosBox springs to mind).
Yes, this would create a performance hit at the moment, but as on-cpu virtualization and multiple-cores becomes more common-place, they could be put to use powering such a solution. As long as you can still run your 1993 Accounting Software which has become entrenched in your organisation, will it matter that it takes a few seconds longer to launch and a few megabytes of memory more to run?
I am NaN
It's easy to ignore that "fact" since it isn't true at all.
Windows 2000 (1999)
Windows XP (2001)
Windows Server 2003 (2003)
Windows Advanced Server
Windows XP x64 (2005)
Windows Server 2003 x64 (2005)
Source
Perhaps you meant that Microsoft has not made a major tecnhology shift in over 5 years. But that would merely support the point the original poster was trying to make.
To correct you. My brothers iMac G5(the very last model before the Intel switch) Classic wasn't installed but on the cd's right next to the X window application.
He installed it so we could play Star Wars Galactic battlegrounds(OS 8.6) againist each other.
I don't know about the Intel Machines but it was there as of Novemember 2005.
Apple isn't afraid of dropping old tech, They provide a short(3-5 years) time frame. But considering most business must buy new Windows machines every 3-5 years anyway it shouldn't matter. Today you can buya 3.5" usb floppy drive from Apple, but Apple machines don't need the floppy drive to function unlike windows(try installing Sata drivers without one).
i thought once I was found, but it was only a dream.
Mac OS X was released on March 24, 2001. Just because Apple gives it a new "big cat" nickname and charges you for it doesn't make it revolutionary. I've "seen what's changed in 4 years" on a Mac and I have to say it's not that much.
OMG. Are you playing that same damn stupid game the previous guy is playing. First of all HE named OS X Tiger
* Supported Computers - Power Macintosh G3, G4, G4 Cube, iMac, PowerBook G3, PowerBook G4, iBook
* RAM required - 128 megabytes of RAM recommended
- 64MB minimum (barely usable)
* Hard Drive Space - 1.5 gigabytes
- 800MB for the minimal install
Awfully close to the "minimum specs" required to run XP wouldn't you say?
I'm getting too old for this site or something, cuz no one's *thinking* any more.
AirSpeak - http://itunes.com/apps/AirSpeak
Granted, you probably wanted more RAM for similar performance to what you had under the regular MacOS. System 7 was usable at a basic level with 8MiB, and I found A/UX at a similar level of usability with the 17MiB in my IIsi. (Going from memory, not side-by-side tests.) A/UX didn't allocate itself much swap space in a default install, either.
I bought 16MiB to upgrade my Centris in late 1995 IIRC, and I think it was a bit over $100 then. Not pocket change (for me), but not completely horrible.
Constitutionally Correct
Backward compatibility is practically non existent when it comes to science software in Windows. We are still running windows 98/95 (hell we running DOS) to run our instruments because either the companies were small and don't upgrade like larger shops or they don't support the instrument anymore. Let's not talk special software to do math analysis. Backwards compatibilty is a hard target regardless of Apple or Microsoft. However, you can live off of Mac 0S 9 or Mac 10.x with no problems, but malware and viruses make Windows a tough challenge to keep the laboratory running with these old systems.
You don't have to be smart to use a Mac, you just have to be smart enough to buy one
GNU/Linux and UNIX systems solve this problem mostly with versioned libraries. (So does .NET, by the way.) When an API changes in a way that is not backwards-compatible, the library version is incremented. Programs that need the old API can keep using the old library, while new apps can use the new version. Granted, it takes up a little more memory if you've got 2 versions of the library loaded, but UNIX libraries tend to be broken into reasonably small pieces.
Kernel-level APIs can't be handled this way, but most programs don't directly access kernel calls. The standard C library (libc) handles most kernel-level access in a nice thin abstraction layer, which can handle kernel API changes.
I'm not sure exactly how Win32 works, but it seems from my point of view to be way too monolithic. So they don't have the option to upgrade a small portion of the API without creating a set of all new functions.
Software sucks. Open Source sucks less.
OK, there have been no *consumer* releases of Windows since 2001 (excluding XP x64, which was just a port).
Let's have a look at the consumer OS releases since the end of 2000:
Microsoft:
2001: Windows XP
2005: Windows XP x64 (a port)
Apple:
2001: Cheetah
2001: Puma
2002: Jaguar
2003: Panther
2005: Tiger
2006: Tiger x86 (a port)
Each of Apple's releases has been at least as significant as the jump from Windows 95 to 98, and possibly as significant as the jump from XP to Vista (since Vista has lost major features like WinFS). Also, each version of OS X runs faster *on the same hardware*.
Mac OS X virtualizes an OS 9 system and calls it "Classic". It requires the operating system to be installed in order to do so, takes time to load, and incurs a memory cost.
Windows provides separate subsystems and does not require the older operating systems to be installed in order to run old software, and nor does it incur a huge memory cost or load time.
OS X is clearly the crappier solution.
While things change over time in Windows, things have also remained similar; the base Win32 API has been around for over ten years and hasn't been deprecated or replaced. Only with WinFX are major changes coming (but, the old subsystem will still exist).
When it comes down to it, the more eye-candy, the slower the machine
Mac OS X and Vista both employ the GPU on the video card for their "eye candy" effects, so your supposition is incorrect.
This is very true. Like I said, thus far I haven't had any major problems (beyond the annoyance of a few missing codecs, easily replaced), but that doesn't mean it can't happen. I can't even begin to imagine what would happen if someone who did Visual Studio development removed IE!
Thankfully, the developers of nLite took the time to write a little blurb for each component to attempt to describe what it does, and marks "high risk" components in red (i.e. remove at your own risk). In many of the blurbs, they also outline the situations in which it is okay to remove a given component.
Be that as it may, you should still expect to spend a few hours and several CD-Rs finding that right balance for your needs. I also don't suggest it unless you have a second computer standing by on which to make the nLited CD-Rs.
"You will pay for your lack of vision..." - Emperor Palpatine to Ray Charles
Definitely don' delete IE :-)
Windows XP Embedded lets you do a thing similar to what you are describing - you can create an image only with the components you select and the tool keeps track of component dependancies so it prevents you from creating a broken image by requiring the missing dependancies.
This is where the fun starts. There are dependancies you wouldn't imagine. I wanted to create a very minimalistic XP image with basic API functionality and TCP/IP networking. Impossible. The DHCP component requires the SNMP component, which requires the HTML Help component, which requires, yes you guessed it, Internet Explorer !!!! DHCP client -> Internet Explorer : it makes perfect sense.
Then I foolishly wanted to add SP2's firweall support. The firewall required all kinds of COM and DCOM components, including Microsoft Transaction Server (!!!) or similar crap and of course Internet Explorer as well. Why, oh, why, does a network firewall require Microsoft Transaction Server ?
Of course these dependancies are not always critical - I am sure I could have deleted IE from the image and DHCP would still have worked - but nevertheless it is funny that MS claims IE is not a part of the OS, while it must be present in the simplest OS image :-)
Getting back to the subject - I definitely wouldn't use a tool like nLite - you end up with an unsupported custom version of Windows and you never know what is going to break, which service pack or update is not going to install, etc. It is not worth the hassle.
Backward compatibility is practically non existent when it comes to science software in Windows.
Heh. My wife is a scientist. Her group discovered that there was no backward compatiblity between version of Microsoft's Backup program when they tried to get archived data off of tape.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
I know no one will read this, but 16-bit Win16/DOS programs are run via NTVDM.EXE, which is a 16-bit x86 compatability box.
Win16 is handled by the WoW (Windows on Windows) layer which
run within ntvdwm.exe and maps Win16 to Win32 calls - this all comes with a performance penalty (not as much as say Rosetta because that requires and architecture transition).
Ever hear of the WOW64 on Win64!? Guess what that does!?
Slashdot is full of some of the most uninformed supposed geeks.
Also,you wrote:
>While things change over time in Windows, things have also
>remained similar; the base Win32 API has been around for over
>ten years and hasn't been deprecated or replaced.
What Win32 API have you been using? Have you seen all the "Ex" APIs floating around? Yes - the old ones are still there and work, but Microsoft has deprecated APIs and added many new ones - especially in the kernel - making shipping a single binary for 2003/XP/2000/NT4 more difficult.
> Why do think Apple dumped so much money into Copeland? Because at that point in time, the average Mac had 8MB of RAM and they could never have shipped a Unix-based OS that required 64MB or so of memory.
/refused/ Hulot's Interface Builder. Isn't that dumb ?
Yeah, whatever. Bullshit.
At that exact same date, NeXTstep 2.0 was running on my 16Mb cube along with several applications and a sybase server. And NeXTstep 1.0 was running on my 8Mb cube.
At the same time, copland/pink was demoed on rs-6000 machines with 128mb of ram. And crawling.
Don't rewrite the past. Copland/Pink was a waste of money because Apple engineers were dumb. 2000 fucking C++ classes. Amazing. I studied those APIs, it was a mess. As dumb as BeOS, just bigger.
Apple got the GUI right, and always the OS wrong. And descendents, like PalmOS (yes, if you look at palmos, it was clearly a MacOS brainchild). BeOS too.
Apple
In the opposite, NeXT's Bertrand Serlet, when he did FoundationKit for EOF, just did The Right Thing in term of APIs, and then optimized later.
Result: 10 years and several implementations later, the API is still here. And will still be here in 10 years.
"OS X is clearly the crappier solution."
No not really.
OS X is only the crappier solution if running old apps is more important than running new apps.
All the old windows cruft going back... However long has an impact on new programs. OS Xs solution keeps all the cruft in a nice little box that can be forgotten about. The fact that older software is slightly harder to run also encourages people to port their software to the new OS and get out of the compatibility box.
OS X is the crappier solution for running old software.
Windows is the crappier solution for writing new software.
One is not clearly better than the other. Each has it's advantages and drawbacks.
As a user I like OS/Xs method. I want the latest and greatest. As a developer I like Windows method. Why you ask? Simple I don't have to port my code to the new environment to have it look right. Frankly the bar for Windows developers is much lower than Mac. You can get by with a lot less effort for a longer amount of time in Windows than the Mac.
A proper Windows98 program will look good and run well under XP and if you do things the right way under Vista as well.
That is the point of the article. Windows is being held back by all the old crap that adds complexity and makes moving forward a real pain.
Should Vista still run old dos programs? If so maybe DOS and 16 bit windows programs should be run in a VM out of the way.
The other way it is hold back innovation is that it is really easy to sit on your laurels in the Windows world. Once you are established it is hard to get bumped out of your position. It is really hard to write a much better Windows program than what is already established in the marketplace. A big change like from Dos to Windows and OS/9 to OS/X is like a fresh start. Everyone has to come up with something new and innovation can really happen.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
And guess what the requirements for Vista is going to be?
There's no need to guess, the requirements have already been posted.
Only weeks? my WinXPPro box was last rebooted in August of 2005!! and it's not nLited or XPLited, either, tho I did turn off the etch-a-sketch gunk. And it's on a lowly P3-500/768mb RAM. Runs smoothly, if not crisp. (Its jobs are Photoshop, CorelDraw, Office, multimedia, etc.; it doesn't do internet, so no one worries about patches or SPs.)
Also, the default XP install should only run about 1.3GB, including the default swapfile (or a bit over 700mb without). I've never seen one bloat up into the 3GB range, and I espect something is wrong when that happens. Or that's including swapfile, hibernation file (same size as your RAM), and maybe an arseload of undeleted temp-install files.
Even so... I've often grumbled that WinXP should have shipped as a clean Win2k-alike version that was purely the OS and needfuls (including more or less the same feature set as Win2K), and a Plus Pack for all the eye candy and consumer-glitter applets. That way everyone would have a cleaner machine to start with, and those who want the Plus Pack could install it themselves. Everybody happy!
~REZ~ #43301. Who'd fake being me anyway?