You are on page 1of 24

Term Paper Of Operating System

Subject: Windows CE Submitted to: Mr. Mohantesh Submitted by: SHANKEY NARANG MCA (Hons) Roll No.R282B31 Reg No. 10806234 SUB.CODE:-CSE366 SEC:-282

Acknowledgement I, Shankey Narang thanks my teacher for provide me with all necessary material for completing my project and also the help is appreciated without which completion could not have been possible.

Shankey Narang

Microsoft Windows CE: An Overview Introduction Microsoft Windows CE is a scaled-down operating system designed specifically for what Microsoft terms 'information appliances'. In Microsoft's vision, these appliances range from handheld computing devices to mobile phones to automobiles to industrial equipment. At the time of this writing (early 2000), CE is currently undergoing a marketing facelift due to weak acceptance in the horizontal marketplace (CE has done well in vertical industry applications but has failed to catch on with the public at large). Part of this marketing "touch-up" has been the renaming of the next version of CE, version 3.0, to the Pocket PC. Whether developers and the industry at large actually switch over to this naming convention remains to be seen. The purpose of this document, however, is not to address CE's marketing strategies. Instead, we will present a brief overview of CE's capabilities and device requirements in order to allow you to make an informed decision when purchasing or developing software for these devices.

Features
Create a Trusted Environment Microsoft Windows CE devices send, receive and process information that requires protection from potentially unsafe applications. To help protect your device, you can implement security measures that can help prevent the OS from loading unknown modules, restrict access to system application programming interfaces (APIs), and prevent write access to parts of the system registry. You can designate a module as trusted or not trusted when certifying applications. The kernel can use this information to prevent unauthorized applications from loading or limit their access to the system.

Windows CE is optimized for devices that have minimal storagea Windows CE kernel may run in under a megabyte of memory. Devices are often configured

without disk storage, and may be configured as a closed system that does not allow for end-user extension (for instance, it can be burned into ROM). Windows CE conforms to the definition of a real-time operating system, with a deterministic interrupt latency. It supports 256 priority levels and uses priority inheritance for dealing with priority inversion. The fundamental unit of execution is the thread. This helps to simplify the interface and improve execution time.
]

A distinctive feature of Windows CE compared to other Microsoft operating systems is that large parts of it are offered in source code form. First, source code was offered to several vendors, so they could adjust it to their hardware. Then products like Platform Builder (an integrated environment for Windows CE OS image creation and integration, or customized operating system designs based on CE) offered several components in source code form to the general public. However, a number of core components that do not need adaptation to specific hardware environments (other than the CPU family) are still distributed in binary form only.

Applications of windows CE

Secure Your Communications Network Security for communications requires special attention because the network interface provides an access point to a device that can be used remotely by an attacker. It is easier for an attacker to remain anonymous or undetected through a network-based attack. This makes determining the source of the attack more difficult. Authentication. When setting up authentication, you should consider whether it is important to authenticate the client to the server, the server to the client, or both. For example, when you connect to a bank, you need to verify the identity of the entity that you are giving credentials to. In this case, you need mutual authentication. On the

other hand, when you browse a Web site to get information, you may not care about the identity the entity that is providing the information. Secure Your Wireless Network Unlike wired networks, wireless networks can reach beyond the walls of buildings. In many deployments, wired network security depends on the physical security of the networks behind locked doors of the buildings. You need to pass through the building security to get access to the network. On the other hand, wireless networks can be monitored and attacked from outside the walls of buildings. To mitigate security risks, many wireless networks provide ways to encrypt transmissions. You can use simple static encryption (WEP) network keys or more advanced techniques that generate and rotate the WEP keys to help provide privacy. For the most advanced protection, specifically for 802.11, you should use 802.1X industry standard as defined by the Institute of Electrical and Electronics Engineers, Inc. (IEEE). It provides for individual authentication and enhanced privacy by

being able to generate and plug in WEP keys. Furthermore, these WEP keys can be generated per user and rotated often based on the policy. For detailed information, see the IEEE Web site. Development tools

