Monday, June 04, 2007

Irresponsibly Ripping Apart Windows

There are some people out there apparently so smart they think they can do things better than the programmers at Microsoft. These hacks irresponsibly recommend ripping out components of Windows to make 'lighter' versions with absolutely no clue as to the consequences of their actions. They mislead others and cause untold amounts of headaches for support staff of PC and software vendors.

I've been dealing with end user support for a very long time and have consistently found the most obscure problems to be user induced. Whether the end user mindlessly overclocked, applied useless mythical 'tweaks' or the current trend of irresponsibly and dangerously ripping out core components of their operating system you can be sure of who will be blamed first when there is a problem, Microsoft.

Microsoft programmers believe it or not include the files they do for a reason. The components they recognize as safe to remove can be done so through the add or remove programs option in the control panel. The rest should not be removed unless you can verify with the programmer who added it that it is safe to remove on your system. These 'hacks' who recommend these 'light' builds or ripping out core components have done no such thing. They have no idea what applications, components or features of Windows require which files let alone third parties. They have no idea of the full consequences of removing component 'X'. If they claim they do they are either fools or lying. When you install an application, game or device you need to realize that they were tested only on standard installs and may require files to be present that you are completely unaware of. This can lead to the application, game or device to not work, generate an error or crash. Removing a critical system file or component can lead to system instability, errors or even worse, data loss.

Software Bloat

Window is designed to be everything to everybody and thus includes various components and applications you may not use. This inevitably leads to some perceived 'bloat' but the problem is this can only properly be rectified by Microsoft programmers not the online community of hacks. What may seem as 'bloat' to one person is a necessary application, compatibility fix or driver to another. Many files are present for backwards compatibility with poorly written applications that Microsoft has gone out of their way to ensure works, short of rewriting the old application themselves. In the end Microsoft has learned that it is better for something to work out of the box than deal with the support issues of it not.

How many files or registry entries you have or Window's Services running does not effect your general system performance. These Myths are widely misunderstood by the ignorant hacks who spread them:

"Deleting files does not improve application, gaming or system performance. All it does is increase your available disk space. While AntiVirus and AntiSpyware scan times and general disk search times can be reduced, these are not what people associate with improved performance."

"A few hundred kilobytes of unused keys and values causes no noticeable performance impact on system operation. Even if the registry was massively bloated there would be little impact on the performance of anything other than exhaustive searches."

"Disabling other unnecessary services in general has only one affect on performance and that is reduced Windows XP boot times."

Trail and Error

This is used by people who have little knowledge in the problem area and are essentially guessing. In the computer field this is a poor substitute for Researching and an absolute waste of time. Everything in your computer from the hardware to software has already been created by someone and there is someone who knows how it works. With Windows this is Microsoft. Trial and error makes no attempt to discover why a solution works, merely that it is a solution (sometimes not) but not all solutions, and certainly not the best solution. This is what makes using Trial and Error useless with computer software. Hacks who rely on this method have a poor understanding of computers, logical devices in general and lack proper researching skills. I have been doing this for well over 15 years and extensively research and learn how something works before assuming how it works or irresponsibly guessing. I have read many books, attended many seminars, courses and know where to reference the information I need. "Trial and Error" Techs, Administrators and End Users are worthless and have no business giving advice to anyone else. These hacks are the equivalent of a car mechanic who rips out the "useless" radiator to save on "weight". Hey but the car still seems to run!


nLite is a powerful free program that can be useful for service pack integration, unattended setups and driver integration. I have used it extensively and it works fine for these tasks. However this program also allows unknowledgeable users to carelessly rip out components of Windows, all the while thinking they are improving performance by reducing the install size without any fully documented, reproduceable and verifiable proof of any performance gains. Least of all anyway to guarantee system stability, application compatibility and error free operation due to their actions. The latter is impossible by all but the Microsoft programmers who put the files there to begin with.

Until Microsoft fully documents each and every reason for being, interaction, association and dependency of each file and registry value for Windows in depth, ripping apart Windows will continue to be a fools errand. One that no sane person should ever attempt.


