Открыть сервис

IEEE 1003

IEEE 1003 — это международный стандарт, разработанный Институтом инженеров электротехники и электроники (IEEE), который определяет интерфейс переносимой операционной системы (Portable Operating System Interface, POSIX). Стандарт устанавливает единый набор правил и спецификаций для обеспечения совместимости и переносимости программного обеспечения между различными операционными системами, преимущественно семейства Unix. IEEE 1003 описывает системный интерфейс прикладного программирования (API), командную оболочку и утилиты, а также требования к безопасности и локализации.

История

Предпосылки создания

В 1980-х годах рынок операционных систем был фрагментирован: существовало множество вариантов Unix (BSD, System V, Xenix), каждый из которых имел собственные, несовместимые друг с другом системные вызовы и утилиты. Разработчикам приходилось адаптировать программы под каждую платформу отдельно, что увеличивало затраты и время. В 1985 году американская ассоциация /usr/group (позднее вошедшая в состав IEEE) начала работу над стандартизацией Unix-систем.

Разработка и принятие

В 1988 году проект был передан комитету IEEE P1003. Первая версия стандарта, IEEE Std 1003.1-1988, была опубликована в 1988 году. Она получила неофициальное название POSIX (Portable Operating System Interface for Computer Environments). В 1990 году стандарт был принят как международный стандарт ISO/IEC 9945. С тех пор он неоднократно пересматривался и дополнялся: вышли версии 1996, 2001, 2004, 2008, 2013, 2016 и 2018 годов. Последняя на сегодняшний день редакция — IEEE Std 1003.1-2017 (с поправками 2018 года), также известная как POSIX.1-2017.

Влияние на российскую разработку

В России стандарт IEEE 1003 использовался при разработке операционных систем на базе Linux и BSD, в частности в дистрибутивах, сертифицированных для государственных нужд (например, Astra Linux, RED OS, Альт Линукс). Соблюдение POSIX-совместимости является обязательным требованием для ряда продуктов, проходящих сертификацию в Федеральной службе по техническому и экспортному контролю (ФСТЭК России).

Структура стандарта

Стандарт IEEE 1003 состоит из нескольких частей, каждая из которых описывает определённый аспект операционной системы:

IEEE Std 1003.1 — Базовые определения

Основная часть, определяющая:

  • Системные интерфейсы (system interfaces) — набор функций на языке C (около 1200), включая управление процессами, файлами, памятью, сигналами, сетевыми сокетами и потоками.
  • Командная оболочка и утилиты (shell and utilities) — спецификации для командного интерпретатора (sh) и более 200 стандартных утилит (ls, grep, find, awk, sed, make и др.).
  • Файловая системаиерархическая структура каталогов, права доступа (rwx), типы файлов (обычные, каталоги, символьные ссылки, устройства, сокеты, именованные каналы).
  • Локализацияподдержка национальных алфавитов, кодировок (например, UTF-8) и региональных настроек (locale).

IEEE Std 1003.2 — Командная оболочка и утилиты (отдельная часть)

Ранее выделялась как отдельный стандарт (POSIX.2), но в современных редакциях включена в IEEE Std 1003.1.

IEEE Std 1003.4 — Реальное время (Realtime)

Дополнение, определяющее расширения для систем реального времени: приоритетное планирование, синхронизация с высокой точностью, асинхронный ввод-вывод, сообщения, семафоры, разделяемая память.

IEEE Std 1003.5 — Ada

Спецификация привязок системных вызовов для языка программирования Ada.

IEEE Std 1003.6 — Безопасность

Расширения для мандатного управления доступом, списков контроля доступа (ACL), аудита и других механизмов безопасности. В России требования к таким расширениям частично отражены в профилях защиты операционных систем (ГОСТ Р ИСО/МЭК 15408).

IEEE Std 1003.7 — Системное администрирование

Определяет интерфейсы для управления учётными записями, принтерами, терминалами, резервным копированием.

IEEE Std 1003.8 — Сети

Спецификации сетевых интерфейсов (протоколы, сокеты, RPC).

IEEE Std 1003.9 — Фортрановские привязки

Привязки системных вызовов для языка Fortran.

Ключевые понятия

POSIX-совместимость

