Âûáèðàé : Ïîêóïàé : Èñïîëüçóé
â ôîêóñå
0

Îïåðàöèîííûå ñèñòåìû ðåàëüíîãî âðåìåíè äëÿ àâèîíèêè: îáçîð

Ïðåäñòàâëåí îáçîð ñðàâíèòåëüíûõ õàðàêòåðèñòèê ÎÑ ÐÂ, ïðèñóòñòâóþùèõ íà ðîññèéñêîì ðûíêå, ïðèìåíèòåëüíî ê èñïîëüçîâàíèþ â àâèàöèîííûõ ñèñòåìàõ óïðàâëåíèÿ.

Áëàãîäàðÿ ðàçâèòèþ âû÷èñëèòåëüíîé òåõíèêè â ïîñëåäíåå âðåìÿ ñòàëî âîçìîæíûì âîçëîæèòü íà îäèí ìîäóëü çàäà÷è, âûïîëíÿåìûå ðàíåå íåñêîëüêèìè ïðîöåññîðíûìè ìîäóëÿìè, ïðè ýòîì óëó÷øèâ ìàññîãàáàðèòíûå õàðàêòåðèñòèêè ñèñòåìû óïðàâëåíèÿ è ñíèçèâ åå ñòîèìîñòü. Òàêàÿ òåíäåíöèÿ â àâèàöèîííîé òåõíèêå ïðèâåëà ê ïîÿâëåíèþ êîíöåïöèè èíòåãðèðîâàííîé ìîäóëüíîé àâèîíèêè - ÈÌÀ (Integrated Modular Avionics,IMA).

Ïðîáëåìà èíòåãðàöèè ôóíêöèé óïðàâëåíèÿ â åäèíûé ìîäóëü ñîñòîèò â òîì, ÷òî íåîáõîäèìî ðàçäåëÿòü ñòàâøèå òåïåðü îáùèìè ðåñóðñû (ïðîöåññîðíîå âðåìÿ, ïàìÿòü, êàíàëû îáìåíà) ìåæäó ðàçëè÷íûìè çàäà÷àìè, ïðè ýòîì îáåñïå÷èâàÿ òàêîé æå óðîâåíü íàäåæíîñòè è íåçàâèñèìîñòè ôóíêöèé, êàê è áûë ðàíåå. Êëþ÷åâóþ ðîëü â ðåøåíèè äàííîé ïðîáëåìû èãðàåò îïåðàöèîííàÿ ñèñòåìà ðåàëüíîãî âðåìåíè.

 íàñòîÿùåå âðåìÿ íà ìèðîâîì ðûíêå ïðèñóòñòâóåò íåñêîëüêî êîììåð÷åñêèõ ÎÑРäëÿ îòâåòñòâåííûõ ïðèìåíåíèé (òàáë. 1).  äàííîé ñòàòüå ïðèâåäåí îáçîð ÎÑÐÂ, äîñòóïíûõ íà ðîññèéñêîì ðûíêå, íà îñíîâå èíôîðìàöèè èç îòêðûòûõ èñòî÷íèêîâ è ëè÷íîãî îïûòà àâòîðîâ.

Äàëåå, åñëè íåò äðóãèõ îãîâîðîê, äëÿ êðàòêîñòè áóäóò èñïîëüçîâàòüñÿ ñëåäóþùèå íàçâàíèÿ ÎÑ: LynxOS âìåñòî LynxOS-178; VxWorks âìåñòî VxWork 653; QNX âìåñòî QNX Neutrino.

Äîêóìåíòû, ðåãëàìåíòèðóþùèå òðåáîâàíèÿ ê ÎÑÐÂ

Ñòàíäàðò DO-178 (Software Consideration in Airborne Systems and Equipment Certification) îïðåäåëÿåò òðåáîâàíèÿ ê ïðîöåññó ðàçðàáîòêè ïðîãðàììíîãî îáåñïå÷åíèÿ è òùàòåëüíîñòè åãî ïðîâåðêè â çàâèñèìîñòè îò åãî óðîâíÿ êðèòè÷íîñòè. Óðîâåíü êðèòè÷íîñòè ÏÎ îïðåäåëÿåòñÿ íà îñíîâå àíàëèçà ñåðüåçíîñòè ïîñëåäñòâèé îòêàçà â ÏÎ. Âñåãî ïðåäóñìîòðåíî ïÿòü óðîâíåé êðèòè÷íîñòè ÏÎ (îò A äî E).

MILS (Multiple Independent Levels of Secutiry) ïðåäñòàâëÿåò ñîáîé ñïåöèàëüíûé ïîäõîä ê ïðîåêòèðîâàíèþ ÎÑ, ïðåïÿòñòâóþùèé ðàñïðîñòðàíåíèþ îøèáîê ïðèêëàäíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ âî âðåìÿ âûïîëíåíèÿ, à òàêæå óïðîùàþùèé âåðèôèêàöèþ ïðîãðàìì çà ñ÷åò ìîäóëüíîñòè ÏÎ. Âñå ïðèëîæåíèÿ ïîìåùàþòñÿ â òàê íàçûâàåìûå ðàçäåëû (partitions). Ðàçäåëû èìåþò âûäåëåííûå ðåñóðñû (îáëàñòü ïàìÿòè, ïðîöåññîðíîå âðåìÿ â òå÷åíèå êàæäîãî öèêëà ñèñòåìû, äîñòóï ê êàíàëàì îáìåíà è ïð). Äîñòóï ê âûäåëåííûì ðåñóðñàì ãàðàíòèðóåòñÿ ÎÑ, ðàáîòàþùåé â ðåæèìå ñóïåðâèçîðà. Òàêèì îáðàçîì, íà îäíîì ïðîöåññîðíîì ìîäóëå ïîä óïðàâëåíèåì îäíîé ÎÑ ìîæåò ðàáîòàòü ïðèêëàäíîå ÏÎ ðàçíîãî óðîâíÿ êðèòè÷íîñòè — åñëè ñáîé ïðîèçîéäåò â ìåíåå êðèòè÷íîì (è, ñîîòâåòñòâåííî, ìåíåå ïðîâåðåííîì) ÏÎ, ýòî íèêàê íå ïîâëèÿåò íà ðàáîòó äðóãèõ ðàçäåëîâ, òàê êàê ïîïûòêè «óçóðïèðîâàòü» ÷óæèå ðåñóðñû áóäóò ïðåñå÷åíû îïåðàöèîííîé ñèñòåìîé. Èäåè MILS ïåðåêëèêàþòñÿ ñ èäåÿìè ÈÌÀ è DO-178B.

