Single UNIX Specification

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:40, 23 декабря 2018.

Single UNIX Specification (SUS) – Единая спецификация UNIX – семейство стандартов UNIX, согласно которым ОС, удовлетворяющая требованиям, указанным в данных стандартах, может называться UNIX-подобная ОС. Разработкой и поддержкой занимается Austin Group, опираясь на разработки IEEE и The Open Group. «UNIX» является зарегистрированной торговой маркой организации The Open Group.

История

История UNIX начинается еще в 1969 году, когда Кен Томпсон, Деннис Ритчи и другие начали работать PDP-7 в Bell Labs и над тем, что должно было стать UNIX.

Первая версия в 1971 году имела ассемблер для PDP-11/20, файловую систему, fork(). Он был использован для обработки патентованных текстов..

В 1972 году первые установки были ограничены 3 пользователями, не обладали защитой памяти и максимальный поддерживаемый диск объемом 500 КБ.

В 1973 было четвертое издание, которое переписано на C. Это сделало ее переносимым и изменило историю ОС.

В 1975 вышла 6-я версия, которая стала первым изданием, широко доступное за пределами Bell Labs. Первая версия BSD (1.x) была основана из V6.

В 1979 появилась 7-я версия, в которую входили язык C, UUCP и Bourne shell. Также была портирован на VAX, а ядро ​​весило уже более 40 килобайт.

В 1980 Microsoft представил Xenix. Одновременно с ним, 32V и 4BSD были представлены миру.

В 1982 AT&T UNIX System Group (USG) представила миру System III – первый публичный выпуск за пределами Bell Laboratories. Вместе с тем, на рынок вышли SunOS 1.0, HP-UX и Ultrix-11.

В 1983 Computer Research Group, UNIX System Group (USG) и другие объединились в UNIX System Development Lab. AT&T анонсировала UNIX System V, при этом количество установок насчитывало 45 000.

В 1984 году Калифорнийский университет в Беркли выпускает 4.2BSD, в котором появился TCP/IP. Начал формироваться X/Open.

В 1984 появился System V Release 2. На этот момент в мире насчитывается 100 000 установок UNIX.

В 1986 выпущен 4.3BSD, который включал сервер имен в Интернете. Одновременно с этим, появляется SVID, NFS, объявлен AIX. Установленных систем – 250000.

В 1987 System V Release 3, включая STREAMS, TLI, RFS. Уже насчитывается 750 000 установок UNIX.

В 1988 опубликован POSIX.1. Основаны Open Software Foundation (OSF) и UNIX International (UI). Начались продажи Ultrix 4.2.

В 1989 AT&T UNIX Software Operation сформировалась в рамках подготовки к отделению группы разработчиков UNIX. Начались продажиMotif 1.0.

В 1989 появляется UNIX System V Release 4, объединяющая System V, BSD и Xenix. Установленная база 1,2 млн.

В 1990 X/Open запускает бренд XPG3. OSF/1 дебютирует. Bell Labs начинает продажу Plan 9.

В 1991 UNIX System Laboratories (USL) становится компанией, контрольный пакет акций которой принадлежит AT&T. Линус Торвальдс начинает разработку Linux. Solaris 1.0 дебютирует.

В 1992 USL выпускает UNIX System V Release 4.2 (Destiny). В октябре X/Open запускает бренд XPG4. 22 декабря Novell объявляет о намерении приобрести USL. Начинаются продажи Solaris 2.0 и HP-UX 9.0.

В 1993 Беркли выпускает 4.4BSD. 16 июня Novell приобретает USL. Novell решает выйти из бизнеса UNIX. Вместо того, чтобы продавать бизнес как единое целое, Novell передает права компании X/Open на товарный знак UNIX и спецификацию. В декабре Novell выпустила SVR4.2MP, финальную версию System V для USL OEM.

В 1994 BSD 4.4-Lite устранил весь код, заявленный как нарушающий права USL/Novell. Как владелец товарного знака UNIX, X/Open представляет Единую спецификацию UNIX, которая отделяет товарный знак UNIX от любого фактического потока кода, что позволяет использовать несколько реализаций.

В 1995 X/Open представляет программу брендинга UNIX 95 для реализации Единой спецификации UNIX. Novell продает бизнес UnixWare компании SCO. Представлен Digital UNIX. Начинаются продажи UnixWare 2.0. OpenServer 5.0 дебютирует.

В 1996 Open Group создается как слияние Open Software Foundation (OSF) и X/Open. Поставляются UnixWare 2.1, HP-UX 10.20 и IRIX 6.2.

В 1997 Open Group представляет версию 2 единой спецификации UNIX, включая поддержку реального времени, потоков, 64-битной архитектуры и более крупных процессоров. Спецификация сделана свободно доступной в Интернете. Начинаются продажи IRIX 6.4, AIX 4.3 и HP-UX 11.

