On Mon, Dec 18, 2017 at 5:10 AM, Peter Jeremy <peter@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.