From: firstname.lastname@example.org (William Fisher)
Date: Fri, 20 Jun 1997 01:55:31 -0800 (PDT)
I'm glad someone stepped in this.
Nearly all of those systems were nearly bare metal software
environments since we had numerous talks with Chet at MIPS
about software features that would propell the business.
NONE of those customers wanted anything to do with any
flavor of Unix, Linux, BSD, System V, etc.
In fact Hunter-Ready and the other real-time kernels
weren't that popular with the hard core real-time/embedded
Hence I would like to here more about larry's definition of
"embedded systems" because they sure don't sound like any
that our semiconductor partners sell to.
Let me relay a story a co-Sparc developer of mine told (and showed!)
me when I saw him in person in Germany the other week.
His name is Eddie C. Dost and he works for a software/hardware house
there where they do nothing but embedded work. About two weeks ago he
was asked to tackle two projects. One involved an i386SX based board
which controlled lighting systems for skyscrapers, the other was a
m68k based board which was meant to be deployed by the hundreds to
control campus wide key card entry systems for a bunch of corporations
and universities in the German speaking countries.
He was given QNX to write his drivers and get the box going. Since it
is a micro-kernel, you have to perform a task switch to handle even an
interrupt, and you have to compile your interrupt handlers with a
special compiler and compiler options using QNX compilers just to cope
with this bullshit. This was on both systems.
Interrupt response was so slow, that even when he coded the drivers in
raw optimized assembly he could not keep up and would drop characters
easily on his serial ports, the ISDN performance sucked balls as well.
So eddie got so frustrated one night that he took both the m68k and
Intel ports of Linux, in about an hour added kernel build time
configuration options such as "CONFIG_NO_MEMORY_MANAGEMENT",
"CONFIG_NO_FANCY_SYSCALLS", "CONFIG_NO_USELESS_FEATURES" and the like
to the point where he was able to get a 120k sized Linux kernel with
his drivers and the specialized code to run the control systems he
needed to deploy, and he got full over the serial line KGDB source
level debugging of his kernel as well.
The next night he got it completely working and debugged, needless to
say this thing didn't have the interrupt performance problems QNX
did. The next evening he blew the first revisions of the PROM's the
boxes would eventually use in production when these things got sent
to the customers.
Now here comes the interesting part...
He had to then approach his boss, he explained the issues and how he
had solved the problem. The boss went "what, use Linux, why the fuck
would we even want to do such a thing?"
His response was: "Firstly, QNX doesn't even fucking work, at best the
product would be delayed if I could get it to work with QNX at all,
and thus you might even lose these sales. Secondly, I just saved you
a shitload of money and future engineering costs. Not only did I just
save you the QNX license on all the hundreds of these fuckers you are
going to sell to people (you can sell it at the same prive, the
customer won't know the difference), I have a usable mini-Linux kernel
that we can use (and thus save the licensing fee's + the engineering
all over again) as a base for a lot of our future embedded products."
His boss was blown away, the rest is history...
So you see, the real issue is that people don't know they want it...
Oh btw, Eddie will in fact be working on some MIPS based embedded
boards in the near future, and I can tell you he sure as hell isn't
gonna be putting QNX or any other "embedded OS" in those things.
David "Sparc" Miller