Ñòàíäàðò ARINC-653 (Avionics Application Software Standard Interface) ñïåöèôèöèðóåò èíòåðôåéñ ïðèêëàäíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ APEX, ïîääåðæèâàþùèé êîíöåïöèþ ðàçäåëîâ â äóõå MILS. Äàííûé èíòåðôåéñ âêëþ÷àåò ôóíêöèè óïðàâëåíèÿ ðàçäåëàìè, ïðîöåññàìè, ðàçäåëåíèåì âðåìåíè, êîììóíèêàöèÿìè ìåæäó ðàçäåëàìè è âíóòðè ðàçäåëà, ìîíèòîðèíã ñîñòîÿíèÿ ñèñòåìû. Íàäî îòìåòèòü, ÷òî ñòàíäàðò ARINC-653 îïèñûâàåò îáùåïðèçíàííûé ïîäõîä ê ðåàëèçàöèè èäåé MILS äëÿ ÈÌÀ, õîòÿ ìîãóò áûòü è äðóãèå ðåàëèçàöèè. Àâèàöèîííàÿ ÎÑÐÂ, ñîîòâåòñòâóþùàÿ ARINC-653, èìååò ïðåèìóùåñòâà, òàê êàê äàííûé ñòàíäàðò õîðîøî èçâåñòåí è ïîíÿòåí ìåæäóíàðîäíûì ñåðòèôèöèðóþùèì îðãàíàì, ïîýòîìó íà ñèñòåìó, ïîñòðîåííóþ ïî ýòîìó ñòàíäàðòó, ïðîùå ïîëó÷èòü ñåðòèôèêàò ñîîòâåòñòâèÿ DO-178B.

Ñòàíäàðò Reusable Software Components.  ñîîòâåòñòâèè ñ DO-178B ïðîãðàììíîå îáåñïå÷åíèå òîé èëè èíîé ñèñòåìû àâèàöèîííîãî ïðèìåíåíèÿ ïðîõîäèò ïðîöåäóðó ñåðòèôèêàöèè ïîëíîñòüþ, äàæå åñëè îíî èñïîëüçóåò ìîäóëè (êîìïîíåíòû), êîòîðûå óæå áûëè ñåðòèôèöèðîâàíû ðàíåå â ñîñòàâå äðóãîé ñèñòåìû. Îäíîé èç ïîñëåäíèõ èíèöèàòèâ FAA (Ôåäåðàëüíîå àãåíòñòâî ïî ñåðòèôèêàöèè ãðàæäàíñêîé àâèàöèè, ÑØÀ) ÿâëÿåòñÿ îïðåäåëåíèå êðèòåðèåâ âîçìîæíîñòè ìíîãîêðàòíîãî èñïîëüçîâàíèÿ ÏÎ áåç ïîâòîðíîé ñåðòèôèêàöèè. Êîìïîíåíòû, êîòîðûå ìîæíî ïîâòîðíî íå ñåðòèôèöèðîâàòü, íàçûâàþòñÿ RSC (Reusable Software Components). ×òîáû ïîëó÷èòü ñåðòèôèêàò íà RSC, íóæíî çàòðàòèòü áîëüøå óñèëèé, íî çàòåì RSC äàåò ñåðüåçíóþ ýêîíîìèþ.

Ðîññèéñêèå äîêóìåíòû, îïðåäåëÿþùèå òðåáîâàíèÿ ê ÏÎ (è â òîì ÷èñëå ê ÎÑÐÂ):

  • ÃÎÑÒ Ð ÈÑÎ/ÌÝÊ 51904-2002 ("ÏÎ âñòðîåííûõ ñèñòåì. Îáùèå òðåáîâàíèÿ ê ðàçðàáîòêå è äîêóìåíòèðîâàíèþ") — àíàëîã DO-178B äëÿ âîåííîé àâèàöèè;
  • ÊÒ-178À ("Êâàëèôèêàöèîííûå òðåáîâàíèÿ ÷àñòü 178À") — àíàëîã DO-178B äëÿ ãðàæäàíñêîé àâèàöèè;
  • ÃÎÑÒ Ð ÈÑÎ/ÌÝÊ 12207-99 ("Èíôîðìàöèîííàÿ òåõíîëîãèÿ. Ïðîöåññû æèçíåííîãî öèêëà ïðîãðàììíûõ ñðåäñòâ").

Ñðàâíåíèå ÎÑ Ð ïðîâîäèëîñü ïî 13 ïàðàìåòðàì, êîòîðûå ó÷èòûâàþò òåõíè÷åñêèå êðèòåðèè, óäîáñòâî ðàçðàáîòêè è ýêîíîìè÷åñêèå ïàðàìåòðû.

Âðåìåííûå ïàðàìåòðû ÎÑ

Îäíèì èç îñíîâíûõ òðåáîâàíèé ê ÎÑ Ð ÿâëÿåòñÿ ìèíèìàëüíîå âðåìÿ çàäåðæêè îáðàáîòêè òîãî èëè èíîãî ñîáûòèÿ. Íà ïðàêòèêå ýòî îçíà÷àåò, ÷òî äîëæíû áûòü ìàëû ñëåäóþùèå ïàðàìåòðû:

  • âðåìÿ îòêëèêà íà ïðåðûâàíèå — âðåìÿ ìåæäó ôàêòè÷åñêèì âîçíèêíîâåíèåì ïðåðûâàíèÿ è íà÷àëîì îáðàáîòêè ïåðâîé èíñòðóêöèè îáðàáîò÷èêà ïðåðûâàíèÿ;
  • âðåìÿ ïåðåêëþ÷åíèÿ ïîòîêà óïðàâëåíèÿ — âðåìÿ ïåðåêëþ÷åíèÿ ìåæäó äâóìÿ ïîòîêàìè â îäíîì ïðîöåññå;
  • âðåìÿ ïåðåêëþ÷åíèÿ êîíòåêñòà ïðîöåññà (òîëüêî äëÿ ÎÑ, ïîääåðæèâàþùèõ ìîäåëü ïðîöåññîâ) — âðåìÿ ïåðåêëþ÷åíèÿ ìåæäó äâóìÿ ïîòîêàìè óïðàâëåíèÿ, ïðèíàäëåæàùèìè äâóì ðàçëè÷íûì ïðîöåññàì.

