QNX as a general purpose OS

OK… this is my first post here, and I have no experience yet with QNX, so please be gentle… My question is: why, if QNX is as good as advertised, and if it’s free now for NC using, don’t people rush to adopt it for desktop computing? I mean, I understand that it’s primarily specialized for embedded platforms, but then: how does it behave (performance-wise) on the desktop or even in the server segment? Taking into account desperate contemporary efforts to produce micro-kernel OS-es (such as Mach or L4), isn’t QNX the already-here solution to this problem? And if QNX is fully POSIX compatible, why are there so little (and so old) applications ported for it?

Because first problem is driver issue, there is far less driver available for QNX then for Linux. For example on my current motherboard, video isn’t supported (but don’t care have an add-on video card), no raid, no firewire, no sound, no 3D.

As for application, most GUI application are X based, and although QNX6 has a X emulation layer, it’s kind of a pain.

In my view, what is the point in porting everything when it already exists on other OSes that are much better suited for desktop.

As for performance, well yes you get a much fasterr kernel, but for desktop it doesn’t make much difference. What matters is driver performance, and feature set, which QNX totaly lacks. For example my windows box kicks QNX ass when it comes to disk performance.

Ok, so I guess that when you say “driver issue”, you probably mean “deterministic” drivers, don’t you? Because if not, one could easily take drivers from the BSD Unix-es and that would be all.

Other systems being suited for desktop - well, you know, I’m on a Linux workstation and I can’t tell you how many times the web browser or unmounting a USB key or a CD managed to freeze the system! An application in user-space freezing everything - I see it as a kernel problem. I believe that in a micro-kernel RTOS this could simply not happen. Could it?

As for performance - I wasn’t clear: it’s not that the QNX kernel would be faster. I’m worried about it being SLOWER! Just think about the bunch of processes one usually has on a desktop system, each with it’s (possible) threads. All these communicating through IPC. Wouldn’t this be terribly slow? (Compare this with small, simple devices where you’ve got only a few tasks.)

One final question: in a highly specialized embedded device, one usually has a few predetermined tasks - fairly easy to assign them priorities. On a desktop system, one usually launches an arbitrary number of processes, not the same every day. How would these be attributed priorities (for instance, burning a CD is way more critical than checking for email in the background)? Who would assign priorities to all these tasks (without knowing them in advance, because the user is free to add or remove them at any time)?

Sorry for the long message. As it’s no longer about porting applications, maybe it should be moved somewhere else?

Easely, nah? Driver from BSD are incompatible with the QNX. Some driver don’t have sources ,NVIDIA and ATI graphic drivers, winmodem, etc.

Sure it can happen under QNX. I’m no Linux expert but if unmouting a USB key freeze the system, I don’t beleive it’s the kernel architecture fault. It’s probably because the guy that wrote the driver didn’t take the time to do it right…

Most processes on a desktop don’t interface with one another so it’s not a big issue. But yes it’s slower then say Linux which doesn’t copy data when talking with a driver (on x86). But this only really show on high bandwidth type of IPC, network, HD.

It could/would be just like under Windows (well not quite). I know my CD burning software under windows sets itself at high priority. So a CD burning software under QNX could do the same.