All New Code?

Why is it that people believe that every release of Windows is entirely new code? I’ve never seen anyone from Microsoft ever claim any such thing, but every release I see people talking about the claim. Having said that, in every OS release almost every component gets touched if just to fix potential security vulnerabilities found by automated tools. That’s the advantage of a full OS release, you get the most complete testing cycle Microsoft can manage (internally and externally). Let’s see if I can introduce a lexicon for people to talk about OS release changes. Here are some categories to count and measure:

  1. Absolute Development Time – Each release only has so many developer resources for a period of time, so even if it’s just cleaning up almost invisible implementation issues, or major new features there is a an absolute amount of effort put in to each OS release. While people talk about vista in terms of 5 years since XP, the reality is that most of the windows organization for a bunch of that time was focused on the first and especially the second XP service pack.
  2. Subsystem Replacements – Instead of incremental changes to a couple components, this implies major rewrites and replacements. Windows ME to XP involved replacing the the windows 9x OS with the Windows 2000/NT codebase especially at the lower levels of the OS. Much of that code had been shipped and tested as Windows NT and Windows 2000, so for the development team this was incremental work, but for the consumer OS customers is was a new code base with all the pain involved. IIRC a decent amount of Windows ME was getting the driver ecosystem compatible with the Windows 2000 codebase so that Windows XP wouldn’t be as painful of a switchover. (There is a lesson here, you got to ship an OS which will get a negative reputation to move the market whenver making major changes that affect drivers, 64bit Vista is playing that role right now for future 64bit Windows OS versions). In Vista, there were at least three major subsystem replacements, the video, audio and networking stack each got rewrite/replacement level changes. The primary motivation for a subsystem replacement is to provide an better foundation for new features, but often pulls in a couple new features themselves (like IPV6 getting all the features the IPV4 stack had). This type of change is the most exciting and also the most likely to break existing drivers and applications.
  3. Architectural Rewiring – This is where we restructure existing code for modularity and potentially new release possibilities. Server Code and MinWin fall into this category of changes. To the upper layers of the OS (applications) it looks like nothing has changed, but you now have the ability to more easily release a super stripped down version of the OS, or let different parts of the OS evolve independently.One of the sins of Windows was the circular dependencies between some components, and we are in the middle of multi-release work to clean it up. A focus of Vista was to map out the system and put in controls to make sure we never introduce more. As a OS Geek, this is exciting stuff, as a OS user, this is something that is sucking up development dollars without apparent affect.
  4. UI Changes – For a user of the OS this is what they typically use to judge how much an OS has changed. Sometimes this implies a lot of work, sometimes this isn’t so much work. Because of the attention, every product typically has some UI change for the sake of change alone, and that change is usually one of the most protected secrets about the OS. There is a balancing act between holding these changes secret, and testing the OS as a final product. Often a ugly theme that utilities the same features as the final theme/UI is introduced to help mitigate the risk. (Therefore pre-release builds shouldn’t be judged on ascetics).
  5. New Features/Components – These are the functional improvements in the products. I think people have a pretty good grasp of this type of change.
  6. Changing Defaults – Relatively simple code/setting changes might make drastic changes to the user experience. Turning off old protocols, making new users non admin by default, etc.
  7. Bake Time/Cleanup – This is the relatively boring but critical process of fixing bugs, incremental performance tuning and just general "make things better" that takes of the majority of a development cycle and extends post release into service packs and the next release. It’s healthy to occasionally have a release that the majority of it is in this category, specifically targeting the things that were too risky for a service pack, but isn’t really a new feature. Unfortunately this type of changes tends to not sell new copies of the OS. This type of next release time is getting institutionalized at Microsoft in the form a Quality Milestone done during product planning when the development team doesn’t have much to do yet.
  8. Platform development – This is the type of work done that might be in the OS, but doesn’t really have any exposure or use until a corresponding server release, or other product takes advantage of it. For example: Windows XP had a feature for restoring automatic backups of previous file versions that only showed up when attached to a server that supported it. Vista (and XP via a separate download) has an amazing new GUI support for applications called the windows presentation foundation, but nothing in the OS itself takes advantage of it. It usually takes a while before we see application developers get used to the new libraries and choose to develop for it (normally a developer doesn’t want to develop for an OS version that users aren’t using in bulk).