Ê ñîæàëåíèþ, îáúåêòèâíî ñðàâíèòü óêàçàííûå ïàðàìåòðû ðàçëè÷íûõ ÎÑ Ð íå ïðîñòî, ïîòîìó ÷òî äàííûå ïàðàìåòðû çàâèñÿò íå òîëüêî îò êà÷åñòâà ÎÑ, íî è îò âîçìîæíîñòåé èñïîëüçóåìîé àïïàðàòíîé ïëàòôîðìû.  èäåàëå, âñå ñðàâíèâàåìûå ÎÑ äîëæíû áûòü óñòàíîâëåíû íà îäíó è òó æå àïïàðàòíóþ ïëàòôîðìó, ïîñëå ÷åãî äîëæíû áûòü ñäåëàíû ñîîòâåòñòâóþùèå èçìåðåíèÿ. Íî äàæå ýòè èçìåðåíèÿ íå äàäóò îáúåêòèâíîãî ðåçóëüòàòà, ïîòîìó ÷òî ðàçëè÷íûå ÎÑ ìîãóò áûòü â áîëüøåé èëè ìåíüøåé ñòåïåíè àäàïòèðîâàíû ê êîíêðåòíîé àïïàðàòóðå.

Äëÿ ñðàâíåíèÿ âðåìåííûõ ïàðàìåòðîâ â äàííîé ñòàòüå èñïîëüçîâàíû ôðàãìåíòèðîâàííûå äàííûå, íàéäåííûå â Ñåòè, êîòîðûå çà÷àñòóþ ïîëó÷åíû ïðè òåñòèðîâàíèè ÎÑ íà ðàçëè÷íîì îáîðóäîâàíèè, ïðè ýòîì íå âñåãäà ïîíÿòåí ñîñòàâ è õàðàêòåð òåñòîâ.

Äîñòàòî÷íî îáúåêòèâíûìè äàííûìè ìîæíî ñ÷èòàòü ðåçóëüòàòû, ïîëó÷åííûå ýêñïåðòàìè æóðíàëà Dedicated System, ïðîâîäèâøèìè òåñòèðîâàíèå è ïðàêòè÷åñêîå ñðàâíåíèå QNX RTOS 6.1, VxWorks AE 1.1 è Windows CE.NET íà x86 ïëàòôîðìå. Õîòÿ íà ñåãîäíÿøíèé ìîìåíò ýòè äàííûå óñòàðåëè, àâòîðàì äàííîé ñòàòüè íå óäàëîñü íàéòè áîëåå ñâåæåãî ìàòåðèàëà.  òàáë. 2 ïðèâåäåíû âûáîðî÷íûå äàííûå î ñðàâíåíèè ïðîèçâîäèòåëüíîñòè QNX Neutrino 6.1, VxWorks AE 1.1.  îò÷åòå Dedicated Systems ïðåäïî÷òåíèå ñ òî÷êè çðåíèÿ áûñòðîäåéñòâèÿ áûëî îòäàíî QNX, ïðè÷åì îòíîøåíèå áàëëîâ áûëî óñòàíîâëåíî êàê 9:5 (QNX:VxWorks), ïîòîìó êàê â ïðîöåññå òåñòèðîâàíèÿ â VxWorks áûëè îáíàðóæåíû äâå îøèáêè, çà èñïðàâëåíèåì êîòîðûõ ïðèøëîñü îáðàùàòüñÿ â ñëóæáó ïîääåðæêè.

 òàáë. 3 ïðèâåäåíû äàííûå î õàðàêòåðèñòèêàõ LynxOS. Ñîñòàâ èñïîëüçîâàâøèõñÿ òåñòîâ íå óêàçàí.  êà÷åñòâå äàííûõ î õàðàêòåðèñòèêàõ LynxOS èíòåðåñíà ÷åòâåðòàÿ êîëîíêà (òåñòèðîâàíèå íà x86-ïëàòôîðìå). Ïî ñðàâíåíèþ ñ VxWorks è QNX, ÎÑ Ð LynxOS ïîêàçûâàåò îãðîìíóþ çàäåðæêó ïðè ðåàêöèè íà ïðåðûâàíèå (áîëåå ÷åì â 5 ðàç). Âðåìÿ ïåðåêëþ÷åíèå êîíòåêñòà (èìååòñÿ â âèäó âðåìÿ ïåðåêëþ÷åíèÿ ìåæäó äâóìÿ ïîòîêàìè â îäíîì ïðîöåññå) îäèíàêîâîå ñ QNX è ìåíüøå ïðèìåðíî â 1,5 ðàçà, ÷åì ó VxWorks.

Ñòàáèëüíîñòü âðåìåííûõ ïàðàìåòðîâ

Ïîìèìî âðåìåííûõ õàðàêòåðèñòèê äëÿ ÎÑ Ð âàæíà òàêæå ñòàáèëüíîñòü ýòèõ õàðàêòåðèñòèê. Èìåííî ýòîò êðèòåðèé âî ìíîãîì îïðåäåëÿåò «æåñòêîñòü» ÎÑ ÐÂ, ò.å. ïðåäñêàçóåìîñòü âðåìåíè îáðàáîòêè äàííûõ, ìîìåíòà âûäà÷è ðåçóëüòàòîâ è ò.ä.

Èñõîäÿ èç äàííûõ æóðíàëà Dedicated System, QNX îïåðåæàåò ïî ýòîìó êðèòåðèþ VxWorks êàê ïî ðàçáðîñó õàðàêòåðèñòèê â ñåðèè îäíîòèïíûõ òåñòîâ (îòíîøåíèå ìàêñèìóìà âðåìåíè ê ñðåäíåìó çíà÷åíèþ ñóùåñòâåííî ìåíüøå), òàê è ñ ðîñòîì íàãðóçêè (âðåìÿ ïåðåêëþ÷åíèÿ ïîòîêà ïðè óâåëè÷åíèè ÷èñëà ïîòîêîâ 2...128 åä. ó QNX âûðîñëî òîëüêî â 1,65 ðàçà, òîãäà êàê ó VxWorks — â 2,24 ðàçà).

Ïî äàííûì, ïîëó÷åííûì â êîìïàíèè ÐÒÑîôò, èçâåñòíî, ÷òî LynxOS èìååò ïðèáëèçèòåëüíî òå æå õàðàêòåðèñòèêè, ÷òî VxWorks.

Óïðàâëåíèå äîñòóïîì ê ðåñóðñàì

