You are here: Home / Science / 
2017-09-26 - 13:00
Details of the Real Time Linux Foundation Working Group Project

OSADL Project: Real Time Linux Workshops

Real Time Linux Foundation Workshops since 1999

Real Time Linux Workshops

1999 - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008 - 2009 - 2010 - 2011 - 2012 - 2013 - 2014 - 2015

First Real Time Linux Workshop on December 13 to 15, 1999 in Vienna, Austria

Announcement - Agenda - Paper Presentations - Participants - Discussions


Real Time Linux - Use and Applications

Phil Wilshire

Real Time Linux is an emerging technology. The combination of hard real time combined with a massive list of developed and developing features inside Linux makes this an attractive solution. The talk discusses how to start working with Real Time Linux and demonstrates working examples. Some significant success stories are presented.

Complex control systems, applications of DIAPM-RTAI at DIAPM

E. Bianchi, L Dozio, G.L. Ghiringhelli and P. Mantegazza

The applications presented here are two digital adaptive vibration suppression experiments: the increase of the natural damping of a large flexible truss using on/off air jet thrusters; and the reduction of the acoustic emissions of a panel using piezoelectric materials as distributed sensors and actuators. In the first case the adaptation of the controller is obtained by combining an identification step using a Vector-Channel Lattice Filter, recursive both in time and order, and a full state controller based on a robust multi-input-multi-output pole placement technique; in the second one the adaptive scheme is based on a Diagonal Recurrent Neural Network. The truss experiment is a significant example of a complex control architecture using two PC and many cooperating tasks, while the panel one demonstrates the RTAI performances in high-frequency control systems.

Real Time Linux used at NOAO and the LabVIEW

Philip N Daly

Real Time Linux used at NOAO (3 projects) and the LabVIEW

Real-Time Linux in Robotics and Control Systems Research: A Pratical Experience

Daniele Arduini

In the scientific community, it is widely recognised the fact that reliable experimental results should be obtained in a reasonable short time, with low efforts and with relatively modest resources. In this contex, the advent of Real-Time Linux operating system, with freely available source code and powerful programming tools, makes it possible to implement new systems with very low efforts. This paper, reporting the activity on a particular project for helping visually impaired persons, testimonies how these basic features of RT-Linux have demonstrated of being not only useful but also necessary.

Programmable Logic Techniques for Fast Data Acquisition and Control

John Storrs

Programmable logic devices move the boundary between hardware and software, and open new frontiers for programmers. Real Time Linux developers should be aware of their potential, particularly in data acquisition and control. This paper introduces a project which will extend the range of achievable real time granularity for many applications down to the order of 10 nanoseconds, using PC peripheral hardware currently in development.

Complex Programmable Logic Devices (CPLDs) offer cheap, fast, parallel processing at clocking speeds of 100MHz or more. ISP (in-system-programmable) devices are easily programmed in-circuit using hardware description languages (HDLs) such as VHDL or Abel. They contain 1000s of logic gates and registers in high pin-count packages. Logic gates (AND, OR, NOT, XOR) are combinatorial elements with bounded propagation delays. A register is a single-bit clocked element with an output which changes to reflect the current input at each active clock edge. Gates and registers can be combined to form multi-bit counters, adders, multiplexers, comparators, state machines, conditionals and so on. External oscillators provide primary register clocking which can be modified internally to satisfy complex timing requirements. HDL programs define logic circuits within the device which can operate independently or in a logical relationship to one another. CPLDs are compatible with typical digital elements such as RAMs, EPROMs, DACs, ADCs and CPUs. One common use is for peripheral device management in microcomputer systems: address decoding, device enabling, wait state generation, etc. The techniques described derive from this.

The Linux Lab Project

Claus Schroeter

The Linux lab project is intended to help people with development of data collection and process control software for LINUX. It should be in understood as software and knowledge pool for interested people and application developers dealing with this stuff in educational or industrial environment.

It is planned to provide a standarized development environment for a wide variety of applications from hardware support to application development.

RT-Linux for Adaptive Cardiac Arrhythmia Control

David Christini