Visual Studio Late versions of Microsoft Visual Studio support projects for Windows CE / Windows Mobile, producing executable programs and platform images either as an emulator or attached by cable to an actual mobile device. A mobile device is not necessary to develop a CE program. The .NET Compact Framework supports a subset of the .NET Framework with projects in C# and VB.NET, but not Managed C++.

Platform Builder This programming tool is used for building the platform (BSP + Kernel), device drivers (shared source or custom made) and also the application. This is a one step environment to get the system up and

running. One can also use Platform Builder to export an SDK (software development kit) for the target microprocessor (SuperH, x86, MIPS, ARM etc.) to be used with another associated tool set named below.

Embedded Visual C++ (eVC) The Embedded Visual C++ tool is for development of embedded application for Windows CE based devices. This tool can be used standalone using the SDK exported from Platform Builder or using the Platform Builder using the Platform Manager connectivity setup.

4.1 Windows CE Architecture Windows CE is the basis of all Windows Mobile PocketPC and Smartphone devices. In addition, using the CE Platform Builder, any programmer can create her own miniature operating system based on

Windows CE. Consequently, CE is starting to control a vast array of consumer devices, ranging from toasters to exercise bicycles. Because of its growing prevalence, if you want to become proficient at reverse engineering applications on mobile devices it is important to understand the basics of how this operating system works. This segment briefly covers the Windows CE architecture, with a deeper look at topics important to understand when reversing.

4.1.1 Processors In the world of miniature gadgets, physics is often the rate-limiting step. For example, the intense heat generated by high-speed processors in notebook PCs has been shown to be hot enough to fry eggs. In fact, News.com reported that one unfortunate man inadvertently burned his genitals with a laptop computer . Windows CE devices are likewise limited in their choice of processors. The following is a list of processors supported by Windows CE:

ARM Supported processors include ARM720T, ARM920T, ARM1020T, StrongARM, and XScale.

ARM-based processors are by far the most common choice of CE devices at the time of this writing.

MIPS Supported processors include MIPS II/32 w/FP, MIPS II/32 w/o FP, MIPS16, MIPS IV/64 w/FP, and MIPS IV/64 w/o FP.

SHx Supported processors include SH-3, SH-3 DSP, and SH-4.

x86 Supported processors include 486, 586, Geode, and Pentium I/II/III/IV. If heat dissipation is a serious issue, the best choice is one of the non-x86 processors that uses a reduced level of power. The reduction in power consumption reduces the amount of heat created during processor operation, but it also limits the processor speed. 4.1.2 Kernel, Processes, and Threads

The kernel is the key component of a Windows CE OS. It handles all the core functions of the OS, such as processes, threads, and memory management. It also handles scheduling and interrupts. However, it is important to understand that Windows CE uses parts from its big brotheri.e., desktop Windows software. This means its threading, processing, and virtual memory models are similar to those of traditional Windows platforms. While CE has a lot in common with traditional Windows, there are several items that distinguish it. These differences center on the use of memory and the simple fact that there is no hard drive (as discussed in the next section). In addition, dynamic link libraries (DLLs) in Windows CE are not implemented as they are in other Windows operating systems. Instead, they are used in such a way as to maximize the available memory. Integrating them into the core operating system means that DLLs don't take up precious space when they are executed. This is an important concept to understand before trying to reverse a program in Windows CE. Due to this small difference, attempting to break a program while it is executing a system DLL is not allowed by Microsoft's MVT. A process in Windows CE represents an executing program. The number of processes is limited to 32, but each process can execute a theoretically

unlimited number of threads. Each thread has a 64K memory block assigned to it, in addition to an ID and a set of registers. It is important to understand this concept because when debugging a program, you will be monitoring the execution of a particular thread, its registers, and the allotted memory space. In the process, you will be able to deduce hidden passwords, serial numbers, and more. Processes can run in two modes: kernel and user. A kernel process has direct access to the OS and the hardware. This gives it more power, but a crash in a kernel process often crashes the whole OS. A user process, on the other hand, operates outside the kernel memorybut a crash only kills the running program, not the whole OS. In Windows CE, any third-party program will operate in user mode, which means it is protected. In other words, if you crash a program while reversing it, the whole OS will not crash (though you still may need to reboot the device). There are two other important points to understand. First, one process cannot affect the data of another process. While related threads can interact with each other, a process is restricted to its own memory slot. The second point to remember is that each existing thread is continuously being stopped and restarted by a scheduler (discussed next). This is how multitasking is actually performed. While it may appear that more