Îöåíèì êà÷åñòâî ðàçãðàíè÷åíèÿ äîñòóïà, ïðåäëàãàåìîå òîé èëè èíîé ÎÑ ÐÂ, ê êðèòè÷åñêèì ðåñóðñàì âû÷èñëèòåëüíîé ñèñòåìû, òàêèì êàê ïàìÿòü è ïðîöåññîðíîå âðåìÿ.

Ïåðâûé âîïðîñ, íà êîòîðûé íóæíî íàéòè îòâåò — ïîääåðæèâàåò ëè ÎÑ ìîäåëü ïðîöåññîâ. Ïðîöåññ — ýòî ëîãè÷åñêèé îáúåêò, êîòîðûé âëàäååò îäíèì èëè íåñêîëüêèìè ïîòîêàìè, àññîöèèðîâàííûìè ñ íèìè ðåñóðñàìè è êîíòåêñòîì — ñîäåðæèìûì ðåãèñòðîâ è ñ÷åò÷èêîâ â êàæäûé îòäåëüíûé ìîìåíò âðåìåíè.

Çàäà÷à ïðîöåññîâ ñîñòîèò:

  • â ðàçãðàíè÷åíèè äîñòóïà ê îïåðàòèâíîé ïàìÿòè ìåæäó ðàçëè÷íûìè ïðîãðàììàìè â ïðîöåññå èñïîëíåíèÿ;
  • â ðàçãðàíè÷åíèè îáëàñòåé âèäèìîñòè ãëîáàëüíûõ ïåðåìåííûõ â ìîìåíò êîìïèëÿöèè (êðèòè÷íî, åñëè ïðèêëàäíîå ÏÎ íàïèñàíî íà ÿçûêå Ñè, êîòîðûé íå ïîääåðæèâàåò òàêîå ðàçãðàíè÷åíèå).

Ñåãìåíòèðîâàíèå òàêæå îáåñïå÷èâàåò ðàçäåëåíèå àäðåñíûõ ïðîñòðàíñòâ (â ýòîì ñìûñëå âîçìîæíîñòè ñåãìåíòèðîâàíèÿ è ïðîöåññîâ äóáëèðóþò äðóã äðóãà). Êðîìå òîãî, ñåãìåíòèðîâàíèå îáåñïå÷èâàåò êàæäîìó ñåãìåíòó, ñîäåðæàùåìó îäèí èëè íåñêîëüêî ïðîöåññîâ (èëè ïîòîêîâ, åñëè ÎÑ íå ïîääåðæèâàåò ìîäåëü ïðîöåññîâ), ãàðàíòèðîâàííûé áþäæåò âðåìåíè. Òàêèì îáðàçîì, åñëè âûñîêîïðèîðèòåòíûé ïîòîê çàöèêëèòñÿ è íàðóøèò ðàáîòó ñâîåãî ñåãìåíòà, âñå îñòàëüíûå ñåãìåíòû áóäóò ïîëó÷àòü ïðîöåññîðíîå âðåìÿ â ñîîòâåòñòâèè ñ óñòàíîâêàìè, îïðåäåëåííûìè íà ñòàäèè ïðîåêòèðîâàíèÿ, è ïðîäîëæàòü íîðìàëüíî ôóíêöèîíèðîâàòü.

LynxOS è QNX ïîääåðæèâàþò êàê ìîäåëü ïðîöåññîâ, òàê è ñåãìåíòèðîâàíèå. ÎÑ VxWorks èìååò ìåõàíèçì ñåãìåíòèðîâàíèÿ, íî íå ïîääåðæèâàåò ïðîöåññíóþ ìîäåëü.  öåëîì, ýòî äîïóñòèìî, òàê êàê ñåãìåíòèðîâàíèå îáåñïå÷èâàåò ðàçäåëåíèå àäðåñíûõ ïðîñòðàíñòâ. Íî îòñóòñòâèå ïðîöåññîâ íåñåò íåêîòîðûå íåóäîáñòâà. Îáû÷íî äåëåíèå íà ñåãìåíòû âûïîëíÿåòñÿ èñõîäÿ èç öåëåâîãî ïðåäíàçíà÷åíèÿ ÏÎ è åãî êðèòè÷íîñòè. Íàïðèìåð, íåêîòîðûé ñåãìåíò ìîæåò ñîäåðæàòü ÏÎ óïðàâëåíèÿ ïèëîòàæíî-íàâèãàöèîííûì êîìïëåêñîì, èìåþùåå âûñîêèé óðîâåíü êðèòè÷íîñòè. Íî äàííîå ÏÎ òàêæå ïðåäñòàâëÿåò ñîáîé äîñòàòî÷íî ñëîæíûé êîìïëåêñ, êîòîðûé ëîãè÷íî áûëî áû ðàçäåëèòü íà íåçàâèñèìûå (ïî ïàìÿòè) ìîäóëè. ÎÑ VxWorks òàêóþ âîçìîæíîñòü íå ïðåäîñòàâëÿåò, òî åñòü ñåãìåíò áóäåò ñîñòîÿòü èç ïîòîêîâ ñ îáùåé ïàìÿòüþ, ÷òî óñëîæíÿåò îðãàíèçàöèþ ïàðàëëåëüíîé ðàçðàáîòêè è, â êîíå÷íîì ñ÷åòå, ñíèæàåò íàäåæíîñòü ÏÎ.

Ïîääåðæêà ìóëüòèïðîöåññîðíûõ è ðàñïðåäåëåííûõ ñèñòåì

Ñòîèìîñòü ìíîãîïðîöåññîðíûõ ìîäóëåé â ïîñëåäíåå âðåìÿ ñóùåñòâåííî ñíèçèëàñü, è ïîòîìó îíè ñòàëè âñå ÷àùå ïðèìåíÿòüñÿ âî âñòðîåííûõ ñèñòåìàõ. Ðàçóìååòñÿ, ÎÑ Ð äîëæíà îáåñïå÷èâàòü ïîääåðæêó òàêèõ ïëàò.

