Engineering Windows 7

Welcome to our blog dedicated to the engineering of Microsoft Windows 7

Beta to RC Changes – Turning Windows Features On or Off

Beta to RC Changes – Turning Windows Features On or Off

The theme of “choice and control” has been applied in many aspects of how we have designed Windows 7. We’ve certainly received lots of positive feedback about the theme and about the choices we’ve made in the design, and we’ve also received a few suggestions for how we might continue to implement this theme in the future. We’ve received feedback for features that should be even more customizable (such as Explorer or the logon screen) or features that should be added to Windows (such as a PDF format reader, security tools, or disk utilities). And we’ve received feedback that some users might prefer to run Windows without certain features. This post is about a point of choice and control in the Windows 7 control panel called “Windows Features” which is where you can choose to turn various features of Windows on or off. This continues our discussion of changes we have made based on feedback from the Beta as we progress to the Release Candidate. This post is by Jack Mayo who is the group program manager for our Documents and Printing team and also worked on Internet Explorer 8. --Steven

“Turning Windows Features On or Off” has a long history in Windows, going back to the earliest days of the 32-bit code base. We’ve received a lot of suggestions about features that you would like to turn on or off using your own criteria for choice. For Windows 7 we’ve engineered a more significant list of features and worked to balance that list in light of the needs of the broad Windows platform as well. We want to provide choice while also making sure we do not compromise on compatibility by removing APIs provided for developers. We also want to strike the right balance for consumers in providing choice and balancing compatibility with applications and providing a consistent Windows experience.

We know many have specific ideas of what constitutes a “feature” or a “program” in Windows and what constitutes an identifiable “part” of the operating system, and yet we also know different people can have different points of view, often strongly held. Some might take an end-user approach and identify a feature based on a window or start menu shortcut. Some might take an approach based on one perspective of architectural subsystems, such as storage or security. Some might take an approach based on what to some are alternate choices to some similar functionality. All of these are valid in some context, but would not result in consistently identifying “features” considering these varied points of view. As engineers we know that no software system can be decomposed into an arbitrary set of layers or parts and any decomposition is likely to change over time.

We don’t want the discussion about this feature or these choices to digress into a philosophical discussion about the definition of an operating system, which is ultimately a challenging exercise (judging by the revision history on the community page), but we do want to improve a feature centered on helping to meet the feedback expressed by some over the summer when this blog started.

In the Release Candidate for Windows 7 we have extended the control panel called “Windows Features” which is available from the standard “Programs and Features” control panel (we often call this ARP, for the original name of Add/Remove Programs). This location is unchanged from Vista and XP, though the wording has been clarified. In Windows 7 if you bring up the Windows Features control panel by clicking on “Turn Windows Features on or off” (or just typing “Windows features” in the start menu) you will see the following in the Release Candidate (by default the hierarchy is not fully expanded, but in this screen shot I’ve expanded some elements for additional information):

Windows Features control panel

For those familiar with the Vista version or the Beta version of this dialog you will notice the list has grown. Let’s talk about what we’ve added and briefly how it works.

If a feature is deselected, it is not available for use.  This means the files (binaries and data) are not loaded by the operating system (for security-conscious customers) and not available to users on the computer. These same files are staged so that the features can easily be added back to the running OS without additional media. This staging is important feedback we have received from customers who definitely do not like to dig up the installation DVD.

For any of the features listed you can change the state to enable it or disable it. The Vista and Windows 7 beta control panel lists a wide range of features. Some are targeted towards Developers working on a client workstation (IIS, MSMQ, etc.), others are utilities for network administrators and enthusiasts (RSM, SNMP, Telnet, etc.), and some are features customers have asked us to make optional (Games, Fax and Scan, Tablet PC components).

In Windows 7 we are expanding the number of features you have control over in this regard, giving customers more control, flexibility and choice in managing the features available in this version of Windows.  In addition to the features that were already available to turn on or off in Windows Vista, we’ve added the following features to the list in Windows 7:

  • Windows Media Player
  • Windows Media Center
  • Windows DVD Maker
  • Internet Explorer 8
  • Windows Search
  • Handwriting Recognition (through the Tablet PC Components option)
  • Windows Gadget Platform
  • Fax and Scan
  • XPS Viewer and Services (including the Virtual Print Driver)

It is worth describing the details of “remove” since this too is a place where there are engineering and customer decisions to be made. We’ve already seen one decision which is to make sure we keep the features staged for future use so that a DVD is not required. A second decision is that we also continue to support the APIs available for features where these APIs are necessary to the functionality of Windows or where there are APIs that are used by developers that can be viewed as independent of the component. As many of you know these are often referred to as “dependencies” and with Windows the dependencies can run both internal to Windows and external for ISVs.