than one program is running at a time, the truth is that only one thread may execute at any one time on single-processor devices. The scheduler is responsible for managing the thread process times. It does this by giving each thread a chance to use the processor. By continuously moving from thread to thread, the scheduler ensures that each gets a turn. Three key features for adjusting processor time are built into the scheduler. The first feature is a method that is used to increase the amount of processor time. The secret is found in multithreading an application. Since the scheduler assigns processor time at the thread level, a process with 10 threads will get 10 times the processor time of a process with one thread. Another method for gaining more processor time is to increase the process priority; but it's not encouraged unless necessary. Changing priority levels can cause serious problems in other programs, and it affects the speed of the computing device as a whole. The THREAD_PRIORITY_TIME_CRITICAL priority is important; it forces the processor to complete the critical thread. 4.1.3 Memory Architecture One of the unique properties of most devices running Windows CE is the lack of a disc hard drive. Instead

of spinning discs, pocket PCs use old-fashioned RAM (Random Access Memory) and ROM (Read Only Memory) to store data. While this may seem like a step back in technology, the use of static memory like ROM is on the rise and will eventually make moving storage devices obsolete. The next few paragraphs explain how memory in a Windows CE device is used to facilitate program execution. In a Windows CE device, the entire operating system is stored in ROM. This type of memory is typically read-only and is not used to store temporary data that can be deleted. On the other hand, data in RAM is constantly being updated and changed. This memory is used to hold all files and programs that are loaded into the Windows CE-based device. RAM is also used to execute programs. When a thirdparty game is executed, it is first copied into RAM and is executed from there. This is why a surplus of RAM is important in a Windows CE device. However, the real importance of RAM is that its data can be written to and accessed by an address. This is necessary because a program will often have to move data around. Since each program is allotted a section of RAM to run in when it is executed, it must be able to write directly to its predefined area. While ROM is typically only used as a static storage area, in Windows CE it can be used to execute

programs. This process is known as Execute In Place (XIP). In other words, RAM is not required to hold the ROM's data as a program executes. This freedom allows RAM to be used for other important applications. However, it only works with ROM data that is not compressed. While compression allows more data to be stored in ROM, the decompression will force any execution to be done via RAM. RAM usage on a Windows CE device is divided between two functions. The first is the object store, which is used to hold files and data that are used by the programs but are not stored in ROM. In particular, the object store holds compressed program files, user files, database files, and the infamous Windows registry file. Although this data is stored in RAM, it remains intact when the device is turned off, because the RAM is kept charged by the power supply. This is the reason it is very important to never let the charge on a Pocket PC device completely die. If this happens, the RAM loses power and resets. It dumps all installed programs and wipes everything on the device except what is stored in ROM. This is referred to as a hard reboot when dealing with a Pocket PC device. The second function of the RAM is to facilitate program execution. As previously mentioned, when a program is running, it needs to store the information it is usingthis is the same function that RAM serves

on a typical desktop PC. Any data passing through a program, such as a password or serial number, will be written to the RAM at one time or another. Windows CE does have a limit on the RAM size. In Windows CE 3.0 it is 256 MB with a 32 MB limit on each file, but in Windows CE .NET this value has been increased to a rather large 4 GB. In addition, there is a limit to the number of files that can be stored in RAM (4 million) and to the number of programs that can operate at the same time. This brings us to multitasking. Windows CE was designed to be a true multitasking operating system. Just like other modern Windows operating systems, it allows more than one program to be open at a time. In other words, you can listen to an MP3 while taking notes and checking out sites on the Internet. Without multitasking, you would be forced to close one program before opening another. However, you must be careful not to open too many programs on a Windows CE device. Since you are limited by the amount RAM in the device, and each open program takes up a chunk of the RAM, you can quickly run out of memory. Finally, the limitation of RAM in a pocket PC also affects the choice of operating system. Since Windows CE devices may only have 32-128 MB of internal RAM, they do not make good platforms for

