QNX

З пляцоўкі Вікіпедыя
Перайсці да: рух, знайсці
Лагатып QNX
QNX
300px
Рабочы стол QNX 6 (Neutrino) пасля ўстаноўкі
Распрацоўшчык

QNX Software Systems

Сямейства АС

Unix-падобная аперацыйная сістэма, Аперацыйная сістэма рэальнага часу

Першы выпуск

1982

Апошняя версія

6.5.0 Service Pack 1 — 3 ліпеня 2012

Тып ядра

Мікраядро

Ліцэнзія

Proprietary

Стан

Вядзецца распрацоўка новых версій

Вэб-сайт

qnx.com

QNX - камерцыйная Unix-падобная камп'ютарная аперацыйная сістэма рэальнага часу, Прызначана галоўным чынам для рынку ўбудаваных сістэм. QNX была першапачаткова распрацавана канадскай кампаніяй Quantum Software Systems. Лічыцца адной з найлепшых рэалізацый канцэпцыі мікраядравых аперацыйных сістэм і выкарыстоўваецца ў шэрагу прылад, у тым ліку ў інтэрнэт маршрутызатарах, авіясімулятарах, навігацыйных сістэмах, галівудскіх сістэмах спецэфектаў, смартфонах, мабільных прыладах, медыцынскіх прыладах, казіно і інш.

Апісанне[правіць | правіць зыходнік]

З'яўляючыся мікраядравай аперацыйнай сістэмай, QNX грунтуецца на ідэі працы большай часткі аперацыйнай сістэмы ў форме шэрагу маленькіх задач, вядомых як "серверы". Гэта адрозніваецца ад больш традыцыйнага маналітнага ядра, калі аперацыйная сістэма з'яўляецца проста адной вялікай праграмай, складзенай з вялікай колькасці частак вузкага прызначэння. У выпадку QNX, выкарыстоўванне мікраядра дазваляе распрацоўшчыкам адключаць любую частку функцыянальнасці, ў якой нама патрэбы, без аніякіх зменаў у аперацыйнай сістэме: замест гэтага, "серверы" проста не запускаюцца.

Сістэма дастаткова малая, ранейшыя версіі змяшчаюцца на адным floppy дыску.[1]

QNX Neutrino (2001) была партавана на шэраг платформ, і цяпер працуе практычна на любым сучасным CPU, прысутнічаючым на рынку ўбудаваных сістэм. Спіс уключае PowerPC, сямейства x86, MIPS, SH-4, ARM.

QNX прапаноўвае таксама ліцэнзію для некамерцыйных і акадэмічных карыстальнікаў.[2]

Гісторыя[правіць | правіць зыходнік]

Два студэнты ўніверсітэта Ватэрлоо Гордан Бэл і Дэн Додж ў 1980 скончылі вывучэнне курсу аб распрацоўцы аперацыйных сістэм, падчас якога стварылі аснову ядра рэальнага часу. Абодва былі перакананы, што ў іх аперацыйнай сістэме існуе камерцыйная патрэба, і пераехалі ў горад Каната ў правінцыі Антарыа, дзе заснавалі кампанію Quantum Software Systems. У 1982 з'явілася першая версія QNX для працэсараў Intel 8088.

Адно з першых выкарыстанняў QNX не адносілася да ўбудаваных сістэм: QNX была абрана для ўласнага кампутарнага праекту міністэрства адукацыі Антарыа. У той час QNX выкарыстоўвалася галоўным чынам у "вялікіх праектах", паколькі яе ядро было занадта вялікім, каб змясціцца ў аднакрыштальных кампутарах той эпохі. У сярэдзіне 1980-х з'явілася QNX2. Сістэма атрымала добрую рэпутацыю за надзейнасць, і пачала ўжывацца для кіравання прамысловымі машынамі.

