5.24.2010

Windows Phone 7: technical tidbits exposed


Windows Phone 7 architectural documents, the sordid details exposed
We're in an interesting position with Windows Phone 7. We still don't know what devices will be running the OS nor indeed exactly when they'll be launching, but despite that we've already had the opportunity to spend quite a bit of quality time with not one but two separate versions of Microsoft's mobile revolution. And now, if that weren't enough, we've gained access to a series of detailed architectural documents about the OS courtesy of tweakers.net and HTCPedia.com, documents that detail everything from ringtones to device drivers. It's a couple-hundred pages of generally menial stuff, but there are quite a few nuggets of gold to be found in here, and we've dug them out just for you. Click on through, and let's see what we've got.

Windows Live ID required

Windows Phone 7: the sordid details exposed - DNP

Don't have a Windows Live ID? Oh, you will -- at least if you will if you want to use Windows Phone 7. When it comes time to activate your phone for the first time you need to either sign with your existing account or create a new one. It's not entirely clear what information will be tied back to your account, though it's a safe assumption that app purchases and the like will be linked to your ID, not your phone. No word on whether migration of those apps will be as painless as it is with Android, but we wouldn't be surprised. Microsoft has also done a lot with cloud-based storage, so Froyo might not be the only one with automatic syncing of user data.

Two flavors of apps

About those apps, they'll run under what Microsoft calls the "Windows Phone OS 7.0 Application Platform" which is, naturally, "designed to support the 3 Screens + the Cloud world that consumers live in." Moving past the PR speak (which somehow leaked into these developer-friendly docs), there are two basic classes of downloadable programs. The first are lightweight programs developed largely using Silverlight (Microsoft's Flash competitor) as well as markup. In other words, these will effectively be web apps running locally on the phone, not unlike webOS.

The other tier of applications are built up using XNA, and here we're primarily talking about games or anything else needing a little extra horsepower. XNA is Microsoft's cross-platform development environment which allows devs to write code that can, in theory, be deployed to Zune, the Xbox 360, or even good 'ol Windows with minimal tweaks. There can also by hybrid apps, which contain elements of the two.

Updates and Mac (in)compatibility


Continuing with the Zune compatibility theme, Microsoft's Zune software for the PC will be how users update and back up their phones. There will be over the air updates pushed straight to devices, but users will also be able to (and possibly even forced to at times) download certain updates through the Zune software. Of course, that reaffirms the lack of Mac compatibility, as currently the full Zune client only runs on PCs. Will that change in the future? We'll see.

Updates will come through the Windows Update system, the same basic framework that results in constant and annoying pop-ups on your PC. Vendors will be able to submit updates to Microsoft for testing which, when passed, Microsoft will feed to phones via the cloud. This could mean that updates will be a little slower, as they'll have to make it through Microsoft's testing, but it should result in squeaky clean patching when they do come through.

OS internals


Going down a little lower, the architecture documentation makes it clear that Windows Phone 7 is simply based on Windows CE 6.0 Embedded (contrary to the somewhat vague verbiage Microsoft PR pushed a few weeks ago), built upon a 32-bit kernel with a 4GB address space. That means that devices can have a maximum of 4GB of RAM, which right now is a lot for a phone but four years from now will probably seem rather quaint. Of this, half is reserved for the low-level OS functionality, 1GB is reserved for the current running application, and the other 1GB is shared among the other running processes and apps.

This, of course, gets us into the question of multitasking. Microsoft has been a little wishy-washy on the details of exactly how multitasking will work from a user-perspective, but from an OS perspective the support is definitely there. CE 6 provides for preemptive multitasking, which basically means that multiple processes can share the same CPU and all will have guaranteed access to that processor, but higher priority tasks (like redrawing the screen) can knock lower priority tasks (like the 8-bit music in your NES emulator) down the list and ensure that they get more timely service. This is of course vastly unfair to lowly app threads, who just want their turn, but it means that no piece of downloaded software will be able to make the OS itself unresponsive -- in theory.

Mix and match drivers


An OS wouldn't be anything but a twinkle in some geeks eye without hardware, and naturally, there needs to be a layer of abstraction between the two. That's where device drivers come in, part of what's called the Board Support Package (or simply "BSP") which is generally a term referring to a specific piece of hardware but here refers to the layer between the OS and the phone as a whole. This layer itself includes multiple sublayers, including one called the Kernel Independent Transport. This is where developers will hook in to analyze their code -- we mention it because it's probably where hackers will hook in to analyze other peoples' code.

Drivers here follow the same split concept as used elsewhere, relying on model device drivers (MDDs) and platform dependent drivers (PDDs). MDDs are high-level representations of a given device -- say a graphics accelerator -- representing basic functionality like "turn pixel 353 x 215 blue." PDDs are the hardware specific instructions that turn those basic instructions into streams of electrons heading in the right directions. This separation is a common thing to do, but MS is putting a slight tweak on it by splitting the MDDs and PDDs into separate DLLs (files that contain device drivers).

