İçeriğe atla

QNX

QNX
QNX 6.4.1 masaüstü ortamı
Geliştirici(ler)BlackBerry
İşletim sistemi ailesiUnix-benzeri
Kaynak türüKapalı kaynak
LisansÖzel mülk yazılım, Linux çekirdeği yamaları: GPL
Çekirdek türüMikrokernel
Platform desteğiARM, MIPS, XScale
Son kararlı sürümü 7.0 / 4 Ocak 2017 (7 yıl önce) (2017-01-04)
Kullanıcı arayüzüGrafiksel kullanıcı arayüzü
Web sitesiwww.qnx.com
Eski logo

QNX, gömülü sistemler pazarına yönelik Unix benzeri, gerçek zamanlı işletim sistemidir.

QNX Software Systems tarafından geliştirilen QNX, 2010 yılında Kanadalı Research In Motion firması tarafından satın alındı.

Tanım

Mikrokernel yapılı bir işletim sistemi olan QNX'in mantığı, 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 itibarıyla QNX, ticari kullanım düşünmeyen kullanıcılar için lisans sunmaktadır.

Tarihçe

1980 yılında Waterloo Üniversitesi'nde standart bir işletim sistemleri dersi alan Dan Dodge ve Gordon Bell adlı iki öğrenci basit bir gerçek zamanlı işletim sistemi yarattılar. Bu tarz bir sistemin ticari olarak büyük bir ihtiyaç olduğunda hemfikir olarak Ontario, Kanada'da (Ottawa'nın batısında kalan yüksek teknoloji merkezi) Quantum Software Systems adlı şirketi kurdular. 1982 yılında ilk sürümü yayınlanan QNX, Intel 8088 işlemciler için çıktı.

QNX'in ilk genel kullanımı gömülü olmayan sistemlerde başladı. Ontario eğitim sisteminin kendi bilgisayar tasarımı Unisys ICON için işletim sistemi olarak seçildi. QNX, o zamanlar "büyük" projeler için kullanılıyordu çünkü 44k kerneli işlemcilere fazla geliyordu. Güvenilirliği ile dikkat çekerek endüstriyel alanda makina operasyonlarında kullanılmaya başlandı.

1980'lerin sonlarına doğru piyasanın POSIX modeline yöneldiğini gören Quantum, POSIX uyumunu alt seviyede daha iyi sağlayabilmek için kerneli baştan yazmaya karar verdi. Sonuç QNX 4 oldu. Bu arada Robin Burgener (o zaman QNX çalışanı) ile birlikte çalışan Patrick Hayden (stajyer) yeni bir pencereleme konsepti geliştirdi. Bu konsept daha sonra gömülü kullanıcı arayüzü Photon MicroGUI şeklinde geliştirildi. POSIX uyumu sayesinde, Unix ve BSD paketlerinden QNX'e geçiş çok daha kolay hale geldi.

1990'dan sonra QNX, tamamıyla yeni bir sürüm için çalışmalara başladı. Mikrokernel yapısını koruyarak SMP kabiliyetli ve bütün POSIX API'lerini destekleyen bir sistem oluşturulması hedeflendi. Sonuç 2001 yılında çıkan QNX Neutrino oldu. Neutrino kernelinin çıkmasıyla geliştirme araçlarına yoğunlaşan QNX, Eclipse Konsorsiyumu'nun kurucu üyesi oldu ve kısa zamanda Momentics adı altında eklentilerle donatılmış Eclipse geliştirme ortamını çıkardı.

QNX Software Systems tarafından geliştirilen QNX, 2010 yılında Kanadalı Research In Motion firması tarafından satın alındı.

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.

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.[1]

Bir QNX türevi olan BlackBerry Tablet OS ve BlackBerry 10 geçmişte BlackBerry tablet ve telefonlarda kullanılmıştır.

Topluluk

Linux tarzı bir kullanıcı desteği ve katkısına ulaşabilmek ve QNX kullanan herkese birçok kolaylık sağlaması için Foundry27 adlı QNX topluluk sitesi kurulmuştur. Bu site aracılığıyla kullanıcılar, QNX ile ilgili problemlerini paylaşabilir ve hem diğer kullanıcılardan hem de QNX yetkililerinden yardım alabilirler. Bunun yanında kullanıcıların ve QNX yetkililerin ortaklaşa yürüttüğü topluluk projeleri bulunmaktadır ve dilediğiniz takdirde bu projelere katılabilirsiniz.

Dış bağlantılar

Kaynakça

  1. ^ "Arşivlenmiş kopya". 27 Ocak 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ocak 2012. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

<span class="mw-page-title-main">Unix</span>

UNIX türevi işletim sistemleri çok işlemcili çok pahalı makinelerden tek işlemcili, basit ve çok ucuz ev bilgisayarlarına kadar pek çok cihaz üzerinde çalışabilen esnek ve sağlamlığı çok değişik koşullarda test edilmiş sistemlerdir. Fakat özellikle kararlı yapısı ve çok kullanıcılı-çok görevli yapısıyla çok işlemcili sunucularda adeta standart haline gelmiştir ve özellikle akademik dünyada iş istasyonları üzerinde çok yaygın bir kullanım alanı bulmuştur. UNIX, Interdata 7/32, VAX ve Motorola 68000 arasında hızla yayıldı.

<span class="mw-page-title-main">BSD</span>

BSD, Kaliforniya Üniversitesi, Berkeley'in kaynak kodu dağıtımı olan, AT&T'nin UNIX'i için bir eklentiler zinciridir. Birçok açık kaynak kodlu işletim sistemi projesi, 4.4 BSD-Lite olarak bilinen kaynak kodu dağıtımını temel kabul eder. Ek olarak bunlar, özellikle GNU projesi olmak üzere diğer birçok açık kod projesini de kapsar.

Windows NT, Microsoft tarafından geliştirilen ve ilk sürümü 27 Temmuz 1993'te yayımlanan bir işletim sistemi ailesidir. İşlemciden bağımsız, çoklu işlem ve çoklu kullanıcı desteği sunan bir işletim sistemidir.

Paralel hesaplama ya da Koşut hesaplama, aynı görevin, sonuçları daha hızlı elde etmek için çoklu işlemcilerde eş zamanlı olarak işletilmesidir. Bu fikir, problemlerin çözümünün ufak görev parçalarına bölünmesi ve bunların eş zamanlı olarak koordine edilmesine dayanır. Paralel hesaplama ile performans artar, büyük sorunlar daha az sürede çözülür ve bilimdeki gelişmeler paralel hesaplamaya gereksinim duyar.

<span class="mw-page-title-main">İş parçacığı</span>

İş parçacığı, bilgisayar biliminde, bir işin eş zamanlı olarak işlenen her bir bölümüdür. İş parçacığı ve işlem arasındaki fark bir işletim sisteminden diğerine değişmekle birlikte genel olarak iş parçacığının oluşturuluşu ve kaynakların paylaşılmasıdır. İşlemler, birçok iş parçacığı oluşturup sonlandırabilir, iş parçacıkları da ortak bellek kullanabilirler. Çoğu durumda iş parçacıkları işlemlerin içinde yer alır, onları oluştururlar. Çoklu iş parçacıkları paralel olarak pek çok bilgisayar sisteminde uygulanabilir. Tek işlemci kullanıldığında çok iş parçacıklı uygulama, zaman dilimlemesiyle gerçekleştirilir; tek işlemci, farklı iş parçacıkları arasında çok hızlı geçiş yapar ve bu durumda işlemler gerçekte olmasa da eş zamanlı çalışıyormuş gibi görünür. Çok işlemcili sistemlerde farklı iş parçacıkları, farklı işlemciler üzerinde eş zamanlı olarak çalışabilir.

Gömülü Linux Linux işletim sisteminin cep telefonları, PDA'ler, elde taşınabilir medya oynatıcılar ve diğer tüketici elektroniği cihazları gibi gömülü sistemlerde kullanılan adıdır.

<span class="mw-page-title-main">GNU Debugger</span>

GNU Debugger(GDB olarak kısaltılır) GNU yazılım sistemi için kullanılan bir hata ayıklayıcıdır (debugger). Unix tabanlı pek çok sisteminde, C, C++ ve Fortran gibi birçok programlama dilinde çalışan taşınabilir bir hata ayıklayıcıdır.

<span class="mw-page-title-main">AmigaOS</span> Amiga kişisel bilgisayarının işletim sistemi

AmigaOS, Amiga kişisel bilgisayarının işletim sistemidir. Grafik arabirimi olan Workbench, CLI komut satırı arabirimi ile birlikte AmigaDOS ve çoğu Amiga modelinde ROM'da yer alan Kickstart'tan oluşur.

<span class="mw-page-title-main">POSIX</span>

POSIX, UNIX için "taşınabilir işletim sistemi arabirimi".

<span class="mw-page-title-main">PowerPC</span>

PowerPC, AIM olarak bilinen Apple-IBM-Motorola ittifakının 1991'de geliştirdiği bir RISC mikroişlemcisidir. Genel olarak kişisel bilgisayarlar içindir. PowerPC merkezi işlem birimleri (CPU) gömülü (embedded) ve yüksek performans işlemcileri olduğu için popüler olmuştur. PowerPC 1990'da AIM' in ve PReP'in temel taşı oldu, fakat mimari Apple'ın Macintosh'unun 1994–2006 modellerinde daha başarılı bulundu.

<span class="mw-page-title-main">Çekirdek (bilgisayar bilimi)</span>

İşletim sistemi çekirdeği, kısaca çekirdek (kernel), işletim sistemindeki her şeyin üzerinde denetimi olan merkezi bileşenidir. Uygulamalar ve donanım seviyesindeki bilgi işlemleri arasında bir köprü görevi görür. Çekirdeğin görevleri sistemin kaynaklarını yönetmeyi de kapsamaktadır. Genellikle çekirdek, işletim sisteminin temel bir elemanı olarak, yazılımın fonksiyonunu yerine getirebilmesi için kontrol etmesi gereken kaynaklar için düşük seviye soyutlama katmanı sağlayabilir. İşletim sistemi görevleri, tasarımları ve uygulanmalarına göre farklı çekirdekler tarafından farklı şekillerde yapılır. Sistem açılırken belleğe yüklenir ve sistem kapatılıncaya kadar ana bellekte kalır.

QNX gerçek zamanlı işletim sistemini sunucularında kullanan ve kullanıcı tarafında da windows işletim sistemini kullanan Supervisory control and data acquisiton (SCADA) sistemi. Kullanıcı daha fazla güvenilirlik talep ederse, sunucu dışındaki tüm bilgisayarlara QNX gerçek zamanlı işletim sistemi de yüklenebilmektedir.

<span class="mw-page-title-main">İşlem yönetimi</span>

İşlem yönetimi günümüz işletim sistemlerinin önemli bir parçasıdır. İşletim sisteminin işlemlere yer alması, aralarında haberleşmeyi sağlaması onun önemli görevlerindendir. İşletim sistemi kaynakları işlemlere göre ayırmalı, işlemleri veri aktarımı ve paylaşımına uygun hale getirmeli, her işlemin kaynağını diğer işlemlerden korumalı ve işlemler arası senkronizyonu sağlamalıdır. Bunları yapabilmek için işletim sistemi her işlem için o işlemin mevkisini ve sahipibi tanımlayan ve işletim sistemini her veriği üzerinde kontrol uyguladığı bir veri yapısı sağlamalıdır.

<span class="mw-page-title-main">BlackBerry 10</span>

BlackBerry 10 ya da yaygın kullanılan şekliyle BB10, 30 Ocak 2013 tarihinden itibaren piyasaya sürülmekte olan yeni nesil BlackBerry cihazlarda kullanılmak üzere geliştirilen mobil platformun adıdır.

<span class="mw-page-title-main">Gömülü sistem</span> Belli bir fonksiyonu yapmaya yönelik bilgisayar sistemi

Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.

uname

uname (veya unix name) - Unix ve Unix benzeri işletim sistemleri bir yazılım konsol programı olup, sistem hakkında bilgi verir. Geçerli makine ve üzerinde çalışdığı işletim sistemi hakkında isim, sürüm ve diğer ayrıntıları yazdırır. uname sistem çağrısı ve komut PWB / UNIX ile ilk kez ortaya çıktı. Her ikisi de POSIX tarafından belirtilir.

Gömülü yazılım, denetim makineleri ve bilgisayar sayılmayan aygıtlar için yazılmış yazılımlardır. Gömülü yazılımlar genellikle çalıştırılacakları donanıma göre özelleştirilir, zaman ve bellek kısıtlamalarına sahiptir. "Gömülü yazılım" terimi bazen firmware terimi ile beraber kullanılır, fakat firmware bir bilgisayardaki, üstünde bir işletim sisteminin çalıştığı ROM tabanlı koda uygulanabilir. Oysaki, gömülü yazılım genellikle aygıttaki tek yazılım olarak bulunur.

<span class="mw-page-title-main">XNU</span>

XNU, MacOS işletim sisteminde kullanılmak üzere Aralık 1996'dan beri Apple'da geliştirilen ve Darwin işletim sisteminin bir parçası olarak ücretsiz ve açık kaynaklı yazılım olarak piyasaya sürülen bilgisayar işletim sistemi çekirdeğidir. Ayrıca, iOS, tvOS ve watchOS işletim sistemlerinin çekirdeği olarak da kullanılır. XNU, "X Not Unix"'in bir kısaltmasıdır.

Mach, Carnegie Mellon Üniversitesi'nde öncelikle dağıtık hesaplama ve paralel hesaplama bilgi işlem olmak üzere işletim sistemi araştırmalarını desteklemek için geliştirilen bir işletim sistemi çekirdeğidir. Mach bir mikrokernelin en eski örneklerinden biri olarak sıklıkla bahsedilir. Bununla birlikte, Mach'ın tüm versiyonları mikrokernel değildir. MacOS'un temel aldığı NextStep ve OpenStep, hepsi de daha önce bir mikro çekirdek olmayan Mach içeren XNU işletim sistemi çekirdeğini büyük bir bileşen olarak içerir. Mach türevleri, GNU Hurd ve Apple'ın işletim sistemleri macOS, iOS, tvOS ve watchOS'daki modern işletim sistemi çekirdeklerinin temelini oluşturmaktadır.