Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Operating Systems Software

QNX: When an OS Really, Really Has to Work 514

An anonymous reader writes "Fortune has this article about how QNX's OS has found a niche and is doing well. Especially after 1996 when Microsoft executives said they would crush them in 2 years. When your software absolutely positively needs to work!"
This discussion has been archived. No new comments can be posted.

QNX: When an OS Really, Really Has to Work

Comments Filter:
  • by RLiegh ( 247921 ) on Sunday June 15, 2003 @08:22PM (#6207668) Homepage Journal
    Wow. Do they still have the web-browser-on-a-bootfloppy offer?
    • by $calar ( 590356 ) on Sunday June 15, 2003 @08:32PM (#6207723) Journal
      Yes they are around, in fact some more recent news about them came out of the JavaOne conference: http://rcrnews.com/cgi-bin/news.pl?newsId=13840 They are going to be integrating IBMâ(TM)s WebSphere Micro Environment.
    • QNX Floppy Challenge (Score:5, Informative)

      by hendridm ( 302246 ) * on Sunday June 15, 2003 @09:04PM (#6207950) Homepage
      If you haven't taken the challenge yet, it's pretty cool [www.inig.at]. You can get it here [www.ncf.ca] too.
      • by DrXym ( 126579 )
        This is not to knock the demo which is cool, but I'm surprised that something similar hasn't been attempted with Linux. While the QNX microkernel is small (which helps) after throwing in the various disk, network, mouse, drivers it's probably no different than what you could achieve in Linux. We have already seen the likes of Toms RTBT which pack a single disk with an amazing amount of command line stuff.

        I wonder if some of that could be jettisoned for some kind of microwindows based GUI and perhaps a bro

    • by njan ( 606186 ) on Sunday June 15, 2003 @09:45PM (#6208223) Homepage
      Actually, as far as I remember, they released a bootable iso which had complete hardware support with a huge library of software, and network support - a la knoppix.

      But their floppy was phenomenally useful - on a site of several thousand people, I used to use it in preference to windows to troubleshoot network equipment - until the company stopped to buy floppy drives for their workstations by default...
  • spawn() hangs system (Score:2, Interesting)

    by Anonymous Coward
    We are running QNX 6.1 Patch B on PowerPC's with a custom BSP.

    We have ported QNX to two custom boards, one based on the MPC7410 PPC and another based on the MPC755. The MPC7410 system is running fine. The new port to the MPC755 has a nasty problem. Anytime spawn() is invoked, the entire QNX system hangs. All processes stop, regardless of priority. This system hang doesn't happen on the MPC7410.

    It looks like it's just spawn() that is the problem. We can start and kill large processes from the ksh shell jus
    • by Anonymous Coward
      From the docs:

      A pointer to an argument vector. The value in argv[0] should point to the filename of program being loaded, but can be NULL if no arguments are being passed. The last member of argv must be a NULL pointer. The value of argv can't be NULL.

      Argv is the second to last parameter for spawn. You have it set to NULL.
  • QNX? ICK! (Score:3, Insightful)

    by SmileeTiger ( 312547 ) on Sunday June 15, 2003 @08:32PM (#6207726)
    I am currently working on a software development project migrating code _away_ from QNX to Linux. Every time I have to work on the old QNX project I want to bang my head against the monitor.

    From what I have seen there is nothing that QNX does that Linux can't do that would justify the license cost.
    • So wrong!

      Linux cannot force you to bang your head against the monitor in the same manner QNX does!

      Geez, so hypocritical ;)

    • Re:QNX? ICK! (Score:5, Insightful)

      by dsplat ( 73054 ) on Sunday June 15, 2003 @09:56PM (#6208280)
      I am currently working on a software development project migrating code _away_ from QNX to Linux. Every time I have to work on the old QNX project I want to bang my head against the monitor.

      That can depend a great deal on which version of QNX you are looking at. It you really have an older project that is running on say, QNX 4, then it would be painful. I've worked quite a bit with it. The most painful thing about it is that I remember when Linux looked and felt like that years ago. That's because QNX 6 is current. Most of the things that you've come to expect under Linux are available under QNX.

      Where QNX really shines, is in faster context switches, and a predictable real time scheduler. Of course, if you invert the priority of your processes, good luck. The QNX folks have also provided a nice message passing library. Okay, there are other ways to handle interprocess communication. But their stuff just keeps on working.

      The only reason that I would recommend porting away from QNX to Linux is if there was a specific need driving the port. If all of your other code is under Linux, or you need to save the licensing costs, or there are specific tools or libraries that haven't been ported. QNX has a pretty familiar feel to anyone familiar with multiple Unices.

      Now the GUI libraries (I'm talking QNX 4 here, not the newer Photon stuff), are a bit of a pain. They harken back to darker days. The effort to port QNX 4 GUI code to anything else would be bigger than it is worth in a lot of cases.

      QNX gets the embedded, real time stuff right. Don't underrate that.
    • Re:QNX? ICK! (Score:3, Interesting)

      by scrytch ( 9198 )
      I'm a denizen of LambdaMOO, one of the longest-running social MUDs out there. It chugged along for nine years on a SparcCenter 1000, with uptime of hundreds of days, going down for maintenance because of bugs in the moo process itself. It just recently moved to a linux box, which is much quicker, but I just got this news item on login.

      Saturday, June 14, 2003
      Network card driver randomly decided to shut itself down at around 8 this morning. Actually it's done this a few times before already (most o
  • Neutrino being the QNX-based PC OS.

    This should prove to be interesting in several ways:

    1) hands on experience with an "never-crash" OS
    2) if QNX is the inmmoveable object, and /. is the unstoppable force, will this cause the universe to end?

    p.s. specialized OS don't crash because it's exactly that - specialized. I think windows crash so much because (part of the reason) it runs on so many kinds of hardware, for one. As much as I will get flamed, in OEM applications, like, say, most of the new fancy I-will
    • download link here (Score:2, Informative)

      by lingqi ( 577227 )
      sorry for being a dork and replying to myself, but look here [qnx.com] for Neutrino. right side of the page.
    • OS crashes. (Score:3, Insightful)

      p.s. specialized OS don't crash because it's exactly that - specialized. I think windows crash so much because (part of the reason) it runs on so many kinds of hardware, for one. As much as I will get flamed, in OEM applications, like, say, most of the new fancy I-will-never-be-able-to-affort oscilloscopes and the likes, windows usually don't crash.

      The purpose of an operating system is to provide an abstraction layer between the hardware and application software, and between all of the tasks running on a
    • by Anonymous Coward on Monday June 16, 2003 @04:47AM (#6210184)
      There are a couple of things qnx does that are somewhat quirky, but also unspeakably cool:

      integration of memory, proccess, and file systems. You can address memory as a file. you can refer to processes as file. want a snap shot of your process? just copy it to disk some where.

      linking programs together at run time. Have a constant you want to change, grab it into a simple gui slider with ease. Want to grab images from a frame grabber, just register to recive them. What? they are comming from a frame grabber on another machine? no difference. and this is being routed to a gui running on a third? also not a problem.

      Want to start a bunch of processes on your cluster, link them all via scripts, then move proccesses around to load ballance, relinking as you go? Also not a problem, you can do it with a single script on one machine.

      Having that level of fast comunication primitives is great.
  • QNX rules (Score:5, Informative)

    by CausticWindow ( 632215 ) on Sunday June 15, 2003 @08:34PM (#6207739)

    QNX is designed like a modern os should be. It's straigt out of an Operating Systems 101 textbook.

    If only Linux had more of QNX's design niceties and robustness.

    Too bad the Amiga/QNX desktop thing never became a big hit.

    • Re:QNX rules (Score:5, Insightful)

      by 73939133 ( 676561 ) on Sunday June 15, 2003 @08:59PM (#6207919)
      Let me second that. I think that's the direction open source operating systems should go.

      Microkernels have gotten a bad reputation because Mach/Hurd, for one reason or another didn't deliver. But that doesn't mean the approach itself is flawed.

      Traditional monolithic kernels like Linux (and UNIX and NT/XP--and don't try pretending that NT/XP is a "microkernel") are appealing for budding operating system projects because it's easy to hack something together quickly. But those architectures don't hold up in the long run. You can see the same in ecology: fast growing, non-native plants often displace native plants quickly, but in the end, they die because they aren't well adapted to the long-term conditions.

      Well, maybe if SCO wins, we can look on the bright side: it will finally get Linux out of its rut and create more opportunities for other kernels. Don't get me wrong: like everybody else, I'd much rather not change from the Linux kernel, but if I do have to change, I don't view it as all bad. (Of course, I don't think SCO has any legal grounds at all, but that is probably not related to whether they can win.)
      • Re:QNX rules (Score:5, Insightful)

        by CoolGuySteve ( 264277 ) on Monday June 16, 2003 @01:13AM (#6209345)
        I question the validity of blindly praising microkernels.

        A lot of the decision depends on the architecture involved. I hope someone more knowledgable than myself will comment on this, but as far as I know, the reason BeOS started to implement networking into the main kernel instead of making it a microkernel "server" was because the x86 architecture is much slower in switching between sub-functions than the PowerPC was (I've read 10 times slower but can't remember the source).

        The two monolithic operating systems you criticize are both i386-centric, so a true microkernel probably wouldn't be such a hot idea.

        QNX's design is great for certain applications but not all. I looked into it for an intel based SMP homebrewed but critical (as in the systems behind it cost over $1 million) firewall and decided a more traditional i386 operating system would be better.

        I know you're not a culprit here, but being a fanboy for one design approach or another is just bad engineering sense. It's something I see all the time and I'd wish they'd teach a lot more critical thinking skills at the high school level because of it.
  • by niko9 ( 315647 ) on Sunday June 15, 2003 @08:35PM (#6207751)
    Just picture Bill Gates with a fro, runnning amok on the street of Canada fully armed with thumb and index finger yelling: "I will crush your little precocious head!"
  • Pronouciation? (Score:4, Interesting)

    by hoser ( 95281 ) on Sunday June 15, 2003 @08:39PM (#6207775) Journal
    Kyu-nicks? or Kyu-Enn-Eks?
    • Re:Pronouciation? (Score:5, Informative)

      by heli0 ( 659560 ) on Sunday June 15, 2003 @08:49PM (#6207845)
      1) What is QNX? [fh-hamburg.de]

      QNX pronounced like "queue nicks" is a commercial operating system that runs on intel processors, mainly the 386, 486, and Pentium, and their clones, such as MD, Nat Semiconductor, Cyrix, and SGS Thompson.

      The simple answer is that QNX is a realtime, microkernel, preemptive, prioritized, message passing, network distributed, multitasking, multiuser, fault tolerant operating system. This is a "true" microkernel, with the largest QNX kernel to date being less than 10K.

      The QNX/Neutrino microkernel is about 32K, but can run standalone, something the QNX4 microkernel cannot. The QNX/Neutrino microkernel + process manager is about 64K, which is half the size of the QNX4 microkernel + process manager, and it does more.

  • QNX NC (Score:5, Informative)

    by christurkel ( 520220 ) on Sunday June 15, 2003 @08:44PM (#6207805) Homepage Journal
    You can download a bootable CD from QNX.com that runs "Live", from the CD, so you kick the wheels, so to speak. You can then install it, if you wish.
    The QNX floppy demo was for QNX4, while the CD is QNX 6, a vastly improved OS. The floppy can still be found but its not half the OS that QNX 6 is.
    QNX is POSIX compliant and can run all Unix utilities, Besides the Photon GUI, you can run various window managers. You can run X Windows apps seemlessly rootless using XPhoton. Already Gimp, AbiWord and others have been ported. There are many native apps as well, irc clients, a mozilla and opera port. Worth a try, at least!
    QNX isn't the easiest OS to use (try getting a USB printer to work and you'll find a new definition of pain and suffering) but it is rock solid and fun to geek with.
  • QNX is a nice RT OS (Score:4, Informative)

    by Dolphinzilla ( 199489 ) on Sunday June 15, 2003 @08:45PM (#6207810) Journal
    I have used QNX and I can tell you it is great for embedded systems - it is like an affordable VxWorks - a real time OS with lots of bells and whistles and super stability. However like VxWorks it does lack a lot of hardware support - but you can write your own drivers (of course). You use to be able to download the OS for free for evaluation in a single executable that runs kind of like Knoppix - no real install necessary. Its a cool way to kill an afternoon if your bored (and a geek).
  • by Billly Gates ( 198444 ) on Sunday June 15, 2003 @08:46PM (#6207824) Journal
    Canada's school systems are strange compared to American schools I have previously attented. I have found their computers horrible inadaquite and out of date.

    Anyway I took 2 programming courses in basic and pascal. The labs used some strange Unisys dumb terminals connected to a builky black looking box. Very XT-ish and looked like it was from the early to mid 80's. Anyway it ran a no name OS called QNX. I believe it was powered by a 286 or 6800 with about 4 megs of ram for all 20 students. It had no display but a teletype printer where we would print out our programs. It handled quite well for such a limited server.

    Its Very old and I remember a 1984 copyright that showed up whenever I booted. I had no idea it was a unixlike system.

    It seemed just as fast as a standalone 286 and it had a "$" as the prompt sign with a strange scripting system. I considered it underpowered and old but was supprised by the included gcc, sed, gmake, and other utilities and powerfull scripting. It had some nice api's for 2d graphics displays.

    Anyway 2 years later I wanted to try Unix after playing with NT 4 when after it just came out. I tried Caldera (shudder )Linux and I was supprised that I have been running gnu and unix all long. The shell scripts and everything were identical and I have been using Unix without even knowing it.

    Linux felt quite old without X in the old days( before kde was stable and gnome was around). But I have qnx running on that horribly ancient system to thank.

    • by Yaztromo ( 655250 ) on Sunday June 15, 2003 @11:27PM (#6208855) Homepage Journal
      That would be the Unisys Icon, either series 1 or 2. They were _not_ dumb terminals however -- the Series 2 used an 80186 (you read that correctly) with 1MB of RAM. The "bulky black box" was the storage system (it had the hard disks and floppy drives) and handled network control. I don't recall what was in the series 1 hardware wise, but it was similar.

      The systems used to be popular in Canadian schools because the OS was developed in Canada, as were most of the tools and applications (which were primarily by Watcom). Plus students generally weren't going to be able to install whatever gunk they brought from their DOS machines at home, nor were DOS based virii any sort of threat to these systems. They were easy to manage and maintain, and were good for teaching programming basics.

      Do you prefer todays alternative of brainwashing students in The Microsoft Way(tm)?

  • by leighklotz ( 192300 ) on Sunday June 15, 2003 @08:53PM (#6207878) Homepage
    I read Slashdot using QNX, on an Audrey [audreyhacking.com]. I almost bought another one at a garage sale today for $20, but it had no power supply. Plus the keyboard was Lime.
  • by farrellj ( 563 ) on Sunday June 15, 2003 @09:04PM (#6207951) Homepage Journal
    Dan Hildebrand was one of the early luminaries of QNX in Kanata, just outside of Ottawa. Although I only met him once, I knew him well via the local Fidonet and Unix communities. It's too bad he isn't around to enjoy this story. But I am sure he is smiling about it wherever he is! Slashdot story about his death [slashdot.org] It's hard to believe it's been 5 years.

  • by Bull999999 ( 652264 ) on Sunday June 15, 2003 @09:11PM (#6207987) Journal
    I'm pretty sure AOL, RealPlayer, and Bonzi Buddy will find a way to crash QNX.
  • Bullet Proof (Score:4, Informative)

    by the eric conspiracy ( 20178 ) on Sunday June 15, 2003 @09:30PM (#6208114)
    From Fortune :

    As a delighted user has put it, "The only way to make this software malfunction is to fire a bullet into the computer running it."

    Didn't Tandem actually run an ad claiming that if you shot a bullet into their servers they would keep running?

    • by Idarubicin ( 579475 ) on Sunday June 15, 2003 @11:55PM (#6209002) Journal
      Reminds me of a story from this page [rinkworks.com]:

      About a year ago, I was called out to do field service. When I got to the lady's house and was let in, the first thing I noticed was the smell of gunpowder. The second, the double barreled 12-gauge shotgun lying on the couch. Third, the big gaping hole in the side of her computer. (It was one of those Macs where the CPU and monitor are in the same housing.)

      I looked at her. She was a little grey haired woman, around 60 or so. Had she? Not possible. Still, I had to ask.

      Me: "Did you shoot...?"
      Customer: "Yes, I got a little mad at it. They told me I couldn't hurt it, but I think they were wrong. Can you salvage anything?"

      I mumbled something about not being a Mac tech and told her I would send one out as soon as I could. Then I burned rubber out of there.

      About a month later, my boss called me in; he had the woman on hold. She had apparently complained that I was not competent and that I had lied when I said I would send out a competent Mac tech -- or perhaps I just hadn't been able to find anyone competent working for us. I filled him in. He paused for a second, picked up the phone, and said, "Ma'am? Did you put a shotshell into your computer? ... Uh huh...I'm sorry, ma'am, we really can't...well, no.... I'll try to send one out.... Nice doing business with you...." He hung up, looked at me, and said, "You think any of our Mac techs will go?" I shook my head. "Me neither."

      We heard from her again last week, when my boss told me that the woman had called up to cuss me out, saying not only was I a "young whippersnapper" but also a liar, since one of our competitors had fixed her computer just fine, even fixing the little scratches and stuff on the monitor glass. That sounded fishy, so I went over and talked with the techs. After a case of canned drinks and a few bags of junk food, I wormed the whole story out of them. Apparently, about the only salvagable part was the hard drive (which the buckshot had missed), so they took it out, went out and bought a whole new computer, slapped the hard drive in, and presented it to the lady as her repaired computer -- of course charging her an arm and a leg.

    • Re:Bullet Proof (Score:3, Interesting)

      by nordicfrost ( 118437 ) *
      Having worked with Tandem, I can tell you that a bullet stopping the system would have to be very, very well fired. In our Tandem systems EVERYTHING was at least redundant. Often put in two mirrored cabinets with internal redundancy. This meant that if you shot a bullet into one of the cabinets, it would probably function on the internal redundancy. If not, the other cabinet would take over. The system I know did not have a single unplanned second of downtime in 13 years. Actually, it did not have any downt
  • by jellomizer ( 103300 ) on Sunday June 15, 2003 @09:39PM (#6208178)
    There is defiantly a value in the niche markets. Unfortunately people/companies/communities like Microsoft and Linux are targeting the be the best general purpose OS, And when people get an OS they always try to find the best General Purpose OS. Even if they are using the OS for 1 or 2 jobs. The smart thing to do is to find OS's that actually specialize in the jobs that need to be done. Designing General purpose software comes with a lot of tradeoffs in its design, so you are getting a best OK system for the job. While if you actually find the OS that handle the niche job. You will often find that they come with a lot less tradeoffs or better focused tradeoffs in its design, is works a lot better for the job it is intended.
    Comparing Microsoft v. Linux Is like comparing a Swiss Army Knife with a Leatherman. But systems like QNX and other niche OS's are more like a Hammer and Screwdriver. Although they don't have as much functionality as the Swiss Army Knife. They do their job better and are more reliable for their jobs.
  • by PSaltyDS ( 467134 ) on Sunday June 15, 2003 @09:39PM (#6208180) Journal
    The US Navy has used a CD-ROM tech library called ATIS [navy.mil] for years. It is based on a Kubik [kubikjukebox.com] 240 CD-ROM changer with an external controller called a Mediator. The mediator runs QNX. I worked on some ATIS systems and found the CD-ROM changer to be an extremely fragile and unreliable electromechanical beast, but NEVER saw a failure, glitch, or error on the QNX based mediator. This was a tribute to the hardware it ran on as much as well as the OS. Interestingly enough, I am intimately familiar with the inside of the Kubik changer, but have no idea what CPU, memory, or disk the Mediator ran on. This was simply because the changer was always broke and the Mediator never had to be touched from the day it was installed.

    People in white lab coats are the primary cause of cancer in rats.

  • by Teckla ( 630646 ) on Sunday June 15, 2003 @09:40PM (#6208186)
    In the mid-80's I frequented a multi-user BBS which ran on Qnx. The machine? A 4.77 MHz 8088 IBM PC clone. It had 10 or 12 lines each running a 300 baud modem. It had email, newsgroups, chat, games, and downloads. I had a developer account and could compile C programs. All while the system was full. Without anyone even noticing. The OS is smooth as silk.

    Later, the BBS was upgraded to an 8 MHz AT clone and 2400 baud modems. Still, smooth as silk, even at capacity.

    The BBS never crashed once and always ran smooth.

    I can't say much about today's Qnx, because I haven't used it. But yesterday's Qnx displayed a level of quality I've never seen in another OS. If I ever find myself needing medical attention, I usre as hell hope the OS running under the hood is Qnx. There is nothing more reliable.

  • QNX reliability (Score:5, Interesting)

    by Space ( 13455 ) on Sunday June 15, 2003 @10:11PM (#6208351) Homepage
    I work for a robotics company. We use QNX as the OS on our PC based control. The following is an example of how QNX has impressed me.

    One November a customer called and complained that they were not getting their log files. These log files were written to a ftp shared directory. One of my coworkers logged into the robot via modem and started looking around. When he tried to get a directory listing he got an Input/Output error instead. After a little digging around in the logs in ram he determined the hard drive had died. The most interesting thjing is that the hard drive had apparently died in August. The robot had run continually from August to November and the only trace of any problems was the lack of log files. There was no other permament storage in the system. The OS, UI and all the robot applications were running in RAM for 3 months without problems.
    I Love QNX
    • Re:QNX reliability (Score:3, Interesting)

      by xenocide2 ( 231786 )
      Interesting question reguarding the software though. What should you do when the log writing (for now lets ignore error logging) fails? On one hand its not a catastrophic failure in itself. As you mentioned the device was working fine. On the other hand, if anything was going wrong imperceptibly then you're in big trouble.

      First, you clearly can't write another error to the log stating you cant write to the log. It sounds silly, but sometimes people write this and plan to consider the question later. When l
  • by ONOIML8 ( 23262 ) on Sunday June 15, 2003 @10:26PM (#6208443) Homepage
    Just imagine a Beowolf cluster of these.

    Doh! Wait! QNX doesn't do that.

    Never mind.

    • Re:Imagine........ (Score:5, Informative)

      by Rolman ( 120909 ) on Monday June 16, 2003 @02:24AM (#6209704)
      I know you were being funny, but actually, a cluster in QNX is the easiest thing to do ever.

      QNX's architecture is very much oriented towards message passing, and every piece of hardware is abstracted, even processors. This means you can have a lot of CPUs or machines working on a network running your applications and the load will be evenly distributed, without you having to specifically code your applications. Your only limit is your network performance and latency.

      Hell, you'd need to code your application with special system calls for it to know it's not running locally!

      I had a wonderful experience with QNX4 a couple of years ago. QNX4 back then didn't have SMP support, but I called QNX Support and they told me how to run one kernel on each CPU of my server and Voila! I had the equivalent of a cluster in one box. Performance was very good, too, context switching was not even worth to measure.

      QNX Neutrino is even more powerful, and now it supports SMP... Beowulf clusters are sooo 1999...

  • by Dr Reducto ( 665121 ) on Sunday June 15, 2003 @10:37PM (#6208512) Journal
    Good thing the FAA uses QNX, cause if they ran MS software, it would go something like this:

    Air Traffic Boss: How's it going?

    Air Traffic Controller: Fine.

    Boss: What's That? (Points to blue screen)

    Controller: Oh, that happens when we try to track more than three planes.

    Boss: Why does it do that?

    Controller: We only purchased a 3-plane license. If we try to track 4, Palladium kicks in, and the whole thing locks up.

    Boss: Doesn't that sound, you know, dangerous?

    Controller: Not as dangerous as this! (plays an illegal mp3, sirens blow, and all machines are shut down, power is cut off, forcing runway lights to turn off, while planes crash like crazy.)
  • by virtigex ( 323685 ) on Sunday June 15, 2003 @11:54PM (#6209000)
    IMHO, by far the biggest advantage of the QNX is the environment for developing device drivers. Device drivers are just processes that make special system calls that make themselve visible under the /dev/ file system. When a device driver crashes, the process dies and unless it got stuck in an interrupt, you are free to restart the driver. You can run the device driver in a debugger, since it is a regular program. This makes device driver development a breeze compared to Linux, where a crash in a kernel module will require a reboot.

    As an added bonus, the /dev file system is entirely dynamic, showing only the drivers that are running. Thankfully, Linux is going in this direction.

    Two areas where QNX falls down are the lack of USB profiles for mass storage and the lack of a journalling file system. The lack of a journalling file system is particularly worrisome, since QNX is often operating in an environment where the power could be pulled at any time.

  • by Animats ( 122034 ) on Monday June 16, 2003 @12:04AM (#6209047) Homepage
    First, QNX really is a microkernel OS, with networking, drivers, file systems, windowing, etc. running as protected mode processes. MacOS X, Mach, the Hurd, NT, etc. have far, far more in the kernel. Their kernels are an order of magnitude (or worse) bigger.

    The key idea behind QNX is that it does interprocess message passing between protected-mode processes really, really well. Everything else is built on top of that. In most other OSs, interprocess communication was an afterthought, and it shows. Typically, message passing is built on top of the I/O system. In QNX, the I/O system is built on top of message passing.

    The QNX kernel is very stable because it only does a few basic things, and those few things are heavily exercised and well debugged. New system calls are very rarely added. New features go in new user processes.

    Development on QNX is straightforward. The whole GNU command-line toolset is available. The API is Posix-compatible. The QNX calls are well integrated with the Posix calls; there aren't separate "Posix threads", like some other OSs.

    QNX is the last OS vendor that competes commercially with Microsoft on x86 desktop machines. The fact that they're still alive says something.

    You can run QNX as a desktop OS, and I have a machine on my desk that does so. But there's not much desktop-type software. Mozila, AbiWord, and Eclipse have been ported, but that's about it for graphical desktop applications. OpenOffice has not been ported, and it would be a huge win if somebody did that.

    QNX has its own windowing system, Photon, which is like nothing else out there. It's quite good, and much cleaner than most windowing systems. But it's different.

    Hardware support is spotty. Graphics support is mostly for obsolete boards, although anything that supports VGA or VESA modes will work. (NVidia refuses to release enough information to allow development of QNX drivers.) USB 1 is supported, but only for a few peripherals. USB 2 is not, nor is FireWire. (I've been writing FireWire camera support.)

    QNX runs our robot vehicle for the DARPA Grand Challenge. [overbot.com] It has to work.

  • by POds ( 241854 ) on Monday June 16, 2003 @12:14AM (#6209091) Homepage Journal
    I've seen a release from Hyperion Entertainment that stated QNX RTOS had context switching times of 40 microsecons. In the same paper, it asid MacOSX was around 400.

    The announcement [osnews.com] was that AmigaOS4 PPC on a 600Mhz AmigaOne had around 4 microseconds, give or take a few micro. Im not sure how correct my figures were, but AmigaOS turned out a little better...

    I wonder if theres room for more playsers in this niche.

    Good article.

  • by Knight2K ( 102749 ) on Monday June 16, 2003 @12:30AM (#6209162) Homepage
    I've seen a lot of posts in this thread that make the point that QNX isn't really for workstations/PCs etc... it is for when things absolutely, positively must work always.

    I grant that this is not a requirement for desktop users, for example, because no one's life is usually at stake if your instant message or e-mail doesn't go through (in fact that might be a blessing considering the content of some of them). And it would be really expensive to require all computer programs to be as robust as QNX appears to be.

    But leaving that aside for a second, why shouldn't people expect all computer programs to be that reliable? Why do I have to put up with the annoyance of killing processes or rebooting even if it is just an annoyance? Shouldn't we try to making computing that reliable always? Is it possible?

    I guess it might not be for certain kinds of applications since a user could theoretically input or try to process anything, but it seems that the QNX system isn't written to be bulletproof in that way, it is just written with the assumption to trust nothing and recover gracefully from all errors. Should programs just be that way? Or is it improbable to be able to create a 3-D graphics card/word processor/what-have-you with that kind of reliability?

    Maybe we can't do this because of the anomaly that will become the One or maybe I should have laid off the peyote before writing this, or maybe I would remember something from my CS degree that reveals I am being stupid but can't because I'm too tired. I'm getting ver-clemped: feel free to discuss amongst yourselves or mod me down.
  • A lil history... (Score:3, Interesting)

    by Thelonious Monk ( 667418 ) on Monday June 16, 2003 @12:39AM (#6209204) Journal
    QNX was actually developed by two Waterloo students as their final assignment. It was very very basic but it was soooo good that the they could sell it. And thats just what they did, they worked on it, made it what it is today and are now being mentioned on Fortune.... lucky fucks. ...I'm not jealous, nooo not at all. =P
  • Alternative sources (Score:5, Informative)

    by OzJimbob ( 129746 ) on Monday June 16, 2003 @06:15AM (#6210450) Homepage
    If you're still struggling to get it off the offical site, you can find QNX here:

    Planet Mirror [planetmirror.com.au].

    A couple of different ISOs are offered - one with all the packages, and a basic ISO. It's able to install within a Windows partition, apparently.
  • by SilentReproach ( 91511 ) on Monday June 16, 2003 @07:53AM (#6210767)
    From the article: Big Blue's Skip McGaughey, who has worked on making QNX the software behind IBM's new automotive computer systems, says the company chose QNX because it represents the "very best" of real-time operating system technology. "The typical automotive end user would have no patience with a unit that freezes up or experiences systems errors," he says. Wonder which archrival company's software he's thinking of.

    This reminds me of the time when at COMDEX, Bill Gates reportedly compared the computer industry with the auto industry and stated "If GM had kept up with technology like the computer industry has, we would all be driving twenty-five dollar cars that got 1000 miles to the gallon.

    In response to Gates' comments, General Motors issued the following press release (by Mr. Welch himself, the GM CEO).
    If GM had developed technology like Microsoft, we would all be driving cars with the following characteristics:

    1. Every time they repainted the lines on the road, you'd have to buy a new car.

    2. Occasionally your car would just die on the motorway for no reason, and you'd have to restart it. For some strange reason, you'd just accept this, restart and drive on.

    3. Occasionally, executing a manoeuvre would cause your car to stop and fail to restart and you'd have to re-install the engine. For some strange reason, you'd just accept this too.

    4. You could only have one person in the car at a time, unless you bought a "Car 95" or a "Car NT". But then you'd have to buy more seats.

    5. Amiga would make a car that was powered by the sun, was twice as reliable, five times as fast, twice as easy to drive - but it would only run on five percent of the roads.

    6. Macintosh car owners would get expensive Microsoft upgrades to their cars which would make their cars go much slower.

    7. The oil, engine, gas and alternator warning lights would be replaced with a single "General Car Fault" warning light.

    8. People would get excited about the "new" features in Microsoft cars, forgetting completely that they had been available in other cars for many years.

    9. We'd all have to switch to Microsoft gas and all auto fluids but the packaging would be superb.

    10. New seats would force everyone to have the same size butt.

    11. The airbag system would say "Are you sure?" before going off.

    12. If you were involved in a crash, you would have no idea what happened.

    13. They wouldn't build their own engines, but form a cartel with their engine suppliers. The latest engine would have 16 cylinders, multi-point fuel injection and 4 turbos, but it would be a side-valve design so you could use Model-T Ford parts on it.

    14. There would be an "Engium Pro" with bigger turbos, but it would be slower on most existing roads.

    15. Microsoft cars would have a special radio/cassette player which would only be able to listen to Microsoft FM, and play Microsoft Cassettes. Unless of course, you buy the upgrade to use existing stuff.

    16. Microsoft would do so well, because even though they don't own any roads, all of the road manufacturers would give away Microsoft cars free, including IBM!

    17. If you still ran old versions of car (ie. CarDOS 6.22/CarWIN 3.11), then you would be called old fashioned, but you would be able to drive much faster, and on more roads!

    18. If you couldn't afford to buy a new car, then you could just borrow your friends, and then copy it.

    19. Whenever you bought a car, you would have to reorganise the ignition for a few days before it worked.

    20. You would need to buy an upgrade to run cars on a motorway next to each other.

  • by William Tanksley ( 1752 ) on Monday June 16, 2003 @11:21AM (#6212680)
    VSTa [vsta.org] is a free software OS inspired by QNX and Plan 9. Very nice looking, although when you run it very disappointing (it's slow).

    Much more interesting to me is the concept of exokernels [mit.edu], a completely different OS organization which allows for /extremely/ fast operation. Some have suggested that Linux be refactored into an exokernel-like arrangement for multiprocessing: rather than trying to build a 256-processor single memory image Linux kernel (with all the horrid locking issues that implies), just build a 4 processor kernel, and when more processors are available, run multiple instances of it under an exokernel.

    (The most significant person who's pushing for this plan for Linux, by the way, is Larry McVoy, notorious author of BitKeeper.)


What is algebra, exactly? Is it one of those three-cornered things? -- J.M. Barrie