Операционная система считается POSIX-совместимой, если она прошла официальную сертификацию на соответствие одному из профилей стандарта. На практике многие системы (Linux, FreeBSD, OpenBSD, macOS, Solaris, QNX, Windows с подсистемой WSL) реализуют большую часть IEEE 1003, но не всегда сертифицированы.

Профили

Стандарт определяет несколько профилей — наборов функций, обязательных для конкретных классов систем:

  • POSIX1 — минимальная базовая система.
  • POSIX1b — расширения реального времени.
  • POSIX1c — потоки (threads).
  • POSIX1j — дополнительные расширения реального времени.

Переносимость

Основная цель IEEE 1003 — обеспечить переносимость исходного кода. Программа, написанная с использованием только стандартных функций, может быть скомпилирована и запущена на любой POSIX-совместимой системе без изменений. Это достигается за счёт:

  • Единого набора системных вызовов.
  • Единого формата командной строки и утилит.
  • Единой файловой иерархии (например, /bin, /usr, /etc, /tmp).

Применение

В операционных системах

  • Unix и Unix-подобные системы: Linux, FreeBSD, OpenBSD, NetBSD, macOS (сертифицирован как POSIX-совместимый), Solaris, AIX, HP-UX.
  • Windows: начиная с Windows NT, частичная поддержка через подсистему POSIX (позднее — Windows Services for UNIX, затем Windows Subsystem for Linux (WSL)).
  • Встраиваемые системы: QNX, VxWorks, Integrity — реализуют профили реального времени.
  • Российские ОС: Astra Linux Special Edition, RED OS, Альт Линукс, ROSA Linux — проходят сертификацию на соответствие профилям POSIX для использования в государственных информационных системах.

В разработке программного обеспечения

  • Кроссплатформенное программирование: библиотеки и приложения, использующие только POSIX API, легко портируются между системами.
  • Системное программирование: разработка драйверов, сервисов, демонов, сетевых приложений.
  • Скриптовые языки: оболочки (bash, sh), утилиты (awk, sed, grep) — основа автоматизации администрирования.

В образовании и сертификации

  • Курсы по операционным системам: IEEE 1003 является основой для изучения Unix-подобных систем.
  • Сертификация: существуют программы профессиональной сертификации (например, LPIC, RHCSA), проверяющие знание POSIX-стандартов.

Критика и ограничения

Сложность и объём

Стандарт насчитывает несколько тысяч страниц, что затрудняет его полную реализацию. Многие системы реализуют лишь подмножество функций.

Устаревание некоторых частей

Некоторые спецификации (например, терминальные интерфейсы, управление терминалами) были разработаны в 1980-х годах и не учитывают современные технологии (графические интерфейсы, контейнеризацию, облачные вычисления).

Неполная совместимость на практике

Даже сертифицированные системы могут иметь расхождения в поведении отдельных утилит или системных вызовов из-за различий в реализации. Например, поведение команды ps может различаться в Linux и FreeBSD.

Отсутствие стандартизации графического интерфейса

IEEE 1003 не затрагивает оконные системы (X Window System, Wayland) и пользовательские интерфейсы, что ограничивает его применимость для настольных приложений.

Интересные факты

  • Название POSIX было предложено Ричардом Столлманом, основателем проекта GNU.
  • Первая версия стандарта (1988) была разработана всего за три года — рекордный срок для стандартизационного процесса IEEE.
  • В 1990-х годах Microsoft пыталась продвигать собственный стандарт Windows API как альтернативу POSIX, но он не получил широкого распространения за пределами платформы Windows.
  • В России стандарт IEEE 1003 используется как основа для ГОСТ Р ИСО/МЭК 9945 — «Информационная технология. Интерфейс переносимой операционной системы (POSIX)».

Источники

  • IEEE Std 1003.1-2017 — Portable Operating System Interface (POSIX). Base Definitions, System Interfaces, Shell and Utilities.
  • ISO/IEC 9945:2009 — Information technology — Portable Operating System Interface (POSIX).
  • Таненбаум Э., Бос Х. — «Современные операционные системы» (4-е издание, 2015).
  • Стивенс У. Р. — «UNIX. Профессиональное программирование» (3-е издание, 2014).
  • Документация ФСТЭК России — «Требования к операционным системам для государственных информационных систем» (2020).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →