Saturday, November 06, 2004

Virtual PC as the bare Metal OS?

Thinking out loud...

A thought I had when reading the this post from the Virtual PC Guy.

Background: As you know I've recently found joy in using DIFF VHD's. Before really understand DIFF's I would have copies of the a number of guest OS VHD's on my hard drives. So if I needed to play with two different things on Windows XP, I would have two complete copies of Windows XP (copied from a base line that I stored on the network). Then would play with these two copies for a bit... when I was done with them I would delete them and copy down the baseline again.

Well that was just silly.

Now I use Diff's. I copy the baseline VHD down and then create Diff's as needed. One each of these Diff's I do what I need to do, test what I need to test. When I'm done, the Diff is deleted. The baseline VHD is never touched. This is saving me ten's of gigs of drive space.


So take this to the next level.

Problem: Secure local multi-user access has not been a focus of Windows to date. You just need to look at all the hoops you have to jump through to run as a non-Admin (For example my son can't play some of his games unless he's a local admin... Yeah, this is the game author's fault and not MS's but the game author's assumed everyone would/could be local admins and MS hasn't really pushed against that...)

Look at google's desktop search and it's "issues" with install (have to be local admin to install), usage (only one user per machine can use it) and indexing (it indexes all files no matter who owns them).

Look at how easy it is for one local user to jack up the settings for other local users. Look at "Switch Users" on XP and how that doesn't work all that well (at least it doesn't for my family). bla, bla, bla....

Idea for a Solution: What if MS were to reverse what is hosted on what? Instead of Virtual PC running on Windows which runs on the metal, have the OS run on a Virtual PC like thing that runs on the metal.

Every user gets their own Diff (read-write). This is chained to the OEM App's Diff (read only) which is chained to the baseline OS VHD(read only). Now the user can STILL be a local admin, They can totally jack up their environment. They can do stupid things, open every email and install every p2p app on the planet. And nothing they do can effect any other local user of that machine... Only their Diff is effected. The App's Diff and OS VHD are never touched or changed.

If the user's problems get out of hand then just their Diff need be nuked and recreated. Again, no App/OS re-install. Think "protected partition" for the App's/OS

Wrap this into the OS so it's invisible and under the covers. The Loader becomes a shim that loads the the VPC (yeah I know/guess it would have to be totally rewritten...).

Heck the Loader could be in hardware/flashram. The base OS VHD too? So now you have almost instant on and high performance (yeah and high cost since you'd need gig's of flash ram). You also have a "Switch User" that really works with no chance of conflicts.

No more "Nuke everything and reinstall" game. No need to ever reinstall the OS again!


I know there are SO many issues with this. Performance, hardware drivers, compatibility, hotfixes/patchs, 3rd party integration, etc, etc... And yeah it seems a slimy hack... but is it also a road to true secure, protected and isolated local multi-user Windows?

1 comment:

Anonymous said...

I have been thinking something like this needed to be done for years. Put the main files (drivers, settings files, etc) somewhere that they can't be altered or demolished by a user. Then all you would have to do is make some sort of shadow copy for the individual to have their own "personal" settings. These are just my thoughts as I am not a programmer and do not know if this is even possible.