How QNX Neutrino is unique
QNX Neutrino consists of a microkernel (procnto) and various processes. Each process — even a device driver — runs in its own virtual memory space.
The advantage of using virtual memory is that one process can't corrupt another process's memory space. For more information, see The Philosophy of QNX Neutrino in the System Architecture guide.
Neutrino's most important features are its microkernel architecture and the resource manager framework that takes advantage of it (for a brief introduction, see Resource managers , below). Drivers have exactly the same status as other user applications, so you debug them using the same high-level, source-aware, breakpointing IDE that you'd use for user applications. This also means that:
- You aren't also debugging the kernel when you're debugging a driver.
- A faulty driver isn't likely to crash the OS.
- You can usually stop and restart a driver without rebooting the system.
Developers can usually eliminate interrupt handlers (typically the most tricky code of all) by moving the hardware manipulation code up to the application thread level — with all the debugging advantages and freedom from restrictions that that implies. This gives Neutrino an enormous advantage over monolithic systems.
Likewise, in installations in the field, the modularity of Neutrino's components allows for the kind of redundant coverage expressed in our simple, yet very effective, High Availability (HA) manager, making it much easier to construct extremely robust designs than is possible with a more fused approach. People seem naturally attracted to the ease with which functioning devices can be planted in the POSIX pathname space as well.
Developers, system administrators, and users also appreciate Neutrino's adherence to POSIX, the realtime responsiveness that comes from our devotion to short nonpreemptible code paths, and the general robustness of our microkernel.
Neutrino's microkernel architecture lets developers scale the code down to fit in a very constrained embedded system, but Neutrino is powerful enough to use as a desktop OS. Neutrino runs on multiple platforms, including x86, ARM, MIPS, PPC, and SH-4. It supports symmetric multiprocessing (SMP) and bound multiprocessing (BMP) on multicore systems with up to 32 processors; for more information, see the Multicore Processing User's Guide .
Neutrino also features the Qnet protocol, which provides transparent distributed processing — you can access the files or processes on any machine on your network as if they were on your own machine.
The QNX Aviage brand encompasses a portfolio of middleware products that help you create consumer-grade audio, video, and graphical products in record time. QNX Aviage software products accelerate your innovation by offering the following:
- QNX Aviage Acoustic Processing
- A sophisticated acoustic hands-free and speech-enhancement solution designed specifically for challenging automotive environments. Unlike traditional voice-quality enhancement solutions, it eliminates the need for dedicated hardware, lowers production costs, and increases design flexibility.
- QNX Aviage HMI Suite
- Allows embedded developers to implement easy-to-use and compelling user interfaces in Adobe Flash, thereby eliminating the lengthy process of coding HMIs with graphical APIs or cumbersome toolkits.
- QNX Aviage Multimedia Suite
- Configurable, fully featured media jukebox with supporting multimedia software for building next-generation digital infotainment platforms. Includes powerful APIs for quickly building multi-modal HMIs. Options include iPod support, Microsoft PlaysForSure support (with DRM), as well as an array of software codecs.
For more information about QNX Aviage middleware, contact your sales representative.