Looking forward, we already know that some Architectural Rewiring is happing in the next Windows release with MinWin and with such major Subsystem Replacements in Vista and the compressed schedule for the next release, I can’t imagine too many Subsystem Replacements happening, but I guess we’ll have to wait and see.

Advertisements

Thomas Hawk Shows Of A Cool Vista Feature

Thomas Hawk shows of a cool Vista Feature:

Moving and Replacing Files in Windows Vista

Vista

So I’ve started to see some press getting way down on Vista about things I haven’t experienced and decided to go and see if I could figure out what was going on. First off, let me summarize my house’s trip to vista.

  • Machines
    • 3 older machines
    • 1 brand new nice 64 bit box
  • Issues
    • Memory
      • Most of my machines needed a memory upgrade to be happy on vista.  Where I Couldafford it machines went to 2Gb.
    • RAW photo support for my camera on 64 bit windows
      • Canon was in no rush to release it and I still don’t have RAW support on 64bit (which is where I do photo stuff)
    • Media Center on 64 bit
      • It was either the 64bitness or trying to also use the machine as a desktop while it was a media center, but this led to a lot of crashes of media center.
    • Loud machines
      • Since vista supports sleep better then previous versions, I started used it for my desktops. I then started to notice the noise difference between on and off.

 

And while I’m at it, the BS issues that people complain about, but I don’t get the issue.

  • DRM
    • Everyone gripes about it and it’s the default reason people give for anything that is broken, but it probably has nothing to do with anything since I’m not aware of anyone using it’s new features yet. It’s a passive, when the application asks for it, feature not an active (lets look for violations) system.
  • UAC
    • When you get a okay/cancel UAC prompt, you are running as an administrator and if you weren’t you would have been asked for administrator account and password. Even when you run as administrator with UAC, you are not administrator. The prompt authorizes a process to run as true administrator. There is a reasonable amount of security value here. The main question is “Should this require administrator rights to run?” whenever you see a prompt. Frankly I don’t get prompted often, and when I do, I find it’s appropriate. The notable exception is when I want to see details of what driver is loaded for my network card or video card. The UI for viewing and setting the settings weren’t separated and so you get a prompt even when you don’t want to change anything.
    • If you think UAC is annoying, the question is, what did it prompt you for that it shouldn’t have?
    • It’s very amusing when people comment about UAC and get recommend another OS that does the same thing, except requires you type in a password.

Okay, so now that I have that out of the way… I’ll next write on where and what I’ve learned

Google decides to be evil

According to a number of articles like this one, Google is the source of an antitrust complaint against Windows Vista because of a change of the default implementation of Desktop file search. In Windows XP, when you searched for files it would do a actual, go scan your harddrive search, and at the end of the search you got an option to turn on indexing to make your search faster. This would search anvista indexingd make notes about your harddrive in advance so that the requested search became much faster. I’m guessing that it was off by default in XP because it wasn’t really optimized for a desktop both in performance, the type of data it indexed about the files and it wasn’t something people did a whole lot so it wasn’t worth the weight on the system. Enter Vista and the world has changed, indexing is the standard approach to search on the desktop as demonstrated by the improved indexers shipped in MacOSX, Google desktop and MSN one. So the good old xp indexer gets a lot of attention, a nice upgrade, some very nice usability improvements and, Oh yeah, the indexer is now on by the default instead of just for power users. Well, that last step is one step too far according to Google.

According to the article they are worried about interactions between their indexer and the vista one. While a lot of people, on digg at least, are calling BS. It is especially weird to me since a number of applications that I’m running these days are busy indexing the harddrive. The photo gallery software and all three music applications are going at it. They manage to coexist in vista, what’s wrong with Google’s indexer? This sounds like a technical limitation in their product they wish to use to harm vista’s indexer.

