Single UNIX Specification
Single UNIX Specification (SUS) — это общее название для семейства стандартов, определяющих интерфейс операционной системы, соответствие которому даёт право называться «UNIX». SUS разрабатывается и поддерживается консорциумом Austin Group (совместная работа The Open Group, IEEE и ISO/IEC). Стандарт описывает системные интерфейсы, заголовочные файлы, утилиты командной строки и сетевые протоколы, необходимые для обеспечения переносимости приложений между различными UNIX-подобными системами.
История
Предпосылки создания
В конце 1980-х годов на рынке существовало несколько конкурирующих версий UNIX (System V от AT&T, BSD от Калифорнийского университета в Беркли, Xenix от Microsoft и другие). Приложения, написанные для одной реализации, часто не работали на других. Это привело к «войнам UNIX» и необходимости стандартизации.
POSIX
Первым серьёзным шагом к унификации стал стандарт POSIX (Portable Operating System Interface), разработанный IEEE (Институт инженеров электротехники и электроники). В 1988 году был принят стандарт IEEE 1003.1-1988, описывающий базовые системные вызовы и библиотеки. Однако POSIX не охватывал многие аспекты, такие как утилиты командной строки и полноценная среда разработки.
Появление SUS
В 1994 году The Open Group (консорциум, образованный из X/Open и OSF) опубликовала Spec 1170 — спецификацию, объединившую POSIX, стандарты X/Open и дополнительные элементы из реальных систем. Номер 1170 означал количество интерфейсов (системных вызовов, библиотек, утилит), включённых в спецификацию. В 1995 году эта спецификация была переименована в UNIX 95 и стала основой для торговой марки UNIX. Версия UNIX 98 (1998 год) добавила поддержку 64-битных архитектур и потоков (POSIX Threads).
Austin Group
В 1998 году началось объединение усилий IEEE, The Open Group и ISO/IEC JTC 1/SC 22/WG 15. В результате в 2001 году был опубликован IEEE Std 1003.1-2001 (POSIX:2001), который одновременно является Single UNIX Specification Version 3. Эта версия стала единым эталонным стандартом. С тех пор обновления выходили в 2004, 2008, 2013, 2016 и 2018 годах. Текущая версия — SUSv4 (IEEE Std 1003.1-2018).
Структура стандарта
Single UNIX Specification состоит из четырёх основных частей:
1. Base Definitions (Том 1)
Содержит глоссарий терминов, требования к файловой системе, структуре каталогов, правам доступа, а также перечень всех заголовочных файлов (header files) с описанием их содержимого.
2. System Interfaces (Том 2)
Описывает системные вызовы (system calls) и библиотечные функции (library functions). Каждая функция документируется в формате man-страницы: прототип, описание, возвращаемые значения, ошибки. Примеры: fork(), exec(), open(), read(), write(), mmap().
3. Shell and Utilities (Том 3)
Определяет синтаксис и поведение командного интерпретатора (sh — Bourne shell) и более 200 утилит (например, grep, awk, sed, ls, cp, make). Для каждой утилиты указаны опции, аргументы, поведение в особых случаях.
4. Rationale (Том 4)
Пояснительная записка, объясняющая мотивы принятия тех или иных решений, исторические справки и обсуждение альтернатив. Не является нормативной частью, но полезна для разработчиков.
Ключевые требования для соответствия SUS
Чтобы операционная система могла быть сертифицирована как UNIX (и использовать соответствующую торговую марку), она должна:
- Полностью реализовывать все обязательные (mandatory) интерфейсы из SUS.
- Пройти формальное тестирование с помощью набора тестов VSX (Validation Suite for X/Open).
- Не иметь недокументированных отклонений от стандарта.
- Поддерживать многозадачность, многопользовательский режим, иерархическую файловую систему, защиту памяти.
Сертификация проводится The Open Group. После успешного прохождения система получает право называться UNIX® (например, macOS — с версии 10.5 Leopard, AIX, HP-UX, Solaris).
Отличия от POSIX
Хотя SUS и POSIX технически очень близки (начиная с SUSv3 они синхронизированы), есть два принципиальных отличия:
- Объём: SUS включает в себя POSIX плюс дополнительные интерфейсы (например, X/Open Curses, поддержка международных локалей, расширенная обработка сигналов). POSIX — это минимальный набор, SUS — расширенный.
- Юридический статус: POSIX — это стандарт IEEE/ISO, который может быть реализован любой системой (например, Linux, FreeBSD) без каких-либо лицензионных отчислений. SUS — это спецификация, владельцем которой является The Open Group, и соответствие ей даёт право на использование торговой марки UNIX.
Реализации и влияние
Системы, сертифицированные как UNIX
- macOS (Apple Inc.) — сертифицирована как UNIX 03 (SUSv3). Ядро XNU основано на Mach и FreeBSD.
- AIX (IBM) — сертифицирована как UNIX 03.
- HP-UX (Hewlett Packard Enterprise) — сертифицирована как UNIX 03.
- Solaris (Oracle) — сертифицирована как UNIX 03 (последняя версия 11.4).
- z/OS (IBM) — сертифицирована как UNIX 95.
Системы, соответствующие SUS, но не сертифицированные
- Linux — большинство дистрибутивов (Debian, Red Hat, Ubuntu) реализуют POSIX и значительную часть SUS, но не проходят платную сертификацию. Существуют проекты LSB (Linux Standard Base), которые пытались стандартизировать Linux, но они основаны на SUS.
- FreeBSD — также реализует SUS на уровне исходного кода, но не сертифицирована.
Влияние на другие стандарты
SUS послужил основой для:
- LSB (Linux Standard Base) — попытка унифицировать дистрибутивы Linux.
- FIPS 151-2 — федеральный стандарт США для операционных систем.
- ГОСТ Р ИСО/МЭК 9945 — российский аналог POSIX.
Критика
- Сложность и размер: SUSv4 содержит более 3700 страниц. Многие разработчики считают стандарт слишком громоздким для изучения.
- Медленное обновление: Процесс согласования между IEEE, ISO и The Open Group занимает годы. Новые технологии (контейнеризация, cgroups, современные файловые системы) не попадают в стандарт оперативно.
- Стоимость сертификации: Процедура сертификации UNIX стоит десятки тысяч долларов, что делает её недоступной для небольших проектов.
- Неоднозначность некоторых интерфейсов: Например, поведение
read()при прерывании сигналом (EINTR) в разных реализациях может отличаться, несмотря на стандарт.
Источники
- The Open Group. Single UNIX Specification, Version 4. 2018.
- IEEE Std 1003.1-2017. Standard for Information Technology—Portable Operating System Interface (POSIX).
- McKusick, M. K. The Design and Implementation of the FreeBSD Operating System. 2nd ed. Addison-Wesley, 2014.
- Stevens, W. R., Rago, S. A. Advanced Programming in the UNIX Environment. 3rd ed. Addison-Wesley, 2013.
- Материалы конференции USENIX Annual Technical Conference, 1990–2020.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →