POSIX (англ.Portable Operating System Interface for Unix — Переносимый интерфейс операционных систем Unix) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой. Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода, но может быть использован и для не-Unix систем. Серия стандартов POSIX была разработана комитетом 1003 IEEE. Международная организация по стандартизации (ISO) совместно c Международной электротехнической комиссией (IEC) приняли данный стандарт (POSIX) под названием ISO/IEC 9945.
Название «POSIX» было предложено Ричардом Столлманом[1]. Введение в POSIX.1 гласит: «Ожидается произношение „позикс“ как „позитив“, а не „посикс“. Произношение опубликовано в целях обнародования стандартного способа ссылки на стандартный интерфейс операционной системы». «POSIX» является зарегистрированным товарным знакомIEEE[1].
содействовать облегчению переноса кода прикладных программ на иные платформы;
способствовать определению и унификации интерфейсов заранее при проектировании, а не в процессе их реализации;
сохранять по возможности и учитывать все главные, созданные ранее и используемые прикладные программы;
определять необходимый минимум интерфейсов прикладных программ, для ускорения создания, одобрения и утверждения документов;
развивать стандарты в направлении обеспечения коммуникационных сетей, распределенной обработки данных и защиты информации;
рекомендовать ограничение использования бинарного (объектного) кода для приложений в простых системах.
Состав
Стандарт состоит из четырёх основных разделов:
Основные определения (Base definitions) — список основных определений и соглашений, используемых в спецификациях, и список заголовочных файлов языка Си, которые должны быть предоставлены соответствующей стандарту системой.
Оболочка и утилиты (Shell and utilities) — описание утилит и командной оболочки sh, стандарты регулярных выражений.
Системные интерфейсы (System interfaces) — список системных вызовов языка Си.
Обоснование (Rationale) — объяснение принципов, используемых в стандарте.
Версии
POSIX.1, Корневые службы (включает стандарт ANSI C) (IEEE Std 1003.1-1988)
Создание и управление процессами
Сигналы[6]
Исключения плавающей точки
Нарушение сегментации
Запрещенные директивы
Ошибки шины
Таймеры
Операции над файлами (каталогами)
Каналы
Библиотека C (Стандартный С)
Интерфейс и контроль ввода-вывода
Триггеры процессов
POSIX.1b, Расширения реального времени (IEEE Std 1003.1b-1993)
Планировка приоритетов
Сигналы реального времени
Таймеры и синхронизация
Семафоры
Передача сообщений
Разделяемая память
Асинхронный и синхронный ввод-вывод
Интерфейс блокировки памяти
POSIX.1c, Расширения потоков (IEEE Std 1003.1c-1995)
Создание, контроль и завершение выполнения потоков
Планировщик потоков
Синхронизация потоков
Обработка сигналов
POSIX-совместимые ОС
В зависимости от степени совместимости со стандартами, ОС могут быть полностью или частично совместимы с POSIX. Сертифицированные продукты могут быть найдены на сайте IEEE.[2] Бесплатный доступ к версии стандарта IEEE Std 1003.1-2004 находится на сайте The Open Group.[3]
Полностью POSIX-совместимые
Полностью соответствующие одной из версий стандарта POSIX:
Cygwin — обеспечивает частичное соответствие POSIX для некоторых продуктов Microsoft Windows.
UnxUtils — набор утилит из POSIX-окружения.
Microsoft POSIX subsystem, необязательная подсистема Windows.
Microsoft Windows Services for UNIX — обеспечивает полное соответствие POSIX для некоторых продуктов Microsoft Windows. Операционные системы на базе Windows NT до Windows 2000 имели POSIX-уровень, встроенный в ОС, и UNIX Services for Windows предоставляло UNIX-подобное окружение. Для Windows XP, Windows Services for UNIX должны быть установлены для POSIX-совместимости. UNIX-подсистема встроена в Enterprise и Ultimate редакции Windows Vista и не может быть добавлена в другие редакции.
UWIN от AT&T Research обеспечивает POSIX поверх Win32 API.
↑ POSIX® 1003.1 Frequently Asked Questions (FAQ Version 1.12) (англ.) (2 February 2006). Проверено 5 марта 2008. Архивировано из первоисточника 22 августа 2011.
POSIX. Standards. IEEE. Архивировано из первоисточника 22 августа 2011.
The Open Group. Архивировано из первоисточника 3 февраля 2012.
Литература
System application program interface (API) [C Language]: ISO/IEC 9945-1, ANSI/IEEE Std 1003.1. — New York: IEEE, 1996. — ISBN 1-55937-573-6
Информационная технология — интерфейс мобильной операционной системы (POSIX). Часть 1: Интерфейс прикладных программ (API) [Язык программирования С]: в 2 т. — М.: НИИСИ РАН, 1999. — ISBN 5-93838-001-4