Windows CE is an operating system for handhled devices. These devices starteded out as handhel PCs and PDAs, then has grown to be a necessity in devices such as mobile phones and Microsoft's media player Zune. Windows CE can also be compared as the haldheld version of its desktop version.
Windows CE is an operating system developed by Microsoft for embedded systems and small devices such as PDAs, SmartPhones, and Zune. This 32-bit operating system can multitask and is a multithreaded operating system that has an open architecture design allowing it to provide support for a wide variety of devices. Windows CE provides high performance in limited memory configurations in mobile product lines because it is so compact.
The first version of Windows CE was first released on November 16, 1996. It was released as a scaled down version of Windows 95 by the development team Pegasus. This team wanted this operating system to be on small devices that were: less than 1 pound in weight, powered by two AA batteries, and be able to fit in a pocket. This was the first step that would later lead to an increase in mobile operating systems as the computer world consisted of computers that would shrink in size over the years as it would be installed into PDAs, mobile phones, and Microsoft's answer to the music player iPod, the Zune.
As it first started, the Pegasus team wanted the 32-bit operating system to be on devices these requirements: pockect form size (7x4x1 inches), powered by two AA batteries, weighed less than one pound, QWERTY keyboard that has the standard keys (CTRL, ALT, Shift), LCD touch screen display of 480x240 pixels with 4 grayscales and 2 bits per pixel, stylus to use like a mouse on the touch screen, 4 MB of ROM minimum, 2 MB of RAM minimum, HPSIR compatible Infrared port, RS-232 Serial port, PCMCIA slot, built-in audio output device, and to either run on SuperH 3, MIPS 3000, or MIPS 4000 processor architecture. These first design specifications were based on the first version of Windows CE, when compact devices was something new. This was used as a base for later versions of Windows CE as compact computers and mobile devices was becoming as common as a desktop computer for home.
Windows CE is a multi-threaded and preemptive multitasking operating system and kernel. This preemptive priority-based thread scheduling is based on the Win32 process and thread model, and it supports eight levels of thread priority. Its demand paging is supported by ROM, RAM, and FAT file systems.
The Application Program Interface (API) Win32 is supports Windows CE in memory management. The operating system has a small 32 MB virtual address space. Windows CE uses the VirtualAlloc memory allocation call to allocate memory at a page level. The VirtualAlloc call has two steps to allocates memory. The first one being a region of the virtual memory space is reserved. This prevents a portion of the virtual address space from being used other than to allocate memory. The second step happens right after the first step. Once the memory space is reserved, portions of the region can map actual physical memory to a reserved region. The VirtualAlloc call has been used for both commiting memory and reserving memory space.
Windows CE has support from the Component Object Model (COM) and was an effective piece of programming for the earlier versions of Windows CE. The runtime from this programming is the best choice for applications for free threading models. Windows CE supports another implementation of COM that includes support for remote servers (DCOM) for multi-threading models. There is another application that Windows CE implements, and that is the Microsoft Message Queuing Service (MSMQ). This functionality allows applications to communicate with other applications by means of messages. The applications can communicate even when the applications are not running at the same time.
As threads in Windows CE enter a deadlock or blocked state, the operating system enters the idle mode. As the operating system enters idle mode, the CPU is stopped from executing instructions. Not only that, it also stops consuming power.
There are three types of file systems in Windows CE: a ROM-based, RAM-based, and a FAT file system. All these file systems are accessed thought the Win32 file-system application programming interface. These file system were to be installed on the device, it may provide access to PC Cards and other external devices. The external devices may not be necessary most of the time but does give that extra security knowing data can be backed up if desired to.
Windows CE provides technologies that ehances the secuirty of its operating system on the devices it is installed on. These technologies include: Security Support Provider Interface (SSPI), Cryptography, Digital Certificate Handling, and Smart Card Support. Microsoft Cryptographic API (CAPI) secures communication by encryption and decryption, and Windows CE smart card subsystem supports CAPI and other Windows CE-based device driver models for developing smart card readers. These smart card readers are common for the military as they use them to read information on their Common Access Cards (CAC).
Digital Certificate Handling helps identify who the user is communicating with to make sure the communication is secure. Security Support Provider Interface enables applications to access dynamic-link libraries (DLLs) containing authentication and cryptographic data schemes. This provides a variety of ways to identify users and different ways of encrypting data as it travels across a networks and helps secure client applications such as web browsers and e-mail.
It also helps that the devices it is usually on are small devices and the number of ways it can be hacked are at a minimum compared to normal desktop computers. This systems has fewer communication ports and the network layer is usually a one-way channel so communicating to a portable device through a desktop computer over a network file share is nonexistant.
Windows CE has a variety of network utilities to communicate between devices using Transmission Control Protocol (TCP) and Internet Protocol (IP). These utilities consist of IPConfig Module, Netstat Utility, Ping Utility, and Route Utility. The IPConfig Module allows users to view the values for the configuration of protocols to make remote conections.
Win32 application programming interface is what Windows CE is based on. Win32 is the Windows 32-bit API is a base for other APIs. Other operating systems that may not use Win32 as the main API, any other API may call Win32 functions to do work within the operating system. Win32 is the perfect API because it was an ideal API for small software, like Windows CE. This API is good for small devices that run on Windows CE. No runtime is require for this API, and is required for shell extensions like the on-screen keyboards on Pocket PCs and changing the display on user interface skins. Win32 is a great choice for real-time threads as the performance is better than other APIs such as the Microsoft Foundation Class (MFC), and .NET Compact Framework.