Со времени начала развития ОС Unix возникло множество ее версий. Предпринимаются серьезные попытки их унификации, которые уже приносят свои плоды, например основные производители - взаимного согласия по исчерпывающей "Единой Спецификации Unix" (бывшей SPEC 1170), унифицируются основные утилиты и программные интерфейсы. Продолжается обновление API и его окружения всеми поставщиками этой ОС, идет соревнование в разработке и реализации новых стандартов. Однако пока поставщики Unix по-прежнему обеспечивают различные уровни дополнительных возможностей, отличных от возможностей номинального стандарта. Приводимые в статье таблицы содержат сравнение пяти главных полномасштабных коммерческих реализаций ОС Unix: AIX, HP-UX, Solaris, Digital Unix, IRIX и двух реализаций этой операционной системы для суперкомпьютерных архитектур: SPP-UX и UNICOS. Сравнение дано в терминах соответствия стандартам, а, кроме того, для некоторых параметров реализации приведены числовые значения. Дополнительно в таблицы включены данные по NT.

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

  • 64-разрядные вычисления и адресация памяти;
  • многопроцессорная масштабируемость;
  • поддержка сетевых файловых систем NFSv3 и NFSv2;
  • параллельные компиляторы и средства разработки;
  • поддержка стандартов.

Заметим, что все поставщики Unix обеспечили мультипроцессирование гораздо раньше, чем оно появилось в ОС NT, а первые 64-разрядные процессоры, предназначенные для работы с Unix-приложениями, появились за пять лет до того, как станет доступным 64-разрядный процессор Intel P7.

Расширяемость ядра и управление памятью

Первые версии Unix были разработаны AT&T на DEC PDP-7 в 1969 г. Вскоре на PDP-11 были перенесены несколько усовершенствованных версий Unix. Для своего времени эти компьютеры были весьма совершенны, имея сотни килобайт памяти и десятки мегабайт дискового пространства. К середине 80-х годов Unix достиг пределов по числу процессов, файлов и пользователей, одновременно активных на единственной системе. Так было положено начало соревнованию поставщиков аппаратуры, на которой главным образом выполнялся Unix, в масштабируемости своих систем. Их первоначальные усилия были успешными, и усовершенствования, сделанные на этом этапе: динамические модули, улучшенное управление буферной и виртуальной памятью, увеличение числа дескрипторов файлов и т. п., быстро распространились на все рассматриваемые здесь платформы Unix.

Сегодня таким разным приложениям, как гидродинамика и коммерческие базы данных, требуются, помимо других возможностей, высокомасштабируемое симметричное мультипроцессирование и очень большая - 64-разрядная, адресация памяти и файлов, превышающая предел в 2 Гбайт. По мере того как растет размер резидентной памяти типичного Unix, становится важным понижающее масштабирование: чтобы уменьшить требования к памяти, некоторые поставщики помещают части ядра в виртуальную память.

В таблице 1 приведены данные о появлении 64-разрядной аппаратуры и ОС. В результате 10-летней борьбы за выживание компания DEC пришла к 64-разрядному Unix одновременно с 64-разрядной аппаратурой. Ожидается, что другие поставщики затратят от 3 до 5 лет на освоение 64-разрядной аппаратуры и развертывание 64-разрядных ОС и будут, вероятно, следовать примеру компании SGI, создавшей 64-разрядную ОС IRIX, поддерживающую работу одновременно с 32- и 64-разрядными приложениями.

Таблица 1.
Расширяемость ядра и управление памятью.