Typical cardiac electrophysiology laboratory stimulators are adequate for periodic pacing protocols, but are ill-suited for complex adaptive pacing. Recently, there has been considerable interest in innovative cardiac arrhythmia control techniques, such as chaos control, that utilize adaptive feedback pacing. Experimental investigation of such techniques requires a system capable of real-time parameter adaptation and modulation. To this end, we have used RT-Linux, the Comedi device interface system, and the Qt C++ graphical user interface toolkit to develop a system capable of real-time complex adaptive pacing. We use this system in clinical cardiac electrophysiology procedures to test novel arrhythmia control therapies.

minirtl - a minimum realtime linux system

Nicholas McGuire

What could be the reasons to struggle with the development of a minimum computing system when even the cheepest PC of the next stores shelf has at least 32MB of RAM and a 6GB Harddisk ? First of all, it is hard to understand the dependencies in a 2GB full linux instalation. Second, there are many applications for which a 486 or even a 386 running at 25MHz is mostly sufficient. Why use a pentiumII for such a system ? Finally, there is the vast field of embedded applications that have only very specialized jobs to do and lack a harddisk, have RAM and CPU limitations due to power consumption and are required to be robust not mighty. For the third point there are many comercial offerings out there specialized for certain tasks, and well optimized.

Why then use linux ? Not only because its freeware and a nice system to play with, the main reason is it can be managed with confortable well developed tools on the full system, ther is no need to use archaic developement tools for some proprietary RTOS, and Linux complies with all important standards, may this be network related standards, or filesystem standards etc, making it easy to develop portable API's and ensuring consisten support for such a system, without requireing specialists.

What are the minimum hardware requirements? There are Linux versions on the net that will boot with less than 2MB of RAM. At the first glance, this might look like a good starting point for an embedded Linux version, but kernels runing in 2MB lack many of the desired features of new linux kernels and I personaly douth that it is worth the work to backwards port new features to a minimalistik 1.0.9-ELF Kernel to save 2MB of RAM. So the minirtl project has a 386 with 8MB as ists bottom line, 4MB as RAM and 4MB as RAM-DISK. Other than that you need a floppy drive, although it should be simple to modify it to boot of a 2MB flash-disk or via the bootp protocol from some networe site if desirable. The approach with the floppy might not seem to be "high-tech" but its simple robust and you can get to work on any PC standing around. Other than that you will not need anything to boot, to realy get the advantage out of the linux based system a network connection is a good idea.

What are the features of minirtl? The minirtl system wich is heavily based on the linux router project is a fully opperational linux system compacted on a 1.44MB floppy with the capability to boot as standalone network system. Naturally, it is a little archaic and you shold not expect emacs as the system default editor. The main features available on this minimum system are

  • It's Linux
  • Full support of the intel chip from 386 upward
  • SMP capable (if you realy need power)
  • support for most standard PC hardware
  • full shell access (ash)
  • full network support (inetd,DNS,NFS,dialin-conectivity)
  • no specialized software required for developing your own stuff
  • source availability easing developemnet of your own concepts
  • no specialist required for administration and trouble-shoting

What remains to be done ?

  • get to work at security
  • add service modules (proftp,thttpd with cgi-support, ssh)
  • port Real Time Linux and minirtl to other platforms

Real time Linux for a torque measurement stage

Peter Wurmsdobler

Since micro mechanics becomes more and more important as all devices become smaller, there is a strong need of micro motors, i.e. motors in the millimeter scale. One could suspect that a millimeter sized motor is not a micro application, as the word "micro" indicates, but it makes mechanical parts in the micrometer scale necessary. Finally, the peformance of such systems has to be assessed somehow. That's why the CTM, (Centre de Transfert des Microtechnique, Besancon, France) is developing a testing stage in order to characterize small moters in terms of their torque and power consumption or even other physical and time dependend values and properties.

Besides the mechanical parts and the electronics to drive all components, software is needed in order to make data aquisition and control. Especially, the technique used for this test bench make hard real time operation necessary, because the control of the supply voltages for brushless micromotors is synchronized to a master moter imposing a certain rotation speed to device to be measured through a rigid coupling. This means that interrupts generated by a coder have to be treated up to 80kHz in order to output of a predefined voltage function each time.

A solution could be found in the real time linux operating system garantueeing a deterministic response of 4.5us at 120kHz interrupt rate for a PentiumII/200. In particular, a real time module is in charge of data aquisistion taking and saving values to and from shared memory and communicating with the user space application by means of fifo buffers. The latter presents measured date or functions to be output to the micro motor and is a convenient GTK+ based graphical application.

