Log in

No account? Create an account

Fri, Feb. 29th, 2008, 02:53 pm
idea: soft docking station via suspend to disk

I'm about to get a MacBook Air and I was thinking about its lack of serious performance and lack of a docking station. It occurred to me that the main thing i want from a docking station over just moving to a desktop when i need more cycles is preserving my "session," i.e. the set of open programs I have.

People have tried to do session migration before, most notably I think in clustering systems for migrating distributed processes, though in some sense screen and even the original VNC allow you to move sessions across terminals.

What I'm proposing is to take advantage of modern suspend features of laptops to migrate a session. The model is this: Suspend the laptop to disk, connect it (perhaps via a firewire target disk mode-like mode or its moral equivalent over ethernet) to another computer and have that computer resume the laptop in a virtual machine. Desktop software is already robust to suspend/resume and the potential change in devices or network connectivity.

It seems like it would be pretty possible to do this in Linux but not really possible to do it for Mac OS X, which is my main platform these days.

Fri, Feb. 29th, 2008 06:36 pm (UTC)

Stupid question: what about the way that Firefox is able to restore your session if it crashes? Could you use the same idea for OSX?

I think this sounds fantastic. It's one of the main reasons I still have only one laptop. Ideally, I would have my system at home and my system at work. I know that I could carry my data back and forth on my portable hdd, but I want the ability to maintain my session.

Speaking of which, I'm having a computer problem that no one seems to be able to fix. I thought it wouldn't hurt to ask, but no worries if you don't have an answer.

I've tried using Retrospect and Carbon Copy Cloner to backup my laptop to my new WD Passport. With both programs, they are able to write the index file to the hdd, but then the actual backing up fails. I don't understand what's going on, and I'd really like to avoid writing my whole disk each time I want to back up my computer. Any suggestions? I know that I can drag other files onto the hdd with no problems, so it's not like I can't write to the disk. I just don't get it.

No worries if you don't have any suggestions...


Fri, Feb. 29th, 2008 06:48 pm (UTC)

The thing about the firefox approach is it is application-specific. You'd have to implement that for every application. If you implemented it at the operating system level I think it would end up looking very much like what I proposed.

As far as the backup problem, I suspect the drive is formatted FAT32 and one of your files is larger than 4 gigabytes. FAT32 has a maximum file size of 4 gigs. You can see this by (while the disk is plugged in) going to Applications/Utilities and running the Disk Utility. Click on the partition and look at the Format: field at the bottom of the window.

If it is FAT32 and you only connect it to macs i'd recommend using the disk utility to reformat it HFS+. That filesystem is better except that only macs can read it.

Fri, Feb. 29th, 2008 10:11 pm (UTC)

I had a new 320 GB WD Passport from work and indeed it was FAT32 :(
Nothing that a few minutes couldn't fix though, the annoying UAC prompts in Vista notwithstanding. I've been using it to store the ISO images downloaded from MSDN, most of which are 4.7 GB (DVD size).

Mon, Mar. 3rd, 2008 02:19 pm (UTC)

Almost all new disks are formatted FAT32 these days as it is the de facto cross platform fileystem.

Are you saying that FAT32 can store files over 4 gigs? Maybe it's just the Mac OSX FAT32 drivers...

Mon, Mar. 3rd, 2008 06:58 pm (UTC)

I haven't tried, as the first thing I did on unpacking the drive was reformatting it as NTFS.

Fri, Feb. 29th, 2008 06:58 pm (UTC)

Dude, you rock. I suspected it was formatting issue I could figure out. I'll try this out this weekend. Thanks so much!

Sat, Mar. 1st, 2008 02:19 am (UTC)

I've setup the Vista RDP "hack" to allow multiple connections, to make it a poor man's Terminal Server. The relatively powerful NC6400 is the "server", but I don't really like to lug it around due to the weight. So the light but slow NC4010 has become a dumb thin client, with me running most things remotely off the N6400 which sits in my office. Suspend/resume in Vista is not 100% there yet, so at least I can just leave the RDP session running in the background (reconnect when needed) instead of crossing my fingers each time it tries to suspend.

Sun, Mar. 2nd, 2008 08:07 am (UTC)

That's an interesting idea. I'm not so familiar with BSD drivers, especially not drivers for consumer hardware. But at least for Windows drivers for consumer devices, your idea might require per-driver changes.

Drivers have to accept power management requests - suspend, resume, etc. I can't imagine many drivers would survive a suspend request followed by a resume request where the device disappears in the interim.

I suppose the OS could determine that the hardware doesn't exist on the new host, and so not send a resume request to the driver. Then you've got problems with driver export/import dependencies. I guess then the more general problem is you've got to guarantee each OS has the same kernel exports.

Or, the OS could entirely omit drivers from the suspend request. But then you've got IOCTLs disappearing out from user mode apps.

It might also be possible to play some tricks with your virtual machine. But then what you're describing is pretty much what VMware already does.

Eric G.

Mon, Mar. 3rd, 2008 02:21 pm (UTC)

Indeed, what I am proposing would use VMware or its equivalent. The trick is to have the OS suspend in a system image format that VMware recognizes and referencing hardware VMware supports.