переносимость кода приложений (между версиями одного продукта);
возможность использования одних и тех же инструментов для разработки всего семейства продуктов;
"переносимость" опыта, полученного разработчиками;
большая скорость разработки продукта.
1003.1 — данный стандарт определяет программный интерфейс для систем управления процессами, ввода/вывода данных в устройствах и файловых системах, а также общего межзадачного взаимодействия. Этот стандарт включает в себя все то, что может быть обозначено как базовая функциональность ОС UNIX, и является полезным для многих приложений. С точки зрения программирования на языке C, базовым является стандарт ANSI X3J11 C, тогда как различные аспекты управления процессами, файлами и TTY-устройствами определяются другими стандартами.
Расширения реального времени (Realtime Extensions) — этот стандарт определяет набор дополнительных расширений реального времени к базовому стандарту 1003.1. Данные расширения включают в себя семафоры, планирование процессов по приоритетам, расширения реального времени к сигналам, управление таймерами высокого разрешения, дополнительные примитивы механизма межзадачного взаимодействия (IPC), систему синхронного и асинхронного ввода/вывода. Кроме того, в этом стандарте рекомендована поддержка непрерывных файлов в реальном времени.
Управление потоками (Threads) — это еще одно расширение среды стандартов POSIX, оно регулирует создание и управление множеством потоков внутри заданного адресного пространства.
Дополнительные расширения реального времени (Additional Realtime Extensions) — этот стандарт определяет дополнительные расширения к стандарту реального времени, которые описывают такие функции, как подключение обработчиков прерываний.
Профили прикладных окружений (Application Environment Profiles) — этот стандарт определяет несколько профилей среды POSIX (Realtime AEP, Embedded Systems AEP и др.), соответствующих разным наборам встраиваемых функций. Профили представляют встраиваемые ОС с или без файловых систем и других функций.
микроядерная архитектура;
межзадачное взаимодействие на основе обмена сообщениями.
Рис. 1.1. Обычные исполнительные модули реального времени не обеспечивают защиту памяти
Рис. 1.2. В монолитной ОС системные процессы не защищены
Рис. 1.3. Микроядро обеспечивает полную защиту памяти
Рис. 1.4. Архитектура ОС QNX Neutrino
управление потоками (thread services) посредством POSIX-примитивов для создания потоков;
управление сигналами (signal services) посредством примитивов сигналов;
обмен сообщениями (message-passing services), с помощью которого микроядро выполняет трассировку всех сообщений, пересылаемых между всеми потоками внутри системы;
синхронизация (synchronization services) посредством примитивов синхронизации потоков;
планирование (scheduling services), с помощью которого микроядро осуществляет планирование потоков в реальном времени на основе различных алгоритмов;
управление таймерами (timer services), с помощью которого микроядро обеспечивает большой набор POSIX-таймеров;
управление процессами (process management services), выполняемое администратором процессов, вместе с которым ядро образует единый модуль procnto. Администратор процессов предназначен для управления процессами, памятью и пространством имен путей (pathname space).
администраторы файловых систем;
администраторы устройств символьного ввода/вывода;
графический пользовательский интерфейс (Photon);
сетевой администратор;
стек протоколов TCP/IP.