A simple control application with Real Time Linux

Peter Wurmsdobler

In this paper a simple control application using real time linux is presented. A linux kernel module is responsible for getting a value from a DAQ-board, carrying out the control algorithm and outputing the result to the DAQ board. At the same time, values are put into shared memory for being displayed by a graphical user interface based on GTK+. Additionally, this user application can set control parameters and adjust a setpoint in shared memory, or start and stop the control process by buffers.


Michael Barabanov

NMT-RTL, THE rt-linux. Just take a look at NMT-RTL

DIAPM-RTAI for Linux: WHYs, WHATs and HOWs

Paolo Mantegazza

DIAPM-RTAI, the other rt-linux. Just take a look at DIAPM-RTAI


Douglas Niehaus

RT Linux works at the finest temporal granularity (1 micro-sec), but places RT computations in the context of the lowest level executive, not as part of Linux. KURT provides coarser time granularity (10s micro-sec), and is subject to scheduling distortions (10s micro-sec), but places the real-time computations in the context of Linux; both kernel and user modes. Linux/RK deals more with the "resource kernel" interface for describing resource sets and allocating their use to user level computations. The papers on Linux/RK claim roughly the same temporal granularity as KURT, but only report experiments with granularity at the 100s of milli-sec level.

Linux/RK - The Ressource kernel

Ragunathan (Raj) Rajkumar

A resource kernel [Rajkumar98a] is defined to be one which provides timely, guaranteed and protected access to system resources. The resource kernel allows applications to specify only their resource demands leaving the kernel to satisfy those demands using hidden resource management schemes. This separation of resource specification from resource management allows OS-subsystem-specific customization by extending, optimizing or even replacing resource management schemes. As a result, this resource-centric approach can be implemented with any of several different resource management schemes.

The resource kernel gets its name from its resource-centricity and its ability to

  • apply a uniform resource model for dynamic sharing of different resource types,
  • take resource usage specifications from applications,
  • guarantee resource allocations at admission time,
  • schedule contending activities on a resource based on a well-defined scheme, and
  • ensure timeliness by dynamically monitoring and enforcing actualresource usage.

In summary, a resource kernel provides resource-centric services which, in turn, can be used to satisfy end-to-end QoS requirements. Generally, a QoS manager sitting on top of a resource kernel can make adaptive adjustments to resources allocated to applications.

RT-Mach is a resource kernel. See our recent work in the recent publications section on Processor Reservation and Disk Reservation.

Real Time Programming -- Pitfalls, Problems, and common errors

Steve Oualline

Real Time programming is about 100 times more difficult than normal, sequential programming. That's because Real Time programming introduces timing problems, race conditions, resource starvation, and a hos of other problems. This talk describes describes a large number of different ways that a real time programmer can screw up as well as techniques to avoid problems before they happen.