Äðóãîå ïåðñïåêòèâíîå íàïðàâëåíèå â ïîñòðîåíèè ÑÀÓ — ýòî ðàñïðåäåëåííûå ñèñòåìû, ãäå ìîäóëè ðàçíåñåíû â ïðîñòðàíñòâå, à êîììóíèêàöèÿ ìåæäó íèìè ïðîèñõîäèò ÷åðåç íåêîòîðóþ ñåòåâóþ ñðåäó. Îïÿòü æå ïðèìåíÿåìàÿ ÎÑ Ð äîëæíà èìåòü óäîáíûå è íàäåæíûå ñðåäñòâà äëÿ îðãàíèçàöèè âçàèìîäåéñòâèÿ ìîäóëåé: ïîääåðæêà ðàçëè÷íûõ ñåòåâûõ ïðîòîêîëîâ, ñðåäñòâà îáåñïå÷åíèÿ ñåòåâîé ïðîçðà÷íîñòè.

ÎÑ ÐÂ QNX ïðåäëàãàåò ïîääåðæêó ìíîãîïðîöåññîðíûõ ïëàò. Äëÿ VxWorks òàêàÿ ïîääåðæêà ïîêà òîëüêî àíîíñèðîâàíà. Àâèàöèîííîé âåðñèè LynxOS ñ ïîääåðæêîé ìíîãîïðîöåññîðíûõ ïëàò ïîêà òîæå íå ñóùåñòâóåò.

 îòíîøåíèè ïîääåðæêè ñåòåâûõ ïðîòîêîëîâ íóæíî îòìåòèòü, ÷òî ÎÑ Ð LynxOS, VxWorks è QNX îáëàäàþò ïðèìåðíî ðàâíûìè (è øèðîêèìè) âîçìîæíîñòÿìè. Äîïîëíèòåëüíûì ïëþñîì ÎÑ Ð QNX ÿâëÿåòñÿ åå ñïåöèàëüíàÿ àðõèòåêòóðà ñåòåâîé ïîäñèñòåìû, îáåñïå÷èâàþùàÿ ñåòåâóþ «ïðîçðà÷íîñòü» ïðèêëàäíûõ ïðîãðàìì: ëþáîé ïðîöåññ ìîæåò âûçâàòü äðóãîé ïðîöåññ íà óäàëåííîì ìîäóëå òàê æå, êàê è ïðîöåññ íà ëîêàëüíîì ìîäóëå.

Ïîääåðæêà ôàéëîâûõ ñèñòåì

Âîçìîæíîñòü õðàíåíèÿ èíôîðìàöèè â âèäå ôàéëîâ ÿâëÿåòñÿ óäîáíîé è òðàäèöèîííîé. È íàîáîðîò, îòñóòñòâèå òàêîé âîçìîæíîñòè ñîçäàåò òðóäíîñòè ïðè õðàíåíèè ðåäêî èçìåíÿåìûõ äàííûõ è ñîçäàíèè ðàñïðåäåëåííûõ ñèñòåì.

 òàáë. 4 ïîêàçàíà ïîääåðæêà ôàéëîâûõ ñèñòåì êàæäîé èç ðàññìàòðèâàåìûõ ÎÑ.

QNX îáëàäàåò íàèáîëåå øèðîêîé ïîääåðæêîé ôàéëîâûõ ñèñòåì. Êðîìå òîãî, åå ôàéëîâàÿ ñèñòåìà íà ôëýø ÿâëÿåòñÿ îòêàçîóñòîé÷èâîé.

Êà÷åñòâî äîêóìåíòàöèè

Êà÷åñòâî äîêóìåíòàöèè ÎÑ Ð LynxOS, VxWorks, QNX äîñòàòî÷íî âûñîêîå. Îäíàêî åñòü è íàðåêàíèÿ ïî ïîâîäó äîêóìåíòàöèè:

  • QNX — îòëè÷íîå îïèñàíèå àðõèòåêòóðû è ïðèíöèïîâ ïîñòðîåíèÿ, íî íåäîñòàòî÷íîå îïèñàíèå èíòåðôåéñà ïðèêëàäíîãî ïðîãðàììèðîâàíèÿ (äàíî îïèñàíèå íå âñåì ïàðàìåòðàì, åñòü íåñîîòâåòñòâèÿ);
  • VxWorks — íåò îáúÿñíåíèÿ ïðèíöèïîâ ðàáîòû è íåäîñòàòî÷íîå îïèñàíèå ñëîæíîãî ïðîöåññà êîíôèãóðèðîâàíèÿ ÎÑ.

Òåì íå ìåíåå, êîìïàíèè ðàáîòàþò íàä êà÷åñòâîì ìàòåðèàëà. Äîêóìåíòàöèÿ íà òåêóùóþ âåðñèþ QNX (6.3.2) ñóùåñòâåííî ðàñøèðåíà, íàëèöî ïåðåðàáîòêà íåêîòîðûõ ÷àñòåé.

Êà÷åñòâî òåõíè÷åñêîé ïîääåðæêè

Ïî êà÷åñòâó îôèöèàëüíîé òåõíè÷åñêîé ïîääåðæêè íåñîìíåííûé ëèäåð — ýòî LynxOS. Êîìïàíèÿ LynuxWorks îáåùàåò äàòü îòâåò íà ëþáîé òåõíè÷åñêèé âîïðîñ â òå÷åíèå 4 ÷àñîâ ñ ìîìåíòà îïóáëèêîâàíèÿ çàïðîñà. LynxOS ðàñïðîñòðàíÿåòñÿ íà òåððèòîðèè Ðîññèè êîìïàíèåé ÐÒÑîôò, èìåþùåé áîëüøîé øòàò ñîòðóäíèêîâ, ñïîñîáíûõ îêàçàòü êâàëèôèöèðîâàííóþ ïîìîùü. Íåäîñòàòêîì LynxOS ÿâëÿåòñÿ òî, ÷òî ÎÑ ïîêà ÷òî íå î÷åíü ðàñïðîñòðàíåíà â Ðîññèè, ñîîòâåòñòâåííî, íåò ñôîðìèðîâàâøåãîñÿ ñîîáùåñòâà ïîëüçîâàòåëåé, è äàæå íåò ðóññêîÿçû÷íîãî ôîðóìà.