У другой палове 1980-х, у Quantum зразумелі, што рынак хутка рухаецца ў напрамку мадэлі POSIX, і вырашылі перапісаць ядро дзеля значна большай сумяшчальнасці на ніжэйшым узроўні. Так з'явілася QNX4. У гэты самы час была распрацавана новая канцэпцыя для ваконнай сістэмы, якая была распрацавана як ўбудаваная GUI пад імем QNX Photon microGUI. Таксама QNX партаваў для сябе версію X Window System. Дзякуючы інтэрфейсу POSIX, партаванне Unix і BSD пакетаў стала лягчэйшым.

Да канца 1990-х гадоў, кампанія, якая цяпер завецца QNX Software Systems, пачала працу над цалкам новай версіяй аперацыйнай сістэмы QNX, якая б падтрымлівала новую рэдакцыю POSIX і была б максімальна сумяшчальнай з NetBSD і Linux і ў той жа час захоўвала прадказальныя паводзіны ды мікраядравую архітэктуру. Вынікам гэтых распрацовак у 2001 з'явілася QNX Neutrino. Гэта версія пастаўляецца разам з QNX Momentics Tool Suite - інтэграваным асяроддзем распрацоўкі (IDE), заснаваным на Eclipse, рознымі ўтылітамі GNU і праграмным забяспячэннем, арыентаваным на Інтэрнэт, у тым ліку вэб-серверам. У адрозненне ад ранейшых версій, што працавалі толькі на PC-сумяшчальных архітэктурах, QNX6 лёгка адаптуецца да любой апаратнай канфігурацыі; акрамя гэтага, асобая ўвага была звернута на магчымасць эфектыўнага маштабавання.

У 2004 годзе QNX Software Systems была набыта кампаніяй Harman International Industries.

У верасні 2007 года QNX Software Systems аб'явіла аб даступнасці часткі крынічнага коду.[3]

У красавіку 2010 года Research In Motion аб'явіла аб набыцці QNX Software Systems у Harman International Industries. У той жа дзень, доступ да крынічнага коду быў абмежаваны. У верасні 2010 года кампанія прадставіла планшэтны кампутар BlackBerry PlayBook і новую аперацыйную сістэму для яго, BlackBerry Tablet OS, заснаваную на QNX.

Тэхналогія[правіць | правіць зыходнік]

Ядро QNX змяшчае толькі планаванне працэсара, міжпрацэсавае ўзаемадзеянне, перанакіраванне перарыванняў і таймеры. Усё астатняе выконваецца ў якасці карыстальніцкіх працэсаў, уключаючы спецыяльны працэс proc, які адказны за стварэнне іншых працысаў, а таксама кіраванне памяццю, ў спалучэнні з мікраядром. У ядры няма драйвераў прыладаў. Сеткавы стэк заснаваны на кодзе NetBSD. Акрамя падтрымкі ўласных драйвераў, QNX падтрымлівае іх састарэлыя версіі, сервер кіравання io-net, а таксама сеткавыя драйверы, партаваныя з NetBSD.

Міжпрацэсавае ўзаемадзеянне складаецца з адпраўкі паведамлення ад аднаго працэса да другога і чакання адказу. Гэта адна аперацыя, што завецца MsgSend. Паведамленне капіюецца ядром з адраснай прасторы адпраўніка ў адрасную прастору атрымальніка. Калі атрымліваючы працэс чакае паведамленне, кіраванне CPU перадаецца ў той жа час, без праходу праз планавальнік працэсара. Такім чынам, аперацыя MsgSend не прыводзіць да "страты чаргі" да CPU. Гэтая шчыльная інтэграцыя паміж перадачай паведамленняў і планаваннем працэсара з'яўляецца адным з галоўных механізмаў, які робіць перадачу паведамленняў у QNX шырока выкарыстальным.