OC
AIX 4.2
HP-UX 10.1
Solaris 2.5
DIGITAL UNIX 4.0
IRIX 6.2
Windows NT 4.0
Convex SPP-UX
Cray UNICOS V9
64-бит ядро
нет
нет
нет
да
да
нет
нет
да
Адресация памяти приложений
32-бит
32-бит
32-бит
64-бит
32-/64-бит
32-бит
32-бит
64-бит
Вирт. адр. пр-во
2 Гб
3.75 Гб
3.75 Гб
-
2GB/1 Тб
2 Гб
2 Гб
-
Физ. адр. пр-во
4 Гб
-
30 Гб
-
16 Гб
-
-
-
Первый чип 64-бит
-
PA8000
Ultra-SPARC
21064
R4000
Intel P7
PA8000
Cray-1
Дата 64-бит аппаратуры
-
2кв. 96?
4кв. 95
4кв. 92
1кв. 92
4кв. 97
2кв. 96?
76
Дата ОС 64-бит
-
97(e)
98(d)
4кв. 92
4кв. 94
4кв. 97(f)
98?
84(c)
Последняя аппаратура 32-бит
96?
96?
96?
-
4кв. 92
98?
96?
-
Подкачка ядра
да
только данные
только данные
да
нет
нет
-
нет
Загружаемые драйверы
да
нет
да
да
да
нет
нет
нет
Примечание: "-" - данные недоступны или неизвестны;
(c) - собственная 64-разрядная ОС на Cray была доступна в 1976 г. System V UNIX стала доступной на Cray начиная с 1984 г;
(d) - согласно Unigram-X (2/6/96), Sun планирует ввести компоненты 64-разрядного UNIX в 3 этапа. Первый компонент - поддержка 64-разрядного ядра - появился по графику в Solaris 2.5 (середина 96 г.). Комбинированный 32- и 64-разрядный API с файлами до 1 Тбайт должен последовать в начале 1997 г. Третья версия, поддерживающая 64-разрядную виртуальную адресацию, планируется к началу 98 г.;
(e) - в феврале 96 г. HP и SCO объявили план разработки 32- и 64-разрядного UNIX на платформах PA_RISC и Intel, начиная с 1997 г. HP опубликовала подробный план в пресс-релизе от 7/22/96: 128 Гбайт файловая система на HP-UX 10.1 (2/96), 128 Гбайт файлы на HP-UX 10.2 (9/96), 64-разрядная виртуальная адресация в HP-UX 11.0 (середина 97);
(f) - согласно заявлению Microsoft на Comdex (6/4/96), 64-разрядная адресация виртуальной и физической памяти будет доступна, как часть "Cairo" NT на платформе Alpha в конце 1997 г.

Симметричное мультипроцессирование и нити

При симметричном мультипроцессировании (SMP) несколько равноправных процессоров имеют одинаковый доступ к общим ресурсам системы. В среде с разделением времени множество отдельных процессоров выполняют работу, обслуживая разные процессы, выбранные из очереди на исполнение, что увеличивает общую производительность. Другой подход состоит в усложнении компиляторов, позволяющих привлечь к работе над отдельной задачей сразу несколько процессоров. Все производители коммерческих реализаций Unix состязаются в его "симметризации": ядро делится так, чтобы несколько процессов или параллельных нитей в пределах одного процесса могли выполняться на нескольких процессорах с минимальными издержками даже на приложениях, в наибольшей степени загружающих ядро.

Довольно трудно анализировать, насколько реально преуспели различные производители в достижении мультипроцессорной масштабируемости. Дело в том, что большинство производителей публикуют результаты тестов только для одной конфигурации системы или обнародуют несколько результатов, не согласующихся друг с другом: NT как ОС в одном случае, Unix - в другом. Лишь SGI (для тестов NAS) и IBM (для TPC-C) опубликовали ранжированные результаты, позволяющие оценить масштабируемость. Другие производители часто публикуют результаты SPECrate - теста, который не очень информативен (запускается задача, которая проверяет в основном кэш, имеет малое взаимодействие и не загружает ядро).

Таблица 2.
Симметричное мультипроцессирование и нити.

