Integrity RTOS Delivers Mission-critical and High Reliability Support

Aug. 6, 2001

The watchwords for Green Hills Software's Integrity RTOS are mission-critical and high reliability. To deliver the highest level of system integrity, Green Hills' RTOS supports guaranteed resource availability of memory and time resources. For this reason, developers are choosing Integrity for performance and safety-critical applications.

One way that Green Hills delivers performance is by minimizing interrupt latency. The kernel never masks interrupts while manipulating critical data structures. Instructions with long latencies, like division and certain string operations, also are avoided in the kernel. Still, efficient use of the RTOS requires good tools.

Integrity is supported by Green Hills' own Multi integrated development environment. Integrity and Multi work with third-party tools too, such as Rational Software's Rose RealTime UML modeling system. UML can improve code reuse as well as reduce development time and errors. Plus, Multi supports multiprocessor debugging environments where Integrity is often found.

Complex time-related debugging is done using the Integrity EventAnalyzer. The utility logs events like semaphore calls, task context-switches, and interrupts in real time. Calls can be inserted into applications to track real-time performance.

Integrity Features Integrity's guaranteed resource availability permeates the kernel design and is key to application development. It allows developers to parcel out limited system resources to applications. Therefore, overall system consumption is known, and errors that may occur in one application don't ripple through the whole system. This requires memory isolation, which is provided by a processor's MMU, as well as kernel-imposed control over otherwise conventional allocation and scheduling APIs.

Application control and isolation support are key to Integrity's ability to replace applications by downloaded replacements. Most systems that utilize Integrity must run continuously, making reboots im-practical.

Continuous operation is only effective if applications can perform their actions given the limited resources of the system. Integrity's range of scheduling support helps developers stay within these limitations. The optional ARINC 653 Partition Scheduler can guarantee that a task has a window of runtime available for execution. Also, message transfers use a task's time allotment. They're not part of kernel execution time. This also helps to reduce interrupt latency.

Green Hills' attention to performance didn't distract it from security issues. The kernel's object-oriented design and access-verification system stop such problems as invalid kernel addresses, or call parameters, from occurring. Moreover, it aids in fault isolation between protected applications because use of interprocess communication services is controlled by access permissions employed throughout the system.

Even device driv- ers are secured and implemented as user-level tasks. This keeps the kernel small and prevents a device-driver problem from causing problems with other devices or applications.

Integrity supports the usual complement of devices and network services. Additionally, it supports the Trillium telephony suite. This makes the RTOS a good choice for telephone switch management.

Integrity cannot guarantee that a device will always work. But it does guarantee that the other services will still have the resources necessary to continue.

See associated figure

