ОСРВ QNX: Немного о микроядре, потоках и процессах

Немного о POSIX

С выпуском каждой новой версии QNX (а надо отметить, что первая версия ОСРВ QNX появилась теперь уже в далёком 1981 году), разработчики использовали накопленный ранее опыт и делали систему лучше, в том числе и удобнее для разработчиков. Именно поэтому QNX Neutrino поддерживает стандарты POSIX 1003.1, например, управление потоками (threads), расширения реального времени (Realtime Extensions), дополнительные расширения реального времени (Additional Realtime Extensions) и профили прикладных окружений (Application Environment Profiles, AEP).

Зачем я об этом говорю? Очень просто. Хотелось бы отметить две вещи, которые характерны для QNX и связаны с POSIX. Есть мнение, что любая POSIX операционная система скрывает в себе UNIX. А раз так, то такая система слишком громоздкая и не может применяться во встраиваемых решениях. Однако, в случае QNX это неверно. Стандарт POSIX описывает интерфейс, а не реализацию. А значит, под слоем POSIX может скрываться что угодно, в том числе и микроядро.

Второй момент, на котором я бы хотел остановится, наверное, очевиден. Это, конечно, те преимущества, которые даёт POSIX в QNX:

  • Повторное использование кода. Однажды разработанный, отлаженный и протестированный код для одной POSIX операционной системы, может быть повторно использован в другой POSIX системе, в том числе и в QNX.
  • «Переносимость» программистов. Разработчик или группа разработчиков, знакомая c POSIX и UNIX могут легко приступить к разработке встраиваемой системы реального времени (я, конечно, имею в виду QNX). Ведь большая часть ОС им будет уже знакома.

Итак, можно сделать вывод, что POSIX в QNX обеспечивает ряд преимуществ.

Читать