POSIX: Обзор
Интерфейс переносимой операционной системы (POSIX) - это стандарт IEEE, который способствует совместимости и переносимости между операционными системами. Теоретически, исходный код, совместимый с POSIX, должен быть легко переносимым. В реальном мире при переходе приложения часто возникают проблемы, связанные с системой. Но соответствие POSIX упрощает перенос приложений, что может привести к экономии времени. Поэтому разработчикам следует познакомиться с основами этого широко используемого стандарта.
История POSIX
Первым программистам приходилось переписывать свои приложения с нуля для каждой новой модели компьютера. Но IBM System / 360 изменила это. В 1964 году была представлена операционная система OS / 360. IBM начала использовать ту же аппаратную архитектуру, чтобы новые модели могли повторно использовать одну и ту же операционную систему. Наличие общей ОС на нескольких машинах является первым этапом переносимости приложений.
В конце 1960-х годов появление UNIX открыло новые возможности. Лаборатория Bell Labs компании AT&T отвечала за первоначальную разработку этой новой операционной системы. Он может работать на машинах от нескольких поставщиков. Но UNIX начал разветвляться на различные разновидности. Помимо System V от AT&T, были Berkeley Software Distribution (BSD), Xenix и другие. Было непросто перенести эти вкусы. Обещание переносимости приложений натолкнулось на препятствие. В ближайшие десятилетия появление новых операционных систем только усложнит перенос приложений между оборудованием, операционными системами и поставщиками.
Стандарт POSIX был разработан в 1980-х годах для решения проблемы переносимости. Стандарт был определен на основе System V и BSD Unix. POSIX не определяет операционную систему, он только определяет интерфейс между приложением и операционной системой. У программистов есть свобода писать свою ОС и приложение так, как они хотят, при условии, что интерфейс между ними соблюдается. Поскольку POSIX не зависит от оборудования, операционной системы или поставщика, легче добиться переносимости приложений.
Первый стандарт POSIX был выпущен в 1988 году. Формально он назывался IEEE Standard 1003.1-1988 Интерфейс портативной операционной системы для компьютерных сред ». В 1990 году была выпущена международная версия того же стандарта с небольшими вариациями, как ISO / IEC 9945-1: 1990 Информационные технологии - Интерфейс переносимой операционной системы (POSIX) - Часть 1: Системный прикладной программный интерфейс (API).
Изначально POSIX был разделен на несколько стандартов:
POSIX.1: Основные услуги
POSIX.1b: Расширения в реальном времени
POSIX.1c: Расширения потоков
POSIX.2: Шелл и Утилиты
После 1997 года Austin Group объединила все стандарты под одной крышей. С тех пор версии POSIX.1-2001 (также известный как IEEE Std 1003.1-2001), POSIX.1-2004 (также известный как IEEE Std 1003.1-2004) и POSIX.1-2008 (также известный как IEEE Std 1003.1-2008) были выпущены.
Примерами некоторых POSIX-совместимых систем являются AIX, HP-UX, Solaris и MacOS (начиная с 10.5 Леопард). С другой стороны, Android, FreeBSD, Linux Distributions, OpenBSD, VMWare и т. Д., следуют большей части стандарта POSIX, но не сертифицированы.
Основы POSIX
POSIX.Стандарт 1-2008 касается четырех основных областей:
- Базовый объем определения: Общие термины, концепции и интерфейсы.
- Объем интерфейсов системы: Определения системных сервисных функций и подпрограмм. Также включает переносимость, обработку ошибок и восстановление после ошибок.
- Объем Shell и Utilities: Определение интерфейсов любого приложения к командным оболочкам и обычным служебным программам.
- Обоснование Объем: Содержит информацию и историю о добавленных или исключенных функциях и обоснование решений.
Стандарт не распространяется на графические интерфейсы, интерфейсы баз данных, переносимость объектного / двоичного кода, конфигурации системы, соображения ввода-вывода или доступность ресурсов.
Некоторые из руководящих принципов, лежащих в основе дизайна POSIX:
- POSIX создан, чтобы упростить переносимость приложений. Так что это не только для систем UNIX. Системы, отличные от UNIX, также могут быть совместимы с POSIX.
- Стандарт не требует разработки приложения или операционной системы. Это только определяет договор между ними.
- Исходный код POSIX-совместимого приложения должен иметь возможность работать во многих системах, поскольку стандарт определен на уровне исходного кода. Однако стандарт не гарантирует переносимости на уровне объектов или двоичного кода. Таким образом, исполняемый двоичный файл может не работать даже на аналогичных машинах с идентичным оборудованием и операционными системами. В стандарте рассматривается только переносимость исходного кода.
- POSIX написан на языке Standard C. Но разработчики могут реализовать это на любом понравившемся языке.
- Стандарт касается только аспектов операционной системы, которая взаимодействует с приложениями.
- Стандарт остается кратким с точки зрения длины и широким с точки зрения области применения, чтобы охватить широкий спектр систем.
- POSIX был разработан для упрощения переносимости. Так что в долгосрочной перспективе это сэкономит время и деньги. Однако, если ваши приложения не совместимы с POSIX, это может потребовать значительных затрат времени и ресурсов вначале.
Разработка приложений POSIX
Целью POSIX было улучшение переносимости. Когда ваш исходный код соответствует стандарту, вы можете легко скомпилировать и запустить код на другом компьютере. Однако, если POSIX определяется как общее требование для приложения, это может вызвать путаницу. Полный стандарт POSIX - это более 4000 страниц с более чем 1350 интерфейсами. Нет смысла реализовывать все. Таким образом, каждый проект должен определять аспекты POSIX, которые будут соответствовать определенным требованиям.
В сообществе разработчиков бытует неправильное представление о том, что стандарт POSIX старый и неактуальный. Это не верно. POSIX - это живой документ, который регулярно обновляется Austin Group. Любой желающий может присоединиться к группе и участвовать в улучшении стандарта. Стандарт активно используется в современных серверах, рабочих станциях, маршрутизаторах, мобильных устройствах, встроенных системах и т. Д. Используется для машин UNIX и Linux.
Однако разработчики должны знать, что стандарт POSIX имеет проблемы. Вы можете сообщить о любой обнаруженной ошибке в Austin Group, и она будет рассмотрена в следующей редакции.
Заключение
POSIX поначалу может показаться сложным. Тем не менее, разработчики приложений должны познакомиться с основами, так как они время от времени будут появляться по мере необходимости. Из-за большого объема стандарта невозможно стать экспертом по всему документу. Разработчики могут обратиться к сообществам UNIX и Linux, чтобы узнать больше. Сообщества могут ответить на ваши вопросы и дать вам лучшее представление о том, какая часть стандарта будет иметь отношение к вашему проекту.
Дальнейшее изучение:
- Полный документ POSIX
- POSIX FAQ
- Группа по пересмотру общих стандартов Остина
Рекомендации:
- Часто задаваемые вопросы по POSIX, Austin Group
- Остин Групп
- Документ 7542098 /
- Концепции системных служб POSIX и UNIX
- Документ OpenGroup 9699919799
- Что такое POSIX?, Университет Индианы
- Документы по стандартам @ open-std.org
- Билл Галлмейстер, Руководство по программированию Posix
- Руководство программиста POSIX, Дональд Левин
- StackOverflow Что такое Posix
- История Uniux, darwinsys.ком
- Austin Open Group, газета Posix
- Википедия POSIX