В 1998 Open Group представляет семейство брендов UNIX 98, включая Base, Workstation и Server. Появляются первые UNIX 98 зарегистрированные продукты, поставляемые Sun, IBM и NCR. Движение Open Source начинает распространяться с объявлениями Netscape и IBM. Поставляются UnixWare 7 и IRIX 6.5.

В 1999 Open Group и IEEE начинают совместную разработку пересмотра POSIX и Единой спецификации UNIX. Начинаются продажи Tru64 UNIX.

В 2001 версия 3 единой спецификации UNIX объединяет IEEE, POSIX, Open Group. Стоимость закупок открытых систем со ссылкой на бренд UNIX превышает 55 миллиардов долларов.

В 2003 Основные тома версии 3 Единой спецификации UNIX утверждены в качестве международного стандарта.[Источник 1]

В 2008 появляется 4 версия единой спецификации UNIX.

В 2013 ревизия POSIX:2008, добавлена модель управления доступом на основе ролей.

В 2016 вышел стандарт IEEE Std 1003.1-2008, 2016 Edition и 4 версия единой спецификации UNIX 2016 Edition.

В январе 2018 года была выпущена susv4-2018. Она включает в себя единую спецификацию UNIX версии 4 TC1 и TC2 и технически идентичен изданию 2016 года.

Версии стандарта

Single UNIX Specification версии 1

В основу стандарта SUSv1 положен стандарт XPG4v2, к которому добавлены два других стандарта: X/Open Curses Issue 4 version 2 и X/Open Networking Service (XNS) Issue 4. В SUSv1 описывались исторические интерфейсы BSD, широко использовавшиеся на тот период в прикладных приложениях. Операционные системы, соответствующие стандарту SUSv1, могли пройти сертификацию по стандарту UNIX 95.

Single UNIX Specification версии 2

Стандарт SUSv2 был выпущен в 1997 году и представлял из себя улучшенный вариант SUS. В основу нового стандарта лёг стандарт XPG5. В SUSv2 была добавлена поддержка стандартов POSIX.1b-1993, POSIX.1c-1996, и ISO/IEC 9899 1-й поправки (язык Си). Соответствие стандарту SUSv2 является основным требованием для сертификации по стандартам UNIX 98, UNIX 98 Workstation и UNIX 98 Server.

Single UNIX Specification версии 3

Стандарт SUSv3 был разработан в 2001-м году и являлся объединением стандартов POSIX.1, POSIX.2 и SUS в единый документ. В основу стандарта положен POSIX 1003.1-2001, дополненный стандартом X/Open Curses, Issue 4, версии 2. SUSv3 является основой стандартов UNIX 03 и UNIX 03 Server.

Single UNIX Specification версии 4 Стандарт SUSv4 основывается на стандарте POSIX.1-2008 с добавлением стандарта X/Open Curses, Issue 7. Соответствие стандарту SUSv4 является основным условием для сертификации операционной системы по стандарту UNIX V7, в котором в качестве опции указана поддержка управления доступом на основе ролей.[Источник 2]

Общие каталоги и устройства

Единая спецификация UNIX описывает среду переносимости приложений и, как таковую, определяет определенный минимальный набор каталогов и устройств, которые приложения регулярно используют. Определены следующие каталоги:

  • / Корневой каталог файловой системы.
  • /dev Содержит устройства /dev/console, /dev/null и /dev/tty.
  • /tmp Каталог, в котором приложения могут создавать временные файлы.

Структура каталогов не затрагивает такие проблемы управления системой, как организация учетных записей пользователей или установка пакетов программного обеспечения.

Переменные среды

Когда программа запускается в ОС, среда становится доступной для нее. Среда состоит из строк вида name = value, где name - это имя, связанное с переменной окружения, а его значение представлено символами в значении. Системы UNIX традиционно передают информацию программам через механизм переменных среды. В данной спецификации для именования переменных среды используются только заглавные буквы, цифры и символы подчеркивания, резервируя для приложений пространство имен, содержащее строчные буквы.

Ряд утилит и функций, определенных в Единой спецификации UNIX, используют переменные среды для изменения своего поведения. Раздел «ОКРУЖАЮЩАЯ СРЕДА» справочной страницы утилиты описывает любые соответствующие переменные среды. Многие переменные среды, перечисленные далее, изменяют поведение более чем одной утилиты. Переменные среды, согласно данному стандарту: ARFLAGS, IFS, MAILPATH, PS1, CC, LANG, MAILRC, PS2, CDPATH, LC_ALL, MAKEFLAGS, PS3, CFLAGS, LC_COLLATE, MAKESHELL, PS4, CHARSET, LC_CTYPE, MANPATH, PWD, COLUMNS, LC_MESSAGES, MBOX, RANDOM, DATEMSK, LC_MONETARY, MORE, SECONDS, DEAD, LC_NUMERIC, MSGVERB, SHELL, EDITOR, LC_TIME, NLSPATH, TERM, ENV, LDFLAGS, NPROC, TERMCAP, EXINIT, LEX, OLDPWD, TERMINFO, FC, LFLAGS, OPTARG, TMPDIR, FCEDIT, LINENO, OPTERR, TZ, FFLAGS, LINES, OPTIND, USER, GET, LISTER, PAGER, VISUAL, GFLAGS, LOGNAME, PATH, YACC, HISTFILE, LPDEST, PPID, YFLAGS, HISTORY, MAIL, PRINTER, HISTSIZE, MAILCHECK, PROCLANG, HOME, MAILER, PROJECTDIR.

