POSIX — Что такое интерфейс переносимой операционной системы?

Майки по умолчаниюКороткие байты: Стандарты — это то, что позволяет моему компьютеру взаимодействовать с вашим, они заставляют веб-сайты отображать то же самое на наших компьютерах, они позволяют нашим компьютерам интерпретировать прямую трансляцию видео, что мы все видим одно и то же. Но стандарт выходит за рамки совместного использования контента между двумя компьютерами, некоторые стандарты определяют конкретные шаблоны, которые допускают гораздо больше, чем просто совместимость сети или файлов. POSIX является одним из таких стандартов.

POSIX, «pawzix» — это Портативный интерфейс операционной системы, но что это вообще значит? Во-первых, нам нужно определить область действия слова «переносной» в этом контексте, а затем понять, что подразумевается под словом «интерфейс». Чтобы понять, что означают эти слова, вы должны сначала понять, что они неразрывно связаны.

Слово «переносимый» в POSIX относится к исходному коду (а не к двоичному продукту компиляции исходного кода). Теперь нам нужно понять, что означает слово «интерфейс». В программировании интерфейс — это то, где ваш код может взаимодействовать с другим кодом. Интерфейс ожидает, что ваш код предоставит информацию определенного типа, а ваш код ожидает возврата определенного типа. Хорошим примером этого является fopen() функция в C, она ожидает две части информации, путь к файлу и режим, в котором файл открывается, с этой информацией операционная система возвращает другую конкретную часть информации, называемую дескриптором файла. Дескриптор файла может затем использоваться для чтения или записи в файл. Это интерфейс. Все это означает, что POSIX-совместимый код может быть скомпилирован для любой POSIX-совместимой операционной системы практически без изменений и, следовательно, переносим.

Список интерфейсов, определенных POSIX, доступен здесь, но, несмотря на то, как долго он существует, возможно, он неполон. POSIX не останавливается на системных вызовах, POSIX определяет стандарт для оболочек операционной системы (интерфейсы командной строки), системных утилит, таких как awk и echo, системные библиотеки и многое другое.

Стандарт POSIX начался как проект Ричарда Столлмана в 1985 году, а затем был формализован в качестве стандарта в IEEE Std 1003.1-1988, который, как следует из названия, был опубликован в 1988 году. С тех пор в POSIX было сделано много дополнений и расширений. стандарт, создающий семейство стандартов, формально известный как IEEE 1003 и признанный международным стандартом с обозначением SO / IEC 9945, или неофициально как семейство стандартов POSIX.

Хотя операционная система не обязана быть совместимой с POSIX и тем более сертифицирована POSIX, она позволяет разработчикам создавать приложения, инструменты и платформы во многих операционных системах, используя большую часть одного и того же кода. И наоборот, нет необходимости писать код, совместимый с POSIX, но это значительно поможет вам переносить проекты на другие операционные системы, это означает, что обучение написанию кода, совместимого с POSIX, само по себе ценно и, безусловно, может принесет пользу вашей карьере. Крупные проекты, такие как Gnome и KDE, полагаются на этот стандарт, чтобы гарантировать, что они могут работать в разных операционных системах. Известно, что Linux поддерживает большинство интерфейсов системных вызовов POSIX, а также большое расширение спецификации POSIX, известное как Linux Standard Base, которое призвано объединить дистрибутивы Linux как в коде, так и в двоичной поддержке.

Есть ли у читателей Fossbytes проекты, совместимые с POSIX, которыми они хотели бы поделиться? Дайте нам знать в комментариях ниже.

Ссылка на основную публикацию