VERY SMALL RTOS ATTRIBUTES |
Characteristics |
Advantages |
Disadvantages |
Alternatives |
Great RTOSs Come In Small Packages
It takes skill to pack applications into compact 8- and 16-bit systems with limited memory. Bringing in a real-time operating system (RTOS) can simplify the task. Building an RTOS for these platforms is an art and not a chore to be taken lightly, even though the RTOS may use only a few thousand bytes.
Most developers don't build their own OS. Instead, they turn to small RTOSs, such as CMX RTX from CMX Systems, Nucleus OSEK from Accelerated Technologies (ATI), and Lineo's RTXC. Still, developers may employ only a fraction of the features because each translates into costs, usually in memory and system overhead.
Tiny RTOSs can be trimmed to the bare bones. MMUs aren't needed. Even memory management can be eliminated. Just the necessary features must be included, typically keeping the OS footprint small. It can also reduce task overhead because less information must be preserved to track task resources.
Vendors take different approaches when designing a compact RTOS. CMX Systems starts small and has an even smaller sibling. ATI begins with 16-bit platforms and grows to support 32-bit platforms. Lineo links Linux with RTXC Quadros. Yet, all three note a small footprint as a key feature.
Small, Smaller, Smallest
CMX Systems revels in the 8-bit space and readily supports 16-bit processors, especially single-chip solutions with limited memory capabilities. CMX Tiny+ can be trimmed to under half a kilobyte of ROM and still retain event support. Features like queues and memory management, which are standard in CMX RTX, are optional on CMX Tiny+.
Tiny is the watchword for CMX Tiny+, where adding even just 1 kbyte of ROM can be a budget buster. It uses only 14 bytes for a task block. Other operating-system data structures also are compact.
The CMX-MicroNet TCP/IP stack raises the bar over 3 kbytes on an Atmel AVR. Adding a Web server and virtual file system raises the footprint to around 14 kbytes. This is still smaller than the minimum footprint for competing RTOSs alone. But don't confuse minimal size with minimal support.
CMX is supported by such tools as C Compiler from Keil Software (www.keil.com). Bundled development hardware, like All American's (www.allamerican.com) iKit2000, runs CMX on a reconfigurable Triscend E5 (www.triscend.com) chip. The OS even handles an Ethernet adapter.
Building Up
ATI Nucleus OSEK adds graphics in addition to networking support and compatibility with the OSEK standard (www.osek-vdx.org). This scalable RTOS can trim unneeded features for a particular environment because features are implemented with minimal cross dependencies. This modular approach makes it possible to run with just one type of interprocess communication service, including mailboxes, pipes, or queues.
A modular device driver architecture makes building larger systems easier. A complete set of clients and servers for FTP, Telnet, mail, and DHCP make Nucleus OSEK a great choice for OSEK-compliant networks. Another OSEK-compatible RTOS is Wind River Systems' (www.windriver.com) OSEKWorks.
Adding Linux
Compatibility within the RTXC API extends to Lineo's Linux RTOS, Embedix. Applications are ported to larger systems when necessary, allowing RTXC to be configured for an application. RTXC Quadros has four configurations. These include single stack, multiple stack, both single and multistack, and multiprocessor. The hybrid services a mix of high-priority tasks with a single stack and lower-priority tasks with their own stacks. Applications include voice-over-IP gateways.
RTXCdsp extends RTXC into the DSP realm. It has the same APIs and same compact size.
With these compact RTOSs, it's possible to keep the package small.
Accelerated Technologies
CMX Systems Inc.
Lineo Inc.
LILLIPUTIAN LANDSCAPE | |||
CMX RTX/Tiny+ | Nucleus OSEK | RTXC Quadros | |
Architectures | 8- and 16-bit | 16- and 32-bit | 16- and 32-bit |
Target platforms | over 40 | over 105 (includes 32-bit) | over 20 (includes 32-bit) |
MMU support | no | no | no |
Scheduling | priority | priority | priority, round robin |
Messaging | yes | yes | yes |
Memory management | yes/no | yes | yes |
Minimum footprint | 1/0.8 kbytes | under 2 kbytes | 1.5 kbytes |
Graphics | none | Nucleus Grafix | RTXCgraphics |
Network support | CMX-MicroNet | yes | RTXCnet |
Device drivers | no | yes | RTXCio |
File system support | yes | yes | RTXCfile |
Remote debugging | yes | yes | yes |
Royalties | none | none | negotiated |
Company | CMX Systems Inc. | Accelerated Technologies | Lineo Inc. |
Web site | www.cmx.com | www.atinucleus.com | www.lineo.com |
Linux Delivers Quality Of Service (QoS). TimeSys' Linux/RT adds a real-time resource-management kernel to Linux. Tasks can reserve time over an interval instead of just trying to run at a high priority. The kernel provides real-time QoS support and conventional prioritized scheduling. Linux/RT also handles real-time application-space tasks. Some real-time Linux implementations support only real-time kernel tasks, but Linux/RT supports POSIX real-time extensions. TimeSys' JTime Java virtual machine delivers QoS support to Java threads with a real-time garbage collector.
TimeSys Corp.
(888) 432-TIME; www.timesys.com
LINUX/RT | |
Architecture | monolithic |
MMU support | required |
Real time | hard, soft |
Scheduling | Priority, QoS |
POSIX | 1003.1, 1b, 1c, 2 |
Graphics | X Windows |
Licensing | per project |
Target CPUs | MIPS, PPC, x86 |
Java VM | JTime |
Picokernel RTOS Comes With Development tools in the version of ThreadX from Green Hills Software. The company combines its Multi for ThreadX integrated development environment (IDE) with Express Logic's ThreadX RTOS. The picokernel can be packed into as little as 3 kbytes of RAM plus add-on packages. Add-on packages such as fileX, netX, and pegX provide file, network, and graphical services, respectively. Royalty-free licensing makes ThreadX an excellent alternative to compact Linux implementations.
Green Hills Software Inc.
(805) 964-3044; www.ghs.com
Express Logic Inc.
(858) 613-6640; www.threadx.com
THREADX | |
Architecture | picokernel |
MMU | required |
support | |
Real time | hard |
Scheduling | priority |
POSIX | 1003.1 |
Graphics | pegX |
Licensing | no royalties |
Target CPUs |
68xxx, ARM, Coldfire, i960, MIPS, PPC, SH, SPARC, V8xx |
Java VM | third party |
Embedded OS Does Windows with Windows NT Embedded 4.0 OS. It's a modular version of the popular Windows NT OS, so applications and development tools work with both platforms. This also is true for major Microsoft technologies, such as COM and DCOM, though not for .NET. This OS supports domain-level management and security, plus Windows file and print services. The Win32-based graphics support is optional, and the Target Designer permits the selection of optional components.
Microsoft Corp.
(425) 882-8080; www.microsoft.com
WINDOWS NT 4.0 | |
Architecture | monolithic |
MMU support | required |
Real time | hard, soft |
Scheduling | Priority |
POSIX | 1003.1 |
Graphics | Win32 |
Licensing | per system |
Target CPUs | x86 |
Java VM | third party |
Linux-Compatible RTOS Has A Linux Sibling and both are available from LynuxWorks. LynxOS adds high-availability support, hot-swappable PCI support, an I2O interprocess messaging system, and HP's Chai Java VM. BlueCat Linux is a version-stabilized, open-source Linux distribution without per-system licensing. LynxOS provides hard real-time support via a proprietary kernel with a per-system licensing scheme.
LynuxWorks Inc.
(408) 979-3900; fax (408) 979-3920; www.lynuxworks.com
LYNXOS | |
Architecture | monolithic |
MMU support | required |
Real time | hard, soft |
Scheduling | priority |
POSIX | 1003.1, 1b, 1c, 2 |
Graphics | X Windows |
Licensing | per system |
Target CPUs | MIPS, PPC, x86 |
Java VM | HP Chai |
Embedded Virtual Computing Environments are built on the OnCore OS from OnCore Systems. It allows different OSs to run on the same system concurrently, including Java, POSIX apps, VxWorks, pSOS, mCos, and Red Hat Linux. Applications can be dynamically loaded, as can Linux, allowing the installation of real-time updates via Linux. A distributed interprocess communication system supports IP and non-IP communication between applications in different OS partitions. Multilevel, high-availability support provides failover support. These services support a range of hot-swap hardware.
OnCore Systems Corp.
(650) 712-0655; www.oncoresystems.com
ONCORE OS | |
Architecture | microkernel |
MMU support | required |
Real time | hard |
Scheduling | priority |
POSIX 1003. | per partition |
Graphics | per partition |
Licensing | per system |
Target CPUs | ARM, MIPS, PPC, x86 |
Java VM | third party |
OS Runs On SMP Systems and is a kissing cousin to Linux. Wind River's purchase of BSD/OS from BSDi expands Wind River's high end. Based on FreeBSD (www.freebsd.com), its licensing scheme can be more restrictive than the General Public License (GPL) used with Linux. A large number of applications will run on either platform via recompilation, but BSD/OS features top-notch security in addition to a high-performance platform. It supports IPv6 and the Java 2 runtime environment, along with a host of Web-based services. Designed for mission-critical environments, BSD/OS delivers high reliability.
Wind River Inc.
(800) 545-WIND; www.windriver.com
BSD/OS | |
Architecture | monolithic |
MMU support | required |
Real time | hard, soft |
Scheduling | priority |
POSIX | 1003.1, 1b, 1c, 2 |
Graphics | X Windows |
Licensing | per project |
Target CPUs | Alpha, x86 |
Java VM | J2RE |