Компьютерра PDA N76 (27.11.2010-03.12.2010)
Шрифт:
Для сравнения привожу скриншоты, полученные при запуске реальной системы Chromium OS версии Chrome_OS.i686-0.9.570. На рис. 1 и 2 показаны окна входа в систему, на рис. 3 выбор нужного сервиса (у меня Gmail). На рис. 5 показана ошибка, возникающая при попытке вводе кода, после регистрации в системе Gmail. На рис. 4 - работающий сервис "Календарь". Остальной функционал аналогичен уже описанному для виртуальной машины.
<p class="pic"><img src="/upload/mkarpov/ZZ06B6BE4E.jpg" width="400" height="348"><br>1
<p class="pic"><img src="/upload/mkarpov/ZZ5C35C2E9.jpg" width="400" height="348"><br>1
<p class="pic"><img src="/upload/mkarpov/ZZ09571148.jpg" width="400" height="348"><br>1
<p class="pic"><img src="/upload/mkarpov/ZZ15D92710.jpg" width="400" height="348"><br>1
<p class="pic"><img src="/upload/mkarpov/ZZ0E3F25E6.jpg" width="400" height="348"><br>1
QNX
Автор: Евгений Крестников
Опубликовано 02 декабря 2010 года
Недавно компания RIM, крупнейший производитель смартфонов в США, купила канадскую фирму QSS. Вскоре стало известно, зачем потребовалась эта сделка: RIM анонсировала планшетный компьютер, работающий под управлением операционной системы, основанной на QNX Neutrino.
Специалистам в области промышленной автоматизации дополнительных пояснений не требуется - им хорошо знакома эта платформа. Скоро с ней впервые познакомится и широкая публика.
Тридцать лет назад, в 1980 году, выпускники канадского университета Ватерлоо Гордон Белл и Дэн Додж вместе разработали основу ядра новой операционной системы реального времени. Тогда же они переехали в город Каната в провинции Онтарио и основали компанию Quantum Software Systems, которая через два года выпускает операционную систему QUNIX (читается как "кюникс", от англ. "quick" - быстрый).
Торговой маркой UNIX на тот момент владела корпорация AT&T. По её настоянию система была переименована в QNX, а позднее, уже в начале девяностых, и сама компания сменила название на QNX Software Systems (QSS).
К середине восьмидесятых появилась QNX2, а спустя десять лет за ней последовала QNX4. Разработчики ещё раз полностью переписали ядро, сосредоточив свои усилия на совместимости со стандартом POSIX. В QNX4 появилась встраиваемая графическая подсистема Photon microGUI, а кроме того, благодаря совместимости с POSIX, на неё были перенесены различные программы для Unix (в частности X Window System).
Среди специалистов бытует мнение, что QNX4 тогда была лучшей встраиваемой системой реального времени. Она широко использовалась (и до сих пор используется) в самых различных отраслях человеческой деятельности: управление промышленными роботами, диспетчеризация транспорта, космическая и оборонная промышленность.
В конце девяностых компания QSS разработала QNX6 (Neutrino), которая была выпущена в 2001 году. Помимо соответствия новой редакции стандарта POSIX,
В настоящее время разработчикам (именно они являются клиентами QSS, ведь это встраиваемая ОС) доступна версия QNX 6.5, которая поставляется вместе с основанной на Eclipse средой разработки QNX Momentics (с ее помощью создают целевые системы для различных устройств).
В 2004 году QSS была куплена корпорацией Harman (да, сделка с RIM - не первая продажа компании), которая сохранила ее автономию, а Дэн Додж стал также вице-президентом Harman по информационным технологиям. В 2007 году исходные тексты QNX начали открывать под гибридной лицензией (в рамках проекта Foundry27), но при этом сама система осталась коммерческой. После покупки QSS компанией RIM доступ к исходным текстам был ограничен и началась новейшая история этой примечательной ОС.
Сложно описать архитектуру системы, не вдаваясь в ненужные большинству читателей технические подробности. Мы привыкли к ОС с монолитными ядрами, которые представляют собой большую программу, содержащую множество подсистем: систему управления процессами и памятью, дисковую подсистему и т. д. В QNX всё наоборот.
Ядро QNX - это небольшая (около 8Кб в QNX4 и от 20 до 32 Кб в QNX6) программа на ассемблере, которая занимается, в основно, планированием процессов и обеспечением взаимодействия между ними. Всё остальное делают сами запущенные процессы, притом здесь нет никакой принципиальной разницы между обычной пользовательской программой и, скажем, дисковой подсистемой. Любой процесс может быть запущен и остановлен в произвольный момент времени, причём если не нужно, например, работать с сетью - нет никакой необходимости запускать сетевую подсистему.
Подобный подход не только повышает масштабируемость, подобный подход делает QNX высоконадежной операционкой - ситуации, когда система приходит в неработоспособное состояния из-за отказа в одном из процессов здесь крайне маловероятны. Такие ОС называют микроядерными. У микроядерных ОС есть и недостатки - накладные расходы на переключение между процессами при подобном подходе возрастают. Однако в случае с QNX специалисты единодушно считают этот фактор несущественным.
Другой важный момент - то самое пресловутое "реальное время". Операционные системы реального времени часто путают с "быстрыми" системами. На самом деле, это не одно и то же - выражение "реальный масштаб времени" означает, что программа должна выдать результат в строго отведенный ей временной промежуток. Опоздание здесь так же неуместно, как и спешка.
"Реальное время" не особенно критично, когда речь идёт о компьютерах пользователей, но производство - совсем другое дело. Cогласитесь, отставание совершенно неприемлемо, когда речь идёт о промышленном роботе, стоящем на конвейере. Он должен закрутить гайку именно в момент Х - ни раньше, ни позже. А уж если говорить об управлении атомными реакторами...
Любая cистема реального времени должна быть быстрой (иначе она не успеет обработать данные из нескольких источников, да еще без буферизации). Но она должна обеспечить не просто быструю, а гарантированную реакцию. Конечно, специалистам подобное пояснение покажется чересчур дилетантским, но для общего понимания ситуации его вполне достаточно. Можно еще говорить об истинной многозадачности, блокировках, квантовании времени и прочих интересных вещах, но это определенно выходит за рамки популяризаторской статьи.