QNX 4.23 FULL - Incl. Photon GUI+Developer+Tcp+PhWindows Обзор системы Что такое QNX? QNX - опеpационная система pеального вpемени (ОСРВ). Она была создана для yпpавления технологическими пpоцессами (напpимеp, конфетной фабpикой), втоpое пpизвание QNX - встpоенные системы (напpимеp, стиpальная машина). Эти обязанности поpyчили QNX'y потомy что она является надежной, маленькой и является ОСРВ. Если вы пpосто хотите полюбоваться на возможности QNX - можете конечно же поставить ее с этого дистрибутива. Но если вы не готовы к долгим настpойкам и мyчениям с новым софтом, если y вас нет опыта pаботы, напpимеp, с пpогpаммой fdisk, то не ставьте QNX - он не пpинесет Вам pадости - измyчаете себя, а можете и слyчайно испоpтить себе компьютеp. QNX это операционная система :-) Если сказать точнее, это сетевая, мультизадачная, многопользовательская, многотерминальная и масштабируемая ОС реального времени. С точки зрения пользовательского интерфейса и API, она очень похожа на UNIX. Если Вы пользователь, знакомый с UNIX, то вероятно сможете работать с ней без проблем, так так в ней присутствует практически весь набор стандартных утилит и сохраняется большая часть семантики. X Window конечно тоже есть, как и TCP/IP. Если Вы программист, знакомый с UNIX, то для Вас не составит большого труда перенести Ваши или GNU/Free приложения в QNX. Такие приложения как Apache и Mosaic хорошо демонстрируют степень совместимости API. Однако, QNX это не версия UNIX. Она была разработана с нуля и построена на совершенно других архитектурных принципах (см. далее). Разработка ведется канадской фирмой QNX Software Systems Limited (далее - QSSL). Почему она Вам до сих пор неизвестна? Вполне вероятно, что Вы пользовались этой системой хотя-бы раз, но не подозреваете об этом. Наиболее часто она применяется для создания систем, работающих в реальном масштабе времени. Это управление технологическими процессами (АСУТП), дорожным движением, обработка платежной информации (POS/OLTP), управление оборудованием зданий, системы оперативного реагирования и т.п. ОС для систем такого рода как правило не афишируют себя картинками и звуковыми эффектами, поскольку они не должны терять время на это. Внешний интерфейс таких систем обычно ориентирован на целевую задачу, а не на визуальные эффекты. Поэтому, расплачиваясь кредитной карточкой Вы просто не задумываетесь о том, что происходит внутри автомата. К настоящему времени ОС QNX удерживает 22% рынка систем реального времени, что вдвое больше ближайших конкурентов. Чем QNX отличается от UNIX? QNX была первой коммерческой ОС, построенной на принципах микроядра и обмена сообщениями. Система реализована в виде совокупности независимых (но взаимодействующих через обмен сообщениями) процессов различного уровня (менеджеры и драйверы), каждый из которых реализует определенный вид сервиса. Эти идеи позволили добиться нескольких важнейших преимуществ: предсказуемость, означающую ее применимость к задачам жесткого реального времени; Ни одна версия UNIX не может достичь подобного качества, поскольку нереентерабельный код ядра слишком велик. Любой системный вызов из обработчика прерывания в UNIX может привести к непредсказуемой задержке (то-же самое касается Windows NT, где реальное время заканчивается между ISR и DPC) масштабируемость и эффективность, достигаемую оптимальным использованием ресурсов и означающую ее применимость для встроенных (embedded) систем; Вы не увидите в каталоге /dev огромной кучи файлов, соответствующих ненужным драйверам. Драйверы и менеджеры можно запускать и удалять (кроме файловой системы J ) динамически, просто из командной строки. Вы можете иметь только тот сервис, который вам реально нужен, причем это не требует серьезных усилий и не порождает проблем. Вы также можете купить только те модули, которые реально нужны! расширяемость и надежность одновременно, поскольку написанный вами драйвер не нужно компилировать в ядро, рискуя вызвать нестабильность системы. Менеджеры ресурсов (сервис логического уровня) работают в кольце 3 и вы можете добавлять свои, не опасаясь за систему. Драйверы работают в кольце 1 и могут вызвать проблемы, но не фатального характера. Кроме того, их достаточно просто писать и отлаживать. быстрый сетевой протокол FLEET, прозрачный для обмена сообщениями, автоматически обеспечивающий отказоустойчивость, балансирование нагрузки и маршрутизацию между альтернативными путями доступа. компактная графическая подсистема Photon, построенная на тех-же принципах модульности, что и сама ОС, позволяет получить полнофункциональный GUI (расширенный Motif), работающий вместе с POSIX-совместимой ОС всего в 4Mb памяти. Не просто "способная запускаться" а реально работоспособная система, не испытываюшая Ваше терпение своей медлительностью. Конечно, у всех медалей по две стороны. Поскольку QNX не базируется на ядре UNIX, не следует ожидать бинарной совместимости. Есть и некоторые ограничения, связанные с ориентацией системы на рынок встроенных систем реального времени. Вот важнейшие из них: Нет поддержки SMP; Нет своппинга вируальной памяти на диск; Неэффективная и нестандартная поддержка нитей (threads); Неполноценная реализация отображения файлов в память. Нет поддержки UNIX-domain sockets; Слабые средства безопасности в рамках собственного сетевого протокола; Какие приложения под ней работают В целом, QNX это система, предназначенная для разработки Ваших собственных приложений, более чем для использования готовых. Системы реального времени всегда специфичны и разрабатываются обычно системными интеграторами или собствеными силами предприятий. С другой стороны, кое-что все-таки есть. Например, есть выбор СУБД, включающий Sybase SQL Anywhere 5.5, Empress SQL server, Raima Data Manager (dbVista), C-Tree. На WEB-сервере фирмы QSSL можно найти каталог продуктов, разработанных различными фирмами для QNX. Практически, QNX чаще всего используется в сочетании с другими системами, такими как UNIX и Windows 95/NT, образуя гетерогенные сети, в которых каждая система выполняет ту роль, для которой она лучше предназначена. Для создания таких систем необходимы средства интеграции сетевого уровня, для чего обычно применяется протокол TCP/IP, а также средства интеграции на уровне приложений. Для этой цели существуют продукты, разработанные фирмами Cogent RTS и Iona Technologies, позволяющие выполнять обмен данными между QNX, UNIX и Windows по протоколу DDE и CORBA (надмножество OLE). Коммерческих приложений пользовательского уровня довольно мало, поскольку QNX это не пользовательская ОС, по крайней мере пока. Например, нет версии Netscape Navigator под QNX/X Window. Впрочем, с появлением графической системы Photon, ситуация стала изменяться. Эта система открыла для QNX новый рынок - встроенных клиентских систем для устройств "карманного" размера (handheld devices). Для поддержки этого направления разработчики прикладывают много усилий. Фирма QSSL лицензировала WEB-browser Spyglass (на котором также основан MS Internet Explorer) и разрабатывает комплект клиентских приложений для работы с Internet (Internet Suite) , включающий также News, Mail и FTP клиенты и программу установления соединения с ISP. Самое интересное в этом комплекте это то, что он доступен почти полностью с исходным кодом. Разработчики могут использовать этот код для создания модифицированных версий клиентских программ, оптимизированных под конкретные нужды. Фирма Intel предустанавливает демонстрационную версию системы QNX (лицензия на 30 дней) с графической оболочкой Photon и комплектом Internet Appliance Toolkit (Internet Suite с исходным кодом, документацией и системой разработки) на платформу EXPLR2, предназначенную для разработки и отладки встроенных систем. Средства разработки В отличие от большинства систем "типа UNIX", ОС QNX имеет свои собственные средства разработки (Watcom C) вместо обычного компилятора GCC и связанных с ним программ. Компилятор GCC (C, C++, Objective C, Pascal) также был недавно портирован в QNX, но пока нет библиотек и линкера, что вынуждает использовать компоненты Watcom C. Впрочем, Watcom C, ничуть не хуже. Среда разработки включает все стандартные средства Watcom, кроме IDE (пока), которая по неофициальным данным будет доступна после выхода системы Willows под QNX. Эта система предоставит возможность компиляции приложений написанных с использованием API Win32 под QNX/Photon. При этом обеспечивается поддержка бинарных объектов (DLL от третьих фирм) и непосредственное исполнение бинарных модулей Windows через эмуляцию. Одако, перекомпилированные приложения будут иметь преимущество в скорости (вероятно, они будут работать быстрее чем в Windows) и смогут использовать одновременно API системы QNX для выполнения задач реального времени и обмена сообщениями. Ведется также разработка системы "кросс-разработки", которая позволит разрабатывать приложения QNX под Windows NT. Недавно появилась также версия KAFFE под QNX, но она пока имеет проблемы. Будущее системы Все перечисленные ограничения будут ликвидированы в ОС Neutrino, представляющей собой следующее поколение системы QNX и находящейся в стадии разработки/бета-тестирования. Эта система спроектирована так, чтобы сделать возможной реализацию "Святого Грааля" теории ОС - тотальной масштабируемости. Она сможет работать как на "тостере" с 64Kb памяти (данная версия уже продается), так и на SMP-сервере с гигабайтами памяти (середина 1998 года). При этом "тостерная" версия (Embedded Neutrino) поддерживает семантику POSIX, необходимую для систем реального времени.