Грамматика YACC

Единая спецификация UNIX описывает некоторые функциональные возможности и «маленькие» языки с грамматикой yacc. Утилита yacc (Yet-Another-Compiler-Compiler) используется для создания синтаксических анализаторов языка, а синтаксис входного языка yacc предназначен для описания языков. Из-за этого и из-за своей известности в сообществе он использовался в Единой спецификации UNIX для описания Shell, языка awk, языка bc, языка определения языкового стандарта, базовых и расширенных регулярных выражений и исходных форматов terminfo.

Эта грамматика является представлениями языков, которые они описывают, при этом:

  • Они не являются полными грамматиками ввода для самого yacc.
  • Они не основаны ни на каких существующих реализациях, и при этом они не были проверены как таковые.
  • Если бы эти частичные грамматики были завершены, нет никаких гарантий, что они являются наиболее эффективным методом определения соответствующих языков для обработки в yacc.

Регулярные выражения

Основные регулярные выражения: csplit, ed, ex, expr, grep, more, nl, pax, sed, vi

Расширенные регулярные выражения: awk, grep -E, lex

Функции regcomp() и regexec() реализуют регулярные выражения, как определено в Единой спецификации UNIX.

Доступ к файлам

Единая спецификация UNIX описывает взаимодействие символических ссылок, которые могут влиять на доступ к файлам в файловой системе. Поведение символических ссылок полностью определяется в отношении их создания и использования через соответствующие интерфейсы XSH, такие как lchown (), lstat (), readlink (), realpath () и symlink (), а также разрешение пути. Поведение также определено относительно утилит, описанных в XCU.

Интернационализация

В Единой спецификации UNIX имеется богатый набор интерфейсов для поддержки разработки интернационализированных приложений. Интернационализация относится к разработке приложения без предварительного знания языка, культурной информации или схемы кодирования набора символов, которая будет использоваться в среде выполнения. Приложение отвечает соответствующим образом во время выполнения для культурных или специфических для региона условий.

Локализация - это процесс создания базы данных о культуре и коде в системе таким образом, чтобы к ней можно было получить доступ. Это метод, с помощью которого locales создаются таким образом, чтобы интернационализированные программы могли получить доступ к соответствующей информации.

При структурировании приложения для поддержки нескольких культур необходимо учитывать ряд факторов:

  • Специфичные для культуры данные (например, дата, число и денежные форматы) должны быть определены в locales, с соответствующими инструментами и интерфейсами, доступными для создания и доступа к информации.
  • Необходимо предусмотреть обработку текстовых строк в программах и управление каталогами этих строк для нескольких естественных языков.
  • Для управления текстовыми данными, которые не представлены в виде одного байта на символьные форматы, требуются многобайтовые и широкие интерфейсы обработки.
  • Должны поддерживаться инструменты преобразования наборов кодов.

Существуют утилиты для поддержки определения и отображения locales (localedef и locale). Программные интерфейсы существуют для доступа к данным, относящимся к locale, а другие были расширены, так что все проверки и манипуляции, выполняемые с символами и строками, могут выполняться с широкими символами и строками с широкими символами. Существуют интерфейсы для доступа к каталогам строк сообщений (catopen (), catgets () и catclose ()) и инструмент для их определения (gencat). Преобразование кодового набора может быть выполнено на уровне утилит (iconv) и программ (iconv_open (), iconv () и iconv_close ()). Начиная с 4 версии SUS, появилось средство для обработки нескольких одновременных локалей (newlocale (), duplocale (), uselocale () и варианты существующих функций с именами, заканчивающимися на _l; например, isalnum_l ()).[Источник 3]

Источники

  1. The Single UNIX® Specification History & Timeline // The Open Group [1995–2018]. Дата изменения: 01.01.2004. URL: http://www.unix.org/Posters/download/unix_posterA3_Screen.pdf (Дата обращения: 23.12.2018).
  2. UNIX Certification -- The Brand // the Open Group [1995-2018]. Дата изменения: 18.02.2016. URL: http://www.unix.org/what_is_unix/the_brand.html (Дата обращения: 23.12.2018).
  3. The Single UNIX Specification, Version 4 // the Open Group [1995-2018]. Дата изменения: 01.02.2018. URL: http://www.unix.org/version4/overview.html (Дата обращения: 23.12.2018).