оглавление   мобильные ОС   Системное ПО   ОС Windows   к экономической информатике   ТПОИ  

Операционные системы вычислительных машин

Операционная система реального времени QNX

Общее понятие о QNX

ОСРВ QNX это не клон или дистрибутив Linux или ответвление какой-то другой UNIX-подобной системы. QNX самостоятельная UNIX-подобная операционная система реального времени, основанная на микроядре и передаче сообщений. Современные версии QNX имеют поддержку стандартов POSIX (и сертифицированны по ним). QNX - POSIX-совместимая операционная система реального времени, предназначенная преимущественно для встраиваемых систем. Считается одной из лучших реализаций концепции микроядерных операционных систем.

Как микроядерная операционная система, QNX основана на идее работы основной части своих компонентов, как небольших задач, называемых сервисами. Это отличает её от традиционных монолитных ядер, в которых ядро операционной системы - одна большая программа, состоящая из большого количества <частей>, каждая со своими особенностями. Использование микроядра в QNX позволяет пользователям (разработчикам) отключить любую ненужную им функциональность, не изменяя ядро. Для этого можно просто не запускать определённый процесс.

Система достаточно небольшая, чтобы в минимальной комплектации уместиться на одну дискету, вместе с этим она считается очень быстрой и должным образом <законченной> (практически не содержащей ошибок).

QNX Neutrino, выпущенная в 2001 году, перенесена на многие платформы, и сейчас способна работать практически на любом современном процессоре, используемом на рынке встраиваемых систем. Среди этих платформ присутствуют семейства x86, MIPS, PowerPC, а также специализированные семейства процессоров, такие, как SH-4, ARM, StrongARM и xScale.

Система платная, при этом для некоммерческого использования и для обучения она предлагается бесплатно в течение 30 дней.

Пожалуй, сейчас самая интересная версия QNX для ознакомления это QNX6. Все новые проекты преимущественно строятся именно на QNX6, а сама система поддерживает много современных и популярных технологий. Помимо этого, для QNX4 не существует пробных или некоммерческих лицензий и сама система уже не развивается, а только поддерживается производителем (выпускаются обновления драйверов и исправления ошибок). Дальше я буду писать именно о QNX6, если прямо не указано иное.

Области применения QNX

QNX это в первую очередь операционная система для построения встраиваемых систем. Но одной из основных особенностей QNX является модульность и, как следствие, масштабируемость. Благодаря этому QNX может применяться и в миниатюрных контроллерах, и в настольных компьютерах. А прозрачная сеть QNX позволяет строить производительные сетевые кластеры.

Обычно ОСРВ QNX применяется там, где требуется высокая надёжность системы: медицинская техника, военная техника и вооружение, нефтегазовая и металлургическая промышленность и т.д. В конце прошлого десятилетия QNX стал развиваться в сторону поддержки мультимедиа технологий, что способствовало появлению проекта QNX Car, а также планшетного ПК BlackBerry PlayBook.

История QNX

В 1980 году студенты канадского Университета Ватерлоо Гордон Белл и Дэн Додж закончили изучение базового курса по разработке операционных систем, в ходе которого они создали основу ядра, способного работать в реальном времени. Разработчики были убеждены, что в их продукте была коммерческая потребность, и переехали в город Каната в провинции Онтарио (город высоких технологий, иногда это место называют северной Кремниевой долиной Канады) и основали компанию Quantum Software Systems. В 1982 году была выпущена первая версия QNX, работающая на платформе Intel 8088.

Одно из первых применений QNX, получивших широкое распространение, не относилось к встраиваемым системам - она была выбрана для собственного компьютерного проекта Министерства образования Онтарио, Unisys ICON. В те годы QNX использовалась в основном только для <больших> проектов, так как ядро, имеющее размер 44 килобайта, было слишком большим, чтобы работать на однокристальных чипах того времени. В середине 1980-х годов была выпущена QNX2. Благодаря своей надёжности, система имела завидную репутацию и получила широкое распространение для управления промышленными машинами. QNX2 и сейчас иногда применяется в ответственных системах.

В середине 1990-х в Quantum поняли, что на рынке быстро завоёвывает популярность POSIX, и решили переписать ядро, чтобы оно было более совместимым на низком уровне. Так появилась QNX4. Она была доступна со встраиваемой графической подсистемой, названной Photon microGUI, и портированной под QNX версией X Window System. Перенесение программ в QNX4 из операционных систем, основанных на Unix, стало намного проще, также были убраны многие из <причуд> более ранних версий. Также, в начале 1990-х компания была переименована в QNX Software Systems (QSS), чтобы избежать путаницы с другими компаниями, в первую очередь с производителем жёстких дисков, имеющим такое же имя.

