Steven Sinfosky’s keynote at Microsoft's BUILD conference hinted at the future of Windows Phone 7—a future in which Windows Phone 7 runs the same core kernel as every Windows tablet and desktop computer. The progression of Moore’s Law on hardware, combined with significant efforts by Microsoft to make the Windows OS lighter and smaller, is making this intersection inevitable. And developers will undoubtedly reap the benefits.
There was a slide in Sinofsky's keynote presentation that discussed how the Windows OS' minimum footprint for memory is getting smaller. In the preview release for Windows 7, 540MB of RAM used by 34 processes was required to boot up. In Windows 7 SP1, these numbers decreased to 404MB of RAM used by 32 processes. And in the Windows 8 preview release, the minimum resource footprint is 281MB of RAM used by 29 processes. Since Windows 7, the Windows OS' minimum footprint for memory has gotten a lot smaller.
In that same keynote, the minimum hardware specs for Windows 8 included a 1GHz processor and 1GB of RAM for the 32-bit version of the OS and a DirectX 9 compatible graphics subsystem. At the time of the keynote, the smartphone I had in my hand was a Samsung Focus, which has specifications of 1GHz processor, 8GB of RAM, and a DirectX 9 GPU.
Now granted, there’s a difference between the Samsung Focus' ARM Snapdragon processor and the Intel Atom processor of a typical lightweight laptop, but it’s not that big of a difference. But beyond that, it’s clear that the horsepower in the original generation of Windows Phone 7 hardware is in the realm of Windows 8's minimum specifications.
There's also an advance in the hardware cycle—by the time Windows 8 ships in late 2012, the horsepower and capacity of smartphones will improve again. You’re not going to want everything that Windows 8 has, but you’re going to want the innermost kernel, which is often dubbed “MinWin.”
Why would you want that kernel? Look at the challenges that Windows CE and the Windows .NET Compact Framework have had in the past. New versions of the core OS and CLR are released and it’s months, sometimes years, before those improvements can be settled into their smaller cousins. If we’re all working with the same kernel, there’s only one new version that everyone can use. You’re going to have challenges with how much of the core product should be on your smaller device, but that problem is much easier to solve compared to the porting that used to take place.
With one kernel from smartphone to supercomputer, developers get to focus on using our favorite set of tools for each size of device, rather than needing different techniques and technologies. The result is better and faster software. Microsoft might not get there in the Windows 8 time frame, but the path the company has set is pretty clear, and I think it’s a great one.