OC
AIX 4.2
HP-UX 10.1
Solaris 2.5
DIGITAL UNIX 4.0
IRIX 6.2
Windows NT 4.0
Convex SPP-UX
Cray UNICOS V9
SMP
да
да
да
да
да
да
да
да
число процессоров
8
14
64
12
36
4 (32 Seq)*
128
32
результаты масштабир. NAS
да (только SP2)
нет
нет
да
94% (16 CPU)
нет
-
-
результаты масштабир. TPC-C
92% (8 CPU)
нет
нет
нет
нет
нет
-
-
Произв. TPC-C (число CPU)
3631 (4)
5621 (12)
11466 (12)
14177 (10)
6314 (16)
3641 (4)
-
-
результаты масштабир. SPECrate
94% (8 CPU)
90% (12 CPU)
99% (20 CPU)
98% (12 CPU)
98% (32 CPU)
нет
-
-
Нити ядра
да
нет
да
да
да (6.2 с React Pro)
да
да
да
Примечание: * Конфигурация из 32 процессоров реализована на Symmetry 5000 winServer компании Sequent. Ядро ОС NT было почти полностью переработано специалистами Sequent.

Файловые системы и управление томами

Файловая система занимает обычно одну или более областей диска, известных как разделы или тома. Всякий раз при перезагрузке системы традиционный Unix проверяет согласование структуры каталогов с действительной структурой диска, используя медленную утилиту fsck.

Современные реализации Unix усовершенствовали традиционную файловую систему: оптимизирован размер блоков, использующихся для хранения файлов на диске и для совместного хранения частичных хвостов файлов. Пять производителей разработали 64-разрядные файловые системы, позволяющие файлам и каталогам превышать традиционные 32-разрядные ограничения. Большинство производителей ввели виртуальные тома - промежуточные звенья между файловой системой и структурой диска. Они позволяют разделам реплицироваться, легко расширяться или делиться на части, к которым возможен параллельный доступ, что ускоряет время обращения к диску - stripping. Некоторые файловые системы обладают возможностью роста on-line, а файлы в них могут быть дефрагментированы, запакованы или распакованы "на лету". В реализациях Digital Unix, SGI IRIX и NT имеется графический интерфейс управления файловой системой. Используя методы иерархического управления данными, файловую систему можно автоматически переселить на более дешевый носитель. В большинстве случаев журналирование заменило утилиту fsck: изменения файловой системы заносятся в журнал, который быстро проигрывается при перезагрузке, что обеспечивает согласованность каталогов со структурой диска. Для повышения производительности могут использоваться экстенты - непрерывные области на диске, выделяемые файлам. В результате, например, XFS (IRIX 6.2) в состоянии гарантировать указанную скорость обмена в реальном времени.

Одна из первых улучшенных файловых систем Unix создана фирмой Veritas. Продукты Veritas - система VxFS и управление томами VxVM - включены в таблицу 3. Сегодня VxFS - стандартная файловая система для HP, а VxFS и VxVM доступны для большинства рассматриваемых OC.

Таблица 3.
Файловые системы.

OC
AIX 4.2
HP-UX 10.1
Solaris 2.5
DIGITAL UNIX 4.0
IRIX 6.2
Windows NT 4.0
Convex SPP-UX
Cray UNICOS V9
Veritas VxFS/VM
Файл. система >2Гбайт
да (64 Гбайт)
да (128 Гбайт)
да (1 Тбайт)
да (1 Тбайт)
да (9m Тбайт)
да (1 Тбайт)
да (9m Тбайт)
да (1 Тбайт)
да* (9m Тбайт)
Файлы >2Гбайт
да (64 Гбайт)
нет (128 Гбайт в 9/96)
нет (1997?)
да (1 Тбайт)
да (9m Тбайт)
да (9m Тбайт)
да (1 Тбайт)
да (9 Тбайт)
да(a) (1 Тбайт)
Журналирование файл. системы
да
да
да (дополн)
да (ФС&данные)
да
да
нет
нет
да
On-line резерв. копирование
да
да
да
да
да
-
-
-
да
Репликация разделов
да
да
да (дополн.)
да (дополн.)
да (дополн.)
да
-
-
да
Разделение разделов
да
да
да (дополн.)
да (дополн.)
да
да
да
да
да
Расширение разделов
да
да
да (дополн.)
да (дополн.)
да
нет
да
да
да
Экстенты
нет
да
да
нет
да
да
да
да
да
Квоты
-
-
-
-
да
-
-
-
-
Гарантир. скорость обмена
нет
нет
нет
нет
да
нет
нет
нет
нет
Дырки в файлах
да
да
да
да
да
нет
да
да
да
Сверхбольшие каталоги
нет
да
нет
нет
да
нет
-
-
да
Симв. связи
да
да
да
да
да
-
да
да
да
On-line рост
да
да
да
да
да
нет
да
-
да
On-line сжатие
нет
да
да
да
нет
нет
да
-
да
On-line дефрагментация
да
да
нет
да (дополн.)
нет
да
да
-
да
Упаковка/распаковка
да
нет
да
нет
нет (XFS) да (EFS)
да
-
-
-
Граф. интерфейс управления файловой системой
нет
нет
нет
да (дополн.)
да
да
нет
нет
да
Иерархическое упр. данными
да
да
нет
да
да
да (DEC)
третьи фирмы
третьи фирмы
-
VxFS/VxVM
VxFS/VxVM
VxFS
VxFS/VxVM
VxVM
нет
нет
нет
нет
-
Примечание: * Veritas поддерживает файлы до 1 Тбайт в зависимости от возможностей ОС; ФС - файловая система.