Усе аперацыі ўводу/вываду, файлавыя, сеткавыя аперацыі працуюць праз гэты механізм, інфармацыя перадаецца праз капіяванне ў час перадачы паведамленняў. У пазнейшых версіях QNX паменшылася колькасць асобных працэсаў, а таксама сеткавы стэк і іншыя функцыянальныя блокі былі інтэграваныя ў адну праграмау з патрэбы прадукцыйнасці.

Прыярытэт апрацоўкі паведамленняў зыходзіць ад прыярытэтаў працэсаў. Паколькі запыты ўводу/вываду выконваюцца з выкарыстаннем перадачы паведамленняў, высокапрыярытэтныя працэсы атрымліваюць сервіс уводу/вываду раней за нізкапрыярытэтныя, што з'яўляецца істотнай прыкметай у сістэме жорсткага рэальнага часу.

Загрузчык - яшчэ адзін важны кампанент мінімальнай мікраядравай сістэмы. Паколькі карыстальніцкія праграмы могуць быць убудаванымі ў вобраз для загрузкі, патрэбны камплект драйвераў і бібліятэк для запуску павінен быць, але адсутнічае у ядры. Нават такія фунцыі як загрузка праграм не знаходзяцца ў ядры, але замест гэтага знаходзяцца ў агульных бібліятэках прасторы карыстальніка, які загружаюцца як частка вобразу. Магчыма змясціць увесь вобраз у ROM, што выкарыстоўваецца ў бяздыскавых убудаваных сістэмах.

QNX Neutrino падтрымлівае сіметрычную шматпрацэсарнасць і роднасць працэсара, што ў тэрмінах QNX завецца звязаннай шматпрацэсарнасцю (bound multiprocessing, BMP). BMP выкарыстоўваецца дзеля паляпшэння працы з кэшам і палягчэння міграцыі з бяспечных прыкладанняў без SMP на шматпрацэсарныя камп'ютары.

QNX Neutrino падтрымлівае строгае прыярытэтна-выцясняльнае планаванне і адаптыўны падзел планавання (APS). APS гарантуе мінімальнае выкарыстанне CPU выбранай групай працэсаў, нават калі астатнія працэсы маюць больш высокі прыярытэт. APS застаецца строга прыярытэтна-выцясняльным, калі сістэма не нагружана. Таксама ён можа быць канфігураваны каб выконваць набор крытычных струменяй строга ў рэальным часе, нават калі сістэма перагружана.

Празрыстая размеркавальная апрацоўка[правіць | правіць зыходнік]

Як вынікае з мікраядравай архітэктуры, QNX з'яўляецца размеркавальнай аперацыйнай сістэмай. Дэн Додж і Пітар ван дэр Він маюць патэнт ЗША 6,697,876 аб размеркавальнай апрацоўцы ў QNX, камерцыйна вядомай як "Празрыстая размеркавальная апрацоўка". Гэта дазваляе ядрам QNX на розных прыладах мець доступ да сістэмных сервісаў адзін аднаго, фактычна выкарыстоўваючы такі самы механізм, які выкарыстоўваецца для доступу да лакальных сервісаў.

Foundry27[правіць | правіць зыходнік]

Foundry27 - гэта QNX вэб-супольнасць, што служыць як хаб для распрацоўшчыкаў QNX Neutrino, дзе распрацоўшчык можа зарэгістравацца, выбраць ліцэнзію і атрымаць крынічны код ды звязаныя інструменты АСРЧ.[4] Пасля 9 красавіка 2010 года, пасля набыцця кампаніяй BlackBerry, поўны крынічны код больш не даступны зацікаўленым аматарам альбо грамадскасці.

Зноскі

  1. Samuel Sidler QNX4 Demo Disk: An Expounding Look. OpenQNX (2004-03-24). Праверана 13 сакавіка 2009.
  2. QNX Neutrino Realtime Operating System. QNX (2010-07-15). Праверана 15 кастрычніка 2012.
  3. QNX Press Releases: source code availability
  4. QNX Press Releases: Foundry27

Спасылкі[правіць | правіць зыходнік]