В конце 1990-х было решено создать операционную систему, соответствующую свежей редакции POSIX и в максимальной степени совместимую с NetBSD и Linux, в то же время сохранив предсказуемое поведение и микроядерную архитектуру. Результатом этих разработок стала QNX Neutrino, выпущенная в 2001 году. Эта версия поставляется вместе с QNX Momentics Tool Suite, интегрированной средой разработки (IDE), основанной на Eclipse, различными утилитами GNU и программным обеспечением, ориентированным на Интернет: веб-браузерами Voyager и Mozilla, а также веб-сервером. В отличие от предшествующих версий, работавших только в PC-совместимых архитектурах, QNX6 легко адаптируется практически к любой аппаратной конфигурации. Кроме того, особое внимание было уделено проработке архитектуры с тем, чтобы её можно было эффективно масштабировать: как <вверх> (добавляя новые сервисы и расширяя функциональность), так и <вниз> (урезая функциональность, чтобы <втиснуться> в ограниченные ресурсы). Иными словами, QNX6 можно установить там, где QNX4 не уместилась бы. Также, в QNX6 все драйверы были приведены к единой модели и все интерфейсы стали открытыми.

27 октября 2004 года компания QSS была куплена международной корпорацией Harman, активно работающей на рынке мультимедийных устройств и систем автомобильной электроники, но далекой от разработки ОС реального времени. При этом Harman сохранила полную автономию компании QSS, а генеральный директор компании QSS Дэн Додж одновременно занял пост вице-президента корпорации Harman по информационным технологиям.

После 2004 года интерес в мире как к QNX, так и к конкурирующим продуктам, начал угасать. QNX сохранила популярность в основном в Японии, Германии, России и, в последнее время, в Китае благодаря активному развитию рынка автомобильной электроники и интегрированных систем управления производством.

Осенью 2007 года компания QNX Software Systems приступила к поэтапному открытию исходного кода QNX Neutrino на условиях лицензии гибридного типа в рамках сообщества Foundry27. Эта лицензия позволяет энтузиастам бесплатно получать доступ не только к исходным текстам операционной системы, но и к инструментальным средствам. При этом для коммерческого использования QNX Neutrino по-прежнему необходимо приобретать соответствующие лицензии. Кроме того, лицензия QNX Neutrino прямо запрещает проведение сертификаций продуктов, производных от исходного кода QNX Neutrino, без письменного разрешения компании QSS.

В сентябре 2009 года на портале Foundry27 был создан проект, предназначенный для сопровождения QNX4 в публичной форме.

9 апреля 2010 года канадская компания Research In Motion, владеющая брендом BlackBerry, заключила соглашение о выкупе у компании Harman International подразделения, занимающегося разработкой QNX. В этот же день на сайте Foundry27, появилось объявление, что доступ к исходным кодам QNX для широкой общественности с этого момента ограничен.

27 сентября 2010 года на конференции BlackBerry DEVCON-2010 был представлен планшетный компьютер BlackBerry PlayBook c BlackBerry Tablet OS на основе QNX Neutrino.

С тех пор, как вышла первая версия QNX, утекло достаточно много времени и поколения QNX сменяли друг друга: QNX2, QNX4 и, наконец, QNX 6 (или QNX Neutrino). Старичок QNX2 и сейчас ещё используется, хотя его расцвет пришёлся на 80-е годы прошлого столетия. Надёжная и более современная ОСРВ QNX4 могла конкурировать на десктопе с Windows в середине 90-х (на скриншоте ниже экран русифицированной версии QNX4):

QNX 4.25 (КПДА.00002-01). Файловый менеджер.

В конце 90-х стала развиваться новая ветка QNX - QNX6 или QNX Neutrino. Это современная версия ОСРВ, которая вышла в самом начале 2000-х и привнесла много нового в QNX: поддержку отличных от x86 аппаратных архитектур (MIPS, PowerPC, ARM, SH4), поддержку многопроцессорности, поддержку разделяемых библиотек и т.д. Были переработаны подсистемы ОСРВ, например, графическая система Photon и сетевая подсистема. К слову, теперь существует возможность достаточно простого портирования сетевых драйверов NetBSD в QNX6.

