The GNU’s Thumb

Alright, So I’ve been thinking about keeping my home directory in git recently. I have a machine that I can dedicate to storing a ‘master copy’ and I’ve no problem with creating scripts and minor utils to help things along. I haven’t done it yet, but things have gotten to the point where I can’t function outside my environment. There are some relatively large hurdles that I’d have to mount before keeping my life in a version control system would work. The first is that my native environment is completely and totally useless on toy operating systems like Microshit Winblows. Honestly, I don’t see how anybody can function on a system that’s so user-friendly it does stuff on its own that you’d rather it didn’t. The second is that I touch type Dvorak, and hunt-n-peck Qwerty. The third is that I can only edit with Vim and can’t stand systems that ignore those keybindings that’ve now migrated to muscle memory.

So what is a *nix person to do in a world of windows? Taking my environment around just isn’t going to be enough. So let’s take a lesson from Portable Firefox. Some people are so addicted to their browsers, that they can’t stand to be without their carefully configured settings, sculpted behavior, long-gathered bookmarks, and specialty plugins. Indeed, once you’ve set up your browser, using someone else’s is neigh impossible. So, there’s now a way to take all that with you on a thumb drive everywhere you go.

With virtualization coming along at a very rapid pace, this should be doable with GNU/Linux. It shouldn’t be that hard. You get a big thumb drive and partition it with a FAT32 bootstrap partition, and a *nix partition. You put all the system files on the *nix partition, and run a pseudo-kernel underneath. Ideally, to minimize disk writes and extend the life of the thumb drive, the bootstrap mechanism will load as much as it can (as a continuous read into memory) and start executing from there. So you double-click, and viola! you’re in a window that has everything they way you’re used to it. Only the bootstrap mechanism and pseudo-kernel have to be host-system aware. And, It should not require the re-booting of the host system.

I’m thinking of something almost exactly like this.