GUARANTEED AVAILABILITY
Time resources
  • Time allocation by address space
  • Deterministic response time
  • Highest-locker semaphores
  • Memory resources
  • Multiple virtual-address spaces
  • Reservations by address space
  • Memory quotas
  • FEATURES
    Architecture microkernel
    MMU support yes
    Real time hard, soft
    Scheduling priority, optional weight, ARINC 653 partition
    SMP no
    Reflexive memory no
    Memory management yes
    Garbage collection no
    POSIX  
       1003.1 file system yes
       1003.1b real time yes
       1003.1c threads yes
       1003.2 shell no
    Graphics PEG, OpenGL
    Clustering yes
    Fault tolerance yes
    Licensing per project
    PLATFORMS
    Development Windows, Solaris, HP/UX, Linux
    Remote debugging Ethernet, on-chip debug support, JTAG
    Target applications Embedded, safety-critical, medical,
    security-critical
    Target CPUs PowerPC, MIPS
    Java VM third party
    Minimum footprint 70 kbytes
    NETWORKING
    Protocols TCP/IP, Bluetooth, Trillium telephony suite
    File server NFS, CDFS, FFS
    CORBA support EORB, third party
    Servers Web, FTP, Telnet, hot swap, SNMP, DHCP
    Clients SMTP, Telnet, POP3, SNMP, FTP, DHCP
    Red Hat eCos Think open-source OS, and Linux comes to mind. Look further for open-source RTOSs, and eCos appears. Significantly more compact than Linux, eCos targets deeply embedded solutions, in which memory and hardware resources are limited. It handles a wide range of computing platforms and has impressive third-party support with both open-source and proprietary solutions. In addition, eCos is supported by a number of development tools, including those available from Red Hat.

    The eCos source code can be downloaded from Red Hat's Web site for free, but that's only part of the story. While eCos is a royalty-free RTOS, Red Hat charges for support and development tools. Compared to many other RTOS alternatives, this approach is a bargain. Cost cutters can still work on their own, but the expertise that Red Hat provides in addition to consulting services is significant, lowering development costs in the long run.

    Red Hat has added a number of key features to eCos, including support for the embedded EL/IX APIs, µITRON 3.02 compatibility, and RedBoot support. RedBoot is Red Hat's standardized embedded debug and bootstrap solution. RedBoot also supports the Linux kernel. EL/IX is available for Linux as well.

    eCos Features The EL/IX APIs provide eCos developers with a migration path to larger platforms, like Linux. A consistent programming environment also helps in a distributed network configuration, where eCos nodes work with Linux servers.

    Moreover, EL/IX provides a platform for third-party developers to deliver software for eCos developers. The POSIX-based EL/IX is contributed as part of the Embedded Linux Consortium (www.embedded-linux.org) ELC Platform Specification. Linux developers will find that the eCos Developers Kit contains many familiar tools, such as Red Hat GNUPro, a GCC compiler, and a thread-aware GDB.

    The eCos Configuration Tool comes with the kit as well. It uses Red Hat's Component Description Language (CDL) to build eCos and application images. Also, a memory layout tool helps developers modify the memory map for these images.

    Components that can be configured include support for Ethernet, USB, and flash-memory devices. Additionally, a number of third-party products can be configured.

    Third parties also are the source for many eCos applications and modules. For example, NetSilicon Softworks Group (www.netsilicon.com) and EBSnet Inc. (www.ebsnet.com) have Web browsers and graphics support. These types of products are important because eCos includes limited networking support. Many open-source applications that use EL/IX and TCP/IP will work with eCos.

    The advantage to eCos is that it covers a wide range of processors. Red Hat provides support for a range of system boards as well. This includes support for RedBoot, which en-ables developers to get up and running very quickly on stock hardware.

    Even on these system boards, the eCos memory footprint starts small. But like any compact RTOS, the size increases as more services are incorporated into the kernel.

    Developers can port eCos to any platform they choose, but most developers will opt for Red Hat's standard configurations. Red Hat provides porting and consulting services for new platforms.

    Best of all, the source can be viewed before committing a project to eCos. Very few RTOSs have this advantage.

    See associated figure

    EL/IX
    APIs addressed
  • File system support
  • Real-time support
  • Thread support
  • Features
  • POSIX-based
  • Open source
  • Supported on a range of OS and
    RTOS solutions
  • FEATURES
    Architecture microkernel
    MMU support no
    Real time hard
    Scheduling priority
    SMP no
    Reflexive memory no
    Memory management yes
    Garbage collection no
    POSIX  
       1003.1 file system yes
       1003.1b real time yes
       1003.1c threads yes
       1003.2 shell no
    Graphics third party
    Clustering no
    Fault tolerance no
    Licensing none; support
    contracts optional
    PLATFORMS
    Development Linux, Windows,
    Solaris, Unix
    Remote debugging Ethernet, on-chip
    debug support, JTAG
    Target applications Deeply embedded
    Target CPUs ARM, SH3/4, MIPS,
    NEC, PowerPC,
    SPARC, x86
    Java VM third party
    Minimum footprint 2 kbytes
    NETWORKING
    Protocols TCP/IP
    File server third party
    CORBA support third party
    Servers Web, TFTP, Telnet, SNMP, DHCP
    Clients Telnet, SNMP, POP3, TFTP, DHCP
    About the Author

    William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

    I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

    You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

    Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

    You can visit my social media via these links:

    I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

    I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

    Sponsored Recommendations

    Comments

    To join the conversation, and become an exclusive member of Electronic Design, create an account today!