TimeSys Linux/RT (Professional Edition)

Linux/RT is a tool for developing and testing embedded and non-embedded real-time applications. TimeSys, the maker of Linux/RT, suggested several application domains where Linux/RT could be used.
  • Manufacturer: TimeSys Corporation

  • E-Mail: info@timesys.com

  • URL: http://www.TimeSys.com/

  • Price: $199 US

  • Reviewer: Daniel Lazenby

Linux/RT is a tool for developing and testing embedded and non-embedded real-time applications. TimeSys, the maker of Linux/RT, suggested several application domains where Linux/RT could be used. Application domains suggested include industrial automation, process control, telecommunications, web servers, avionics and others.

According to the vendor, the architecture of Linux/RT offers Linux resilience and stability while running real-time applications. To make the architecture real, TimeSys added a few additional calls to their release of Linux and used a real-time resource kernel (RK). As a loadable kernel module (LKM), the real-time RK interacts with the Linux kernel. The Linux kernel interacts with the hardware. Using this architecture, the resource kernel can take advantage of all existing Linux hardware drivers. Existing applications continue to interact with the Linux kernel, while real-time applications interact with the real-time kernel module. With this approach, the whole system will not crash if a real-time application process hangs or crashes. It also means pre-existing (legacy) Linux applications can run along side the real-time application. The RK module may be loaded or unloaded like any other LKM.

Linux/RT is packaged into three editions: Standard, Deluxe and Professional. The Professional Edition comes with Linux/RT, TimeTrace, and according to the web site, an evaluation copy of TimeWiz. The review package did not contain TimeWiz. TimeSys Linux/RT comes with two real-time environments. Linux/RT is based upon the Carnegie Mellon University Linux resource kernel (Linux/RK). Support for Robust Embedded (RED) Linux system event logging is included in Linux/RT. For compatibility with pre-existing systems, TimeSys Linux/RT includes the Real-Time Applications Interface (RTAI). On a side note, only one of the two real-time environments may be loaded at any one time. Figure 1 shows one of the included Linux/RT real-time sample programs.

Figure 1. Linux/RT Real-Time Sample Program

According to the model, the resource kernel can reserve some portion of CPU cycles, network bandwidth, disk bandwidth and memory. These reserves are grouped into resource sets and assigned to a process. Version 1.0 of Linux/RT supports several capabilities. These include 256 fixed-priority scheduling levels, CPU resource reservations, high-resolution clocks and timers, periodic real-time tasks and pinning memory used by real-time processes. The review copy of Linux/RT and manual did not appear to support network or disk bandwidth reserves. According to the manual, Linux/RT utility commands may be used to assign a resource set to any Linux process. Another feature of Linux/RT is its ability to provide a quality of service (QoS). Using Linux/RT utility commands, real-time and legacy Linux programs can be endowed with specific QoS levels.

TimeTrace (Standard Edition) for Linux/RT provides the ability to visualize and profile one Linux/RT host running real-time programs or applications. An example of the TimeTrace interface is shown in Figure 2. TimeTrace sits on its own platform and provides a graphical user interface (GUI) presentation of the monitored host. With TimeTrace, you can view scheduling, context-switching, system calls and user events. According to the vendor, TimeTrace makes your real-time task's worst-case and average execution times, and period information, available. The Professional Edition of TimeTrace can monitor multiple Linux/RT hosts.

Figure 2. TimeTrace Interface

TimeWiz: Modeling, Analysis and Simulation tool provides the ability to observe the behavior of a real-time program visually. According to the vendor, this tool may be used to analyze worst-case behaviors, simulate average-case timing, model end-to-end performance, represent hardware and software configurations and generate reports. As with TimeTrace, TimeWiz sits on a Wintel platform.

How Hard Is It to Install?

Linux/RT is based on the Debian distribution. A standard Debian install process may be used for new Linux installations. The manual says Linux/RT may also be used with non-Debian distributions, including those of Red Hat, SuSE and Mandrake. I run Caldera's distribution on my computer and chose to use the script provided for installing Linux/RT on non-Debian distributions. The non-Debian Linux install script offered custom or default installs. The custom install offers options to select the target install directories and to register Linux/RT with LILO. I chose to use the default install. The install went well. Caldera 2.4 now uses GRUB as its boot loader. Linux/RT looks for LILO, and did not recognize GRUB. I added the Linux/RT kernel to my GRUB boot list and rebooted. On boot-up, the default TimeSys kernel recognized my SCSI card, SCSI devices and my Ethernet card.

TimeTrace for Linux/RT installation consists of two installation activities. First, TimeSys Linux/RT kernel modules must be installed on the Linux host. Second, you must instal TimeTrace on a Windows NT/95 host. Next, two user-mode collector files (viewrk and viewrtai) installed on the Windows host need to be copied to the Linux/RT host(s).

TimeTrace uses traditional Windows installation methods. The installation went smoothly once the CD was recognized by a CD-ROM drive. I am not sure why my normal CD-ROM would hang with the TimeTrace CD loaded. I use the same CD-ROM drive for all my CD install media. On a lark, I tried my DVD drive. The install CD was recognized immediately. The TimeTrace manual did not suggest any particular Linux/RT file system location for the two collector files that needed to be copied to the Linux platform. I noticed several other RK utility files were placed in the /usr/local/bin directory. So, it seemed like a natural place to put these two files.