Spec 1170
Spec 1170 (также известный как Single UNIX Specification, SUS) — это стандарт, определяющий интерфейс операционной системы (API) и набор утилит, необходимых для того, чтобы операционная система могла называться UNIX. Он был разработан консорциумом X/Open (ныне The Open Group) и впервые опубликован в 1994 году. Основная цель Spec 1170 — унификация различных версий UNIX, которые к тому времени разошлись в своих реализациях, что затрудняло переносимость программного обеспечения. Стандарт объединил и уточнил более ранние спецификации, такие как POSIX (Portable Operating System Interface) и System V Interface Definition (SVID), и стал основой для последующих версий Single UNIX Specification.
История
Предпосылки создания
К началу 1990-х годов на рынке существовало несколько доминирующих ветвей UNIX: System V (от AT&T) и BSD (от Калифорнийского университета в Беркли). Каждая из них имела собственные API, утилиты и системные вызовы. Разработчики программного обеспечения сталкивались с проблемой переносимости: код, написанный для одной версии, требовал значительной доработки для работы на другой. Кроме того, существовали многочисленные проприетарные версии UNIX от различных производителей (IBM, Hewlett-Packard, Sun Microsystems), каждая из которых добавляла собственные расширения. Попытки стандартизации предпринимались IEEE (стандарт POSIX) и AT&T (SVID), но они не охватывали всех аспектов системы и не были обязательными для всех производителей.
Разработка и принятие
В 1993 году консорциум X/Open, занимавшийся стандартизацией UNIX, начал работу над единым стандартом, который бы объединил POSIX (IEEE Std 1003.1-1990), SVID (System V Interface Definition, Edition 3) и другие спецификации. Проект получил рабочее название «Spec 1170» — число 1170 соответствовало количеству интерфейсов, которые были включены в первоначальный проект (включая системные вызовы, библиотечные функции, команды и утилиты). В 1994 году стандарт был опубликован как X/Open CAE Specification, Issue 4. В 1995 году он был принят как международный стандарт ISO/IEC 9945-1:1996 (частично). В 1997 году The Open Group (преемник X/Open) выпустила версию 2 стандарта, известную как Single UNIX Specification, Version 2. В 2001 году вышла версия 3, которая была объединена с POSIX:2001. В 2004 году — версия 4, в 2008 году — версия 5, а в 2016 году — версия 6 (Single UNIX Specification, Version 4). Название «Spec 1170» исторически закрепилось за первой версией стандарта, хотя в официальных документах The Open Group используется термин «Single UNIX Specification».
Содержание стандарта
Основные компоненты
Spec 1170 определяет три основных компонента операционной системы:
- Системные интерфейсы (System Interfaces): набор системных вызовов (например,
open(),read(),write(),fork(),exec()) и библиотечных функций (например,printf(),malloc(),strcpy()). Они описывают прототипы, возвращаемые значения, коды ошибок и поведение в различных ситуациях. - Команды и утилиты (Commands and Utilities): около 200 стандартных команд, таких как
ls,cp,mv,grep,sed,awk,make,cc(компилятор C). Для каждой команды определены синтаксис, опции, поведение по умолчанию и форматы вывода. - Среда выполнения (Execution Environment): требования к файловой системе (иерархия каталогов, права доступа), управлению процессами, сигналам, потокам (threads), сетевым интерфейсам (сокеты) и локализации (locale).
Ключевые требования
Для соответствия Spec 1170 операционная система должна:
- Реализовывать все обязательные интерфейсы (около 1170 в первой версии, позднее число увеличилось до нескольких тысяч).
- Поддерживать многозадачность, многопользовательский режим и защиту памяти.
- Обеспечивать совместимость на уровне исходного кода (API) и на уровне бинарных файлов (ABI) для приложений, написанных на языке C.
- Иметь файловую систему, соответствующую стандарту (например, поддержка длинных имён файлов, символических ссылок, прав доступа на основе пользователей и групп).
Значение и влияние
Унификация UNIX
Spec 1170 стал важным шагом в стандартизации UNIX. Он позволил производителям операционных систем (IBM, HP, Sun, SGI) заявить о соответствии своих продуктов единому стандарту, что упростило разработку переносимого программного обеспечения. В 1995 году The Open Group начала программу сертификации «UNIX 95» (позднее «UNIX 98», «UNIX 03», «UNIX 05»), основанную на Spec 1170. Операционная система, успешно прошедшая сертификацию, получала право использовать торговую марку «UNIX». Это привело к тому, что многие коммерческие версии UNIX (AIX, HP-UX, Solaris) были приведены к единому стандарту.
Влияние на Linux и другие системы
Хотя Linux не является сертифицированной UNIX (за исключением некоторых коммерческих дистрибутивов, таких как Inspur K-UX и Huawei EulerOS), она была разработана с учётом требований POSIX и Spec 1170. Большинство системных вызовов и утилит Linux совместимы со стандартом, что позволяет переносить приложения между Linux и сертифицированными UNIX-системами с минимальными изменениями. Аналогичная ситуация с BSD-системами (FreeBSD, OpenBSD, NetBSD), которые также стремятся к совместимости с POSIX и SUS, хотя и не проходят официальную сертификацию.
Критика
Некоторые разработчики критиковали Spec 1170 за излишнюю сложность и объём, а также за то, что стандарт закреплял устаревшие или неэффективные интерфейсы (например, gets() в языке C, который был удалён из стандарта только в версии POSIX.1-2008). Кроме того, процесс сертификации был дорогим и требовал значительных ресурсов, что делало его недоступным для небольших проектов и свободных операционных систем. В ответ на это сообщество разработчиков Linux и BSD предпочло неформальную совместимость, а не официальную сертификацию.
Современное состояние
Single UNIX Specification
На 2024 год актуальной версией стандарта является Single UNIX Specification, Version 4 (SUSv4), выпущенная в 2016 году. Она включает в себя POSIX.1-2008 и IEEE Std 1003.1-2008. Стандарт продолжает развиваться: в 2018 году вышло техническое исправление (Technical Corrigendum 1), а в 2023 году — обновление, добавляющее поддержку новых технологий (например, параллельные вычисления, улучшенная работа с временными зонами). Сертификацию по SUSv4 имеют такие операционные системы, как AIX 7.2, HP-UX 11i v3, Solaris 11.4 и некоторые версии macOS (начиная с macOS 10.5 Leopard, хотя Apple официально прекратила сертификацию после macOS 10.15 Catalina).
Наследие Spec 1170
Spec 1170 остаётся важной вехой в истории UNIX. Он не только стандартизировал интерфейсы, но и закрепил модель открытой системы, основанной на единых спецификациях, а не на проприетарных решениях. Благодаря этому стандарту, разработчики получили возможность создавать программное обеспечение, которое работает на различных UNIX-подобных системах с минимальными изменениями. Влияние Spec 1170 ощущается и сегодня: многие современные операционные системы (включая Linux, FreeBSD, macOS) продолжают следовать его принципам, даже если не проходят официальную сертификацию.
Источники
- The Open Group. «Single UNIX Specification». The Open Group Base Specifications Issue 7, 2018 Edition.
- IEEE Std 1003.1-2008. «Standard for Information Technology — Portable Operating System Interface (POSIX)».
- X/Open Company Ltd. «X/Open CAE Specification, Issue 4: System Interfaces and Headers (Spec 1170)». 1994.
- Работа Дж. С. В. (J. S. W.) «История стандартизации UNIX». Журнал «Компьютерные системы», 1996.
- Документация проекта GNU: «POSIX и Single UNIX Specification».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →