Former VxWorks developer's viewpoint -- WAS: a joint letter on low latency and Linux ...

From: Bryan -TheBS- Smith (thebs@theseus.com)
Date: Tue Jul 04 2000 - 21:24:50 EST


Former VxWorks developer's viewpoint -- WAS: a joint letter on low latency and Linux ...

[ Note, I'm a non-kernel developer, but a user/app developer with
some VxWorks experience in the aerospace industry ... ]

Okay, this has been my experience with various RTOS and their
ability to get you sub-millisecond (ms) hard RT:

- Windows CE??? NOT! Microsoft cannot get even it's
small-footprint RTOS sub-ms hard RT. And don't even think about
using Embedded NT or full-up NT with extensions either.

- QNX ... er, for some apps. But the message passing just doesn't
have the throughput for some apps (e.g., my experience was in
data aquition of >50MBps telemetry). But it makes for a nice, x86
RTOS for a number of end-user apps..

- VxWorks ... yes, for a number of apps. Of course, you gotta hate
that price tag in there. But a number of military/space vendors
and agencies have pretty much standardized on this and the 68k and,
increasingly, the PowerPC. I've personally used this combo for
military and space launch vehicles.

- eCos ... my hope and bid to replace VxWorks as the defacto
standard RTOS for most apps. I personally like Cygnus' EL/IX API
approach to bringing development in-line with Linux, although there
are two issues: (1) how does the kernel developers feel about
EL/IX (I don't know since I'm not a kernel developer) and (2) it
seems that some "hard" RT aspects of eCos are not GPL/free???
(trying to verify this)

What you may note here is that ALL of the above examples are SMALL
FOOTPRINT OSes. Linux is not. IMHO, I don't think we'll ever see
a general-purpose, fully multi-user, secure OS ever approach "hard"
real-time. And I'm talking REAL HARD RT, not just what vendors
promise you. ;->>>

Now a number of my colleauges next door at SGI say even soft,
sub-ms response times are very much a reality on Linux (with RTAI
or other extensions). And others feel that running the full-up
Linux kernel and libs on a RT micro-kernel or other pre-emptive RT
kernel/OS is a much better way to go (like RT/Linux and others). I
personally agree.

But, again, I'm not a kernel developer. Heck, I stopped my RT
development on VxWorks almost a year ago to go back to being an
"evil sysadmin" (well, at least maybe only "half"-evil since I use
Linux ;-). But I can speak from the "mission-critical" RTOS aspect
(ballistic missiles and low-earth orbit launch vehicles) and I
think eCos is a much better way to do things than full-up Linux.

With Linux, you have an OS that can touch just about everything
embedded except for probably <500 microsecond "hard" real-time on
slower processors, and everything on the high-end upto about 8 or
16 processors (and then clustering is viable for 90% of the apps
where you need more). At may not be the absolute best at any one
purpose, but I would really, really like to see anyone point out
another OS that is pushing such a broad range of the entire
computing spectrum (serving that extensive number of different
purposes)?

Microsoft is probably the worse example here. I mean, they even
have the CE group pitted against the Embedded NT group, not to
mention the split DOS 7.x (aka Windows 9x) and NT/2000 on the
desktop. We've looked at CE and Embedded NT and both are
laughable ... I mean, Microsoft has absolutely no idea what even
soft real-time is. I had some M$ marketeer at some trade show
explaining to me that CE was a "real-time" OS because it had 50ms
(1/20 sec) guaranteed response times ... I laughed in his face
(because he obviously wasn't a developer and had no idea what
real-time was).

Which brings me to my final point: I've seen others talk about
"worst-case" response times on commercial OSes. I'm sorry but I've
played with Windows CE and seen Microsoft's "claims" of guaranteed
response times flop. As such, I'm skeptical about other vendor's
claims as well. I don't expect full-up Linux to do my RTOS, but
there are so many worthy alternatives for Linux (RTAI, RT/Linux,
etc...).

And maybe that's what we do. Wait until a few "hard" RT
implementations pan out as the "best-of-breed" and adopt at that
point. I personally don't expect Linus to try to build a RT
strategy around the entire Linux kernel. Sure, I'm sure the
scheduler needs work (and will always for that matter), but I would
look at either a separate small-footprint RTOS or a pre-emptive
kernel for "hard" RT right now.

I'm personally hoping Cygnus makes eCos the product they have
promised. It's nice to see it starting to make it into end-user
products now (e.g., Brother's new printer line).

-- TheBS

--
Bryan "TheBS" Smith                            CONTACT INFO
***********************************************************
 Chat: thebs413 @ AOL/MSN/Yahoo (see http://Everybuddy.com)
Email: mailto:thebs@theseus.com,b.j.smith@ieee.org
 Home: http://www.SmithConcepts.com

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Jul 07 2000 - 21:00:16 EST