Сетевое обеспечение

Даже тогда, когда существовало много разных версий Unix, программы для сетевого обеспечения имели много общего, что было вызвано необходимостью работы разных систем друг с другом в неоднородной среде. Сходство сегодня гораздо больше: каждая Unix-система, заслуживающая такого наименования, поддерживает TCP/IP, NFSv2, и почти все - весьма общие собственные сетевые стандарты SNA и DECnet.

Таблица 4.
Сетевое обеспечение.

OC
AIX 4.2
HP-UX 10.1
Solaris 2.5
DIGITAL UNIX 4.0
IRIX 6.2
Windows NT 4.0
Convex SPP-UX
Cray UNICOS V9
NFSv2
да
да
да
да
да
нет (третьи фирмы)
да
да
NFSv3 (64б NFS)
нет
нет
да
да
да
нет (третьи фирмы)
нет
да
AFS
да
да
да
да
да
нет
да
да
DCE Netware
да
да
да
да
да (1.1)
да
да
да
- Server
третьи фирмы
да
третьи фирмы
третьи фирмы
третьи фирмы
нет
-
-
- Client
третьи фирмы
да
третьи фирмы
третьи фирмы
третьи фирмы
да
-
-
- IPX/SPX
третьи фирмы
да
да
третьи фирмы
третьи фирмы
да
-
-
NIS+
нет
нет
да
нет
нет
нет
нет
нет
X.400
третьи фирмы
третьи фирмы
третьи фирмы
третьи фирмы
нет
третьи фирмы
-
-
X.500
нет
нет
нет
третьи фирмы
нет
нет
-
-
PPP
да
-
-
да
да
да
-
-
DHCP
-
-
да
да
да
да
-
-
VRML
да (8/95)
нет
да (8/95)
нет
да
да (12/95)
нет
-
Java
да (12/95)
нет
да (10/95)
нет
да (12/95)
да (12/95)
нет
-

Современная конкуренция в области сетевого обеспечения Unix принимает две формы: быстрая реализация широко распространенных стандартов (например NFSv3, Java, VRML) или реализация возможностей в надежде, что они станут стандартами де-факто (DFS/DCe или NetWare).

Переносимость приложений

Все основные производители Unix согласились с давно введенными стандартами (POSIX.1 и FIPS 151-2), обеспечивающими переносимость приложений. Компании DEC и HP лидируют в принятии Unix 95 (SPEC 1170), за ними следуют SGI, Cray и IBM, а Microsoft частично согласна со всеми важными стандартами по переносимости приложений POSIX, FIPS или X/Open.

 


