Somewhere right now as you're reading this, there are computer users whose hearts are sinking as they look at their screens, waiting, hoping, some even praying, that their computers will safely reboot from a fatal error and everything that they have saved on the computer - letters, photos, emails, their latest presentations and project files - will magically reappear. For a lot of them, their hopes will be in vain.
In most cases, it's not really their fault. The problem was likely caused by a poorly-written device driver, or a conflict between two incompatible pieces of software, or an operating system glitch that was always there but wasn't triggered until recently. In a few cases, the problem might have been caused by a nasty bit of spyware or malware that the user got over the Internet.
Whatever the culprit may be, the consequences are all-too-often an unbootable system. That means that the operating system has to be reinstalled. And, if the OS was originally installed based on the default standards of Microsoft Windows or Mac OS X, then all of the user data on the system will be lost when the OS is reinstalled.
It doesn't have to be that way. There's a simple way to avoid losing user data during an OS failure, and it doesn't involve virtualization, mandatory backups, or cloud computing. It would simply involve the world's primary OS developers, Microsoft and Apple, adopting a little trick that IT professionals and some power users have been using for over a decade.
I learned the trick from a fellow IT pro in the late 1990s, and since then I have never installed an OS on a personal or business machine without doing it. The trick is a simple one: Hard disc partitioning.
You set up two partitions, one for the core OS and one for data. Although you only have one hard disc, partitioning make it looks like two separate hard discs to the OS. The primary partition is the one that has all of the system files on it. The secondary partition is the one where the user saves all of their files.
If the OS ever runs into major problems or becomes unbootable then you simply blow away the primary partition and reinstall the OS. Once the new OS is up and running on the primary partition, you can open the secondary partition and find that all of the user's data is completely intact and untouched.
As I've already mentioned, IT departments have been doing this for years. In fact, many of them do even more sophisticated tricks like folder redirection and automatically shifting the "My Documents" folder to the secondary partition. But not every IT department is that slick and not everyone has an IT department. Even in the business world, there are lots of small businesses and sole proprietors who buy all of their PCs retail and have no formal IT.
Thus, what I've been verbally advocating for years is that Microsoft and Apple make this two-partition scenario part of the default installation of their respective operating systems. It should be automatic and it should be completely invisible to the user. If Microsoft and Apple did nothing but this, it would make the PC universe - and by "PC" I mean both Macs and Windows-based PCs - a much nicer place to live.
However, there is still one challenge with this scenario. If you blow away and reinstall the OS, you also have to reinstall all of your applications and reconfigure all of your settings. That can easily lead to several hours of lost productivity.
Therefore, I'd like to take this proposal one step further. I'd like to suggest that Microsoft and Apple divide the default installation of the operating system into a logical triumvirate of partitions: 1.) the Core OS, 2.) User applications and settings, and 3.) User data. Below is a diagram and a description of how this would work.
1. CoreThis would be the primary partition and would include all of the system files, DLLs, and device drivers that make up the heart of the operating system. Isolating the core OS would help it to become much more self-healing in terms of dealing with device drivers and software conflicts. The OS should be able to do automatic updates of missing files, automatic driver rollbacks, and more granular system restores when it detects fatal errors.
If irreparable damage is done to the OS, it should also be easier to do a reinstall. Many PC manufacturers now put a small recovery partition on their Windows PCs. This partition (separate from the primary partition itself) has a compressed version of all the system files that can quickly be expanded and then used to reinstall the OS along with all the native device drivers for the system. Lenovo has even gone so far as to experiment on some PCs with a "reset" button that automatically launches a full reinstall from the recovery partition.
This type of recovery partition would be partition 1a in my scenario and would obviously be an excellent compliment to the default OS installation. In the Windows world, PC manufacturers would need access to this partition in order to integrate their native drivers.
2. UserThe second partition would be the home for what Microsoft calls User State (the user's OS settings), plus the user's installed applications, and the user's application settings. This would become the place where all third-party apps are saved and their settings are stored. That way, if the OS is blown away and reinstalled, all of the user's applications don't have to be reinstalled too.
The other fringe benefit of this is that it would enable users to seamlessly jump between different computers and take their apps and their settings with them as they go, if this user state partition were replicated to an internal network share, to the cloud, or even to a USB key or an external hard drive. It could also streamline the process of a user migrating to a new computer.
There are some obvious challenges with this approach. First, when the OS is reinstalled, it likely will not have the same version of the OS in terms of patches and service packs and any other dependencies like Java, Flash, or the .NET Framework. That could cause problems for apps. That's where a self-healing OS would come in very handy. Also, the portability scenario would have major implications for software licensing that would have to be worked out.
3. DataThe third partition is the most important. This is where the user's unique files and data would be stored. All user files should be saved here by default, and the OS should make it difficult to save data anywhere else by requiring administrator override and popping up a scary dialog box. And, again, this whole thing should be completely transparent to the user, who will simply be directed to save all files in their personal documents folder.
Beyond just protecting the data during an OS reinstallation, sectioning off all user data would also facilitate much easier backup and replication. In fact, both Microsoft and Apple could use this as an opportunity to pitch users on their own (escalated) Web services, Windows Live and MobileMe, as places to seamlessly backup and replicate the user's files. It would also make it easy for users to know what to backup if they choose third party backup services like Mozy or Carbonite.
And for IT departments that still want to do folder redirection and save all user data on the network instead of local machines, the option would still be there for them. Microsoft and Apple could even beef up their backend server solutions to help facilitate that process for IT.