I have a quick question, and maybe someone can enlighten me as to why things are the way they are. A good computing practice is to partition your drive into at least two parts. You put your data and settings on one partition, and your OS and software on the other one. The idea behind this is that you can re-install or upgrade the OS at any time without actually worrying about wiping out your data from the drive. This is nothing new, right?
In fact most software developers instinctively understand this problem. Most modern software has some limited support for the rare occasion when shit breaks and you need to remove it, and reinstall it from scratch. Its common for applications to store their cache, settings and saved states in some hidden directory in the users’ private profile. That directory does not get removed during routine un-installation unless you specifically request it, or go and delete it manually. This is commonplace.
Smart people go one step beyond this and put all that stuff on a separate partition. But it is tricky because the very process of partitioning drive is usually less than user friendly. Windows for example doesn’t even give you an option when you install it. Linux does, but it usually makes a big mess of the whole procedure. Most installers have two options:
- Dude, I don’t give a fuck – in which you let the installer do what it wants, which is usually create one big partition for / and one for swap
- Dude, I love partitioning drives – in which you get to do the tedious and boring busy work yourself
At least this was my experience while installing Ubuntu. And I’m using Ubuntu as an example, because this is as mainstream as you can possibly get with Linux. It’s the go-to distro starter for most people, largely due to the fact it is easy to install and configure. I haven’t really installed any Linux in the past year (I just upgrade existing boxes), so maybe things changed since then. The point is, that the “easy”, automatic installation option in just about every popular OS is almost always “put all my shit on a single partition”.
Why is that? Why can’t we build installers that partitions the drive automatically and separates data from system files by default? After all, most people are lazy and so they will instinctively gravitate toward the solution that requires least work. So why don’t we do some of the heavy lifting for them and set up their system the right way from the get-go?
I know, I know – there are some logistic problems here. For one, you probably don’t want to make decisions about your users’ hard drive. You don’t want them to wake up one day and go “I had a 300GB drive, but I can only see 200GB here – WTF?”. So maybe you could just present the user with a nice slider that let’s them pick between “I will be downloading a lot of pr0n and music” or “I install a lot of games and shit”. Moving the slider then adjust a nice pie chart that provides a much needed visual aid that explains the the ratio between “your shit” and “your computer’s shit” areas of the drive.
The second issue is detecting a data partition. If a user already has one in place, you want to leave it alone. This is a bit tricky to resolve, but I’m confident it’s basically a matter of standardization. Basically, you pick a partition and stick with it. So for your given OS, second (or third, or whatever) partition is always data. If the user originally installed the OS using the “I don’t give a fuck” preset that partition is guaranteed to be there. If they did it manually, then they can go fuck themselves and use the advanced installed features to figure that shit out. Once you standardize, it’s easy. Just assume data is there, and maybe ask user if he wants to wipe it or not.
My point is that this doable, but I don’t really see it being done by anyone anywhere. The only exception here is Chrome OS which takes this concept to the extreme, and moves your data off the hard drive and to the cloud. Chrome will be by far the easiest OS to maintain. If shit goes south, you can just re-image the whole drive on the spot. No backups, no troubleshooting, no bullshit.
We could easily get the traditional, non-cloud-based OS’s to a point where they can be restored just as easily. Press a button, wait 5 minutes, start with a fresh system and all your data intact. In fact a lot of hardware vendors already have this halfway implemented. Some Dell models for example have a hidden system recovery partition. You can boot into it, and it will run Norton Ghost and overwrite your drive with a factory default image. Of course this utility will wipe all your data in the process, so it is still considered a last-resort solution. But there is no reason why it needs to be like that. If implemented properly, this could evolve to be a non-destructive maintenance task that can be done few times a year to keep the machine in a good shape.
I’ve been wondering about this particular issue for a few years now. I’m secretly hoping that Chrome with it’s cloud based storage will finally push OS developers in the right direction and will make them start thinking about finally separating system and data files by default. Or maybe not.