Почему большинство дистрибутивов Linux несовместимы со стандартом POSIX?

Почему большинство дистрибутивов Linux несовместимы со стандартом POSIX?

Почему большинство дистрибутивов Linux несовместимы с POSIX? Я видел во многих местах, что они несовместимы (например,В основном соответствует POSIX), но никаких реальных объяснений, подтверждающих это, не было.

Есть ли что-то, что библиотека C и/или инструменты могли бы сделать, чтобы обойти это (т. е. не вносить никаких изменений в само ядро)? Что нужно сделать?

Предполагаемый дубликат спрашивает, какой дистрибутив Linux соответствует POSIX; это вопрос, почему большинство дистрибутивов Linux не соответствуют POSIX. Я спрашиваю о конкретных подробностях (например, какая-то функция или команда не соответствует), а не о причинах, по которым конкретные дистрибутивы не (пытаются) получить сертификацию.

Этот комментарий от @PhilipCouling (спасибо!) хорошо это объясняет:

Соответствие и сертификация — разные темы. Ответы указывают на стоимость (повторной) сертификации, которая не имеет отношения к теме (не)соответствия.

решение1

POSIX не определяет интерфейс ядра, поэтому Linux в значительной степени не имеет значения. Он определяет системный интерфейс, различные инструменты и расширения стандарта C, которые могут существовать поверх любого ядра. Он не совместим с POSIX в том смысле, что он не упоминается, или совместим с POSIX в том смысле, что он не упоминается, по вашему выбору.

Существуют сертифицированные UNIX® дистрибутивы Linux, поэтому, безусловно, возможно иметь полностью совместимые со стандартом POSIX операционные системы, использующие Linux.EulerOS от Huawei — одна из нихчто есть и что вы можете купить, если хотите. Большинство остальных не заплатили свои деньги и поэтому не имеют доступа ктестированиедля проверки соответствия.

Неясно, удовлетворят ли они его на практике, но некоторые стараются больше, чем другие. Я подозреваю, что некоторые BSD ближе, чем большинство дистрибутивов Linux, но это лишь догадка: например, я знаю, что это execlp("cd", "/", NULL)не работает в большинстве дистрибутивов Linux, но работает во многих BSD и требуется POSIX.

Связанный контент