Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

The kernel provides the base OS functionality for any Windows Mobile device. This functionality includes process, thread, and memory management. The kernel also provides some file management functionality. Kernel services enable applications to use this core functionality.

NK.exe is the OEM application layer (OAL) process. The kernel, Kernel.dll, is loaded during boot by the OAL. Nk.exe is the core of the Windows Mobile OS.

Use the kernel process and thread functions to create, terminate, and synchronize processes and threads, and to schedule and suspend a thread. Processes, which represent single instances of running applications enable users to work on more than one application at a time. Threads enable an application to perform more than one task at a time. Thread priority levels, priority inheritance, interrupt support, and timing and scheduling are all included in the Windows Mobile kernel architecture. Together, they provide real-time application capability for time-critical systems. For more information, see Real-Time Priority System.

The Windows Mobile kernel uses a paged virtual-memory system to manage and allocate application memory. The virtual-memory system provides contiguous blocks of memory, in 4,096-byte pages along 64-KB regions, so that applications do not have to manage memory allocation. For memory requirements of less than 64 KB, an application can use the local heap provided for all Windows Mobile applications or create separate heaps. The kernel also allocates memory to the stack for each new process or thread.

Use the kernel memory functions to allocate and deallocate virtual memory, use memory on the local heap, create separate heaps, and allocate memory from the stack. You can use the unused memory from the static data block that is allocated to load the application. Processes can also use memory-mapped objects to share data.

The kernel contains the following functionality:

Memory Architecture

Explains the memory architecture system.

Scheduling

Provides information about the scheduling system.

Real-Time Performance

Describes a real-time performance system.

Loader

Provides information about the process of loading modules into virtual memory.

System Calls

Describes the operation of system calls.

Kernel Power Management

Provides information about the power states and transitions.

Additional Kernel Functionality

Describes miscellaneous services that the OS provides.

The following illustration shows the general structure of the Windows Mobile kernel, emphasizing the kernel as the conduit for the rest of the core OS.

See Also