Êîìïàíèÿ QSS (ïðîèçâîäèòåëü QNX) òàêæå ïðåäëàãàåò õîðîøåå êà÷åñòâî òåõíè÷åñêîé ïîääåðæêè, íî áûñòðîòà îòâåòà íå ãàðàíòèðóåòñÿ.  îòëè÷èå îò LynxOS ÎÑ Ð QNX èìååò õîðîøî îðãàíèçîâàííîå ñîîáùåñòâî ïîëüçîâàòåëåé êàê çà ðóáåæîì, òàê è â Ðîññèè. Îòâåòû íà áîëüøèíñòâî âîïðîñîâ ìîæíî íàéòè íà ýòèõ ôîðóìàõ. QNX â íàøåé ñòðàíå ðàñïðîñòðàíÿåòñÿ êîìïàíèåé «ÑÂÄ Âñòðàèâàåìûå Ñèñòåìû», ñîòðóäíèêè êîòîðîé ñïîñîáíû îêàçàòü ãðàìîòíóþ òåõïîääåðæêó è âûïîëíèòü ðàáîòû ïî àäàïòàöèè ÎÑ íà ñïåöèôè÷íûå ïðîöåññîðíûå ïëàòû. Êðîìå òîãî, êîìïàíèÿ èìååò ïðÿìûå êîíòàêòû ñ QSS è ìîæåò ïîëó÷èòü êîíñóëüòàöèè ïî ñëîæíûì âîïðîñàì ó ðàçðàáîò÷èêà ÎÑ Ð QNX.

Êîìïàíèÿ WindRiver, ðàçðàáîò÷èê VxWorks, òðàäèöèîííî ïðèäåðæèâàåòñÿ çàêðûòîé òåõíè÷åñêîé ïîëèòèêè, òî åñòü èíôîðìàöèþ î ïðèíöèïàõ ðàáîòû ÎÑ ïîëó÷èòü äîñòàòî÷íî òÿæåëî. Ðóññêîÿçû÷íîãî ôîðóìà ó äàííîé ÎÑ òàêæå íåò. ÎÑ Ð VxWorks ó íàñ â ñòðàíå ðàñïðîñòðàíÿåòñÿ êîìïàíèåé «ÀÂÄ Ñèñòåìñ», êîòîðàÿ â îñíîâíîì çàíèìàåòñÿ ïðîäàæàìè ãîòîâûõ ïðîãðàììíî-àïïàðàòíûõ ðåøåíèé çàðóáåæíîãî ïðîèçâîäñòâà.

Îòêðûòîñòü èñõîäíûõ êîäîâ

Îòêðûòàÿ ÎÑ ÐÂ èìååò ïî êðàéíåé ìåðå òðè ïðåèìóùåñòâà:

  • ðàçðàáîò÷èêè ïðèêëàäíîãî ÏÎ ìîãóò ðàçîáðàòüñÿ â ñëîæíûõ ïðîáëåìàõ áåç ïðèâëå÷åíèÿ ñëóæáû òåõíè÷åñêîé ïîääåðæêè;
  • ïðîùå ñåðòèôèöèðîâàòü (íà îòñóòñòâèå çàêëàäîê è ò.ä.);
  • äèíàìè÷íåå ðàçâèòèå, òàê êàê â êîìïàíèþ-ðàçðàáîò÷èê ÎÑ Ð çà÷àñòóþ ïðèõîäÿò íå òîëüêî çàïðîñû íà èñïðàâëåíèÿ îøèáîê, íî è ïðåäëîæåíèÿ ïî óñòðàíåíèþ îøèáîê, óëó÷øåíèþ ñèñòåìû. Ñîîáùåñòâà ðàçðàáîò÷èêîâ îòêðûòûõ ÎÑ ÐÂ, êàê ïðàâèëî, ðàñòóò ãîðàçäî áûñòðåå, ëó÷øå îðãàíèçîâàíû. Ïîÿâëÿþòñÿ íåçàâèñèìûå ýêñïåðòû, ïîìîãàþùèå ðåøàòü çàäà÷è ñëóæáû òåõíè÷åñêîé ïîääåðæêè è ó÷àñòâóþùèå â ðàçâèòèè, îòëàäêå è òåñòèðîâàíèè ñèñòåìû.

Ñ ñåíòÿáðÿ 2007 ãîäà êîìïàíèÿ QSS îòêðûëà èñõîäíûå êîäû ÿäðà QNX (âêëþ÷àÿ ïàêåò ñåãìåíòèðîâàíèÿ Adaptive Partitioning, ïàêåò âûñîêîé ãîòîâíîñòè High Availability). Íåìíîãèì ïîçæå áûëè îòêðûòû èñõîäíûå êîäû ñåòåâîé ïîäñèñòåìû.  íàñòîÿùåå âðåìÿ íà îôèöèàëüíîì ñàéòå äîñòóïíà äëÿ ñêà÷èâàíèÿ áåòà-âåðñèÿ 6.4.0.

Íàäî îòìåòèòü, ÷òî íà ñåãîäíÿøíèé äåíü íå âñå ìîäóëè QNX îòêðûòû (íàïðèìåð, íåò êîäîâ äëÿ ãðàôè÷åñêîé è ôàéëîâîé ñèñòåì), è ëèöåíçèÿ íàëàãàåò îãðàíè÷åíèå íà èñïîëüçîâàíèå «èñõîäíèêîâ»: òîëüêî äëÿ íåêîììåð÷åñêîãî ïðèìåíåíèÿ. Òåì íå ìåíåå, ïîëüçîâàòåëü QNX ïîëó÷àåò óêàçàííûå âûøå ïðåèìóùåñòâà áåñïëàòíî.

Èñõîäíûå êîäû LynxOS è VxWorks äîñòóïíû â ïðîäàæå. Öåíà íà òàêîé ïðîäóêò äîãîâîðíàÿ.

Èíñòðóìåíòàëüíûå ñðåäñòâà

Íàëè÷èå õîðîøèõ èíñòðóìåíòàëüíûõ ñðåäñòâ âî ìíîãîì îïðåäåëÿåò êà÷åñòâî è ñêîðîñòü ðàçðàáîòêè ïðèêëàäíûõ ïðîãðàìì ïîä òó èëè èíóþ ÎÑ. Íàäî îòìåòèòü, ÷òî LynxOS, VxWorks è QNX â íàñòîÿùåå âðåìÿ ïðåäîñòàâëÿþò õîðîøåãî êà÷åñòâà èíñòðóìåíòàëüíûå ñðåäñòâà, êîòîðûå âêëþ÷àþò èíòåãðèðîâàííóþ ñðåäó ðàçðàáîòêè (ÈÑÐ) è îòëàäêè ïðèêëàäíîãî ÏÎ, ñðåäñòâà ïðîôèëèðîâàíèÿ ïðîãðàìì (äëÿ îáíàðóæåíèÿ «óçêèõ ìåñò» ïî ïðîèçâîäèòåëüíîñòè, ïàìÿòè è ïð.). Ýðãîíîìèêà ÈÑÐ äëÿ äàííûõ ÎÑ Ð â öåëîì íå óñòóïàåò ðàçâèòûì ñðåäñòâàì ðàçðàáîòêè äëÿ îáû÷íûõ ÎÑ (íàïðèìåð, MS Windows).

