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
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.
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.
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.
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.
Using Linux/RT kernel modules, RTAI or TimeTrace involves issuing a couple of commands. For Linux/RT, it is a matter of loading or unloading some Linux kernel modules. Using TimeTrace presumes a real-time application is already running on the Linux box and the proper user-mode collector program is running as well.
Using the Linux/RK Utilities commands, a Linux/RT resource may be attached to legacy program processes. The legacy process does not have to include any real-time programming constructs. I tried an experiment with my Netscape browser. I attached a resource set to the browser (about 5% of CPU), and then started a large file transfer using FTP and printing a large PDF document. My browser seemed to do okay.
Three manuals and a booklet came with the review copy of the product: the TimeSys Linux/RT User's Manual, the TimeTrace for TimeSys Linux/RT User's Manual and a TimeSys Linux/RT Programmer's Manual. The booklet titled “The Concise Handbook of Real-Time Systems” is like a Cliff Notes of real-time terms, concepts and architectures. TimeTrace and Linux/RT User Guides clearly presented the relationship of the two products. The user guides and booklet are illustrated, and for the most part they are well-written. All install directions are high-level and written for the experienced software installer.
About half of each Linux/RT and TimeTrace User Guide is spent discussing real-time software and its attributes. The remaining half of the guide focuses on using the product. Linux/RT's user guide and Release Notes describe how to use a graphical Linux/RT resource manager. Finding the command to start the graphical resource manager was a challenge. In the review copy, it was not compiled and nowhere near the Release Notes said the command lived. I do not think this is the result of installing Linux/RT on a non-Debian distribution. In another place, the Linux/RT User's Manual said the module measure-rk had to be loaded to use TimeTrace. No compiled version of the module measure-rk could be located in my installation. I did locate some source code that looked like it might be the module. The TimeTrace manual indicated one used viewrk file to use TimeTrace. Since there was no module named measure-rk available, I used the viewrk file. Viewrk seem to work okay.
Appendix A contains a list of Linux/RT RK utility commands. Several of these have the wrong capitalization. Others do not exist as listed. I was unable to locate several of the commands in /usr/local/bin directory in the manuals. One example is printing the clock frequency. The list of utilities says the command clockfreq is used. The command did not exist in my installation. I did find a rkfreq command that provided the clock frequency. There is also a file named charter. I was unable to locate any information on this executable file. No man pages were installed by the product. The PDF versions of the User and Programmer Manuals seem to be just an electronic copy of the printed manuals. A keyword search of the PDF files did not produce any information on the abovementioned files.
The 179-page Programmer's Manual discusses how to create, execute and debug real-time programs. Example program listings are provided to illustrate the various functions and system calls. GNU-Emacs, make, CVS, gcc and gdb may be used to develop and debug Linux/RT-based real-time programs. Compiling or recompiling any of the distributed sample code requires linking to librk.a. Of the three references to this file's location, the Programmer's Manual was the most accurate. Be prepared to edit makefile directories to correctly identify the proper location of the library and header files. Due to missing files, I had some problems compiling the sample code. I think compiling original work should go just fine.
Support is offered via the TimeSys web site. Questions may also be e-mailed and faxed to TimeSys Support. I did not use TimeSys fax support, and cannot comment on its quality. Most of the questions in the web site FAQ struck me as very marketing-oriented. Searchable knowledge bases or other forms of technical on-line support were not readily obvious to me. There was the beginning of a discussion forum. Based on the few postings (at the time of this review), I am not sure of the usefulness of this forum.
I had some problems getting TimeTrace to display a graph of the racer and rolling sample programs, so I sent a support request e-mail. TimeSys seemed to be going through some growing pains, and it took several days to get a response. Once e-mail contact was made, TimeSys support staff worked with me on resolving the problem.
Overall, I think Linux/RT software looks promising and should be able to do the job. The documentation needs some cleaning up and to more accurately reflect file placement and command usage. At some point, I believe Linux/RT will require fixes and patches. The web site should be able to provide fixes and patches without requiring one to download the 12+MB Linux/RT tar file. If support depends upon registering the product, then there needs to be some simple way for a customer to indicate they bought the product.
This software was reviewed using the following hardware: a 300MHz Pentium II Wintel machine with 64MB memory and a high-resolution monitor (1024x768), running Win98SE. The Linux machine is a 333MHz Celeron with 128MB memory and a high-resolution monitor (1024x768), running Caldera's eDesktop2.4 distribution of Linux.