QNX  Unix benzeri bir işletim sistemidir.

QNX Mikrokernel yapıda oluşturulmuş  bir işletim sistemidir. Mantık olarak; işletim sistemi elemanlarının çoğunun küçük uygulamalar şeklinde çalıştırılmasıdır. Bu, daha geleneksel bir yapı olan ve işletim sisteminin tek parça olarak çalıştığı ve dev kısımlardan oluşan Monolitik çekirdek (kernel) içeren diğer işletim sistemlerinden çok farklıdır. QNX’in mikrokernel yapısı, sistem hâlâ çalışmakta iken, istenmeyen özelliklerin veya programların kapatılarak üzerlerinde düzenlemeler, geliştirmeler yapılmasına olanak sağlar. Geliştirilip sisteme eklenen örneğin yeni bir yazılım, eski yazılım sürümüyle paralel çalışarak yeni komutların kendine yönlendirilmesini sağlar ve eski sürümün kullanıldığı işlemler yavaş yavaş yeniye geçtikçe, eski sürüm sistemden kendini otomatik olarak koparır ve bunların hepsi sistem çalışıyorken meydana gelir.

QNX mikrokernel yapıda olduğundan dolayı epey küçüktür. Eski sürümleri bir floppy diske bile sığar.

QNX Neutrino (2001) birçok platforma uyarlanmıştır. Şu anda gömülü sistemler pazarındaki neredeyse tüm modern işlemciler üzerinde çalışabilir. Bunlardan bazıları x86 ailesi, MIPS, PowerPC, SH4 ve özellikle ARM, StrongARM ile XScale’dır.

12 Eylül 2007 itibariyle QNX, ticari kullanım düşünmeyen kullanıcılar için lisans sunmaktadır.

QNX Kullanım alanları

Gerçek zamanlı bir kernele (çekirdek) sahip olan QNX, günümüzde otomotiv sektöründe kullanılan en yaygın işletim sistemidir. QNX CAR platformu; Audi, BMW, Cadillac, Chevrolet, Chrysler, Dodge, Fiat, Ford, Honda, Hyundai, Jaguar, Land Rover, Mazda, Mercedes, Mitsubishi, Nissan, Toyota ve Volkswagen gibi üreticilerin de aralarında olduğu pek çok markanın arabalarında kullanılmaktadır.

Bir QNX türevi olan BlackBerry Tablet OS, günümüzde BlackBerry PlayBook tabletlerde kullanılmaktadır.

2013 Ocak ayında piyasaya sürülecek olan yeni nesil BlackBerry telefonlarda da QNX tabanlı BB10 işletim sistemi kullanılacaktır.

Teknoloji

QNX kernelinde sadece işlemci zamanlaması, işlemler arası iletişim, kesme (interrupt) yönlendirme ve timerlar mevcuttur. Diğer her şey, işlem yaratmada ve kernelle beraber çalışarak bellek yönetiminde kullanılan proc adlı özel bir işlem dahil, kullanıcı işlemi olarak çalışır. Kernelde donanım sürücüleri bulunmaz. Ağ Stack’ı ise NetBSD kodunu taban almıştır. Üç çeşit sürücü desteklenmektedir: native, legacy io-net ve NetBSD’den aktarılan sürücüler.

QNX’de işlemler arası iletişim mantığı bir işlemden diğerine mesaj gönderip beklemekten oluşur. Bu MsgSend adı verilen bir işlemdir. Mesaj kernel tarafından gönderen işlemin adres alanından alıcı işlemin adres alanına kopyalanır. Eğer alıcı işlem mesaj için bekliyorsa işlemci kontrolü işlem zamanlayıcından geçmeden direk aktarılır. Bir başka deyişle, bir mesaj gönderip cevap beklemek sıranın kaybedilmesi anlamına gelmez. Çoğu UNIX ve Linux işlemler arası iletişim mekanizmalarında bu düzen bulunmamaktadır.

Mikrokernel yapısı sayesinde QNX dağıtık bir yapıya sahiptir. Patenti Dan Dodge ve Peter van der Veen’de bulunan teknolojinin ticari adı Transparent Distributed Processing’dir.

Neutrino boot loader ile istenilen şekilde başlatılabilir. Şöyle ki, Intel x86 hedeflerinde istenildiği takdirde normal bir şekilde BIOS ile başlatılabilir. 500 KB ile 8 MB’a kadar değişebilen boyutlardaki kernel, istenildiği takdirde ise 100-500 ms gibi bir sürede devreye girebilen anında aktivasyon özelliğini bulundurmaktadır.

Güvenilirliğiyle ön plana çıkan QNX, bunu sistemi koruması ve hata toleransı sayesinde kazanmıştır. Sistemde bir uygulama veya sürücü çöktüğü anda HAM (High Availability Manager) devreye girerek sistem devre dışı kalmadan gerekli işlemleri tekrar aktive eder. HAM’ın kendisi de bir kullanıcı işlemi statüsünde olduğu için ikiziyle birlikte birbirlerini takip ederler.

RealFLEX SCADA sisteminin güvenilirliği konusunda sırtını dayadığı işletim sistemi QNX’tir. Sunucularında QNX Neutrino kullanan sistem, normalde kullanıcı bilgisayarında bilindiği gibi hata oranı yüksek Windows’u sunarken, güvenliğin ve sürekliliğin önemli olduğu durumlarda kullanıcı bilgisayarını da QNX Neutrino ile sunuyor.

QNX’de görsel öğeler kolay bir şekilde işlenebilmektedir. Kullanıcı arayüzü tasarımı, düşük kapasiteli sistemlerde Photon MicroGUI ile tut-çek kolaylığında sağlanırken, yer ve işlemci sıkıntısı daha az olan sistemlerde ise Adobe Flash teknolojileri kullanılabilir. Kullanıcı arayüzlerinde Flash kullanılması, görsel öğelerin çok daha güzel olmasını ve kolay bir şekilde entegre edilebilmesini sağlıyor.

QNX Neutrino Simetrik multiprocessing’i destekler. Bunun yanında QNX, çoklu işlemciye sahip sistemlerde legacy kodu kullanmak mecburiyetinde bulunanlar için BMP (Bound Multiprocessing) ile belli işlemleri belli işlemcilere bağlama özelliğine sahiptir. BMP, çoklu işlemcilerde cache ısınmasını engeller ve SMP uyumlu olmayabilecek uygulamaların sorunsuz bir şekilde aktarılmasını sağlar.

Neutrino içerisinde Adaptive Partitioning Scheduling (APS) adı verilen bir teknoloji bulunmaktadır. APS yoğun yükte her işlemin belirlenen miktarda işlemci gücü alabilmesini sağlar. Ancak normal durumlarda eğer bir işlem kendi hakkını tam kullanmıyorsa, kalan işlemci gücü diğer işlemlere dağıtılır. Ayrıca, bazı kritik threadler yoğun yükte bile gerçek zamanlı olarak çalıştırılacak şekilde ayarlanabilir.