Ïåðåíîñèìîñòü ïðèêëàäíîãî ÏÎ

Ïåðåíîñèìîñòü ïðèêëàäíîãî ÏÎ îáåñïå÷èâàåò âîçìîæíîñòü åãî èñïîëüçîâàíèÿ ïîä äðóãèå ÎÑ (â òîì ÷èñëå, íå ÎÑ ÐÂ). Ïåðåíîñèìîñòü äàåò îïðåäåëåííóþ íåçàâèñèìîñòü ðàçðàáîò÷èêó ïðèêëàäíîãî ÏÎ îò ÎÑ ÐÂ: â ñëó÷àå íåîáõîäèìîñòè ìîæíî ñ íåâûñîêèìè èçäåðæêàìè ïåðåéòè íà äðóãóþ ÎÑ.

Âîçìîæíîñòü íàïèñàíèÿ ïåðåíîñèìîãî ÏÎ îïðåäåëÿåòñÿ â òåêóùèé ìîìåíò ñîîòâåòñòâèåì ñòàíäàðòó POSIX. Âñå ðàññìàòðèâàåìûå ÎÑ ÐÂ ïîääåðæèâàþò ñòàíäàðò POSIX 1003.1. Ïðåèìóùåñòâî åñòü ó LynxOS — äàííàÿ ÎÑ îáëàäàåò áèíàðíîé ñîâìåñòèìîñòüþ ñ ÎÑ Linux. Òî åñòü ïðèëîæåíèÿ Linux ìîãóò áûòü çàïóùåíû ïîä LynxOS áåç ïåðåêîìïèëèðîâàíèÿ. È, íàîáîðîò, ïðèëîæåíèÿ LynxOS ìîãóò áûòü çàïóùåíû â Linux (âåðñèè 2.4.x c áèáëèîòåêîé ÿçûêà Ñè glibs âåðñèè 2.2.2).

Îñòàëüíûå ÎÑ Ð äëÿ çàïóñêà Linux-ïðèëîæåíèé òðåáóþò èõ ïåðåêîìïèëÿöèè.  ýòîì ñëó÷àå çà÷àñòóþ ïðîöåññ ïåðåíîñà äàæå POSIX-ñîâìåñòèìûõ ïðèëîæåíèé ìîæåò ñòàòü äîñòàòî÷íî òðóäîåìêèì èç-çà ðàçíèöû â ðåàëèçàöèè áèáëèîòåê è êîìïèëÿòîðîâ.

Ïîääåðæêà ïðîöåññîðíûõ àðõèòåêòóð

Îòå÷åñòâåííûå ðàçðàáîò÷èêè ñèñòåì óïðàâëåíèÿ äëÿ àâèàöèè â ñåãîäíÿøíèé ïåðèîä ïåðåõîäà îò âíóòðèôèðìåííûõ ÎÑ ê êîììåð÷åñêèì çà÷àñòóþ îêàçûâàþòñÿ â ñèòóàöèè, êîãäà íóæíî ïîäîáðàòü è àäàïòèðîâàòü ÎÑРê óæå ñóùåñòâóþùåé ïðîöåññîðíîé ïëàòå.  ýòîì ñëó÷àå îäíèì èç êëþ÷åâûõ àðãóìåíòîâ ïðè âûáîðå ÎÑ ÿâëÿåòñÿ ïîääåðæêà àðõèòåêòóðû ïðîöåññîðà, èñïîëüçóåìîãî íà ïëàòå.

Ñîîòâåòñòâèå àâèàöèîííûì ñòàíäàðòàì

 çàðóáåæíîé ïðàêòèêå ÏÎ äëÿ ñèñòåì àâèîíèêè äîëæíî èìåòü ñåðòèôèêàò ñîîòâåòñòâèÿ ñòàíäàðòó DO-178B. Åñëè ÏÎ ðàçíûõ óðîâíåé êðèòè÷íîñòè âûïîëíÿåòñÿ íà îäíîì ïðîöåññîðíîì ìîäóëå, òî ïðèìåíÿåìàÿ ÎÑРäîëæíà ïîääåðæèâàòü êîíöåïöèþ ðàçäåëîâ. (Èíà÷å äîêàçàòü íåðàñïðîñòðàíåíèå îøèáêè ïðàêòè÷åñêè íåâîçìîæíî). Êàê óæå ãîâîðèëîñü, ëó÷øå, åñëè èíòåðôåéñ ïðîãðàììèðîâàíèÿ ÎÑРñîîòâåòñòâóåò ñòàíäàðòó ARINC-653, òàê êàê ñòàíäàðò õîðîøî èçâåñòåí çàðóáåæíûì ñåðòèôèêàöèîííûì îðãàíàì.

LynxOS â ÷àñòè ñîîòâåòñòâèÿ ñòàíäàðòàì ÿâëÿåòñÿ ëèäåðîì. Îíà ïîääåðæèâàåò ARINC-653, ñóùåñòâóåò äîñòàòî÷íî ïðèìåðîâ ñèñòåì, ñåðòèôèöèðîâàííûõ ïî DO-178B, ïîñòðîåííûõ íà åå îñíîâå. Êëþ÷åâûì ìîìåíòîì ÿâëÿåòñÿ òî, ÷òî êîìïàíèÿ LynuxWorks ïðåäëàãàåò íàáîð RSC (ïðàâäà, àâòîðàì ñòàòüè íè÷åãî íå èçâåñòíî î öåíå).

VxWorks ñîîòâåòñòâóåò ñòàíäàðòó ARINC-653, è ñèñòåìû, ïîñòðîåííûå íà åå îñíîâå, ìîãóò áûòü ñåðòèôèöèðîâàíû ïî DO-178B (ñóùåñòâóåò áîëüøîå ÷èñëî ïðèìåðîâ).

QNX íå ñîîòâåòñòâóåò ARINC-653, è ïîêà íå ñóùåñòâóåò ñèñòåì íà èõ îñíîâå, ñåðòèôèöèðîâàííûõ ïî DO-178B.

