Slashdot Mirror


QNX: When an OS Really, Really Has to Work

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!"

23 of 514 comments (clear)

  1. Re:A couple things by aggieben · · Score: 5, Insightful

    It isn't the operating system controlling the grinding of lenses or correcting the tilt of the TGV. It is a function of the hardware to do these things. That they report back to some software (which could frankly be run on any embedded OS) which then tells them what to do next is almost irrelevant.

    Ummm...it is the operating system that matters -- the O.S. is the software that controls the hardware. Just like software on a PC can make the hardware do things it ought not do, software can make a precision laser be off by 1/100 of a millimeter, destroying someone's retina in the process.

    --
    Don't become a regular here, you will become retarded. -- Yoda the Retard
  2. QNX rules by CausticWindow · · Score: 5, Informative

    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.

    --
    How small a thought it takes to fill a whole life
    1. Re:QNX rules by CoolGuySteve · · Score: 5, Insightful

      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.

    2. Re:QNX rules by Pseudonym · · Score: 5, Insightful

      I agree with you that address translation is a problem, however, this is mostly a problem with the x86 architecture. The x86 flushes the TLB on every address space switch. If we had a decent tagged TLB, this wouldn't be a problem. Indeed, it isn't a problem on most architectures that QNX is asked to run on. Repeat until enlightened: Context switching is only expensive on the x86 architecture.

      The "additional costs" for IPC are mostly an illusion, since we're talking about IPC which is tightly integrated with the kernel, not SysV IPC. Yes, it costs to copy memory, but the cost is there in Linux too; it's just a user space -> kernel space copy rather than a user space -> user space copy.

      Having said that, it may be possible to write an OS for which the context switching is much cheaper. L4 uses a neat scheme where a small part of everyone's address space is allocated to other small processes, so context switching only requires a change of segment, rather than a change of address space mapping. IPC is very fast under L4 if you're doing it with a small address space task.

      Why would linux kernel hackers be adding tools like HTTP servers and packet filtering into the kernel, if it was somehow the UNIX way to keep them as seperate processes managed by the kernel?

      I've wondered that myself. I can only conclude that these projects are either experiments which accidentally escaped the lab, or the hackers who wrote them have no sense of sound software engineering principles.


      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  3. Re:A couple things by wfberg · · Score: 5, Funny

    WinCE a good embedded system? Hmm.. Isn't that the WinCE that is at the heart of PocketPC? The embedded OS that brought blue screens of death (well, ok, depending on your color scheme a light khaki screen of death) to PDAs? Yeah. I trust WinCE to run my heart monitor if I ever end up in an Intensive Care Unit... *cough*

    --
    SCO employee? Check out the bounty
  4. Re:um by SoSueMe · · Score: 5, Informative

    Here's what you DO get (from the Neutrino page):
    The QNX Momentics Development Suite Non-Commercial (NC) edition gives you a full self-hosted development environment with the QNX Neutrino RTOS, plus tools, device driver kits, a desktop class browser, and more.

    QNX Neutrino RTOS v 6.2.1

    * Symmetric Multiprocessing (SMP)
    * QNX Photon microGUI
    * Hundreds of POSIX, UNIX, and QNX utilities
    * Distributed processing

    Self-hosted C/C++ development environment for x86 & ARM development only. Reference Platform:

    * iPAQ (ARM development target)

    Driver Development Kits (DDKs)

    Libraries and Tools:

    * ANSI C, GCC v2.95x optimizing compiler, GDB 5.x, Binutils 2.10.x

  5. QNX NC by christurkel · · Score: 5, Informative

    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.

    --

    CDE open sourced! https://sourceforge.net/projects/cdesktopenv/
  6. I remember using qnx in a Canadian Highschool by Billly+Gates · · Score: 5, Interesting
    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.

    1. Re:I remember using qnx in a Canadian Highschool by Yaztromo · · Score: 5, Informative

      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)?

      Yaz.

  7. Re:Inaccurate microkernel claims? by be-fan · · Score: 5, Informative

    NT is hardly a microkernel. A microkernel, according to strict definitions, doesn't include anything like drivers, paging or the filesystem. QNX fits this definition --- the filesystem runs in userspace, and even drivers run as seperate processes that communicate via message passing. In Win2k and WinXP, almost everything runs in kernel space. Heck, in the next version, rumor has it that large parts of SQL and the .NET runtime are going in kernel space! And OS X isn't a microkernel either. It uses Mach, but the BSD server runs in kernel space, and message passing between the two has been replaced by procedure calls.

    --
    A deep unwavering belief is a sure sign you're missing something...
  8. Re:um by imnoteddy · · Score: 5, Informative
    What you won't find in QNX is USB support

    Sorry, wrong. QNX USB support.

    --
    No electrons were harmed creating this post, though some may have been subjected to electrical and/or magnetic fields.
  9. Interesting? by cgenman · · Score: 5, Informative

    I'm trying not to comment on this, but as two people modded it "interesting," obviously this fallacy needs to be shot down. While true for PDA's, which is obviously what ObviousGuy has experience with, it is not at all true for many real embedded systems.

    QNX is for those times when "Good enough" isn't good enough. An associate of mine used to run the network for a major medical responce company. They used to count downtime in the number of people dead due directly to the lack of a network. If you accidentally pulled a plug on the way to lunch, 4 people would be dead because of you.

    Their uptime target was 24-7-365-20. There was no such thing as "Good Enough."

    Ideally, any OS should do. It should be a flawlessly written middleman layer between flawlessly written hardware and flawlessly written software. But we all know that software is flawed, hardware drivers are flawed, and OS's are flawed. When WinCE comes across a problem in the kernel, it panics and comes crashing down. When Linux comes across a problem in the kernel, it panics and comes down. According to this article, when QNX comes across a problem in the kernel, it cuts off, shuts down, and reboots just the offending section, cutting downtime from 30 seconds to microseconds. That's pretty darned cool.

    Sure, the foundation of your house is just the interface between the ground and your software creation. But if your foundation is bad, no matter how much support the system integrator can provide, your house won't stay up for long. If you're building apartments, that might not matter. If you're building a hospital, your negligence could cost lives.

    And by the way, it's the software that controls the grinding of the lens. If the hardware knew how to grind a lens already, it wouldn't have electronics. The software controls the OS, the OS controls the hardware. Your Software->OS->Hardware diagram should have proven to you how important it is to have a reliable OS in the middle.

  10. Re:We Will Crush You? by 100lbHand · · Score: 5, Funny

    1. Crush your enemies 2. See them driven before you 3. Hear the lamentations of their women 4. ? 5. Profit!!

    --
    "I'm not high, just stupid" --JY
  11. Wait until... by Bull999999 · · Score: 5, Funny

    I'm pretty sure AOL, RealPlayer, and Bonzi Buddy will find a way to crash QNX.

    --
    1f u c4n r34d th1s u r34lly n33d t0 g37 l41d
  12. ehm? by Horizon_99 · · Score: 5, Informative
    What you won't find in QNX is USB support, drivers for a Sound Blaster 16
    are you sure about that?
  13. A fire-and-forget controller... by PSaltyDS · · Score: 5, Interesting

    The US Navy has used a CD-ROM tech library called ATIS for years. It is based on a Kubik 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.

    --
    Any technology distinguishable from magic is insufficiently advanced. - Geek's corollary to Clarke's law
  14. Qnx: Microkernel, real-time, small, and fast by Teckla · · Score: 5, Interesting

    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.

    -Teckla

  15. Re:QNX is still around? by njan · · Score: 5, Informative

    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...

    --
    I am a viral sig. Please copy me and help me spread. Thank you
  16. Re:um by SealBeater · · Score: 5, Informative

    I can't believe this got a +5 insightful.


    It's not made for PCs


    You are mistaken, I'm afraid. See below.


    What you won't find in QNX is USB support


    QNX most defiantly has USB support, as I have a Audrey that has it sitting in front of me.
    As for the "not meant for PCs", QNX runs extremely well on a PC, with just about everything you need.
    QNX also has 3d support, as evidenced in the FAQ here.

    To quote:
    Photon supports rapid animation, 3D graphics, and realtime trending
    through off-screen memory, bypass mode, video overlay, and other
    advanced features.

    QNX also supports the following:

    * XScale processors and boards
    * >4G address spaces on PowerPC boards
    * more video hardware
    * UDMA 66 chipset (high-speed disk interface)
    * Enhanced TCP/IP stack - includes IPv4, Unix domain sockets, multicast support
    * NFS v3
    * Resource database for better device mapping
    * Bi-directional pipes
    * Block driver DMA
    * Enhanced support for shared memory, with full support for creation mode and ownership information

    And SMP, which OpenBSD still hasn't included, for instance.

    I recommend that anyone who is interested download the free ISO and install it on
    a spare computer you may have laying around and see for yourself. Get it here.
    Don't rely on /. or me to give accurate information, go see for yourself.

    SealBeater

    --
    -- Its survival of the fittest...and we got the fucking guns!!!
  17. QNX reliability by Space · · Score: 5, Interesting

    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

    --
    I Don't Work Here
  18. If the Air-Control Syetems ran MS software... by Dr+Reducto · · Score: 5, Funny

    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.)

  19. Re:Bullet Proof by Idarubicin · · Score: 5, Funny
    Reminds me of a story from this page:

    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.

    --
    ~Idarubicin
  20. Message passing is basic by Animats · · Score: 5, Informative
    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. It has to work.