It should be no surprise, but when we develop new features in Windows we tend to use the underlying infrastructure and associated APIs rather than duplicate code which would create extra working set, slow performance, and increase the surface area that needs to be secured, etc. We all know code reuse is a good engineering practice. As a platform, Windows tends to emphasize the creation of APIs for many systems, even when those subsystems are viewed as part of a larger system. When we have APIs that are used, we faced the choice of breaking software that just expected those APIs to be there or to continue to support the API. When we continued to support the API our approach was to remove a feature by making sure that an end-user could not invoke the feature via traditional end-user mechanisms. These are often difficult decisions as we work to balance the expectations of developers, the shared desire to deliver a robust release of Windows 7, and to maintain the goals set out by the feature “Turn Windows Features On or Off”. Because there are so many combinations of dependencies just represented in this list, selecting some options might provide you with some explanation as to the challenges in selecting a combination (for example Windows Media Player and Windows Media Center share a lot of code so turning one off might introduce a pretty complex situation for the average end-user).

Finally, we know some have suggested that this set of choices be a “setup option”. Some operating systems do provide this type of setup experience. As we balanced feedback, the vast majority of feedback we have received was to streamline setup and to reduce the amount of potential complexity in getting a PC running. We chose to focus this feature on the post-setup experience for Windows 7.

--Jack

