While Windows 7 is broadly admired for various reasons, developments outside of Redmond this year show that Microsoft still has a lot of work to do. In fact, I think you'll be surprised by how much really needs to be fixed before Windows can withstand the coming onslaught from non-PC devices like the iPad and those based on Chrome OS. Both systems offer users some core functionality that is simply not possible in a legacy PC OS like Windows, especially in the simplicity department. And for Windows to continuing being everything to all people, it's going to have to adapt, yet again, and respond to emerging market trends. Microsoft can do it. But it has to happen in time for the next major Windows release, Windows 8, which is due by the end of 2012.
Because there's so much to discuss here, I'm going to break this up into multiple parts. And in this first part of the series, I'd like to address something I feel is one of Windows' biggest failings today.
Late last month, Microsoft blogged about something it calls user state virtualization, which is part of the company's broader capabilities around desktop virtualization. Microsoft describes user state virtualization as a way to "separate the user's data and settings from the physical device and replicate it centrally." In other words, rather than physically comingle the User folder structure with the rest of the C: drive--which also contains Windows and various applications and supporting files--Windows should be configured in such a way that these things are separated in separate hard drive partitions or, preferably, on separate physical disks. Furthermore, the user data and settings should be replicated to some central location for redundancy and data recovery reasons.
In such a scenario, Windows could be reinstalled without worrying about blowing away user data and settings. And in the event of a catastrophic failure, or machine theft, a user's complete environment could be more quickly resuscitated.
This is an important, arguably mission critical capability for both businesses and consumers. But Microsoft's current implementation of user state virtualization isn't strictly "virtualization", nor is it in any way new to Windows 7: In fact, it debuted over a decade ago in Windows 2000 and has only evolved in minor ways since then.
Without getting into the details of why Microsoft's current implementation of user state virtualization is lackluster, let's instead examine what needs to happen here going forward. User state virtualization--really, user state persistence--needs to be a core feature of Windows and not something that only managed business environments can cobble together after the fact. And this functionality needs to be made available to consumers as well.
This change will require Microsoft to re-engineer the way that Windows is laid out on a disk, and would preferably include a physical separation of three entities--Windows itself, applications, and user data--preferably in three different partitions that were auto-managed (i.e. resized when needed, seamlessly and without any user interaction) by the OS itself.
This isn't that radical a concept. The current Windows version already auto-partitions the disk at Setup and creates a hidden system partition, System Reserved, that exists outside the old-fashioned world of DOS-like drive letters we still deal with. And Windows 7 also supports dynamically resizing hard disk partitions without blowing away any of the stored data. What I'm suggesting is just the next step.
So in this scheme, Windows would partition a disk with essentially three partitions, Windows, Apps, and User. (There could still be a hidden fourth partition that correlates to today's hidden System Reserved partition of course.) The Windows partition would include all of the stuff that is currently hidden in the root of C:, the System Reserved stuff, the Windows directory. That's it.
Apps would of course include the Program Files (and, if required, the Program Files (x86)) folder structure for application installs. However, it's important to note that virtually all current Windows applications would need to be reinstalled if the Windows partition was blown away. So part of this scheme would also require a second major enhancement to Windows, which is a packaged apps scheme, similar to that on Mac OS X, where app installs were all done within a single sealed folder, with no shared DLLs scattered around the simple. These newer, more modern apps would not need to be reinstalled when Windows was blown away, but could instead be easily re-added to the Windows Start Menu as part of the Setup process. For this reason, it may make sense to include separate folder structures for these new packaged apps and for legacy apps on the Apps partitions. Or perhaps legacy apps are simply installed on the Windows partition since they'll be blown away with Windows when that is reinstalled. Either way, it's time to push Windows into the 21st century and create a more manageable infrastructure for native applications.
The third partition would store all user data, including documents and other data files, of course, but also system and application settings. During Windows Setup, this partition would also be parsed so that all available settings were reapplied to the OS as part of this process, and when the user arrived at the desktop for the first time, the system would already be configured exactly as they want it.
For businesses, Microsoft needs to create a replication scheme into Active Directory so the User (and potentially App) partitions are automatically replicated to a central location. This would make disaster recovery a seamless activity, and would also allow a user to logon to any connected PC and automatically receive their custom settings, documents and data files, and, possibly, installed apps. Centralized application virtualization would also be an option here, of course.
For consumers, Microsoft needs to create a similar service hosted in Windows Live. In fact, Microsoft should optionally allow users to logon to any Windows 8 PC with their Windows Live ID and gain access to a hosted version of their custom desktop, complete with all of their settings and documents and, again, possibly applications as well. An option would allow this logon to be temporary and encrypted so that you could logon to a public PC or friend's computer, get some work done, and then logout, secure in the knowledge that their temporary logon was being destroyed when they left.
Microsoft can and should offer both free and paid versions of this service. The paid version could include more storage, of course, but also perhaps other niceties such as advanced capabilities like encrypted, temporary public PC logons.
Physical separation of Windows, app, and user data would provide numerous security advantages as well, of course, and this scheme would preferably do away with drive letters as well, virtualizing the file system for legacy apps only. (Which is another great reason to keep legacy apps on the Windows partition, which they'd see as the "C:" drive anyway.)