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

Solución Perl utilizando el módulo JSON :

perl -MJSON -we '
    $json = JSON->new->pretty->canonical;
    open $fh, "<", shift or die $!;
    $j = $json->decode(do { undef $/; <$fh> });
    $j->{items}[0]{properties}{content}.= qq(\nexport KAFKA_HEAP_OPTS="-Xmx8g -Xms8g"\nexport KAFKA_JVM_PERFORMANCE_OPTS=" -XX:MetaspaceSize=96m -XX:+UseG1GC-XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80");
    print $json->encode($j);
' -- file.json > new.json

Tuve que corregir el archivo esperado(exportque faltaba para la segunda variable, además de algunos problemas de espacios en blanco )y canonicalizarlo para obtener exactamente el mismo resultado.

6
06.12.2019, 19:30
1 ответ

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

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

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

13
27.01.2020, 20:27

Теги

Похожие вопросы