Разница между спецификациями POSIX, Single UNIX и Open Group Base?

53

Каковы различия между POSIX, спецификацией Single UNIX и спецификациями Open Group Base ? Я думаю, что их цель - определить, является ли ОС Unix?

Тим
источник
2
Справочная информация: что такое POSIX? , Связанный: Почему GNU / Linux SUS v3 + не совместим? , Является ли Linux Unix?
Жиль "ТАК - перестань быть злым"

Ответы:

9

Одним важным «отличием» является группа опций XSI (XOPEN), которая определяет ряд традиционных интерфейсов Unix, которые вряд ли будут применимы к новой операционной системе, которая не является «Unix». Часто люди используют «SUS» для обозначения полного стандарта, включая опцию XSI, и «POSIX» для обозначения базового стандарта и, возможно, не-Unix-ориентированных групп опций.

Последующие версии SUS, по-видимому, постепенно осуждают части опции XSI, которые не были действительно полезны для написания переносимых приложений и которые вместо этого просто отражали унаследованные реализации, и перемещали некоторые из более полезных частей в базовый стандарт.

Р..
источник
Вы ошибаетесь, XSI (если вообще) сделан обязательным в более новых версиях стандарта. Также обратите внимание, что, по словам автора набора проверочных тестов POSIX, соответствие XSI является обязательным, если только вы не хотите проверять только встроенную платформу UNIX.
Щили
1
@schily: Цитата?
R ..
Текущая документацияunistd.h гласит: «<unistd.h> заголовок определяет следующую символическую константу только , если реализация поддерживает опцию XSI, см XSI Conformance Если определено, то его значение должно быть пригодным для использования в #if директивы препроцессора _XOPEN_VERSION.. "
R ..
Благодарю. unix.stackexchange.com/questions/467010/…
Тим
25

Сегодня POSIX и SUS - это одно и то же; SUS включает в себя немного больше .

Цитирую здесь :

Начиная с 1998 года совместная рабочая группа, известная как Austin Group, начала разработку комбинированного стандарта, который будет известен как Версия 3 Единой спецификации UNIX и как POSIX: 2001 (формально: IEEE Std 1003.1-2001). Выпущена 30 января 2002 г.

а также

В декабре 2008 года Austin Group опубликовала новую основную версию, известную как POSIX: 2008 (формально: IEEE Std 1003.1-2008). Это ядро ​​единой спецификации UNIX версии 4

Даниэль Бек
источник
POSIX.1-2008 - это не 4-я версия, а 7-ая ВЫПУСК стандарта.
Шили
@schily Я плохо выбрал, где заканчивается вторая цитата? Мне кажется, что и источник, и цитата явно связывают «версию 4» с SUS, а не с POSIX.
Даниэль Бек,
Термин «выпуск 7» относится к Opengroup. См .: pubs.opengroup.org/onlinepubs/9699919799 Возможно, я запутался. Поэтому я предполагаю, что UNIX95 - это SUSv1, UNIX98 - это SUSv2, POSIX.1-2001 - это SUSv3, а POSIX.1-2008 - это SUSv4
schily
@schily Право, посмотрите страницу Википедии, где источник цитаты упоминает проблему 7.
Даниэль Бек,
11

Взглянув на верхнюю часть Базовых спецификаций Open Group , вы увидите стандартный идентификатор IEEE Std 1003.1-2008. IEEE Std 1003.1 - это то, что известно как POSIX.1, а 2008 год - это последнее воплощение. Посмотрев на POSIX в Википедии, вы увидите, что стандарт состоит из трех частей, включая:

  • Базовые определения, выпуск 7
  • Системные интерфейсы и заголовки, выпуск 7
  • Команды и утилиты, выпуск 7

По сути, POSIX - это просто название стандарта, разработанного IEEE с первоначальной версией, выпущенной в 1988 году. POSIX официально не является UNIX ™ просто потому, что IEEE не владеет торговой маркой, а представляет собой среду операционной системы и интерфейс, найденные в UNIX ™. системы. Позже Open Group, которая контролирует товарный знак UNIX ™, занялась созданием стандарта на основе POSIX под названием Single UNIX Specification version 2 или SUSv2. Теперь эти две спецификации разработаны совместно как Остин Груп. Последняя версия - SUSv4. Итак, подведем итог:

POSIX: 2008 = IEEE Std. 1003.1-2008 = SUSv4 = Открытая спецификация группы, выпуск 7.

Кроме того, прочитайте мой ответ на Что такое POSIX?

penguin359
источник
1
Это также ISO / IEC 9945-2009
fpmurphy
Ах, да, как хорошо, что у нас так много стандартов. Я все еще пытаюсь выяснить различия между ISO / IEC 10646 и Unicode, которые, хотя и представляют идентичные наборы символов, строго синхронизированные друг с другом, по-прежнему представляют собой два отдельных и разных стандарта. Я не уверен, почему они не могут просто ужиться и объявить их полностью синонимами.
penguin359
1
В конкретном случае POSIX против SUS причина связана с лицензированием и товарным знаком. POSIX является универсальным, может быть реализован на любой ОС. SUS - это стандарт для определения UNIX. Даже если они идентичны, POSIX необходим для всего, что совместимо с * nix. Или * nix. SUS должен быть выполнен, чтобы даже попытаться получить вызов UNIX. Если SUS не существует, то, как минимум, торговая марка UNIX может быть ослаблена. Я не оправдываю никаких корпоративных действий, просто спекулирую их позицией.
Дж. М. Беккер
Версия стандарта IEEE сегодня на 100% идентична версии SUS, за исключением первых нескольких страниц и того факта, что версия IEEE обычно появляется ок. 6 месяцев спустя.
Щили