Did you know that the majority of the business world uses Windows for its desktop operating systems? Of course you did. Did you also know that by doing so, the user is guaranteed to get a greatly varying experience when using different machines? Maybe. Okay, here comes the really tough question. Do you think this should be possible to have people move around to different machines and get the same experience. Maybe yes?
The more I understand the problem, the more I realize that Windows was never meant to be moved to another machine. There are exceptions to the rule but in general it stays put. Once you install Windows and load up the applications, there is little change of migrating the platform somewhere else.
Windows is essentially tied to its hardware roots. Certainly it is possible to build solutions based on either virtualization or remote execution (think RDP or ICA), but this is not quite the same thing as a true native solution.
Out loud, I’m wondering why this hasn’t been a bigger requirement. I mean, why wouldn’t you want to be able to move from machine to machine and get your own environment? Why wouldn’t you want your own desktop on a new platform? Technically it is possible. Obviously it would be easiest coming from the group that wrote Windows. So far there has been little hint of it.
It seems that the general public is not aware of the possibilities. If they knew, they would probably realize they have wanted this all along and start demanding it.
The most obvious use case is a worker that switches between working at work and working at home. Given that the user is going to demand the best performance and expect also the flexibility of using either a work or home machine, they are going to want the same “face” to their same desktop. This would include everything the user would expect to get access to including user data and applications. The desktop should look exactly the same except for differences in screen sizes.
There is the option of adding in extra bits that only the local machine has but at this point it seems better to exclude the options.
How could this happen? Probably the first step is finding a decent way of isolating Windows away from the hardware. As crazy as it might sound, there is a need for a layer between user mode and kernel mode related to switching devices on different platforms. Let me say it a different way. There should be a way to allow for loading of different drivers based on the underlying hardware. It’s incredibly simplistic to say it this way but basically it would need a detector/loader driver so that it could appropriately load the current driver based on the current platform. Currently Windows seems a bit fixated with what it was installed with. I’m sure there are techniques that already do this today. Basically we just want Windows to be able to load on different platforms with the same disk image. Provisioning Server has a feature like this but it is not quite what I have in mind.
Once you have a system that can load the basics, then you need to make sure that all the user’s relevant data and programs come with. This becomes a venture in packaging and execution. Everything should work and hopefully not be too big. From a user’s point of view, they get what they are used to. From an IT point of view, you have just extended out what you can support.
It would be far easier to contain the environment in a virtualization container. This is both good and bad. It’s good because it will probably work straight away. It’s bad since it will not always produce the performance that is expected.
I admit that this is a bit of a wandering post. I’ve been trying to come to grips with aspects of Offline VDI. A number of new techniques are coming to mind. However, it still comes back to one question.
Is it reasonable to assume that a user’s environment should be allowed to be portable? By this, I am not just talking about user profile information. I am talking about potentially duplicating the same environment between many different machines which are worked from.