Steve Oualline is the author of "Practical C Programming", and "Practical C++ Programming" (O'Reilly and associates) as well as a number of other books. He has created code for enbedded systems and Unix device drivers and is extremely familar with hardware and real time programming.

Writing Real-Time Compatible Device Drivers for Linux

David Schleef

The process of writing device drivers for Linux will be discussed, with emphasis on drivers that can also be used by hard-real-time tasks. This requires a "dual-priority" driver, which poses special restrictions and challenges to the programmer, since in many cases, the requirements of non-real-time and real-time tasks are conflicting. The importance of good interfaces will be stressed, as well as writing modular and maintainable code. Comedi, the Linux control and measurement device interface, will be used as an example of a dual-priority driver.

RED-Linux Project

Yu-Chung Wang

As the RED-Linux project is still in a very early stage, it is difficult for us to predict what will happen next. In a way it all depends on how much demand and help we can get from people like you. Moreover, it is our hope that many of you will find this project to be meaningful and interesting enough for your active participation. Your suggestion and comment will be highly appreciated.

In additional to the current RED-Linux capability, some additional desirable features include

  • a kernel performance measurement/debugging tool
  • a real-time scheduler (allocator) library
  • an admission control manager
  • an application development environment

In addition, currently RED-Linux is based on Linux version 2.0.35. If there is enough interest, we may upgrade it to Linux 2.2 in the near future.

Depending on the funding and any help we can receive from you, we would like to make the RED-Linux kernel project to be as flexible and as user-friendly as possible. Some of the features and future components we would like to have in RED-Linux includes:

  • real-time IPC (supporting priority-inheritance, timing constraints, etc.)
  • real-time networking support
  • real-time file system
  • integrating dependable computing capabilities

SMART (Scheduling Multimedia Applications Real-Time) for Linux

Dilma Menezes da Silva

In current operating systems there is no scheduler appropriated to supporting flexible soft real-time applications co-existing with other conventional and real-time applications. In the context of contemporary scheduling policies, we chose SMART (Scheduling Multimedia Applications Real-Time) as an approach to solve the above mentioned problem. This scheduling policy has been analyzed, designed, and implemented as a LINUX scheduler. We measured the scheduler performance and investigated the behavior of a real time graphic application executing in an overloaded system scenario. We carried out experiments in both the standard Linux and our SMART-Linux. The comparison of obtained application performance results and scheduling costs indicates that the SMART-Linux approach is suitable for managing a mix of conventional and soft real-time applications.

Linux within Philips Research

Arnold Niessen

Philips is an important manufacturer of many different embedded systems, such as pagers, mobile phones, TV's, VCR's, up to high-end set top boxes with MPEG codec and IP functionality.

Currently, several commercial RTOS-es (mostly pSOS) are being used. Important factors which influence the choice of a RTOS are: development tools and environment, company standards, licensing costs, memory usages, processor resource usage, and robustness.

Within Philips Research, we develop technology for new products. As an example, the STORit project investigates end-to-end solutions for multimedia service delivery to end-users, involving the combination of a broadband delivery channel such as DVB, lower bandwidth connections such as internet and affordable local mass storage at the user's home.

The STORit box is the consumer-side platform developed in the project. It provides storage for 10 hours of television programmes on a large hard disk and about 10 hours per medium on removable media. The home user will be able to use this box as an `ideal digital VCR' with an electronic program guide ('clicking' a button while watching a programme trailer will record the advertised programme and 'clicking' on a 'weblink' to a tv-series ensures that the entire series will be captured), time-shift functionality (pause-button and fast forward/backward to allow a user to handle telephone interruptions or commercial breaks), user profile generation for automatic recordings, etcetera.

Linux on a PC has been chosen as the operating system for this box. It enabled us to quickly develop the prototype. E.g., the necessary device drivers for our custom-made hardware could be developed relatively easy. Thus we could concentrate on the functionality of the STORit box.

Furthermore we describe our experiences with real-time Linux within a fast-access optical drive prototype. In this demonstrator, we use real-time Linux and fltk for high-speed data acquisition and display similar to LabVIEW.

Future Linux-related work will concentrate on solutions for real-time audio/video applications and ports of (Real-Time) Linux to other platforms. We intend to analyse the use of external developments such as ClockWise (real-time streams combined with best-effort traffic to hard disk), QLinux (Quality-Of-Service scheduler for Linux), and developments regarding Real-Time Linux (RTL).

In order to have RTL accepted in a commercial setting, it is very important to have a proper development environment, including powerful inspection and debugging tools. It is also important to maintain a balance between the interests of the open-source community and business interests; licensing terms should both protect the former and allow commercial usage with proprietary applications.

We invite interested students to contact us for opportunities (trainee and other projects) in this area.

Real-Time Linux: Determination of Application Properties

Helmut Dohmann

Computers are the backbone of realtime systems and the platform for real-time applications. Also the area of "real-time embedded systems" powered by the modern developments in telecommunication and multimedia is important. Real-time operating systems are one of the keystones in this applications.

Beside the Microsoft operating systems Linux became more and more popular in the area of personal computer, server and workstation, also embedded applications are reported. The real-time extension for Linux (RT-LINUX) is developed at the University of New Mexcio and available since.

Real-time operating systems are characterised by different parameters:

  • interrupt response time (interrupt latency)
  • context switch time
  • periodic task

This application properties are determined for RT-LINUX. Knowledge is important for application. Values will be reported for different platforms.


Valid XHTML 1.0 Transitional

To top