Okay, there has to be a good descriptive picture the WP8 kernel, as it has been a huge advertisement point for the whole unified model for Windows and Windows Phone. Or that’s what I thought, until I tried to find one for almost a day with no success. Maybe I’m not the only one, and I thought I draw my own version based on all the information I could dig up (almost only good source was the Windows Phone Internals Preview 1), mixed with some BUILD videos about Windows 8. As amazing it is, there’s absolutely nothing in MSDN about the kernel structure of WP, so here’s something for those with endless thirst for knowledge:
From top to bottom, the famous shared core consist of two distinct parts, Windows Core System and Mobile Core. The Windows Core system is the part that actually shares code with Windows and is the bare essential of OS kernel. The Mobile Core is the part that shares functionality and code with the Windows kernel, but it’s no longer 1:1 copy, but tuned to mobile needs, with less functions than the big Window’s kernel. So together the Core System with Mobile core are the only areas with codeshare between the two platforms. There are areas where the APIs are the same, but the code behind differs between Windows and Windows Phone.
Above the shared core sits the Windows Phone system, with prebuild apps like people hub and Music & Videos, Windows Phone Shell, Connection management and Platform services etc. The platform services itself consists of four major elements, which provide services to all applications.
Package Manager is the part which handles the lifecycle of an application from installing to uninstalling, and the metadata while it’s installed on the system. That data includes information about pinning and extensibility points the app has registered.
Execution Manager handles the applications and background agents and their execution logic. It is responsible for creating the host process and application state messages, such as app startup/shutdown and deactivation.
Navigation Server is handling all the moving between foreground applications on the phone. It handles it by telling execution manager what application to launch or reactivate and keeps track of the navigation stack.
Resource Manager monitors the system resources of all the active processes and enforces constraints on them, focus on CPU and Memory. If the app is misbehaving, Resource Manager can terminate the app to ensure the stable and quick response of the phone.
That’s the quick version of the shared core for Windows ecosystem, hope you find it useful!