ПОСИКС
Аббревиатура | ПОСИКС |
---|---|
Статус | Опубликовано |
Год начался | 1988 год |
Последняя версия | Стандарт IEEE 1003.1-2024 2024 год |
Организация | Austin Group ( Компьютерное общество IEEE , Открытая группа , ISO/IEC JTC 1/SC 22 /WG 15) |
Сопутствующие стандарты | ИСО / МЭК 9945 |
Домен | Интерфейсы прикладного программирования |
Веб-сайт | позикс |
Интерфейс переносимой операционной системы ( POSIX ; IPA : / ˈ p ɒ z . ɪ к с / [1] ) — семейство стандартов, определенных Компьютерным обществом IEEE для обеспечения совместимости между операционными системами . [1] (API) как на системном, так и на пользовательском уровне POSIX определяет интерфейсы прикладного программирования , а также оболочки командной строки и интерфейсы утилит для совместимости (переносимости) программного обеспечения с вариантами Unix и другими операционными системами. [1] [2] POSIX также является товарным знаком IEEE. [1] POSIX предназначен для использования как разработчиками приложений, так и систем. [3]
Имя
[ редактировать ]Первоначально название «POSIX» относилось к стандарту IEEE Std 1003.1-1988, выпущенному в 1988 году. Семейство стандартов POSIX формально обозначается как IEEE 1003 , а номер стандарта ISO/IEC — ISO / IEC 9945.
Стандарты возникли в результате проекта, начавшегося в 1984 году и основанного на результатах соответствующей деятельности ассоциации /usr/group . [4] Ричард Столлман название POSIX . предложил IEEE [5] вместо прежнего IEEE-IX . [6] Комитет счел его более легко произносимым и запоминающимся, и поэтому принял его. [ нужна ссылка ]
Обзор
[ редактировать ]Unix был выбран в качестве основы для стандартного системного интерфейса отчасти потому, что он был «нейтрален к производителю». Однако существовало несколько основных версий Unix, поэтому возникла необходимость разработать систему общего знаменателя. Спецификации POSIX для Unix-подобных операционных систем изначально состояли из одного документа для основного программного интерфейса , но со временем выросли до 19 отдельных документов (POSIX.1, POSIX.2 и т. д.). [7] Стандартизированная пользовательская командная строка и интерфейс сценариев были основаны на UNIX System V. оболочке [8] Многие программы, службы и утилиты пользовательского уровня (включая awk , echo , ed ) также были стандартизированы вместе с необходимыми службами программного уровня (включая базовый ввод-вывод : файл , терминал и сеть ). POSIX также определяет стандартный API библиотеки потоков , который поддерживается большинством современных операционных систем. В 2008 году большинство частей POSIX были объединены в единый стандарт (IEEE Std 1003.1-2008 , также известный как POSIX.1-2008).
По состоянию на 2014 год [update], документация POSIX разделена на две части:
- POSIX.1, издание 2013 г.: базовые определения POSIX, системные интерфейсы, команды и утилиты (включая POSIX.1, расширения для POSIX.1, службы реального времени, интерфейс потоков, расширения реального времени, интерфейс безопасности, доступ к сетевым файлам). и сетевая связь между процессами, расширения переносимости пользователей, исправления и расширения, утилиты защиты и управления, а также утилиты пакетной обработки. Это POSIX 1003.1-2008 с техническим исправлением 1.)
- Тестирование на соответствие POSIX. Набор тестов для POSIX сопровождает стандарт: VSX-PCTS или VSX POSIX Conformance Test Suite . [9]
Разработка стандарта POSIX осуществляется в Austin Group (совместной рабочей группе IEEE, The Open Group и ISO/IEC JTC 1/SC 22 /WG 15).
Версии
[ редактировать ]Запчасти до 1997 г.
[ редактировать ]До 1997 года POSIX включал несколько стандартов:
- POSIX.1 : Основные службы (включает стандарт ANSI C ) (IEEE Std 1003.1-1988).
- процессов Создание и контроль
- Сигналы
- Операции с файлами и каталогами
- Трубы
- Библиотека C (стандарт C)
- ввода-вывода Интерфейс и управление портом
- POSIX.1b : Расширения реального времени (IEEE Std 1003.1b-1993, позже появившиеся как librt — библиотека расширений реального времени). [10]
- Приоритетное планирование
- Сигналы реального времени
- Часы и таймеры
- Семафоры
- Передача сообщений
- Общая память
- Асинхронный и синхронный ввод-вывод
- Интерфейс блокировки памяти
- POSIX.1c : Расширения потоков (IEEE Std 1003.1c-1995)
- Создание, управление и очистка потоков
- Планирование потоков
- Синхронизация потоков
- Обработка сигналов
- POSIX.2 : Оболочка и утилиты (IEEE Std 1003.2-1992)
- Интерпретатор команд
- Утилиты
Версии после 1997 года
[ редактировать ]После 1997 года Austin Group разработала версии POSIX. Спецификации известны под названием «Единая спецификация UNIX» , прежде чем они станут стандартом POSIX после официального одобрения ISO.
POSIX.1-2001 (с двумя TC)
[ редактировать ]POSIX.1-2001 (или IEEE Std 1003.1-2001) соответствует единой спецификации UNIX, версия 3 минус X/Open Curses . [11]
Этот стандарт состоял из:
- Базовые определения, выпуск 6,
- Системные интерфейсы и заголовки, выпуск 6,
- Команды и утилиты, выпуск 6.
IEEE Std 1003.1-2004 включает незначительное обновление POSIX.1-2001. Он включал два незначительных обновления или исправления, называемые техническими исправлениями (TC). [12] Его содержимое доступно в сети. [13]
POSIX.1-2008 (с двумя TC)
[ редактировать ]Базовые спецификации, выпуск 7 (или стандарт IEEE Std 1003.1-2008 , издание 2016 г.) аналогичны текущей версии 2017 г. (по состоянию на 22 июля 2018 г.). [14]
Этот стандарт состоит из:
- Базовые определения, выпуск 7,
- Системные интерфейсы и заголовки, выпуск 7,
- Команды и утилиты, выпуск 7,
- Обоснование тома.
POSIX.1-2017
[ редактировать ]IEEE Std 1003.1-2017 (пересмотр стандарта IEEE 1003.1-2008) — Стандарт IEEE для информационных технологий — базовые спецификации интерфейса портативной операционной системы (POSIX(R)) (выпуск 7) доступен либо в Открытой группе, либо в IEEE. Технически он идентичен POSIX.1-2008 с применением технических исправлений 1 и 2. Его содержимое доступно в сети. [15]
POSIX.1-2024
[ редактировать ]IEEE Std 1003.1-2024 — Базовые спецификации стандарта IEEE для информационных технологий — интерфейс портативной операционной системы (POSIX(R), выпуск 8), опубликованный 14 июня 2024 года. [14] Его содержимое доступно в сети. [16]
Споры
[ редактировать ]Блоки размером 512 и 1024 байта
[ редактировать ]по умолчанию составлял 512 байт POSIX требует, чтобы размер блока для утилит df и du , что отражает типичный размер блоков на дисках. Когда Ричард Столлман и команда GNU реализовали POSIX для операционной системы GNU , они возражали против этого на том основании, что большинство людей думают в терминах по 1024 байта (или 1 КиБ блоков ). Переменная среды POSIX_ME_HARDER была введена, чтобы позволить пользователю принудительно задавать поведение, соответствующее стандартам. [17] Имя переменной позже было изменено на POSIXLY_CORRECT . [18] Эта переменная теперь также используется для ряда других особенностей поведения.
POSIX-ориентированные операционные системы
[ редактировать ]В зависимости от степени соответствия стандартам можно классифицировать операционные системы как полностью или частично POSIX-совместимые.
POSIX-сертифицированный
[ редактировать ]Текущие версии следующих операционных систем сертифицированы на соответствие одному или нескольким стандартам POSIX. Это означает, что они прошли автоматизированные тесты на соответствие. [19] срок их сертификации не истек, а выпуск операционной системы не прекращен. [20] [21]
Ранее сертифицированный POSIX
[ редактировать ]Некоторые версии следующих операционных систем были сертифицированы на соответствие одному или нескольким различным стандартам POSIX. Это означает, что они прошли автоматизированные тесты на соответствие. Срок действия сертификации истек, а выпуск некоторых операционных систем прекращен. [20]
В основном POSIX-совместимый
[ редактировать ]Следующие элементы не сертифицированы как совместимые с POSIX, но в значительной степени соответствуют им:
- Android (доступно через Android NDK) [ нужна ссылка ]
- BeOS (и впоследствии Haiku )
- Контики
- Дарвин (ядро macOS и iOS )
- Стрекоза БСД
- FreeBSD [37]
- иллюзии
- Linux (большинство дистрибутивов)
- ЛинксОС
- МИНИКС (теперь МИНИКС3 )
- МПЭ/iX [38]
- NetBSD
- Ядро ОСРВ
- NutX
- OpenBSD
- OpenSolaris [39]
- PikeOS RTOS для встраиваемых систем с дополнительными разделами PSE51 и PSE52; см. раздел (мэйнфрейм)
- PX5 ОСРВ [40]
- Редокс
- RTEMS — поддержка POSIX API, разработанная в соответствии с IEEE Std. 1003.13-2003 ПСЭ52
- СеренитиОС
- Стратус ОпенВОС [41]
- СкайОС
- Слог
- ДАЛЬШЕ [42]
- VSTA
- VMware ESXi
- Ксеникс
- Зефир [43]
POSIX для Microsoft Windows
[ редактировать ]- Cygwin предоставляет в значительной степени POSIX-совместимую среду разработки и выполнения для Microsoft Windows .
- MinGW , ответвление Cygwin, предоставляет менее POSIX-совместимую среду разработки и поддерживает совместимые приложения, программируемые на C, через Msvcrt Visual C от Microsoft , старую библиотеку времени выполнения .
- libunistd — библиотека разработки, в значительной степени совместимая с POSIX, изначально созданная для сборки на языке C/ C++ исходного кода CinePaint на базе Linux в том же виде, что и в Microsoft Visual Studio . Облегченная реализация с POSIX-совместимыми заголовочными файлами, которые отображают API-интерфейсы POSIX для вызова их аналогов Windows API. [44]
- Подсистема Microsoft POSIX , дополнительная подсистема Windows, включенная в операционные системы на базе Windows NT до Windows 2000. Она поддерживала POSIX.1 в том виде, в котором он существовал в версии 1990 года, без потоков и сокетов .
- Interix , первоначально OpenNT от Softway Systems, Inc., представляет собой обновление и замену подсистемы Microsoft POSIX , приобретенной Microsoft в 1999 году. Первоначально она продавалась как отдельный дополнительный продукт, а затем была включена в качестве компонента в Windows. Службы для UNIX (SFU) и, наконец, включены в качестве компонента в Windows Server 2003 R2 и более поздние выпуски ОС Windows под названием «Подсистема для приложений на базе UNIX» (SUA); позже объявлен устаревшим в 2012 г. (Windows 8) [45] и исключен в 2013 году (2012 R2, 8.1). Он обеспечивает полное соответствие POSIX для некоторых продуктов Microsoft Windows . [ нужна ссылка ]
- Подсистема Windows для Linux , также известная как WSL, представляет собой уровень совместимости для запуска двоичных исполняемых файлов Linux в Windows 10 и 11 с использованием образа Linux, такого как Ubuntu, Debian или OpenSUSE, среди других, выступая в качестве обновления и замены служб Windows для ЮНИКС. Бета-версия была выпущена в апреле 2016 года. Первым доступным дистрибутивом была Ubuntu.
- UWIN от AT&T Research реализует уровень POSIX поверх API-интерфейсов Win32.
- MKS Toolkit , первоначально созданный для MS-DOS, представляет собой пакет программного обеспечения, созданный и поддерживаемый компанией MKS Inc., который обеспечивает Unix-подобную среду для написания сценариев, подключения и переноса программного обеспечения Unix и Linux как на 32-, так и на 64-битные системы Microsoft Windows . Его подмножество было включено в первый выпуск служб Windows для UNIX (SFU) в 1998 году. [46] [47]
- Библиотека времени выполнения Windows C и Windows Sockets API реализуют часто используемые функции POSIX API для доступа к файлам, времени, среде и сокетам. [48] хотя поддержка остается в значительной степени неполной и не полностью совместимой с POSIX-совместимыми реализациями. [49] [50] [ обсуждать ]
POSIX для OS/2
[ редактировать ]В основном POSIX-совместимые среды для OS/2 :
- emx+gcc – в значительной степени соответствует POSIX
POSIX для DOS
[ редактировать ]Частично POSIX-совместимые среды для DOS включают:
- emx+gcc – в значительной степени соответствует POSIX
- DJGPP – частично соответствует POSIX
- Многозадачное ядро DR-DOS через EMM386 /MULTI — доступно расширение API интерфейса POSIX потоков.
Совместимость через уровень совместимости
[ редактировать ]Следующие ниже официально не сертифицированы как совместимые с POSIX, но они в значительной степени соответствуют стандартам, реализуя поддержку POSIX через какую-то функцию совместимости (обычно библиотеки перевода или слой поверх ядра). Без этих функций они обычно не соответствуют требованиям.
- AmigaOS (через библиотеку ixemul или vbcc _PosixLib [51] )
- eCos – POSIX является частью стандартного дистрибутива и используется многими приложениями. В разделе «внешние ссылки» ниже содержится дополнительная информация.
- IBM i (через уровень совместимости PASE ) [52]
- MorphOS (через встроенную библиотеку ixemul)
- OpenVMS (через дополнительный пакет POSIX) [53]
- План 9 от Bell Labs APE — среда ANSI/POSIX [54]
- RIOT (через дополнительный модуль POSIX)
- ОС Symbian с PIPS (PIPS — это POSIX на Symbian)
- VAXELN (частичная поддержка 1003.1 и 1003.4 через библиотеку времени выполнения VAXELN POSIX) [55]
- Ядро Windows NT при использовании Microsoft SFU 3.5 или SUA
- Windows 2000 Server или Professional с пакетом обновления 3 или более поздней версии . Чтобы обеспечить совместимость с POSIX, необходимо активировать дополнительные функции Windows NT и Windows 2000 Server. [56]
- Windows XP Professional с пакетом обновления 1 или более поздней версии
- Windows Сервер 2003
- Windows Server 2008 , а также версии Windows Vista Ultimate и Enterprise.
- Windows Server 2008 R2 , а также версии Windows 7 Ultimate и Enterprise.
- хотя и устарел, но все еще доступен для Windows Server 2012 и Enterprise версии Windows 8.
См. также
[ редактировать ]- Единая спецификация UNIX
- POSIX-сигнал
- POSIX-потоки
- POSIX-библиотека C.
- IBM Common User Access – стандарт пользовательского интерфейса
- Переносимый набор символов , набор из 103 символов, который должен поддерживаться в любой локали, совместимой с POSIX.
- Операционная система реального времени
- Interix - полнофункциональная подсистема среды POSIX и Unix для операционных систем Microsoft на базе Windows NT.
- Проект TRON – альтернативные стандарты ОС POSIX
Ссылки
[ редактировать ]- ^ Jump up to: а б с д «Часто задаваемые вопросы по POSIX.1» . Открытая группа. 13 июня 2020 г. Проверено 20 февраля 2023 г.
- ^ «P1003.1 — Стандарт информационных технологий — базовые спецификации интерфейса портативной операционной системы (POSIX™), выпуск 8» . Ассоциация стандартов IEEE .
- ^ "Введение" . Базовые спецификации открытой группы, выпуск 7, издание 2018 г. Проверено 22 июля 2021 г.
- ^ «ДжимИсаак — Влияние POSIX» . сайты.google.com . Проверено 15 сентября 2022 г.
- ^ «Справочная информация по стандарту IEEE Std 1003.1» . Сноски.
- ^ Стоутон, Николас. «Обновление стандартов» . ;авторизоваться: .
- ^ Статус PASC (включая POSIX) (Отчет). Компьютерное общество IEEE . 4 декабря 2003 г. Проверено 1 марта 2015 г.
- ^ «Язык команд оболочки — базовые спецификации открытой группы, выпуск 7, издание 2013 г.» . Проверено 28 апреля 2020 г.
- ^ «Тестовые пакеты VSX-PCTS2003» . Открытая группа.
- ^ "либрт(3LIB)" . docs.oracle.com . Раздел 3 страниц руководства: Библиотечные интерфейсы и заголовки. Корпорация Оракл. 4 августа 1998 года . Проверено 18 февраля 2016 г.
librt, libposix4- POSIX.1b Библиотека расширений реального времени [...] librt — предпочтительное имя для этой библиотеки. Имя libposix4 сохранено для обратной совместимости, и его следует избегать. Функции в этой библиотеке предоставляют большинство интерфейсов, определенных расширением реального времени POSIX.1b.
- ^ «Единая спецификация UNIX, версия 3 — обзор» . unix.org .
- ^ «IEEE Std 1003.1» (изд. 2004 г.). Unix.org . Проверено 26 июля 2009 г.
- ^ «Базовые характеристики, выпуск 6» (изд. 2004 г.). Открытая группа . Проверено 20 июля 2024 г. .
- ^ Jump up to: а б «Группа по пересмотру общих стандартов Остина» . Открытая группа . Проверено 20 июля 2024 г.
- ^ «Базовые характеристики, выпуск 7, издание 2018 г.» (изд. 2018 г.). Открытая группа . Проверено 20 июля 2024 г.
- ^ «Базовые характеристики, выпуск 8» (изд. 2024 г.). Открытая группа. .
- ^ Столлман, Ричард (28 августа 1991 г.). «Демократия торжествует в дисковых накопителях» . Группа новостей : gnu.announce . Usenet: [электронная почта защищена] – через группы Google.
- ^ «Стандарты кодирования GNU» . ГНУ.
- ^ «POSIX сертифицирован IEEE и The Open Group — Руководство по программе» . Раздел 2. Как получить сертификацию . Проверено 22 января 2022 г.
- ^ Jump up to: а б «POSIX сертифицирован IEEE и The Open Group — Руководство по программе» . Раздел 4. Продление и сертифицированные обновления продуктов . Проверено 22 января 2022 г.
- ^ «Сертифицированная продукция компании» . Открытая группа. нд . Проверено 22 января 2022 г.
- ^ Jump up to: а б «ИБМ» . Открытая группа . Проверено 23 января 2022 г.
- ^ «Хьюлетт-Паккард» . Открытая группа . Проверено 26 января 2014 г.
- ^ Jump up to: а б «Реестр сертификации POSIX» . ИИЭЭ . Архивировано из оригинала 25 января 2023 года . Проверено 23 января 2022 г.
- ^ «Открытый бренд – Реестр сертифицированной продукции» . Реестр продукции под открытым брендом . Открытая группа . Проверено 20 мая 2015 г.
- ^ «Эппл Инк» . Реестр продукции под открытым брендом . Открытая группа . Проверено 20 мая 2015 г.
- ^ «SCO OpenServer, выпуск 5» . Открытая группа. 3 мая 1995 года . Проверено 24 декабря 2021 г.
- ^ «UnixWare® 7.1.3 и более поздние версии» . Открытая группа. 16 мая 2003 года . Проверено 24 декабря 2021 г.
- ^ «Хуавэй Технолоджи Лтд» . Открытая группа . Проверено 26 мая 2017 г.
- ^ ООО «Инспур Ко.» . Открытая группа . Проверено 26 мая 2017 г.
- ^ «Силикон Графикс, Инк» . Открытая группа . Проверено 26 января 2014 г.
- ^ «Открытый бренд – Реестр сертифицированной продукции» . Открытая группа . 23 июля 2003 г. Архивировано из оригинала 2 августа 2003 г. Проверено 23 января 2022 г.
- ^ «QNX получила новую сертификацию POSIX» (пресс-релиз). QNX. 8 апреля 2008 года . Проверено 16 января 2016 г. .
- ^ «Корпорация Оракл» . Открытая группа. Архивировано из оригинала 12 июля 2017 года . Проверено 26 января 2014 г.
- ^ «Хьюлетт-Паккард» . Открытая группа. Архивировано из оригинала 9 июля 2014 года . Проверено 26 января 2014 г.
- ^ «Хуавэй LiteOS/LiteOS» . Гите . Хуавей . Проверено 23 мая 2024 г.
- ^ Швейхардт, Йенс. «Соответствие утилит FreeBSD POSIX 2001» . FreeBSD.
- ^ Марк Халпер (7 ноября 1994 г.). «Продажи HP 3000 застали рынок врасплох» . Компьютерный мир . Том. 28, нет. 4. Предприятие ИДГ.
- ^ Солтер, Николас А.; Елинек, Джерри; Майнер, Дэвид (21 марта 2011 г.). Библия OpenSolaris . Джон Уайли и сыновья. ISBN 9781118080313 .
- ^ Лами, Билл; Таубингер, Рафаэль (15 июня 2023 г.). «RTOS со стандартным POSIX API pthreads: дополнение к встроенному Linux» . Встроенный.com . Проверено 13 сентября 2023 г.
- ^ «OpenVOS POSIX.1: Руководство по обеспечению соответствия» . Статус Технологии . Проверено 26 ноября 2021 г.
- ^ Документ соответствия ULTRIX POSIX (PDF) . Цифровой. Июнь 1990 года . Проверено 13 декабря 2021 г.
- ^ «Поддержка POSIX» . Документация Зефира . Проверено 7 марта 2023 г.
- ^ Роу, Робин (8 сентября 2022 г.). "либунистд" . Гитхаб . Проверено 18 февраля 2023 г.
Если вы хотите создать единый код C++ для работы в Windows, Linux и MacOS, вам понадобится это для Windows.
- ^ «Функции, удаленные или устаревшие в Windows Server 2012» . Документы Майкрософт . 31 августа 2016 г.
- ^ «Пакет надстроек служб Windows NT для UNIX» . Майкрософт . Архивировано из оригинала 8 мая 1999 года.
- ^ «MKS решает проблемы совместимости предприятий» (пресс-релиз). Архивировано из оригинала 28 апреля 1999 года.
- ^ «Устаревшие функции CRT» . Документы Майкрософт . 15 октября 2009 года . Проверено 23 июля 2022 г.
- ^ «Портирование сокет-приложений на Winsock» . Документы Майкрософт . 7 января 2021 г. Проверено 23 июля 2022 г.
- ^ «Статьи часто задаваемых вопросов для программистов Winsock: Совместимость сокетов BSD» . Уоррен Янг. 31 августа 2015 года . Проверено 8 октября 2015 г.
- ^ «Aminet — dev/C/Vbcc_PosixLib.lha» .
- ^ «Программирование IBM PASE для i» (PDF) . IBM.com . ИБМ. 2013 . Проверено 25 ноября 2021 г.
- ^ «Список продуктов, прошедших проверку соответствия FIPS 151-2» . Многолетняя испытательная лаборатория . Проверено 14 августа 2022 г.
- ^ «APE — среда ANSI/POSIX» . План 9 документов . Лаборатории Белла. Архивировано из оригинала 1 июня 2017 года.
- ^ Техническое описание продуктов Realtime, пятое издание (PDF) . Корпорация цифрового оборудования . Декабрь 1992 года . Проверено 8 декабря 2021 г.
- ^ «Глава 29 — Совместимость POSIX» . Ресурсный комплект рабочей станции MS Windows NT . Майкрософт. Архивировано из оригинала 15 января 2008 года.
Внешние ссылки
[ редактировать ]- «Базовые спецификации открытой группы, выпуск 7, 2018 г., издание IEEE Std 1003.1™-2017» . Открытая группа/IEEE.
- «Домашняя страница сертификации POSIX» . Открытая группа/IEEE.