They have plenty of business reasons for such a desire, they used XP’s deficiencies in this area as a big reason to get people use the Google toolbar (which includes their desktop indexer). This is important to them because it has all sorts of tie backs to Google services where they make money. It was a good gig, the MSN team developed and did the same thing. The Vista indexer doesn’t have any such ties, but now people have lost a huge reason to install the Google toolbar (and the MSN toolbar for that matter). So they have a business problem, and from their complaint a minor technical problem. Business model problems don’t make good complaints to the DOJ, but maybe they could make hay with their technical issue. Unfortunately most techies would predictably call BS if they heard the complaint (I guess that’s why it was a confidential complaint) which leads back to the premise, It appears that Google has unabashedly decided to be evil.

On the other hand, indexers are programs that are not just running all the time, but constantly trying to do work. Smart applications attempt to do more and more stuff when the user wouldn’t notice, such as checking for and downloading updates or pre-creating image thumbnails so they don’t have to be generated at run time. On a logical level there is some theoretical maximum to how much time a computer has for such background tasks. Google seems to be implying that there is not enough room for anyone but them. Even in this worse case, this is something that a years worth of Moore’s law will fix faster then any legal remedy. Oh and I should point out it has been years since the first of this generation of indexers were downloaded and used on computers.

It’s going to be interesting to see the arguments on the other side of this one.

Disclosure: I work in windows networking, I don’t have anything to do with the indexer technologies except complain about how slow the early versions of it in pre-reset longhorn were.

Vista FUD

