Por que a maioria das distribuições Linux não são compatíveis com POSIX?

Por que a maioria das distribuições Linux não são compatíveis com POSIX?

Por que a maioria das distribuições Linux não são compatíveis com POSIX? Já vi em muitos lugares que eles não são (por exemploPrincipalmente compatível com POSIX), mas não houve nenhuma explicação real para apoiar isso.

Existe algo que a biblioteca e/ou ferramentas C poderia fazer para contornar isso (ou seja, nenhuma modificação no próprio kernel)? O que precisa ser feito?

A suposta duplicata está perguntando qual distribuição Linux é compatível com POSIX; isso está perguntando por que a maioria das distribuições Linux não são compatíveis com POSIX. Estou pedindo detalhes específicos (ou seja, alguma função ou comando não é compatível), não os motivos pelos quais distribuições específicas não (tentam) ser certificadas.

Este comentário de @PhilipCouling (obrigado!) explica bem:

Conformidade e certificação são assuntos diferentes. As respostas apontam para custos de (re)certificação que são irrelevantes para o tema da (não) conformidade.

Responder1

O POSIX não especifica uma interface de kernel, portanto o Linux é amplamente irrelevante. Ele especifica a interface do sistema, várias ferramentas e extensões do padrão C, que podem existir em qualquer kernel. Não é compatível com POSIX no sentido de que não é mencionado, ou é compatível com POSIX no sentido de que não é mencionado, a seu critério.

Existem distribuições Linux certificadas pelo UNIX®, portanto é certamente possível ter sistemas operacionais totalmente compatíveis com POSIX usando Linux.O EulerOS da Huawei é umque tem e que você pode comprar se quiser. A maioria dos restantes não pagou o seu dinheiro e por isso não tem acesso aosuíte de testepara verificar a conformidade.

Não está claro se eles iriam satisfazê-lo na prática, mas alguns se esforçam mais do que outros. Suspeito que alguns BSDs estejam mais próximos do que a maioria das distribuições Linux, mas isso é um palpite: por exemplo, sei que execlp("cd", "/", NULL)falha na maioria das distribuições Linux, mas funciona em muitos BSDs e é exigido pelo POSIX.

informação relacionada