[LWN Logo]

Date: Tue, 09 Mar 1999 15:44:58 -0500
From: Zentropix NewsWire <newswire@zentropix.com>
To: newswire@zentropix.com
Subject: Real-Time Debugger Press Release

***  Zentropix Launches First-Ever "In-the-Kernel" Symbolic Debugger at LinuxWorld

The Zentropix Remote Run-time Debugger (R2D2) has just been dramatically
extended to encompass applications running in kernel space, as well as user
space.  This capability has not existed for any Unix application until now.
This is an extremely significant event for developers for whom run-time
performance is important.

The new version of the debugger affords the developer non-intrusive symbolic
access to parameters within real-time threads and processes, while they are
actually executing within the kernel. It is undergoing beta testing and should
be available for general distribution in April.

The R2D2 Debugger is available at no charge for personal and academic use, and
$199 per seat license for commercial developers. 

For kernel based applications, such as device drivers, a run-time debugger has
not been available at all until now. As any programmer is aware, code
development within the kernel space is a dangerous endeavor which can only too
easily lead to a system lock-up. One of the major benefits of the Zentropix
System Builder, which is scheduled for release in Q3 '99, is to allow code to
be developed and debugged in the protected environment of user space and then
pushed down into kernel space once it is error free. For examining such code
once it is running in kernel space, the new R2D2 kernel debugger becomes
invaluable, allowing the developer to non-intrusively:

 > navigate the data structures
 > access memory locations using the symbolic references used in the source code
 > examine data values in specific memory locations
 > change the data value in specific memory locations
 > conduct post run analysis (planned)
 > log specified events and code sequences for static post run analysis (planned)

Conventional software debugging tools require the developer to place the
control of the software under the debugger, rather than the native execution
environment. Typically, the normal interrupt process is usurped and the
software execution is controlled by the debugger. The developer examines the
software via insertion of break-points, or by single-stepping through the
code. 

For many applications this is sufficient.  But, where dynamic interactions
during the run-time may be significant, this procedure has limitations. Since
the code is not running in its intended execution environment, dynamic effects
and behavior of the code interaction with other processes is not accurately
represented. 

For example, if the application code was intended to control a servo motor,
the developer would not be able to investigate the behavior of the code and
the variables while the program was actually controlling the servo motor. The
Zentropix non-intrusive run-time debugger allows the developer to observe
servo motor behavior while adjusting the servo-loop feedback parameters. 

***   Hard Real-Time
“Hard real-time” differs from soft real-time in its handling of late data.
Hard real-time is concerned not with the average data rate, but with the exact
and predictable receipt of every byte of data. Hard real-time considers late
data to be unacceptable data, which can cause an error in the system. An
example of a hard real-time application is a position control system. If a
position is sampled, and then delayed, the resultant computation yielding the
correcting output signal will be wrong, due to the fact that the real position
would have changed during the delay, relative to the reported position. If
this error is large enough the system may become unstable.

Under “soft real-time”, the task to be carried out must, on average, be
completed within a predetermined deadline. Provided that this average value
can be maintained, late data is considered valid data. Examples of soft
real-time include multimedia applications, such as the reception of an audio
stream from the Internet. In order for the user to perceive a continuous audio
stream, there is a requirement for enough bandwidth to maintain an audio
stream meeting an average rate. Since the data is received in bursts, a buffer
is placed between the input stream and the output port to flatten out the
peaks and troughs in the input data rate. This buffer naturally causes a delay
between the arrival of the data at the Internet connection, and the
presentation of that data to the CPU for processing, but yields a good average
data flow to the CPU.

***  Company & Products
Zentropic Computing (Zentropix) was founded two years ago to promote the use
of Linux for industrial applications by providing a comprehensive set of
development tools and making the real-time linux kernel extensions more
accessible to the engineering user. 

Best known for their distribution CD for a real-time Linux installation, they
have recently begun to supplement the core operating system CD-ROM with a
library of CDs containing vendor applications designed for the industrial
user. As is typical in the Linux community, the RTLinux installation CD is
essentially free (production and distribution charges only).

Zentropix has also developed a weather radar simulation aimed at commercial
flight simulators and a code migration library called UNIPort which transfers
customers applications from more expensive Unix-based machines to lower priced
PC platforms.

A strategic focus of Zentropix is the RTLinux extensions developed by
Professor Yodaiken at the New Mexico Institute of Technology. 

“We considered that an efficient hard real-time kernel was essential to our
core business,” explained CTO Steve Papacharalambous, “and that RTLinux was
the optimum technology on which to base our hard real-time performance
products. Professor Yodaiken is now closely associated with the company and
consults on all our new developments.”

For more information, call (703)471-6690 or contact us via the Internet at
info@zentropix.com or http://www.zentropix.com/.