• 5,730,319
    REGISTERED
  • 51,049
    ONLINE NOW

Windows Phone 7 Facts: Maybe Much Better and Rich Apps!

This is part 3 of the Windows Phone 7 Facts series. In the following weeks, we will be covering the more technical side of the currently unreleased Windows Phone 7 OS by Microsoft. In the previous article, we talked about how the new OS will affect us ROM cookers, and how ROMs are being deployed.

All information is based on exclusive information from XDA-Developers.com member and moderator Da_G. There will be some more changes to the way we were working with Windows Mobile. In this article, we will dive deeper into how the hardware collaborates with the software. We will compare the CE5 kernel (used on WM6.X platforms) to the CE7 kernel which will be used on the new WP7 devices. Both kernels are 32 bit, and both use a 4GB Virtual Address Space, which is split into 2GB reserved for the kernel and 2GB for user space, but that’s where it’s going to differ:

CE5

The running application shows up in red.

The CE5 kernel handles the 2GB of User Space differently from the way CE7 does. The 2GB space is split into 2 parts:

  1. User Space.
  2. Memory mapped files, Modules, etc.

The User Space is where it’s going to differ. In CE5, it’s divided into 32 slots of each 32MB (together 1024MB). A process, such as a program, is loaded into a slot when it’s running in background. During execution, so when the application is running, it’s swapped into Slot 0. This means that every program can only use 32 of Virtual Memory (VM). CE7 however will handle that differently:

CE7

The running application shows up in red.

The User Space in CE7 will not be divided any further, you get 1GB of VM. The huge advantage of this is that an application can use the full 1GB of VM to run.

Originally posted by Da_G

Each running process is mapped to the entire 1GB space, allowing the full 1GB of VM available for use without the trickery needed to accomplish using more than 32MB of VM in CE5.

This means that CE7, and thus Windows Phone 7, should allow much more rich programs to be developed. Requirement for this however is Microsoft’s allowance to us to write Native Code. According to Da_G, this will be coming at some point.

Other inter-process memory sharing, needed for Multitasking, will be done in the other 1GB of user space. This user space will be divided into 256 ‘priority levels’, for each individual thread within an application:

Scheduling is handled on a round-robin basis for threads sharing the same priority level. Priority level 0 functions as a “real time” priority level and any thread running at this level will run through til completion before the scheduler runs another thread. True multitasking will not be accessible to programmers initially, though Microsoft intends to unlock that later down the line (presumably around the time native code is allowed). There is no hard limit to the number of threads a program can utilize, it is only limited by the system resources available.

This means that there will be multitasking, but it could take some time.

In short: I think and hope that there will be much more rich apps, because of the huge size of Virtual Memory available. However this won’t be accessible until Microsoft supports Native Code for third parties.

We hope you found this informative, I think it’s pretty interesting how everything works. It also shows how difficult it is to create a new fresh kernel.

View the original thread for additional information, you can also ask questions to Da_G in that thread.

_________
Join us for xda:devcon 2014. For a limited time, XDA Portal readers get 20% off registration!
Advertisment
Advertisement

XDA TV: Most Recent Video

Buy/Sell on Swappa

  • Nexus 5 (Unlocked) buy | sell
  • Galaxy Note 3 (T-Mobile) buy | sell
  • HTC One M7 (Verizon) buy | sell
  • Galaxy S 5 (Unlocked) buy | sell
  • Nexus 7 2013 buy | sell
  • Swappa is the official marketplace of XDA