Brad Templeton Home
Manager computers is a terrible pain. Everybody spends more time administering their computer than they want, and upgrading software and the operating system is often unbearable. Companies spend far more on administration of computers than they do on hardware.
I can't solve all these problems, but in these pages is a proposal to ease some of the pain, particularly of upgrading and backup.
Whofig is a proposal to arrange the files of an operating system not simply on what function they perform, but on who is responsible for them.
Many people make changes to the files on a system. The users of course, and the "sysadmins" -- the system admistrators for a computer. On a PC the user and sysadmin are often the same. But in fact there are many more people who make changes. At companies, there are sysadmins who manage groups of computers and policies for entire companies.
But the big hidden group of changers are the people who maintain all the software packages that make up a system, and the builders of the operating system distribution ("distro" in linux terms). They don't change your system directly (unless you have auto-updating software) but when you install and upgrade their software, they are effectively doing this.
My goal is to encapsulate all the changes made by these different people into different places. My first proposal is that each set of changes go in a different file tree in the filesystem. As much as possible, each person changes only their files and data, and never touches anybody elses.
You only install or remove other people's changes, and record that you did so in your own change tree. You modify their files by creating files (deltas) in your own change tree that the system knows to apply.
There are some huge benefits to come from this. Ideally, you will be able to encapsulate all the things you do in one clear place. Other than things like databases and picture collections, it will be quite small. In theory, you will be able to grab this file tree, or portions of it, and drop it down on a similar computer and it will act they way you like it. Operating system upgrades and software upgrades will consist of changing only those parts, not your parts. An ideal upgrade will be "drop-in" and retain your own customizations.
You will have need only to back up your own file tree. This will be small and simple. You don't have to back up the Operating System files the widely used software packages becuase they remain on your disk in exactly their official format, unchanged by you, and you already have a backup copy of that data on the original CD (or you can get one from the web.) You can easily carry your own tree of customizations and much of your data on one of those small USB "thumb drives" if you want.
It will also be possible to place the operating system and software package file trees on disks that are physically "read only." This can help make computers much more secure.
These benefits are tremendous, but moving to this level of isolation of the people who change things on a system will not be easy and will take time. But the ease of upgrading that comes will be worth it. Everybody gains when software upgrade is easy. Users, of course, but also developers who don't want to endlessly maintain old packages because so many people are afraid of upgrade.
Of course, whofig can't and won't solve all upgrade problems. Upgrades will still break things all the time. But it's a step in the right direction.
(Another worthwhile fix proposed here allows it to be easy to have several versions of the same piece of software on a machine at once, and an easy command to switch what is "live." This is of value primarily to developers, because it will easily let them test their tools with older dependencies, to find the oldest version of something they depend on that words, and thus the "true" dependency. This might eliminate one of the other sysadmin nightmares of linux -- that often installing new software means making a lot of other potentially dangerous upgrades that may not actually be needed.)
Most of what I will write about will apply to the unix-derived OSs like linux and BSD. However, there is no reason this philsophy could not apply some day to Windows or other systems.