It’s easier then ever to get a continuous stream of Windows Vista FUD. In the past you had slashdot, but had to ignore the pesky rated 5 comments which often would point out the obvious stuff. Now however we have the BadVista blog, which is FSF new foray into the world of pure unadulterated BS. Some of which the press runs away with because there aren’t enough people actually using the software to call BS loud enough. Let’s look at some of today’s news stream:

  1. Microsoft Vista is not an option
    This link is about the “Licensing and Activation” hurt hobbiests meme. We have a writer who switches out the hardware inside his case once a week and is using XP. To my spider senses, Something doesn’t add up here. XP already has activation. Even If they tightened up the requirements (which in practice remains to be seem) he should already be tripping over activation left and right. In some ways activation has gotten less onerous, especially in cases where you buy a computer from a OEM like Dell or HP. Personally, I have built all the machines in my house, and swap around components regularly (although I guess I’m too busy and poor to swap things weekly on a single machine). I’ve been bit by re-activation and had to call the activation help for my home machines twice since 2001. I told them that I was moving around components and things worked within 5 minutes both times, this is hardly social engineering. I don’t expect Vista to be any different, and I’ve already moved some hardware around. If the author hasn’t been through this already with XP, the the worst I would expect is that he will make the 5 minute phone call once a couple years. If the fear of that potential phone call and not even a real experience is bad enough to make him switch to another OS, then I not sure Vista is the real issue.
  2. DRM behind lack of Windows Vista drivers.. and fear new content protection.
    This is based on the Gutmann FUD, which spells out a worse case scenario for the implementation DRM in Vista based on random bits of documentation and conjecture. The basic problem here is that the worst case scenario he envisions isn’t  how anything was implemented and causal checks confirm it. There are still class drivers for video. Non-protected content (which is most of what I have) plays unmolested, even while I play DRM’d music and video.  There is an example in the paper of expensive optical system computer in a hospital going fuzzy because the user is playing music. The first question a reader should ask is, even if the hospital bought into that sort of DRM and the system was designed that way (which from casual observation it isn’t) why would the hospital not buy a computer system to view the imagery that supported a DRM path in the hardware. It’s like buying a CAT scan system and not buying a compatible display to see the results.
    In reality there is more drivers and compatibility for Vista pre launch then there was for XP (probably because of continuation of the move to class drivers and early frequent public releases). Inherent to the whole arguement is a bet that you will have pervasive protected content you want. This is the same bet that iTunes Music Store makes. If you want to watch such content, then you won’t want to run an OS where you can’t watch such content, and only systems with these protections will be allowed to decrypt it. Back in the early days of DVD’s, Linux had zero players until the protection scheme for DVD’s was broken. These days the new formats won’t be cracked that easily as they have learned a couple lessons since then. (They can remove support from all future media for a player’s decryption key once it’s known to be cracked and the general purpose cracking is probably much harder)
    There are some real stuff to the story, supporting DRM through hardware is not free, and if you want that feature you will pay for it (similar to how we all pay for DVD support), but none of this is Vista specific. The main thing with Vista that you might complain about is that it supports it at all, or that Microsoft hasn’t done enough to fight DRM. Of course if you buy PowerDVD for BlueRay or HD-DVD you are getting pretty much the same thing from a different vendor. This type of stuff really annoys open source purists because licensing and securing implementation runs counter to the basic philosophy, but it’s not a showstopper as companies that actually build commercial products using pieces of open source don’t have such issues.
    I’ll also note that I’m not in love with DRM, but that’s a topic I’ll save for a different post.
  3. Vista: Why Bother?
    This starts with the insufficient hardware meme. If you asked me right after beta 2 shipped, I would be wholeheartedly agreeing. What I have discovered is that a) they fixed much of that between beta and release and b) more RAM fixes the rest . Ironically the RAM part was exactly what I was sitting around realizing when XP shipped. The end rule is if you bought it in the last two years new, get it up to say 1 Gb RAM, it’ll be fine.
    The actual piece plays a bunch of games with the facts. First it talks about video editing, which is demanding in general and nothing specific to Vista. Even looking at the Mac’s that advertise high end video editing you are looking at some seriously powerful machines. Processor, RAM speed and file system speed are the things I’ve noticed are the big deal, not OS. Next there is the 94% figure, which pulls a double whammy, first it is a survey of corporate machines, which since they tend to do simpler less CPU/ram intensive things compared to consumer PCs. The more realistic numbers are the CPU replacement numbers (replacing the CPU, especially in older machines usually means a new PC), here we see 84% of corporate PCs will be ready from a CPU standpoint (I suspect many of the 84% will need more RAM, but the numbers aren’t in the article). The other little trick done with that number is using the premium level of readiness instead of the minimum. For corporate PCs, the difference between the premium and the Min are features that won’t be missed doing day to day work, like the flashier GUI.
    Next in the piece is software compatibility. This is a harder area, although three of his examples are now bogus. The Zune software for Vista is already released on zune.org, I’m running the Vista Powershell (it comes as an OS update, so it’s mostly an issue of packaging, not compatibility as people running the old msi versions of Powershell can attest). The new Virtual PC has hit RC status. OpenGL is supported in the major graphic vendors drivers. I’ve found that most of the real issues with compatibility are from deeply integrated software using unpublished interfaces who aren’t in a rush to put the vista versions out and UAC related issues. For many of these companies the clock didn’t start until we RTM’d Vista. The latter is a price we will pay for the security it brings, but will be lessened as compatibility updates come out. On the anacdotal side, I’m mainly feel pain with x64 versus x86 rather then Vista versus XP.
    Also in the piece Start Menu issue. My start menu has two options for “shutdown” and a somewhat hidden advanced menu. The two options on my box are: low power mode and lock session. Ironically, I don’t even use either of them on my home machine. I just push the power button on my case to go to low power mode. At work I only use the Lock one (assuming I don’t just press Windows-L). So it appears they choose the right two.
    For bonus points the author then compares upgrading a point release of openSUSE to upgrading Vista from XP. A fair comparison would be to a service pack update, although I would guess that even that would be more then the dot release.
    Which finally concludes in the classic, why update? If you need a single compelling reason to go to vista, it would be security and maybe the flashier GUI, after that it just feels better, the sum of a thousand little things. This is not great for marketing, but pure addicting goodness as a user and home admin. This should become quite apparent after the OS is actually out there, but you can see it in people like the TWIT crowd who has talked about their experiences since they first installed it and now really like it (oh and they are heavy Mac users). My suggestion is to find someway to use it for a week or two and decide for yourself.

Disclosure: I am a Microsoft Employee who works on Windows, but these views are my personal ones and are not my employers.