QNX - компания легендарная и во многом загадочная, как, впрочем, и сама система. Загадочная, потому что продукция этой компании, операционная система QNX, использовалась и используется в самых критических и стратегических областях, таких как аэрокосмическая промышленность, энергетика, в том числе и ядерная, а также (насколько об этом можно судить) в военных разработках. Легендарной же QNX можно назвать хотя бы по той простой причине, что в течение двадцати лет у этой системы реального времени нет и никогда не было сколько-нибудь значительного конкурента. Все эти встроенные Linux и DOS, не говоря о Windows, даже и не приближались к лидеру в плане надежности кода и устойчивости интерфейсов.

Причина ясна - QNX, как операционная среда, является продуктом "вертикального рынка", когда вся технология снизу доверху, от аппаратного обеспечения до прикладных приложений, контролировалась одной компанией. Тщательное планирование и подконтрольная реализация - и в результате QNX представляет собой один из самых надежных, оптимизированных и отлаженных фрагментов кода из всех когда-либо созданных.

Сегодня QNX включилась в "перестройку" и в порядке конверсии открыла доступ к своей платформе, в том числе и для вчерашних "потенциальных противников". В числе "конверсионных" направлений - встраивание операционной системы QNX в сетевое оборудование, медицинские приборы, автомобильную электронику, электронные киоски, персональные организаторы, телефонные аппараты и разнообразную бытовую технику, типа стиральных машин и интеллектуальных холодильников. Совершенно новыми эти решения назвать нельзя, новы, скорее, масштабы распространения и атмосфера повышенной открытости.

В общем, типичный переход на "гражданку", и это переход означает выход на массовый рынок, открытую конкуренцию, множество новых клиентов различного "достоинства". Для успешной работы в таких условиях не последнюю роль играет создание мирового сообщества разработчиков, поощрение разработки приложений на основе QNX - поскольку "продавать" операционку конечным пользователям будут именно приложения.

QNX Neutrino. "Крепкий орешек" v.6.2.1

Долгие годы QNX была системой стратегического значения, не предназначавшейся не только для экспорта, но даже и для того, чтобы быть темой для пресс-релизов. Считалось, что "все, кому нужно, знают все, что им нужно". Но рынок, даже для критических систем, существует, и, пока вы расслабляетесь, конкуренты не оставляют попыток занять ваше место. Поэтому, а также по причине упомянутой конверсии, QNX стала выходить из тени - и в результате код и среда разработки стали доступны для обозрения мировому сообществу.

Официально QNX называется RTOS, Run Time Operating System. В основе QNX, как и раньше, лежит компактное и стабильное настоящее микроядро. Поскольку система рассчитана на 100-процентно бесперебойную работу, то архитектура ядра и окружения предполагает динамическую конфигурацию - установка и удаление драйверов, сетевых протоколов, файловых систем, оконных интерфейсов и т. п происходит в режиме "hot plug", без прекращения работы. Все перечисленные компоненты работают в отдельных адресных пространствах, без типичных для других систем "оптимизаций" по заносу подключаемых компонент в монолитное или составное ядро. Как следствие - QNX умеет восстанавливать себя практически после любого программного сбоя, любой компонент может быть "признан недействительным" и повторно запущен. Существуют точки восстановления, "неразрушающей перезагрузки", после которой система блокирует участки кода, которые вызвали сбой (исключение), и продолжает работу без потери состояния, очистки памяти и инициализации процессора.

Истинное микроядро

Что включает в себя микроядро? Предельно ограниченный набор функций - девизом разработчиков явно было "что мы еще можем оттуда убрать", а не "что мы еще можем туда вставить". Оставшиеся сервисы: управление потоками выполнения, взаимодействие потоков (IPC), примитивы синхронизации. Все остальное, включая драйверы, сетевые протоколы и приложения любого уровня, работает как отдельные процессы, сообщаясь с ядром с помощью синхронных сообщений.