This is being done because Microsoft will maintain complete control over all the MDDs, meaning if anyone wants to add a new type of device to a Windows Phone 7 device (maybe a breathalyzer), Microsoft will need to provide a high-level driver first (the MDD) before the provider of that hardware can write a low-level implementation (the PDD). What it boils down to is that we're unlikely to see Windows Phone 7 devices showing up with zany, one-off peripherals, but it should make driver implementation a bit more straightforward for OEMs, and could result in better performing devices overall.

Direct3D graphics acceleration, no OpenGL


With gaming at the forefront of mobile devices, one of the most important components of a Windows Phone 7 device will be on-board graphics, and here things are getting a substantial tweak from previous versions of Windows Mobile and CE. Now graphics routines are based on Direct3D 11 -- a quantum leap forward from Direct3D Mobile, a derivative of Direct3D 7. That came out way back in 1999, before vertex shading and bump mapping! Even 2D aspects of the OS will be run through Direct3D thanks to that API's inclusion of DirectDraw, but 2D graphics are really just 3D junk made flat.

OpenGL ES is expressly not supported by Windows Phone 7, which likely won't be a surprise to anyone. This means that porting some games could be a bit more challenging, but Direct3D is such a major player on the other XNA platforms that we don't see this as being a major drawback. That said, OpenGL ES could surely be ported to the OS, but it likely would perform very poorly without Microsoft's help.

Wireless connectivity

All the polygons in the world won't make your phone good if it can't make calls or pull down data wirelessly, and naturally MS has that covered too. In addition to general GSM, CDMA, and WiFi connectivity, Microsoft lists the following data connection types:
  • UMTS
  • EDGE
  • EV-DO
  • EV-DV (which has been all but dead for half a decade, interestingly)
  • GPRS
  • HSDPA
  • LTE
  • 1xRTT
  • WiMAX
So, regardless of who wins the 4G war, this OS is covered. Bluetooth is also available, including HFP 1.5, HSP 1.1, A2DP 1.2, and PBAP 1.0. Notably absent is SPP, the Serial Port Profile, which is often used for things like external, high-precision GPS devices. But, Android didn't support SPP initially either, so there's hope it'll be coming.

Oh, and FM radio tuning is also available -- good news for those who can't get enough wacky sound effects from their chosen local morning crew (which is totally better than that other local morning crew).

A unified file system


Windows Phone 7 uses what's called the "User Store," what the documentation refers to as a "Unified Storage system." Basically, it assigns all storage (built-in and SD-based) into a single volume where apps, images, music, and OS data are stored. You might be wondering what happens if you pull your storage card while the phone is running, and the following warning should discourage an attempt to find out:
If the Secure Digital card is removed, users can lose their data and the phone may not function normally.
If the SD card is pulled the phone will be able to make emergency calls, but nothing else. It remains to be seen just how one will go about upgrading their storage cards down the road (we're sure there'll be a way), but this is definitely incentive to spring for that Class 6 32GB microSD up front.

The user store will be formatted using TextFAT, a transaction-safe version of exFAT, which is standard fare in Windows CE 6.0 along with Windows 7. Meanwhile, the read-focused partition featuring OS internals and the like will be formatted using IMGFS, which offers better read performance at the expense of write performance.

Fully manual camera controls


The OS has hooks for fully manual camera control, including changing of metering, ISO, gamma, exposure, and even dynamic range. So, if some manufacturer really wanted to knock your socks off they could throw a proper sensor in a Windows Phone 7 device and let you go crazy tweaking every parameter. Sadly, we figure that's rather unlikely to happen. Video capture is naturally also supported, as is geotagging.

User and provider customization

Last but not least comes customization of the OS, which is generally rather limited. A wireless provider and hardware manufacturer can provide startup screens that display while the phone is booting, but it isn't clear whether those screens can be animated. A provider can also deliver custom wallpapers, ringtones, and icon sets. Naturally, users will be able to tweak these things as well.

Wrap-up

So, there you have it: a very detailed look at the very detailed aspects of Windows Phone 7. Really there aren't any shockers in these documents compared to what we already knew about the OS, but they give an interesting look down deep inside a fascinating reinvention for Microsoft's mobile mentality -- and if you'd like to read them yourself, they're on the other end of the source links below. With Google just announcing a suite of updates to Android in 2.2 (and beyond) and iPhone OS 4.0 set to revolutionize the platform with multitasking, it's safe to say that Windows Phone 7 won't be an easy sale when it comes on the market. The foundation is solid, though, and all that remains to be seen now is what hardware and software makers will build upon it.


MovieMiguel.com
blog comments powered by Disqus