operating systems that use a lot of memory, such as embedded Windows XP. In this OS, the minimum footprint for a program is 5 MB. On the other hand, Windows CE only requires 200K; this is a 2500% difference.

Windows CE GPS comes with gamepad

Kinwei Techologies has announced a Windows CE GPS system that comes with a game joypad. The KWGM4306TG has a 4.3-inch touchscreen display, 400MHz processor, 64MB of RAM, and 256 of flash storage, Bluetooth, plus an SD/MMC expansion slot, according to the company.

Kinwei's KW-GM4306TG uses Windows CE 4.2,

and offers a touchscreen display with a resolution of 480 x 272 pixels. Like a multitude of other GPS devices, the unit employs SiRF's starIII chipset, touted as being able to track more than 20 satellites, with a TTFF (time to first fix) of just one second. (This chipset could be banned from U.S. importation by December, thanks to a patent battle with Broadcom. For more details, see our earlier coverage, here.) The KW-GM4306TG's CPU is Samsung's S3C2440A, clocked at 400MHz, and provided with 64MB of RAM and 256MB of flash storage. The device uses its SD card slot to store maps. So far, this is standard fare, but as the picture above indicates, the KW-GM4306TG also comes with a wired joypad for gaming use. Kinwei doesn't say what type of games the device is compatible with, other than a passing reference to "8-bit." Perhaps, like last year's Newman Newsmy MiniAll VX1000, the unit is bundled with an 8-bit Nintendo Entertainment System (NES) emulator.

Windows CE Future Directions


Introduction This is my idea about where the direction that Windows CE is going. There is no guarantee that any or all of this will be come reality. I've been considering what is wrong now and what else would be nice to add. I do not work for Microsoft or any of the hardware manufacturers so don't take this as a future statement by them. Please email me if you find an error in this information or you have something else to add to the list at Chris@Pocket PC FAQ. Operating System Add Word, Excel and PowerPoint converters on the Handheld PC

Add stand alone Pocket Word, Pocket Excel and Pocket PowerPoint desktop converters

Add built-in converters for Pocket Application data files to Office desktop suite Add ability to sync handheld to handheld or palm pc add color inkjet printer support Add the ability to see free and used space on storage cards. display the description of all installed storage cards in the Control Panel -> System Video Conferencing Paint program macros video player - avi, mpeg, mov Add the ability to see the the Windows CE screen on an external monitor at all times. Add DDE (dynamic data exchange) and OLE (object linking and embedding) to the system.

Networking

Add ping utility Add TCP/IP host file support Add redirector for NT/95 drive access Add network printing Add winipcfg utility Add built-in telnet with file transfer and capture Add built-in ftp more supported Ethernet cards Add support for multiple configurations for different Ethernet settings

E-Mail

Add Exchange client Increase limit on text messages from 16k make them attachments if necessary. Add the ability to convert attachments to and from Pocket Word/Pocket Excel /Pocket PowerPoint format.

Applications

Activesync

Increase the number of ActiveSync hosts Add the ability to specify where Synchronized files are stored on the Handheld PC and desktop. Support graphical notes in Outlook 97/98.

Excel

Add cell linked references to cells on another files Add graphing to capabilities

Word

Headers/footers w/ Page Numbers Add tables in Pocket Word Add Word Count

Internet Explorer

Add Java Add Java Script Add VBScript Add dithering to jpeg decompression

Pocket Outlook

Fix 7am bug on Mips in Calendar (Can not schedule 7am appointments - must be 6:59 or 7:01) Fix 10/31/99 all day event bug on all systems (Any all day event on 10/31/99 shows up as 10/30/99) Add Month at a glance like the Palm PC Add Year at a glance like the Palm PC Display the Number of contacts/Number of selected contacts

Hardware

USB Firewire Irda 1.1 (4mbits/second) parallel port mouse port more colors in color displays larger color displays external keyboards scsi cards - cdrom, zip drive Joystick

Compact Flash I/O cards

Reference:

www.google.com www.yahoo.com www.blackee.com www.dogpile.com www.ask.com Old books

You might also like