Windows 8 Installed And Running On Microsoft Surface 1.0 [Video]

A Microsoft Surface MVP, has installed Windows 8 on Microsoft Surface 1.0. The interface, as expected, works well in the touch based environment. "By "it works", I mean the Microsoft Surface 1.0 shell and applications run as expected on Windows 8, and immersive-mode applications and regular desktop applications can be controlled using the Surface vision […]

A Microsoft Surface MVP, has installed Windows 8 on Microsoft Surface 1.0. The interface, as expected, works well in the touch based environment. "By "it works", I mean the Microsoft Surface 1.0 shell and applications run as expected on Windows 8, and immersive-mode applications and regular desktop applications can be controlled using the Surface vision system touch input," said JoshB.

While the interface does work well, there are a couple of exceptions as Windows 8 was not intended to run on surface (at least for now). Microsoft Surface was designed to be used on all sides of the device, as such; Windows 8 is only useable from a single orientation.

"For one, everything is oriented in one direction, and two, I need to reach too far to get to certain interface elements across the table. That's the opposite of the ergonomic intent of the immersive mode, which was design for smaller screens and slates," JoshB added.

He explains:

Since Surface 1.0 is intended to run on Vista, the fact that any of this works is a testament to the backwards compatibility story of Windows 8. In short, I shrunk the Surface's Vista partition then installed Win 8 from USB key to the new partition (make it 40 GB minimum if you want to develop on it). The installer automatically set up dual booting, so I can boot back to Vista for the "correct" Surface 1.0 environment if I like.

The tricky part was getting the Surface SDK (full version that comes on Surface, not the workstation edition) to install (edit the msi launch conditions using Orca) and then getting the inputs from the Surface vision inputs to drive the Windows 8 UIs. To do that I used MultiTouchVista, which has a component that can connect to SurfaceInput.exe as a client as well as push touch data to an HID touch input driver. Windows 8 doesn't know it's not a capacitive touchscreen at all. (This technique also works for combining Windows 7 with Surface.) Win8 UI also won't be aware of tags or blobs but if you want to write a Surface application that uses those, just use the Surface SDK! Some other time I'll post a deep technical walkthrough, but this thread should be sufficient to get you started.

All of the Surface hardware drivers and Surface applications run great. The immersive mode touch responsiveness is a bit flaky as you can see in the video, but this could have been any number of things from the MultiTouchVista plug-ins to the Win8 touch stack to the Start screen. The Win8 touch visualizations (trails and auras) were always working fine, so I'm leaning towards the problem being in the Win8 UI layer. This is a pre-beta build though, so entirely understandable.

I do need to say that this configuration is completely unsupported and would probably violate the warranty if it wasn't already expired for this particular machine. It also has nothing to do with Surface 2.0. You won't ever see Microsoft create a configuration like this for general use since running three shells (Surface, Immersive, and Desktop) side-by-side would be entirely confusing for real users. In the video I was basically in the equivalent of Surface administrator mode, manually running SurfaceShell.exe, and then switching ad-hoc into immersive mode, which is like a full screen start menu. There are too many competing metaphors and modes for this configuration to be used by the general public.

Windows 8 running on Surface 1.0 can be viewed in the video below: