В 1996 году консорциум X/Open объединился с Open Software Foundation (OSF), в результате чего был сформирован консорциум The Open Group. В настоящее время в The Open Group, где продолжается разработка стандартов API, входят практически все компании или организации, имеющие отношение к системам UNIX.
OSF был одним из двух консорциумов поставщиков, сформировавшихся в ходе UNIX-войн в конце 1980-х годов. Кроме прочих, в него входили Digital, IBM, HP, Apollo, Bull, Nixdorf и Siemens. OSF был сформирован главным образом в ответ на угрозы, вызванные бизнес-альянсом AT&T (изобретателей UNIX) и Sun (наиболее мощного игрока на рынке рабочих станций под управлением UNIX). В свою очередь, AT&T, Sun и другие компании сформировали конкурирующий консорциум UNIX International.
1.3.4. SUSv3 и POSIX.1-2001
Начиная с 1999 года IEEE, Open Group и ISO/IEC Joint Technical Committee 1 объединились в Austin Common Standards Revision Group (CSRG, http://www.opengroup.org/austin/) с целью пересмотра и утверждения стандартов POSIX и Single UNIX Specification. (Свое название Austin Group получила потому, что ее первое заседание состоялось в городе Остин, штат Техас, в сентябре 1998 года.) В результате этого в декабре 2001 года был одобрен стандарт POSIX 1003.1-2001, иногда называемый просто POSIX.1-2001 (который впоследствии был утвержден в качестве ISO-стандарта ISO/IEC 9945:2002).
POSIX 1003.1-2001 заменил собой SUSv2, POSIX.1, POSIX.2 и ряд других более ранних стандартов POSIX. Этот стандарт также известен как Single UNIX Specification версии 3, и ссылки на него в книге будут в основном иметь вид SUSv3.
Базовая спецификация SUSv3 состоит почти из 3700 страниц, разбитых на следующие четыре части.
• Base Definitions (XBD). Включает в себя определения, термины, положения и спецификации содержимого файлов заголовков. Всего предоставляются спецификации 84 файлов заголовков.
System Interfaces (XSH). Начинается с различной полезной справочной информации. В основном в ней содержатся спецификации разных функций (реализуемых либо в виде системных вызовов, либо в виде библиотечных функций в конкретной реализации UNIX). Всего в нее включено 1123 системных интерфейса.
Shell and Utilities (XCU). В этой части определяются возможности оболочки и различные команды (утилиты) UNIX. Всего в ней представлено 160 утилит.
• Rationale (XRAT). Включает в себя текстовые сведения и объяснения, касающиеся предыдущих частей.
Кроме того, в SUSv3 входит спецификация X/Open CURSES Issue 4 версии 2 (XCURSES), в которой определяются 372 функции и три файла заголовков для API curses, предназначенного для управления экраном.
Всего в SUSv3 описано 1742 интерфейса. Для сравнения, в POSIX.1-1990 (с FIPS 151-2) определено 199 интерфейсов, а в POSIX.2-1992 — 130 утилит.
Спецификация SUSv3 доступна по адресу http://www.unix.org/version3/online.html. Реализации UNIX, сертифицированные в соответствии с требованиями SUSv3, имеют право называться UNIX 03.
В результате проблем, обнаруженных с момента одобрения исходного текста SUSv3, в него были внесены различные незначительные правки и уточнения. В итоге появилось техническое исправление номер 1 (Technical Corrigendum Number 1), уточнения из которого были внесены в редакцию SUSv3 от 2003 года, и техническое исправление номер 2 (Technical Corrigendum Number 2), уточнения из которого добавлены в редакцию 2004 года.
POSIX-соответствие, XSI-соответствие и XSI-расширение
Исторически стандарты SUS (и XPG) полагались на соответствующие стандарты POSIX и были структурированы как их функциональные расширенные варианты. Поскольку в стандартах SUS определялись дополнительные интерфейсы, эти стандарты сделали обязательными многие интерфейсы и особенности поведения, считавшиеся необязательными в POSIX.
С некоторыми нюансами эти различия сохраняются в POSIX 1003.1-2001, являющемся одновременно стандартом IEEE и Open Group Technical Standard (то есть, как уже было отмечено, он представляет собой объединение раннего POSIX и SUS). Этот документ определяет два уровня соответствия.
• Соответствие POSIX: задает основной уровень интерфейсов, который должен предоставляться реализацией, претендующей на соответствие. Допускает предоставление реализацией других необязательных интерфейсов.
• Соответствие X/Open System Interface (XSI): чтобы соответствовать XSI, реализация должна отвечать всем требованиям соответствия POSIX, а также предоставлять ряд интерфейсов и особенностей поведения, которые считаются для него необязательными. Реализация должна достичь этого уровня, чтобы получить от Open Group право называться UNIX 03.