Íàäî îòìåòèòü, ÷òî QNX-ñèñòåìû ïðèíöèïèàëüíî ìîãóò èñïîëüçîâàòüñÿ äëÿ ïîñòðîåíèÿ ÈÌÀ, ïîòîìó ÷òî QNX ïîääåðæèâàåò ñâîé ìåòîä îáåñïå÷åíèÿ êîíöåïöèè ðàçäåëîâ, êîòîðûé ÿâëÿåòñÿ âåñüìà õîðîøåé àëüòåðíàòèâîé ARINC-653 è, êðîìå òîãî, ïîçâîëÿåò ýêîíîìèòü ïðîöåññîðíîå âðåìÿ.

 ÷àñòè àíàëîãè÷íûõ ðîññèéñêèõ ñòàíäàðòîâ äëÿ âîåííîé àâèàöèè (ÃÎÑÒ Ð ÈÑÎ/ÌÝÊ 51904-2002) íåò åùå íè îäíîãî ïðèìåðà ñåðòèôèöèðîâàííîé ñèñòåìû, õîòÿ ïðèíöèïèàëüíî íà îñíîâå ëþáîé èç ðàññìàòðèâàåìûõ ÎÑ ìîæíî òàêóþ ñèñòåìó ðàçðàáîòàòü. Äëÿ ÎÑ Ð QNX â íàñòîÿùåå âðåìÿ âåäåòñÿ ðàáîòà ïî ïîäãîòîâêå îñíîâíûõ ìîäóëåé ÎÑ ê ñåðòèôèêàöèè.

Ðàçâèòîñòü ñèñòåìû ïîäãîòîâêè ñïåöèàëèñòîâ

Áûñòðîòà è êà÷åñòâî îáó÷åíèÿ ïåðñîíàëà, ðàáîòàþùåãî ñ ÎÑ Ð è ðàçëè÷íûìè èíñòðóìåíòàðèÿìè ïî ðàçðàáîòêå è îòëàäêå ÏÎ íàïðÿìóþ ñâÿçàíî ñî ñêîðîñòüþ ðàçðàáîòêè ÏÎ è åãî êà÷åñòâîì. Âåäóùèå êîìïàíèè â îáëàñòè âñòðîåííîãî è ñèñòåìíîãî ÏÎ, òàêèå êàê WindRiver, LynuxWorks, QSS, ïðîâîäÿò øèðîêîìàñøòàáíóþ ïðîãðàììó êóðñîâ è òðåíèíãîâ ïî èçó÷åíèþ èñïîëüçîâàíèÿ ïðîäóêòîâ êîìïàíèè, â òîì ÷èñëå è ÎÑ ÐÂ.

Ðåçóëüòàòû ñðàâíåíèÿ

ÎÑРQNX Neutrino ÿâëÿåòñÿ íàèáîëåå ñîâåðøåííîé ÎÑ ñ òåõíè÷åñêîé òî÷êè çðåíèÿ, ðàñïîëàãàåò õîðîøèì íàáîðîì èíñòðóìåíòàëüíûõ ñðåäñòâ, èìååò îòíîñèòåëüíî íåâûñîêóþ öåíó. Ìèêðîÿäåðíàÿ àðõèòåêòóðà îáåñïå÷èâàåò âûñîêóþ íàäåæíîñòü è ìîäóëüíîñòü ðàçðàáàòûâàåìûõ ñèñòåì. Äîïîëíèòåëüíûì ïëþñîì ÿâëÿåòñÿ îòêðûòîñòü èñõîäíûõ êîäîâ. Íî åñòü è «ëîæêà äåãòÿ»: â íàñòîÿùåå âðåìÿ QNX ïðàêòè÷åñêè íèãäå íå èñïîëüçóåòñÿ â àâèàöèè, è ïî ýòîìó ïàðàìåòðó äàííàÿ ÎÑ ïðîèãðûâàåò êîíêóðåíòàì (LynxOS è VxWorks). Äîïîëíèòåëüíûé ìèíóñ QNX: íåñîîòâåòñòâèå ñòàíäàðòó ARINC-653.

Íàäî îòìåòèòü, ÷òî ïðèíöèïèàëüíî QNX Neutrino èìååò âñå íåîáõîäèìûå ìåõàíèçìû äëÿ ðàáîòû â ñèñòåìàõ àâèîíèêè. Êðîìå òîãî, íàäåæíîñòü è âûñîêàÿ ãîòîâíîñòü ñèñòåì íà áàçå QNX äîêàçàíà â äðóãèõ îòðàñëÿõ, â êîòîðûõ öåíà îøèáêè äàæå âûøå, ÷åì â àâèàöèè (óïðàâëåíèå ÿäåðíûì ðåàêòîðîì).

Ðàáîòà ïî ïîäãîòîâêå ê ñåðòèôèêàöèè QNX Neutrino ïî òðåáîâàíèÿì îòå÷åñòâåííûõ àâèàöèîííûõ ñòàíäàðòîâ â íàñòîÿùåå âðåìÿ âåäåòñÿ êîìïàíèåé SWD Software.

ÎÑРLynxOS-178, íàïðîòèâ, èìååò âñå íåîáõîäèìûå ñåðòèôèêàòû çà ðóáåæîì, õîòÿ ïî ìíîãèì äðóãèì êðèòåðèÿì âûãëÿäèò ìåíåå ïðåäïî÷òèòåëüíî, ÷åì QNX Neutrino. Îòìåòèì, ÷òî äëÿ ïðèìåíåíèÿ â ðîññèéñêîé àâèàöèîííîé ïðîìûøëåííîñòè ÎÑРLynxOS-178 òàêæå äîëæíà áûòü ñåðòèôèöèðîâàíà ïî îòå÷åñòâåííûì ÃÎÑÒ.

ÎÑ VxWorks èìååò äàâíþþ èñòîðèþ ïðèìåíåíèÿ â îòâåòñòâåííûõ ïðèëîæåíèÿõ çà ðóáåæîì. Òåì íå ìåíåå, íàø àíàëèç ïîêàçûâàåò, ÷òî îíà âûãëÿäèò ìåíåå ïðåäïî÷òèòåëüíî äâóõ ïåðâûõ ÎÑ ïî ìíîãèì êðèòåðèÿì. Êðîìå òîãî, àâòîðèòåò VxWorks ïîäðûâàåò ñòðàòåãèÿ çàêðûòîé ðàçðàáîòêè.

Ýêñïåðòíàÿ ãðóïïà / R&D.CNews

Ëó÷øèå ðîóòåðû ñ Wi-Fi 6: õèòû ïðîäàæ

Êîììåíòàðèè