Краткий перечень основных стандартов из мира Unix:

 

  • POSIX.1: стандарт IEEE, определяющий интерфейс ОС, обеспечивает переносимость исходного кода приложений;
  • POSIX.2: стандарт IEEE, определяющий интерфейсы для приложений, требующих услуг shell и соответствующих утилит;
  • POSIX.1b: усовершенствование POSIX.1 для реального времени (включая стандартные интерфейсы для I/O, доступа к файловой системе, управления процессами);
  • POSIX.1c: усовершенствование POSIX.1 для приложений с множеством потоков управления (нитей);
  • FIPS 151-2: стандарт правительства США для переносимых интерфейсов программ, посуществу аналогичный POSIX.1.;
  • SVID3 (System V Interface Definition Volume 3): документ AT&T, определяющий интерфейсы SVR4 для программистов и пользователей, верифицируемый System V Verification Suite (SVVS);
  • XPG4 Base Profile: спецификация X/Open первого уровня для переносимости приложений, верифицируемая комплектами тестов X/Open VSX и Plum Hall или Perennials C и определенная тремя X/Open спецификациями:
    • XPG4 Internationalized System Calls and Libraries (объединение POSIX.1 и FIPS 151-2);
    • XPG4 Commands and Utilities;
    • XPG4 C Language.
  • XPG4 Base 95 Profile: спецификация стандартов X/Open второго уровня. Версия 2 спецификации XPG4 Commands and Utilities требует соответствия POSIX.2, верифицируемого комплектами тестов X/Open VSC4;
  • XPG4 Unix Profile: спецификация стандартов X/Open верхнего уровня, которая добавляет комплекты тестов (VSU4, VST4) для:
    • внешних вызовов и библиотек;
    • транспортных средств XTI;
    • сокетов (socets);
    • терминальных интерфейсов.
  • Unix 93: маркировка X/Open, получаемая после верификации SVVS и XPG4 Base Profile;
  • Unix 95: маркировка X/Open, указывающая на соответствие с Single Unix Specification и верифицируемая всеми комплектами тестов XPG4 Unix Profile. Single Unix Specification предназначена для обеспечения переносимости приложений между Unix 95-совместимыми системами. Single Unix Specification - объединение предшествующих стандартов POSIX, FIPS и X/Open, к которому добавлены интерфейсы, найденные среди лучших 50 приложений Unix и 3500 дополнительных прикладных модулей;
  • AES: устаревшая OSF Application Environment Specification, подытоженная процессом X/Open XPG4.

 


Таблица 5.
Переносимость приложений.

 

OC
AIX 4.2
HP-UX 10.1
Solaris 2.5
DIGITAL UNIX 4.0
IRIX 6.2
Windows NT 4.0
Convex SPP-UX
Cray UNICOS V9
Базовое ядро
SVR3
SVR3
SVR4
Mach 2.5
SVR4
-
Mach 3
SVR3
Posix.1
да
да
да
да
да
"да" (без mmap/networking)
да
да
Posix.2
да
да
да
да
да
3-и(b)фирмы
да
да
Posix.1b
да
да
да
да
да
нет
нет
-
Posix.1c
в будущем
да
да
да
да
нет
нет
да
FIPS 151-2
да
да
да
да
да
да
да
да
SVID3
да
да
да
да
да
нет
да
да
XPG4 Base
да
да
да
да
да
нет(b)
-
да
XPG4 Base 95
да
нет
нет
да
да
нет(b)
нет
да
XPG4 UNIX
нет
да
нет
да
нет
нет(b)
нет
нет
UNIX 93
да
да
да
да
да
нет
нет
да
UNIX 95
да(a)
да(a)
в будущем
да(a)
в будущем
нет(b)
нет
в будущем
OSF AES
да
да
нет
да
да
нет
да
-
Примечание: (a) - HP-UX 10.1 и Digital UNIX 4.0 получили марку UNIX 95 1/26/96. IBM AIX 4.2 получила марку UNIX 95 5/23/96;
(b) - Softway Systems Inc. продает интерфейсы POSIX 1003.1 и 1003.2 для NT за 199 долл. Эта компания объявила план по обеспечению маркировки UNIX 95 для NT.

Пользовательский интерфейс и графика

Некоторые приложения становятся стандартами благодаря широкому принятию производителями (X11) или успеху у конечных пользователей (Motif). Digital, IBM и Sun определили общую среду рабочего стола (CDE), объединив X11, Motif и Display PostScript со средствами desktop от Sun. SGI обеспечивает интерфейс (Indigo Magic), содержащий эти базовые технологии, но добавляет к нему мультимедиа и административные сервисные программы.

