QNX
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ıdan geçmeden direkt 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.