Microsoft Windows CE 3.0 Windows CE does more than windows. This 32-bit operating system (OS) works equally well in deeply embedded applications such as Internet appliances and handheld devices such as the Pocket PC. Its monolithic architecture is extremely modular, allowing a small footprint when necessary and extensive functionality when more storage is available. Hard real-time support is now a standard feature with 256 nestable interrupt levels. Even the time quantum per thread is adjustable.
WIndows CE's ties to other Microsoft platforms is one reason why it's interesting. For example, the Remote Desktop/Display Protocol (RDP) and client let a Windows CE device connect to Windows NT or Windows 2000 terminal services. The tie in to Microsoft's .NET strategy is still developing, but developers should expect close ties. Windows CE already supports Microsoft technologies such as ICS (Internet Connection Sharing), COM (Component Object Model), DCOM (distributed COM), ADO (ActiveX Data Objects), a RAS (remote access server) client, and a CIFS (common Internet file system) client.
Windows CE targets low- to medium-end systems. Embedded Windows NT addresses high-performance systems, but it's limited to x86 platforms.
Overview Windows CE's conventional RTOS design is very similar to Windows 9x, Windows ME, Windows NT, and Windows 2000, since all of them are rooted in the Win 32 API. Most other technologies, such as COM, DCOM, and major applications like Internet Explorer, also are common among the platforms. There are distinct differences in these technologies and applications on each platform, and the Windows CE implementations tend to be streamlined or more modular.One of the main differences between Windows CE and its cousins is the platforms that Windows CE runs on. The x86 architecture is common to all the Windows platforms, but Windows CE runs on a host of other 32-bit processor architectures. With the exception of device drivers, recompilation should allow applications to run on any of the supported platforms.
Microsoft has benefited from the similarity between platforms. All major Windows technologies can be found on Windows CE, with the exception of server-based services. For example, Windows CE will never be a Windows 2000 Active Directory domain controller, but a Windows CE system isn't designed for these tasks. Windows CE supports server-based services, such as a Web server, although on a more limited basis than on other Windows platforms. On the other hand, implementing technologies such as DirectX--including APIs like DirectSound and DirectShow--makes applications like the Windows Media Player a standard option for Windows CE platforms. Windows CE's extensive networking support is one reason it is popular for Internet-appliance applications.
Windows CE diverges from the other Windows platforms when it comes to the user interface. First, it's optional and likely to be found only on handheld or PC-style devices. Second, the interface tends to be a more restrictive desktop than the higher-end Windows OSs, though this is usually due to hardware limitations rather than inherent software limitations. From an application standpoint, the user interface code is almost identical to that found on other Windows platforms.
The development similarity to other Windows platforms is key to CE's success. Microsoft's Windows development tools are used by a significant portion of application developers. Most would find the Windows CE tools familiar, including support for one of the most popular programming languages, Visual Basic.
Tool, language, and API similarity combine to form a very compelling platform for developers that already have experience with Microsoft development products. New Windows CE developers will have to contend with the same kinds of tools as other embedded developers, including cross-platform compilation, debugging, and platform configuration tools.
FEATURES | |
Architecture | monolithic |
MMU support | required |
Real time | hard, soft |
Scheduling | 256 priorities |
SMP | no |
Reflexive memory | no |
Memory management | yes |
Garbage collection | no |
POSIX | |
1003.1 file systemc | no |
1003.1b real time | no |
1003.1c threads | no |
1003.2 shell | no |
Graphics | Win 32, DirectX |
Clustering | no |
Fault tolerance | no |
Licensing | per system |
PLATFORMS | |
Development | Windows 95, 98, ME, Windows NT, 2000 |
Remote debugging | Ethernet, on-chip debug support |
Target applications | most embedded apps |
Target CPUs | x86, ARM, MIPS, PowerPC, SuperH |
Java VM | third party |
Minimum footprint | 400 kbytes |
NETWORKING | |
Protocols | TCP/IP |
File server | none |
CORBA support | third party |
Servers | Web, FTP |
Clients | Web, SMTP, SNMP, RDP |
(425) 882-8080
www.microsoft.comEnea OSE Real-Time Operating System Message-based real-time operating systems (RTOSs), like Enea's OSE Real-Time Operating System, find a home in mission-critical environments because they can simply support complex interprocess communication systems. Enea isn't alone in this approach. QNX uses a similar message-based architecture. Both can easily support applications that span multiple processors.
OSE developers employ third-party products, like Green Hills' MULTI 2000, although Enea provides its own debugger and analysis tool suite called the OSE Illuminator. These tools addresses message-based events to augment conventional source-level debugging. The OSE Soft Kernel lets the OSE operating system and applications run on a development host system. Java support is available with OSE Personal JRuntime targeted at wireless platforms. Third-party products are offered for graphics and CORBA support.
Overview OSE Real-Time associates a message queue with each process so that messages are passed between processes instead of going through a mailbox. Direct messaging simplifies synchronization and interprocess communication using a minimal number of APIs to implement sophisticated interprocess communication. The kernel only requires 5 to 6 kbytes of memory.The operating system breaks down memory into blocks and segments. A block contains one or more processes. Messages are allocated from memory pools, which are associated with a block. One segment contains a collection of blocks. If a processor's MMU support is used, segments provide a physical logical isolation mechanism.
The messaging system incorporates advanced security features. Each process is associated with a user number, and messages can only be sent between processes associated with the same user number.
OSE Real-Time provides fault tolerance in a loosely coupled, multiple-processor environment. A variety of processor-to-processor links are supported, including TCP/IP networks. Link handlers recognize link and processor failures and handle process notification.
The link handler manages links for message passing between remote processes. Link handlers address redirection, disconnected links, and alternate paths. They're used in conjunction with phantom processes, which redirect local communication to a link handler that, in turn, forwards messages to a remote processor. Accessed using the link-handler message-passing system, phantom processes can hunt for services across a network.
Processes are either static or dynamic. Static processes are started after the initialization of the operating system, while dynamic processes are created and killed as necessary. Processes are scheduled based on type. Round-robin scheduling is available, as well as timer-based interval scheduling. Interrupt processes provide priority-level scheduling. Each interrupt, timer, and prioritized process category has 32 priority levels. Background processes have the lowest priority. The timer levels are associated with the timer interrupt level.
Three startup modes are recognized by the operating system. A cold start resets the world and creates static processes. A warm start allows a debugger to recover trace and setup data from the prior execution. If a system is shut down due to a prior power-failure shutdown, then a hot start is used.
Networking support includes a BSD TCP/IP stack, or the OSE Asynchronous API. The OSE Embedded File System supports OSE Internet services such as FTP.
FEATURES | |
Architecture | microkernel |
MMU support | optional |
Real time | hard, soft |
Scheduling | priority, interval |
SMP | no |
Reflexive memory | no |
Memory management | yes |
Garbage collection | via Heap Manager |
POSIX | |
1003.1 file system | yes |
1003.1b real time | yes |
1003.1c threads | yes |
1003.2 shell | yes |
Graphics | Fresco, PEG |
Clustering | no |
Fault tolerance | yes |
Licensing | per client |
PLATFORMS | |
Development | Windows, Solaris, HP-UX |
Remote debugging | Ethernet, on-chip debug support |
Target applications | telecom, wireless, safety-critical |
Target CPUs | Strong ARM, MIPS, PowerPC, 68K |
Java VM | yes |
Minimum footprint | 2 kbytes |
NETWORKING | |
Protocols | TCP/IP, Bluetooth |
File server | none |
CORBA support | third party |
Servers | Web, FTP, TFTP, WAP, POP3, Telnet |
Clients | Web, SMTP, FTP, SNMP, Telnet, DHCP, BOOTP |
(408) 392-9300
www.enea.comMontaVista Hard Hat Linux 2.0 Hard Hat Linux delivers hard real-time support plus the latest 2.4 kernel. It also incorporates preemption latency time improvements that may eventually find their way into the next major Linux kernel release. This follows from MontaVista's philosophy of complete open source versus some Linux distributions that mix open APIs and closed source with open source. Hard Hat Linux can be configured with the standard Linux scheduler or MontaVista's open-source real-time scheduler.
Developers may take a cross-platform and self-hosting approach. Windows NT/2000 development support is handled by running Linux under VMWare. Open-source conversion tools facilitate application migration from pSOS and VxWorks. The new Target Configuration Tool (TCT) greatly simplifies system layout and allows bootable configurations under 500 kbytes.
Scalability is a key feature of Hard Hat Linux, starting from embedded flash-memory solutions to high-performance network servers. MontaVista's High Availability option addresses hot-swapping and clustering, and it supports active/standby pairs for rapid fail-over support. Hard Hat Linux brings all components for embedded Linux development together in a single package.
Overview Combining a standard Linux distribution with a set of enhancements, configuration tools, and add-ons, Hard Hat Linux lets developers concentrate on application development and deployment. The preemptible kernel supports symmetrical multiprocessing (SMP) configurations, and the Library Optimizer Tool prunes unneeded code and symbols for compact deployment images.MontaVista fills in some of the holes found in standard Linux distributions, such as a graphical debugger, IBM's J9 Java virtual machine (JVM), and Abatron's BDM and JTAG tools. In addition to the standard X Windows support, MontaVista supports the Microwindows and the ViewML Web browser, plus Mozilla and NanoZilla. Hard Hat Linux also includes the Apache and GoAhead Web servers.
Embedded graphical development is supported through the use of Trolltech's Qt/Embedded platform too. Deployment licensing of Qt/Embedded is independent from Hard Hat Linux's royalty-free license.
Moreover, Hard Hat Linux includes standard Linux development tools, like the Linux Trace Tool and Cscope, a C-code analysis tool. The GNU C/C++ tool chain is a standard Linux component. Code Crusader and IBM's Visual Age Micro Edition for Java are just two of the development environments that work with Hard Hat Linux, and they are supplied with the distribution.
The standard TCP/IP network stacks and utilities come with Hard Hat Linux. MontaVista also includes Hard Hat Net, a CompactPCI backplane networking subsystem. It supports PICMG Hot Swap and NIC-based booting. Hard Hat Linux works with the Reiser journaling file system in addition to flash files. The standard collection of Linux hard-disk file systems also is supported. Network file-sharing support is available for FTP, NFS, and CIFS. Provision for the latter is made via Samba.
Real-time support under Hard Hat Linux doesn't address hard real-time environments with very fast response time and minimal jitter, but few applications require this level of control. Hard Hat Linux requires an MMU, so actions such as translation lookaside, buffer spill/refill, and cache flushing will affect response time. MontaVista has streamlined the kernel to minimize OS overhead, but other alternatives may be necessary if hard real time with minimal overhead is required.
Hard Hat Linux has found a home in an array of different environments. It supports both the Xstream Logic and MMC network processors, and the more conventional processors like ARM, MIPS, PowerPC, and x86. Clearly, MontaVista is doing more than just repackaging Linux. It's driving and contributing to open-source, embedded development.
FEATURES | |
Architecture | monolithic |
MMU support | required |
Real time | hard, soft |
Scheduling | FIFO, priority |
SMP | yes |
Reflexive memory | third party |
Memory management | yes |
Garbage collection | no |
POSIX | |
1003.1 file systemc | yes |
1003.1b real time | yes |
1003.1c threads | yes |
1003.2 shell | yes |
Graphics | X Windows, Qt |
Clustering | yes |
Fault tolerance | yes |
Licensing | per developer |
PLATFORMS | |
Development | Linux, Solaris |
Remote debugging | Ethernet, on-chip debug support, JTAG |
Target applications | all |
Target CPUs | x86, PowerPC, ARM, MIPS, SuperH |
Java VM | IBM J9 |
Minimum footprint | under 500 kbytes |
NETWORKING | |
Protocols | TCP/IP |
File server | NFS, CIFS |
CORBA support | third party |
Servers | Web, FTP, POP3, IMAP4, Telnet |
Clients | Web, SMTP, Telnet, SNMP, FTP, DHCP, POP3, IMAP4 |
(408) 328-9200
www.mvista.com