On Mon, Dec 18, 2017 at 5:10 AM, Peter Jeremy <peter(a)rulingia.com> wrote:
One thing I haven't seen mentioned is QNX - I didn't directly use it but a
colleague was using it in the mid-1980s on PC-AT class hardware. ISTR one
of my colleague's whinges was the 256-byte command-line limit.
QNX, indeed a cool system. It's predecessor was Thoth and successor, the
Stanford V-Kernel; QNX was the same timeframe as Mach.
RIG/Accent and Thoth were all contemporaries and at the time, "UNIX"
interface was not yet standard, nor C as the system language of choice,
Thoth was in B IIRC, RIG assembler & Pascal, Accent / Pascal. Tunis was
similar, although, like SOL was a rewrite, in that case Concurrent-Pascal;
like UNIX, targeting the PDP-11.
Both QNX and Mach were in C and tried to be more friendly to import UNIX
code. QNX was definitely, Intel architecture target. Mach was trying to
be all things on any HW target like UNIX., I got the impression some/much
of QNX's kernel was assembler, but the 'servers' for the things like the
FS, the IP stack, et al where 100% C.
QNX, was clean, an extremely small, and was fairly good at real-time (
like Thoth had been before it, V gave up real-time to be more portable
distribute better).
I used a QNX on a PC/AT (286) that was, V7-ish and code from the PDP-11
pretty much just worked. The compiler was very slow, but it was 5.25"
floppy based system so it may have been a lot to do with the disks I have.
I remember they then add a POSIX subsystem when that was in vogue, but I
never used it or their ANSI-C compiler.
When 'embedded' types needed a RTOS, the QNX folks definitely had a
following; particularly because the kernel was so small and efficient. I
know a number of industrial robots from the 'Rust Belt' that had Mech-E
types that swore by it (i.e. Millacron, Intelligrated to think of two). I
understand that a number of folks/alumni are a lot of the current
autonomous car people, and I had heard the brought that code base with
them. Again, if I understand it correctly (and its been years since I
played with it), the RTOS features are not POSIX conformant and mixing the
different APIs could cause interesting effects.
ᐧ