Yo said...

Try trial-error...

Andrew said...

That is idiotic. The files were not added by trial and error and trial and error does not determine why they were added. Until that is known completely and fully you can make no such judgements and trial and error is useless.

Unknown said...

I must say that trial and error is far from useless in this case, though I agree with you in part. If someone wants a faster OS than XP, they shouldn't bother using XP. Either go for an OS designed to be insanely fast, or get a last-generation OS. Though the latter option can be risky if you don't bother too much about your own security...

Andrew said...

Trial and Error is completely useless. It is impossible for Trial and Error to determine why a file exists, only the programmer(s) who put it there know why. You cannot determine every application that relies on these files being present. A perfect example is the Windows XP Task Scheduler Service which is necessary for the performancing enhancing Prefetch feature to work properly yet many foolishly disable it or rip it out with these programs. So instead of improving performance they are reducing performance. In terms of best performance, Windows XP is currently the best performing Windows OS on all things but DirectX 10 games (which it does not support). Using any Windows OS older than Windows 2000 is foolish since they are unstable (except NT) and are not currently supported with security patches.

Unknown said...

fools errand? Just because it doesn't appeal to you doesn't make it insane. Not everybody that that rips windows is totally ignorant of the risk and not everyone totally strips his system. we do know of the functions of certain files and if they are useless to our purpose why keep them? Program compatibility is the reason we stick with Windows. Some of you seem to be running Windows for Windows; we run it for the sake of our purpose

Andrew said...

Unless you were one of the programmers who placed the file there you are by default ignorant. You may know of A function or some functions of a file but it is simply impossible for you to know them all unless you were the one who put it there. The fact that you think you know makes you even more ignorant. Windows may be a multi-purpose OS but in use only. It is not a customizeable OS outside of the bounds the programmers have created for you to customize it.

Arneh said...

XP can be as customizable as one wants it to be. After all, Microsoft do have "XP Embedded" that developers that don't work for Microsoft can use to build their own customized version of Windows XP by adding/removing whatever components they deem necessary. nLite is doing the same thing but in reverse, working with the full pre-built file set and removing the files associated to specific tasks.

Folks who develop and use programs like nLite are mostly in no way different than the developers who use XP Embedded.

Adam Thompson said...

Unless you were the programmer, you are by default - ignorant?

Well, in that case - everybody is ignorant. Windows isn't developed by one person on their own.

As for trial and error - if bits of Windows didn't get included/excluded by trial and error - why the need for Release Candidates and Betas?

idioteque said...

That's not the point andrew. Some users want the choice of installing files and services. The fewer services are run and are present, the better the overall security of the system. Fewer code means fewer bugs.

Now that MS choose not to document most of it's files and services is not the programmers error. We want to have a choice !

Andrew said...

You can simply disable services via the built-in services GUI: services.msc

This will have the same effect on security and boot performance. However the TaskScheduler Service needs to remain set to automatic for optimal Windows and application load times.

Ripping them out does nothing but cause potential compatibility problems. You actually can cause more errors by ripping them out without knowing exactly what they do.

That is fine that you want a choice but only the Microsoft programmers can provide you with this while maintaining compatibility and error free operation.

Andrew said...

I am well aware Windows was not developed by one person but when an internal programmer wants to know how something works they talk to the person(s) who developed it to accurately understand the implications of it.

Release Candidates and Betas are to hunt for bugs and unusual activity not picked up by internal Beta testing. It is a refinement process and has nothing to do with ripping out files from a final release. What you are talking about is bug fixing which has nothing to do with ripping out core components. Only Microsoft Programmers who have access to the source code can fix these issues.

Any room for "improvement" Microsoft Programmers leave they document fully and has nothing to do with ripping out core components of the OS.

The "Open Source" community has nothing to do with Windows.

Again READ, I clearly state that you can use nLite for integrating hotfixes, service packs and drivers. It appears many people do not read what is stated.

Andrew said...

One person or a few allegedly having "no problems" by ripping out components justifys and proves nothing. Once you remove something from the default install in a way Microsoft does not specify and run into ANY issues later down the line you can never be sure that it was not because of your actions.