Сообщения передаются через "шину сообщений", по которой проходят все сигналы по подключению и отключению программных компонент "на лету". Следствие из общей шины сообщений - это экстраполяция локального IPC на процессорные кластеры. Если одно ваше приложение вызывает другое через системный вызов (а иных возможностей фактически и нет), то IPC прозрачно транслируется на другой процессор - и в результате приложения общаются тоже прозрачно. Применение кластерного механизма - доступ к ресурсам другого процессора, такого как файловые системы, устройства или сетевые подключения, без включения сетевых протоколов (кроме встроенного в ядро протокола Qnet). На основе такого доступа можно строить экстремально "тонкие" клиенты, все ресурсы получающие по сети. Протокол Qnet будет осуществлять маршрутизацию и баланс сетевого трафика - прозрачно для приложений. Сам Qnet работает практически через любую среду, например Ethernet или Internet (конечно, такой IPC будет крайне зависимым от среды).

Помимо процессорных кластеров, QNX поддерживает также и SMP для отдельных потоков - естественно, что приложение должно быть спроектировано для многопоточной среды, чтобы получить выгоду от работы на нескольких процессорах. Использование SMP можно комбинировать с Qnet для построения кластеров как одно-, так и много- процессорных систем - перекомпиляции приложений не потребуется.

Подальше от спутников, поближе к "чайникам"

Перечисленные выше возможности QNX - это, так сказать, "родные" и изначально критичные для системы характеристики. Но, вместе с тем, разработчикам было не чуждо стремление приблизить систему к разработчику приложений, сделать среду QNX популярной и коммерчески состоятельной на новых рынках бытовой техники.

Для этого был создан несколько аскетический, но вполне приятный и самодостаточный интерфейс пользователя - Photon MicroGUI. Он предоставляет все основные примитивы графической оконной системы: окна, кнопки, меню и так далее. Позднее появление этой оболочки сыграло положительную роль - в нее изначально были заложены современные идеи, так сказать "символы" XXI века: полная поддержка Unicode, "плугабельно-скинабельный" интерфейс (то есть как внешний вид, так и функциональность штатно могут быть изменены во время работы), встроенный интерфейс с Java (Java получает отдельные окна в качестве своего viewpoint).

Совместимость? Без проблем

Первоначально QNX 6 задумывалась как POSIX-совместимая система - POSIX API был реализован на самом раннем этапе, так что нет никакой "библиотеки POSIX-совместимости" или чего-то подобного. Если вы привыкли к программированию в Unix или Linux, можете продолжать в том же духе и под QNX, проблем не возникнет. Помимо прочего, "родной" POSIX занимает меньше места в памяти и быстрее работает.

Среда разработки - плацдарм атаки на TTM

Что сегодня особенно важно на рынке ПО - это сокращение времени выхода на рынок (TTM, Time To Market). Для быстрого создания новых приложений необходима "дружественная" среда разработки приложений. Пренебрежение этим фактом делает продвижение среды или технологии весьма проблематичным. Например, отсутствие (или недостаток) комфортабельных условий для разработки сдерживает разработку под Plan9 - хотя с технической стороны эта система дает фору многим другим "исторически сложившимся" системам.

Другие необходимые компоненты для привлечения разработчиков - достоверная и актуальная свободно распространяемая документация и поддержка сетевых ресурсов (конференций) для разработчиков.

Eclipse - пришелец из открытых систем

Известно несколько попыток создать "открытую" среду разработки. Это вполне естественно, если сложить три составляющие:

Одним из самых перспективных кандидатов среди "контрибьюшинов" в сфере разработки ПО был и остается Eclipse - IDE-среда разработки, созданная на базе оболочки Websphere Studio Workbench компании IBM. Eclipse написан на Java - таким образом, проблема переносимости и универсальности этой среды решена изначально. Модульная архитектура Eclipse позволяет разработчикам и потребителям этой технологии свободно модифицировать, встраивать и добавлять возможности без перекомпиляции всего кода, адаптируя возможности Eclipse под свои нужды.

Кросс-разработка? Un Momentics

Мудрым решением, с точки зрения разработчиков, стало использование Eclipse в качестве новой среды для разработки под QNX. "Мод" получил название Momentics и был полностью интегрирован в поставку "QNX для разработчиков" - загружаемый "диск разработчика" включает все компоненты среды разработки. Существует как коммерческая его версия, так и версия для частного и ознакомительного использования. Последняя отличается более скромным набором поддерживаемых платформ.

Основные особенности Momentics, унаследованные от Eclipse, это возможность подключать модули для различных целевых процессоров (x86, MIPS, PowerPC, ARM, StrongARM, XScale, SH-4), различных языков программирования (C, C++, Embedded C++, Java) и различных платформ разработчика (Windows, Solaris или в собственном режиме под QNX Neutrino). Помимо прочего, Momentics располагает согласованным под всеми платформами интерфейсом, построенным по принципу "передачи токена внимания" (то есть нужные инструменты и окна всплывают по мере необходимости).