Leave a Comment
  • Please add 2 and 3 and type the answer here:
  • Post
  • I appear to have got rather more heated than I intended there.

    This is an issue that gets my goat for a simple reason that it goes to the core of what I as an engaged user of the OS experience - Call us enthusiasts, or power users, but everyday Joe Soap users experience similar frustrations albeit from different causes.

    Comments that state things like "Addon X is needed, don't let them remove it because it breaks my app" or "Disk space is cheap" have some validity, but I greatly disagree with their intent. Firstly, while MS has an obligation to its devs not to sacrifice codebases that people have relied on (and have been encouraged to rely on), it also has an obligation to its end users not to take up their time unnecessarily. I've said before that the reason I think Vista uptake was slow and some press commentary was bad, was because not enough focus was put on what the End User was going to get from the OS for their money. The boot animation blog actually exposed that somewhat unwittingly when it revealed that the Vista startup process essentially sat around wasting the End User's time for a large period (in computing terms) just so that it could show off a fancy animation (that wasn't even very impressive). Windows 7 has seen this and changed it - this is a fundamental change of ethos that can only be good for the OS as a whole, if it is applied all over.

    Yes, allowing users to actually delete IE/.Net/WMP is going to break some apps - in some cases quite a few apps. But:

    1: The majority of users aren't going to go to the trouble of doing this because they don't feel the need to, or wouldn't be comfortable (we've all got our own User Support base at home that we know balk at doing the simplest OS maintenance tasks)

    2: The people who want to remove this know what they want and are prepared to deal with the consequences.

    3: Just because it breaks your app, doesn't mean that's a problem for the user. There are other apps to use. And it won't affect an app's market share significantly, because the number of users doing this is limited. What affects market share is user familiarity, compatibility and code quality, above all others.

    4: Will it increase support costs? No it won't. This is something that can be added to an FAQ - or better yet, a *well coded* app could look for the dependencies it expects and warn the user they're not installed. (A good example of a valid OS API that could be re-used by all apps!)

    Space and footprint:

    1: This blog itself has pointed out that every extra line of code, every extra millisecond spent, every extra byte of memory used comes with a cost, and that cost might be tiny in respect of the individual process, but it all adds up to big numbers.

    2: More code = more bugs, more testing, more interdependencies, more work, longer development time and more problems for all concerned. The more MS adds in to the OS, the more time it takes them to test, fix, and release - and the less resources are available for cleaning up long-term issues or looking at valid architectural change.

  • In the introduction of this blog you mention some customers requested a native "PDF format reader"? Is this in the pipeline?

    As a systems engineer I can really see a benefit to this. Customers wouldn't need to maintain other PDF readers, security patches etc. unless they needed advance features. It could be managed by a built-in reader updated by Windows Update

  • @hairs

    "Yes, allowing users to actually delete IE/.Net/WMP is going to break some apps - in some cases quite a few apps. But:

    1: The majority of users aren't going to go to the trouble of doing this because they don't feel the need to, or wouldn't be comfortable (we've all got our own User Support base at home that we know balk at doing the simplest OS maintenance tasks)"

    > which leads the question down to a numbers game.

    If you want the abovementioned changes, someone else's propositions take the back seat.

    "2: The people who want to remove this know what they want and are prepared to deal with the consequences."

    > Strangely enough, when these people screw up, they still blame everyone but themselves  for it ;)

  • You most definitely need to add a complete removal option. Also add a prompt warning the user that by removing the selected features they can cause depending software to stop working correctly.

    Services have dependency tab, you can add the same functionality to features and be able to inform the user what is it that they could potentially break if they remove the particular module.

    Ultimately it is the users decision, you can't make it for them.

  • Removing Windows Media Player also removes EVR :(

    so players that uses EVR wont work correctly

  • Hi, i cannot find the internet explorer 8 and media features options on the feature list to turn off or on.

    my windows 7 versioon is build 7000.

    Help, Developers!

  • I managed to disable IE7 in XP.

    Well actually, it disabled itself.

    Has some crazy bug where IE wont even run, terminates itself on startup.

  • trouwjurk kiezen : Unfortunately I'm still using a 40GB HDD, and some netbooks in the market now are even less than 20GB, thus we need as much free space as possible for other programmes.

    Well, if a programmer requires any files that MS Windows has, and was not installed originally, why not just prompt the user to insert back the installation disc to obtain it, instead of leaving any footprint in the harddisk itself? What we want is a simple, small OS which doesn't takes up much space, add/remove as we deem fit (not leaving a single trace of it's existance). If a programme developed by an external developer needs a library already available, just get a prompt to install it in the shared library. Upon removal, the registry should be have contained a list of programmes still needing the library. If there is, then leave it untouched, else remove it.

    My network sharing is broken, I can't even create new one (after i had removed the very 1 and only sharing I attempted to create - after following help guide).

    IE8? Huge huge bad experience for me, I don't use FF, Safari, not even opera, but little Maxthon. Customisable, light, fast. Small footprint. Why can't IE be like that? Attempt with tabbed browsing in IE is horrible (to the extend of crashing), used up precious real-estate on my small screen. Fonts? I hardly even use beyond 10 different fonts. Why should I even need over 100 different fonts to be preinstalled? There should be default the most basic number of fonts installed for displaying the windows (if I need it, I'll install it, just prompt me when I'm attempting to use it).

    Why can't the spacing between the icons on the taskbar be adjustable? Mac gives me smaller or bigger icons when I want to, but not Win7. Why can't the backups be removed? Shouldn't updates be working and fully compatible? You means those posted ain't safe that I shouldn't even update in the first place?

    As for those typos, I guess MS should start hiring proof-readers to check for slipups.

  • Oh forgetting about pagefile. When I add more ram(memory) into my system, shouldn't it mean I have more memory to store in the ram? How is it that the pagefile must be larger then? Isn't it when 1 becomes larger, the other becomes smaller?

    On Windows XP service packs. Why must it be unpacked onto the system's harddisk and not whichever medium I want? I can't even update it on my laptop which have only 2gb left. This is really not ideal.

  • I just wonder why there is no option to remove input methods (NOT keyboards) build in the system. Even I never use Korean, also the stupid Chinese (Traditional) ones.

    Instead, I have hacked the Registry. Make the MS Pinyin IME 2007 which really just categories in Chinese (PRC) acts like the one of Chinese (Taiwan). I could do this easily in XP, but difficult in Vista or 7, unless I install MS Pinyin IME 2007 separately.

    Also, there are a lot people from Hong Kong or Taiwan installing XP-like input methods. And there are also people in mainland China installing others.

    Moreover, why there is no option to remove Accessories such as Paint, Sound Recorder, System Information, Disk Defragmente else?

    I believe that MS dev-group had considered dependency problems due to removing core components. But, as like ventsyv said, end users should have rights to make the decision and also face the risks of any problems due to removing components. There should be no reason opposed this.

    This is the core value of existence such tools, like XPlite (post-install), nLite/vLite (pre-install).

  • Good Job

    modern classic furniture

    http://www.honzon.com

  • I want to, but not Win7. Why can't the backups be removed? Shouldn't updates be working and fully compatible? You means those posted ain't safe that I shouldn't even update in the first place?

  • Mac gives me smaller or bigger icons when I want to, but not Win7. Why can't the backups be removed? Shouldn't updates be working and fully compatible? You means those posted ain't safe that I shouldn't even update in the first place?

  • longer development time and more problems for all concerned. The more MS adds in to the OS, the more time it takes them to test, fix, and release - and the less resources are available for cleaning up long-term issues or looking at valid architectural change.

  • This should be done in the background using low priority I/O and if the user initiates a shutdown/restart while it's going on, only then should the logoff be kept pending till it is configured to prevent improper component configuration. As a user (and many others I've discussed this with), I don't expect to use an OS which makes me wait for configuring whatever updates or features at logon or logoff when its previous iteration didn't. That should keep me from upgrading to Windows 7. Now it's too late but perhaps by Windows 7 service pack 1, you can make this "feature" not interupt logon and logoff.

Page 7 of 9 (133 items) «56789