Таблица 6.
Пользовательский интерфейс и графика.

OC
AIX 4.2
HP-UX 10.1
Solaris 2.5
DIGITAL UNIX 4.0
IRIX 6.2
Windows NT 4.0
Convex SPP-UX
Cray UNICOS V9
X11
да (R5)
да (R6)
да (R5)
да (R6)
да (R6)
нет (Win 95)
да (R5)
да (R5)
Motif
да (1.2)
да (1.2.5)
да (1.2.2)
да (1.2.3)
да (1.2.4)
нет (Win 95)
да
да (1.2)
Display PostScript
да
да
да
да
да
нет
нет
-
ToolTalk
да
да
да
да
да
нет
да
-
CDE
да
да
да
да
третьи фирмы(a)
нет (Win 95)
да
-
OpenGL
да
да
да
да
да
да
нет
да
GKS
да
да
да
да
да
нет
да
-
PHIGS
да
да
да
да
да
нет
да
-
PEX
да
да
да
да
да
нет
да
-
Unicode
да
-
-
да
нет
да
-
-
Примечание: (а) - компания TriTeal реализовала CDE для IRIX и других стандартных платформ. Если заказчику нужна подлинная совместимость, то лучше использовать версию CDE от TriTeal на всех системах.

Среда разработки

Современная среда разработки должна обеспечивать следующие возможности:

  • нити в ядре и в приложениях, удовлетворяющие POSIX;
  • компиляторы со средствами распараллеливания;
  • поддержка объектов, основанная на стандартах (Unix CORBA, Microsoft OLE/OLE2).

Таблица 7.
Разработка программ.

OC
AIX 4.2
HP-UX 10.1
Solaris 2.5
DIGITAL UNIX 4.0
IRIX 6.2
Windows NT 4.0
Convex SPP-UX
Cray UNICOS V9
Нити в приложениях
да
да
да
да
да
да
да
да
Архитектура нитей
1:1
M:N
M:N
M:N
M:N
1:1
-
-
Posix.1c нити
в будущем
да
да
да
да
нет
нет
да
Нити в ядре
да
нет
да
да
да
да
да
да
Параллельный Fortran 77
(лишь SP2)
нет
да
да
да
нет
да
да
Fortran 90
-
нет
да
да
да
третьи фирмы
нет
да
Параллельный Си
(лишь SP2)
нет
-
-
да
нет
да
да
Параллельный отладчик
да (pdbx)
нет
да (debug MT)
да (dbx)
да
нет
да (Cxdb)
да (TotalView)
CORBA
да
да
да
да
да (OEM)
нет (OLE)
-
-

Реальное время

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

Системы реального времени - это традиционная ниша на рынке. Компании Concurrent (ранее Perkin-Elmer), Encore (ранее Gould) и Harris доминировали на этом сегменте в течение ряда лет, но теперь уступают свои позиции (например Concurrent и Harris объявили о своем слиянии). Сегодня в этой области конкурируют SGI и DEC, которая предлагала некогда доминирующую в этой области машину PDP-11.

Таблица 8.
Реальное время.

OC
AIX 4.2
HP-UX 10.1
Solaris 2.5
DIGITAL UNIX 4.0
IRIX 6.2
Windows NT 4.0
Convex SPP-UX
Cray UNICOS V9
Произвольное вытеснение
да
нет
да
да
да
да
-
-
Точное управление приоритетами
да
да
да
да
да
нет
да
да
Неуменьшающиеся приоритеты
да
да
да
да
да
да
да
да
Блокировка страниц памяти
да
да
да
да
да
да
да
да
Изоляция CPU
-
-
нет
-
да
нет
-
-
Диспетчеризация в реальном времени
да
да
да
да
да
да
да
да
Экстент файловой системы
нет
нет
да
да
да
да
да
да
Гарантир. скорость обмена
нет
нет
нет
 

Евгений Хухлаев — ИПМ им. М.В.Келдыша РАН, Москва.