Введение

Семейство стандартов IEEE для обеспечения совместимости между операционными системами

Переносимый интерфейс операционной системы (POSIX; /IPA/'/p//ɒ//z//.//ɪ//k//s/) — это семейство стандартов, разработанных IEEE Computer Society для поддержания совместимости между операционными системами. POSIX также является товарным знаком IEEE.

Имя

Первоначально название "POSIX" относилось к стандарту IEEE Std 1003.1 1988, выпущенному в 1988 году. Семейство стандартов POSIX официально обозначается как IEEE 1003, а номер стандарта ISO/IEC – ISO/IEC 9945. Эти стандарты возникли в результате проекта, начатого в 1984 году и опирающегося на работы, связанные с деятельностью объединения /usr/group. Ричард Столлман предложил название POSIX для IEEE вместо прежнего IEEE IX. Комитет посчитал его более удобным для произношения и запоминания и принял его.

Версии после 1997 года

После 1997 года группа Austin разработала обновления спецификаций POSIX. Эти спецификации известны как Single UNIX Specification, до тех пор пока они не станут стандартом POSIX после официального утверждения ISO.

POSIX.1-2017

IEEE Std 1003.1 2017 (Ревизия IEEE Std 1003.1 2008) Стандарт IEEE для информационных технологий — Переносимый интерфейс операционной системы (POSIX(R)) Базовые спецификации, выпуск 7 доступен в The Open Group или IEEE и, по состоянию на 22 июля 2018 года, является действующим стандартом. Он технически идентичен POSIX.1 2008 с учетом технических исправлений 1 и 2. Бесплатная копия может быть доступна онлайн. Позднее имя переменной было изменено на This variable, которая теперь также используется для описания ряда других особенностей поведения.

Операционные системы, ориентированные на POSIX

В зависимости от степени соответствия стандартам, операционные системы можно классифицировать как полностью или частично совместимые с POSIX.

POSIX для Microsoft Windows

Cygwin предоставляет в значительной степени POSIX-совместимую среду разработки и выполнения для Microsoft Windows. MinGW, форк Cygwin, предоставляет менее POSIX-совместимую среду разработки и поддерживает совместимые приложения, написанные на C, через Msvcrt – устаревшую библиотеку среды выполнения Visual C от Microsoft. libunistd – это в основном POSIX-совместимая библиотека разработки, первоначально созданная для сборки исходного кода CinePaint на C/C++ под Linux непосредственно в Microsoft Visual Studio. Это легковесная реализация, содержащая заголовочные файлы, совместимые с POSIX, которые сопоставляют POSIX API с соответствующими API Windows. Подсистема Microsoft POSIX – необязательная подсистема Windows, включенная в операционные системы на базе Windows NT до Windows 2000. Она поддерживала стандарт POSIX.1 в редакции 1990 года, без поддержки потоков или сокетов. Interix, изначально OpenNT от Softway Systems, Inc., – это обновление и замена подсистемы Microsoft POSIX, приобретенной Microsoft в 1999 году. Изначально она продавалась как отдельный продукт, а затем была включена в состав Windows Services for UNIX (SFU), и, наконец, интегрирована в Windows Server 2003 R2 и последующие версии Windows под названием "Подсистема для UNIX-приложений" (SUA); впоследствии она была признана устаревшей в 2012 году (Windows 8) и удалена в 2013 году (2012 R2, 8.1). Она обеспечивает полную совместимость с POSIX для определенных продуктов Microsoft Windows. Windows Subsystem for Linux, также известная как WSL, – это уровень совместимости для запуска исполняемых файлов Linux непосредственно в Windows 10 и 11 с использованием образа Linux, такого как Ubuntu, Debian или OpenSUSE, и других, выступая в качестве обновления и замены Windows Services for UNIX. Она была выпущена в бета-версии в апреле 2016 года. Первым доступным дистрибутивом был Ubuntu. UWIN от AT&T Research реализует POSIX-слой поверх Win32 API. MKS Toolkit, изначально созданный для MS DOS, – это программный пакет, разработанный и поддерживаемый MKS Inc., который предоставляет Unix-подобную среду для скриптов, сетевого взаимодействия и переноса программного обеспечения Unix и Linux на 32- и 64-битные системы Microsoft Windows. Часть этого пакета была включена в первый выпуск Windows Services for UNIX (SFU) в 1998 году. Библиотека Windows C Runtime и Windows Sockets API реализуют часто используемые функции POSIX API для доступа к файлам, времени, окружению и сокетам, хотя поддержка остается в значительной степени неполной и не обеспечивает полной совместимости с POSIX-совместимыми реализациями.