The Windows XP Embedded Team has direct access to the programmer(s) and team(s) who wrote all the files included in Windows XP and can get accurate information on how something works and why it is included. The programmers of nLite do not work for Microsoft and do not have access to ANY of the resources and internal information the Windows XP Embedded Team has.

It is impossible for testing to fully determine a file's use. Some files may only be accessed in specific situations which has already been internally tested for and is not documented.

Opinions have nothing to do with the fact that those recommending removal of components and files do not have the full working knowledge of why that file or component is there nor the implications of recommending it be removed.

Andrew said...

Before anyone starts talking about "developer documentation" and "tracing function calls" please show me where the community of hacks is doing this and attempting to clearly document their findings with sources from Microsoft and the potential implications of such. Last time I checked programs like nLite gave no such explanations, warnings or consequences for ripping out component "x"

FYI developer documentation is there for Windows "developers" to assist them in writing Windows applications, drivers and things like add-ons for IE. If someone could provide me with the developer documentation for ripping out core components and files of Windows I would be interested.

Adam Thompson said...

If Beta testing has nothing to do with "ripping out files" - why do features go missing after RTM? Where did the ability to create PDFs in Office 2K7 go? It was ripped out of the build. What happened to WinFS in Vista??

As for asking the person(s) who wrote a particular feature - that's why we have MSDN, Technet and the rather marvellous blogs from the likes of Raymond Chen and Larry Osterman.

I think you've picked the wrong target here. I have no problem with nLite being used in a production environment - especially with the slipstreaming functionality. I'm not so sure I'd be so quick to see things like ResHack and WindowBlinds being used in the same light.

And no - Microsoft aren't the first to be blamed when things go wrong. When putting together images or unattended scripts, I've never blamed MS for things going wrong. You need to make a distinction between people who know what they're doing (and thusly when the blame lies with themselves) and those in the Garbage-In Garbage-Out camp - who will blame anyone but themselves (be that nLite or MS). The latter category will meet with limited success wether they're using nLite or Excel.

Pertinent quote:

On two occasions I have been asked, ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.

Andrew said...

The features go missing for various reasons.

Microsoft removed PDF creation from Office 2007 due to Adobe threatening them with legal action.

WinFS was not working right ect...

Beta Testing has to do with finding bugs, it is not were Microsoft expects to "rip out files", the ones in the final release are all included for a specific reason. The ones that are removed are done for various reasons.

MSDN, Technet, Raymond Chen and Larry Osterman are all great resources but you still do not have all the information. And I can assure you these hacks do not read them.

I am not sure what you are talking about with nLite. I repeated over and over I do not have a problem with it being used to slipstream ect... Because I am only refering to ripping out core components!

While it is nice to hear someone take responsibility for their own actions you are in the very small minority.

Anonymous said...

Well, say what you will, I suppose. But I use nLite to take out Windows Movie Maker, Windows Media Player, Accessibility Options, Outlook Express, and a few other programs that I wouldn't use under any circumstances. I also remove all the Remote Registry and other RPC based remote access services to tighten security. I've yet to suffer any ill effect.

Granted, it's possible to cause issues removing core functions. However, it's the same principle as on Linux - you are responsible for knowing what your programs need. For instance, if I remove the Internet Explorer Core, then I know upfront that Steam is going to want it there to display the online store. Therefore it remains in, because I like to purchase games through Steam. Easy enough. :)

I would highly recommend against anyone using nLite or other methods that are either not intimately familiar with Windows and the registry, or are not willing to do the amount of research it takes to ensure that you aren't removing something you need.

For myself, however, everything I use works with my customized Windows installation. And the only issues I've ever had with Windows has not been due to what I've removed (ie, I've found/corrected the problem and it was unrelated).

Andrew said...

Any service can be disabled without ripping it out.

There is no same priciple as Linux because Windows is not built openly and thus you have no idea of the consequences of your actions.

There is no way to do the research with Windows to determine what core components you can be safely removed because there is no documentation on this from Microsoft!