Mike Levin SEO

Future-proof your technology-skills with Linux, Python, vim & git... and me!

Keychain PCs: VMWare vs. FingerGear vs. BlackDog

by Mike Levin SEO & Datamaster, 12/05/2005

I’m investigating my PC on a keychain options again. I’m a scripting-oriented Microsoft developer who tried to move to .NET on an ambitious project a few years ago. I tried building what I have come to know via Ruby on Rails hype as a joyful and agile framework. But doing this on ASP.NET was not “joyful” at all, so I continued improving my VBScript framework, which I have come to learn was ahead of its time. I can crank out apps at a rate that makes peoples’ heads spin… that is, until ROR came along. Now, there’s a whole camp of developers who get the same advantages “for free”, but with an elegant underlying language and a true object oriented framework. I’m envious, and my move to ROR is inevitable. But moving to Ruby on Windows seems silly, as it’s also a perfect opportunity to break free of my Microsoft dependencies. If I ever become a freelancer, I wish for a completely free software base to be a competitive advantage, with as much money as possible going into services and not software. I have gone through the ROR tutorials and bought the Agile Web Development with Rails book. My next step is stepping into the LAMP-world (for those not familiar, that means Linux, Apache, MySQL, PHP/Python/PERL), plus Ruby as an honorary “P” language. And the only question now is how to go Linux when I work all over the place? A PC on a keychain is the perfect answer, and with today’s research, I see I have at least three fascinating options.

In the first, the host operating system boots, and virtualization software allows a virtual machine session to be booted from a file off of the keychain. Probably, I’d use software such as the venerable VMWare to accomplish this. This option is only recently possible, because VMWare made the VM player free, responding to the incredible competition brewing between Microsoft Virtual Server, Xen, and Sun Solaris containers. This option allows you to keep a library of keychains. Any USB drive you buy could take on this virtual PC feature. But the problems are that the host PC gobbles up a lot of memory, and you generally need a PC with a lot of memory so you can run the host OS and the VM session simultaneously. Another downside is the need for the virtual player to be pre-installed on the host PC, so you can’t just walk up to any PC, pop in the USB drive, and boot to Linux. But you could keep the VMWare installer on the keychain as well. It does however have a permanent impact on the host PC, and is not something you would want to do on a borrowed PC or at a tradeshow. Also, you have to do a suspend or shutdown between moving the USB device, which seems reasonable until you see the unexpectedly cool way BlackDog does it. Plus, the host must be a PC or Linux (not Mac). On the up-side, you have constant access to the host PC’s resources, so if you ever needed a file from it, you’re in luck. You can drag-and-drop! You can do neat little tricks like sharing the IP of the host OS. In fact, you can get a ready-made VM loaded with Linux to download and try out. Other advantages include that the entire session can be cloned (backed up) or run without the keychain. The VM sessions are totally transportable, which leads to the point that it’s not particularly secure, unless you get a biometric USB device. Additionally on the up-side, your keychain PC also could be Windows (as opposed to Linux). And you’ve got a pretty serious company behind it in VMware and EMC Corporation (the storage company). It’s a tempting option.

This leads to the second option, which is similar to the first, but the OS on the host PC is never loaded. FingerGear looks like the leader at the moment, with their BIO COS (biometric computer-on-a-stick). It’s a booting option, where you shut down the host PC, and boot directly from the USB device. If the bios doesn’t support bootable USB, then you boot from a provided mini-CD first, which then transfers control over to USB. You might wonder how in the world the OS install on the USB keychain works no matter what (PC) hardware you’re connecting to. I can’t google-up any info real quickly on this particular to FingerGear, but IBM makes a pretty big deal of the virtualization layer that lurks behind such solutions in their discussion of SoulPad, an option that’s not commercially available right now. It must be similar for FingerGear. Chances are, whatever boots first from the USB devices is installing a hardware virtualization layer so that Linux thinks it’s on identical hardware every time. The advantage here is that it can be done on any PC you walk up to, and it leaves no trace. It doesn’t install any software on the host PC, and you have the full memory of the machine to work with. But other resources of the host PC are cut off, especially NTFS hard drives. I’m guessing that networking issues will be a bit more difficult than the first option, because there is no host OS running, from which network information can be grabbed. So, it’s better if you don’t control the host PC, because no software install is required, but you then also don’t get the “intelligence” of the VMWare hosting environment to take care of issues like networking. You also lose the niceties of having access to the resources of the host PC. But if you already know Linux and don’t need the extra comfort level of the host OS, this approach is appealing because it seems more “pure”. Your PC truly becomes a Linux PC. I’m not sure about the backup issues, but one would assume, it’s just a matter of copying all the files.

And finally, that leads to the third, and most radical option, BlackDog. The reason it’s radical is that it’s actually a fully functional PC on a USB device, with a 400MHz PowerPC processor. All it uses the host PC for is to “project” itself onto the screen. You literally carry around a mini PC that only uses the host PC for I/O. It’s the truest “PC on a keychain” of the lot, and this offers a different set of advantages and disadvantages over the VM-oriented options (there is no virtualization here). In the BlackDog scenario, the host PC must be booted up, and Linux runs in a window, yet it leaves “no trace” of software on the host PC after it’s unplugged. A simple program must be running that allows this window onto the BlackDog OS, but in all other regards, you are running two wholly separate PCs. You lose the cool VMWare-like advantages of cloning and backups. But you gain nearly instant start-up and shut-down (they claim 2 seconds), and what seems like more security, since there’s no VMWare container file to steal. I have conflicting feelings about this. On the one hand, I like the silly shell-game that VMWare makes possible. You swap around the very soul of the PC (hence, IBM’s SoulPad moniker), but it creates version problems and slightly more complex start-up/shut-down procedures. And you always risk corrupting your VMWare file, because it’s not particularly meant to run on risk-prone USB port. So, I would like to know how risk-prone the BlackDog approach is. Is there any harm in just unplugging the BlackDog? If not, this would be a major advantage. You would think that this solution would let you run BlackDog on an even wider variety of host PCs, but it looks like it’s particular to XP sp2. At any rate, although this is a cool and radical approach, it feels like it is too much in its infancy for me. And it will never be the identical version of Linux I’d be using on PCs when finally turned into real server apps.

So in the end, there appear to be 3 PC-on-a-keychain approaches. Two of them involve virtualization, and one uses “projection”. Of the two virtualized approaches, one needs the host OS to be running, requires a free install, and gobbles up generally twice the resources, but is highly mature. The other requires taking over the host PC before the installed OS ever has a chance to boot, but doesn’t appear as mature, and perhaps requires a deeper understanding of Linux to be productive. The non-virtualized approach may be the most promising in the long-term, because it operates almost independently of the host PC, but appears to be the least mature of all, and runs on a PowerPC processor. I think I’ll be choosing the first (VMWare) option, because I’ll be controlling the PC environments I use it on, and doing the free VM player install won’t be an issue. And RAM is cheap, so I’ll install plenty if that becomes an issue. And the clincher is that I’ll be able to clone off and share my work with others relatively easily.