This is the mail archive of the
mailing list for the Elix project.
EL/IX API, Real-Time and Linux
- To: elix <elix at sourceware dot cygnus dot com>
- Subject: EL/IX API, Real-Time and Linux
- From: Stuart Hughes <sehughes at zentropix dot com>
- Date: Fri, 19 Nov 1999 17:20:13 +0000
- CC: Michael Tiemann <tiemann at cygnus dot com>
- Organization: Zentropix
I was very interested in the announcement or the EL/IX project and
applaud its goal of providing a standard and consistent API for embedded
My particular area of interest is realtime systems that are large scale
enough to host standard Linux (e.g not deeply embedded systems, which
would be better addressed by OSes such as ecos). These systems are
often referred to as desktop realtime, although some of the more capable
single board computers fall into this category.
As some of you know RTLinux and RTAI provide a means of programming hard
realtime task in kernel space modules (using fundamentally the same
There has been a lot of work done in the last 6 months, to a fairly full
implementation of POSIX 1003.1c (pthreads) for RTAI, which includes
support for mutexes (including priority inheritance) and condition
variables. This is a good start, but still leaves a lot of the other
recommendations of the EL/IX document unaddressed. In particular
realtime tasks cannot directly support the Base UNIX API (e.g. read,
write, open, close etc). Although this may seem a big problem, it may
not be quite so bad as RTAI has a facility known as sysrq (system
requests) that may be used to pend calls to Linux, that will then be run
when the realtime section returns. This is one approach that may allow
the realtime section to gain access to the non-realtime services of
I would be interested to hear from anyone who would be interested in
contributing to help further develop the RTAI POSIX package so it can
grow to become conformant to the EL/IX API. Also I would like to hear
what people think about realtime threads accessing non-realtime services
(such as disk) and mechanisms that can be employed to make sure that
this won't destroy the realtime behaviour of the system (e.g code
analysis tools to highlight prioritisation problems, or mandating
non-blocking I/O calls for realtime threads ?).
Further information on RTAI can be obtained from http://www.rtai.org/.
Details of the POSIX module can be found in the posix subdirectory of
later RTAI distributions.