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!"
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
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
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
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
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/
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.
http://saveie6.com/
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...
Sorry, wrong. QNX USB support.
No electrons were harmed creating this post, though some may have been subjected to electrical and/or magnetic fields.
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.
The ______ Agenda
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
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
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
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
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
I can't believe this got a +5 insightful.
/. or me to give accurate information, go see for yourself.
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
SealBeater
-- Its survival of the fittest...and we got the fucking guns!!!
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
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.)
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.
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
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.