Хотя набор возможностей Momentics может показаться аскетическим, по мере работы вы обнаружите, что под простым интерфейсом скрыто гораздо больше, чем кажется на первый взгляд. В частности, реализованы QNX-специфические Wizards, сквозной поиск теста в проекте (типа Find in Files), управление проектами и ставший в открытых системах стандартом де-факто механизм групповой разработки и контроля версий CVS.

Все это позволяет работать на очень профессиональном уровне: автоматически генерировать проекты, откатывать файлы и целые проекты целиком, исследовать системные состояния потоков и счетчиков, блокировки (особенно важный параметр для RTOS!), очереди сообщений.

Особое отличие среды Momentics (как, впрочем, и Eclipse или Sun ONE Studio) - это немодальная отладка. То есть вы можете выполнять один или несколько фрагментов кода, причем они могут выполняться на разных "целевых" платформах и быть написанными на разных языках. Дополнительные опции - подключение к уже запущенному процессу и анализ дампа "свалившегося" процесса. Естественно, поддерживаются все типы отладки: точки останова, пошаговое прохождение, просмотр стека и переменных.

Визуальные возможности - такие как список "ToDo", формируемый на основе возникших ошибок компиляции, подсказки при наведении курсора на переменные, сохранение рабочей области и прочие "радости разработчика" - будут хорошо знакомы вам по другим известным IDE. Кроме того, в наличии все средства редактора: раскраска, автоотступы, отображение структуры проекта (файлов, классов, модулей), автодополнение ввода и т.д.

Помимо основных средств кроссплатформенной компиляции, Momentics снабжен несколькими инструментами, специфичных для отладки встроенных систем. Уникальный инструмент - сборщик загрузочных образов, собирающий все необходимые библиотеки и файлы вашего проекта для записи на загрузочный CD или для прожигания на ROM-диск. При этом отслеживаются зависимости библиотек: все нужные библиотеки будут включены, все ненужные функции из них будут удалены - это особенно важно, если объем памяти целевой платформы ограничен.

Для кластерных систем незаменим навигатор по удаленным станциям, в том числе по реальным, подключенным по сети, или виртуальным бездисковым станциям, работающим в режиме эмуляции. Инструмент позволяет изучать удаленные системы (например, просматривать запущенные процессы и занятые вычислительные ресурсы), что тоже крайне важно, поскольку встроенные системы зачастую не имеют пользовательского интерфейса - и локальная отладка приложений на них невозможна.

exit (0);

Конечно, "конверсионные" разработки (в том числе отечественные) внесут неизбежный элемент хаоса и могут снизить надежность "в среднем" QNX-систем. Но, по крайней мере, можно надеяться, что, опираясь на надежный фундамент QNX, новые приложения заранее получают преимущество, уходя в отрыв от конкурентов, строящих свои критические системы "на песке".

QNX и Virtual PC

Как-то в статье о VMWare (К+П, № 3/2003) я допустил ошибку - сказал, что QNX работает в этой среде, за что получил замечание от внимательного читателя. Совершенно верно: QNX не работает под VMWare, он работает под Virtual PC - имейте это в виду, если это для вас важно.

Внимание! Хотя QNX способна работать на самых непритязательных "камнях", под VPC она почему-то очень любит "поедать" такты вашего процессора. VPC по определению не может получить больше 50% среднестатистической мощности в фоновом режиме - но в режиме переднего плана, даже без фокуса ввода, претендует на все 100%. Так что, запуская QNX под Virtual PC, не стоит уводить VPC в фон и параллельно играть в игры, воспроизводить MP3, смотреть кинофильмы или запускать архиватор - в противном случае вы рискуете повесить "вычислители" в QNX, в частности менеджер пакетов, интенсивно использующий ресурсы процессора для разархивации.

QNX в России

Если вы думаете, что все описанное - далеко и недоступно, вы ошибаетесь. Система QNX активно продвигается на просторах СНГ и, в частности, в России. Интересы QNX на всем постсоветском пространстве с 1996-го года представляет компания SWD Software Ltd. Эта же компания проводит ежегодную конференцию "QNX-Россия".

QNX и базы данных

Одним из самых критических приложений для разработчика является система управления базами данных, RDBS. Поэтому нелишним будет знать, что QNX изначально поддерживает RDBMS Empress (производимую одноименной компанией - Empress Software). Эта RDBMS изначально создавалась для QNX - и, следовательно, была оптимизирована для встроенных приложений и ограниченных ресурсов. Тем не менее, система поддерживает методы доступа SQL, ODBC и JBDC и обладает всеми признаками "взрослых" СУБД.

Состав QNX6


У некоторых новых пользователей QNX (наверное не таких продвинутых, как участники Хабрахабр) может вызвать недоумение состав и компоненты QNX6. Постараюсь предотвратить путаницу, которая может возникнуть в дальнейшем. За те десять лет, что QNX6 доступен пользователям, применялись различные варианты поставки QNX. Сейчас используется упрощённая и наиболее удачная (на мой взгляд) схема поставки, и QNX 6.5.0 состоит из следующих двух основных компонентов:

Надо отметить, что QNX SDP доступен для Windows и Linux платформ. Официально поддерживаются только несколько дистрибутивов Linux, но на практике требуется не так и много, по большему счёту, только современная Java. Я лично разрабатываю под QNX в инструментальной системе на базе ArchLinux 64-бит.

На всякий случай, уточню, что операционной системой является QNX Neutrino, а QNX SDP это средства кроссплатформенной разработки для QNX Neutrino.

ПО для QNX Neutrino

В дистрибутив QNX6 входят помимо микроядра и драйверов ряд консольных утилит, как специфичных для QNX, так и общих для всех UNIX-подобных систем. Помимо этого присутствует графическая подсистема на базе Photon 2.0. Это самостоятельная графическая среда, которая не совместима ни с Windows, ни с X-Window. Однако, существует системный сервис XPhoton, который позволяет запускать графические приложения использующие X-протокол.

Для QNX6 доступны и другие графические среды, которые основаны на технологиях Adobe Flash Lite 3 (доступен отдельно) или Qt/Embedded (на данный момент в Foundry27 доступна версия 4.7.1).

Помимо всего прочего QNX поддерживает систему управления пакетами pkgsrc, в которой доступно большое количество ПО с открытым исходным кодом как в виде собранных бинарных пакетов, так и в виде скриптов для сборки.

QNX6 поддерживает спецификации POSIX, а значит не должно составить большого труда собрать в QNX грамотно написанный код на языке C. Что, кстати, я делал неоднократно.

Типы лицензий QNX6

QNX это коммерческая операционная система и для установки понадобится лицензия. Существуют различные виды лицензий QNX6:

Понятное дело, что некоммерческая лицензия без ограничения срока действия наиболее интересный вариант знакомства с ОСРВ QNX6.

Регистрация аккаунта myQNX

Для доступа ко многим разделам сайта qnx.com и сообществу Foundry27 требуется регистрация. Регистрация простая и не занимает много времени. Для регистрации надо зайти на сайт www.qnx.com и перейти по ссылке Login, расположенной в верхнем правом углу. После этого следует выбрать пункт New member? после чего откроется форма регистрации в нижней части экрана. Теперь осталось указать e-mail, ввести и подтвердить пароль и нажать кнопку Create Account. Для окончания регистрации понадобится заполнить небольшую анкету и получить код подтверждения по электронной почте, который необходимо указать в форме на следующей странице. На этом регистрация заканчивается, теперь можно скачать дистрибутив QNX.

Регистрация некоммерческой лицензии

Переходим на страницу Non-commercial developers. На первом шаге предлагают скачать QNX SDP под ту инструментальную платформу, в которой планируется вести разработку. Сейчас этот шаг можно пропустить и сразу перейти к шагу два (ниже). Надо отметить, что Вы согласны с лицензионным соглашением (если Вы действительно согласны), проверить, что указанные данные верны, и нажать кнопку Submit. После этого лицензия будет выслана на указанный адрес электронной почты.

Если письмо с лицензионным ключом будет утеряно, то его всегда можно будет посмотреть в профиле на qnx.com.

оглавление   мобильные ОС   Системное ПО   ОС Windows   к экономической информатике   ТПОИ  

Знаете ли Вы, что только в 1990-х доплеровские измерения радиотелескопами показали скорость Маринова для CMB (космического микроволнового излучения), которую он открыл в 1974. Естественно, о Маринове никто не хотел вспоминать. Подробнее читайте в FAQ по эфирной физике.

Bourabai Research Institution home page

Боровское исследовательское учреждение - Bourabai Research Bourabai Research Institution