Со времени начала развития ОС 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.
Расширяемость ядра и управление памятью.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Примечание: "-" - данные недоступны или неизвестны;
- (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.
Симметричное мультипроцессирование и нити.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Примечание: * Конфигурация из 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.
Файловые системы.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Примечание: * Veritas поддерживает файлы до 1 Тбайт в зависимости от возможностей ОС; ФС - файловая система.
Сетевое обеспечение
Даже тогда, когда существовало много разных версий Unix, программы для сетевого обеспечения имели много общего, что было вызвано необходимостью работы разных систем друг с другом в неоднородной среде. Сходство сегодня гораздо больше: каждая Unix-система, заслуживающая такого наименования, поддерживает TCP/IP, NFSv2, и почти все - весьма общие собственные сетевые стандарты SNA и DECnet.
Таблица 4.
Сетевое обеспечение.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Современная конкуренция в области сетевого обеспечения 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.
Переносимость приложений.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Примечание: (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.
Пользовательский интерфейс и графика.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Примечание: (а) - компания TriTeal реализовала CDE для IRIX и других стандартных платформ. Если заказчику нужна подлинная совместимость, то лучше использовать версию CDE от TriTeal на всех системах.
Среда разработки
Современная среда разработки должна обеспечивать следующие возможности:
- нити в ядре и в приложениях, удовлетворяющие POSIX;
- компиляторы со средствами распараллеливания;
- поддержка объектов, основанная на стандартах (Unix CORBA, Microsoft OLE/OLE2).
Таблица 7.
Разработка программ.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Реальное время
Работа в условиях реального времени требует, чтобы ОС адекватно реагировала на события во внешнем мире, для чего необходимы, помимо всего прочего, быстрая реакция на прерывания и снижение издержек при их обработке. Быструю реакцию на прерывания обеспечивает произвольное вытеснение процессов. Изоляция процессоров позволяет процессам на многопроцессорной машине полностью абстрагироваться от вновь возникающих прерываний - при этом необходимо обеспечить очень точное управление приоритетами. Включение в ОС возможности блокировки памяти помогает избежать задержек, вызванных подкачкой необходимой страницы, а выделение заранее непрерывного дискового пространства под файлы уменьшает издержки при их расширении.
Системы реального времени - это традиционная ниша на рынке. Компании Concurrent (ранее Perkin-Elmer), Encore (ранее Gould) и Harris доминировали на этом сегменте в течение ряда лет, но теперь уступают свои позиции (например Concurrent и Harris объявили о своем слиянии). Сегодня в этой области конкурируют SGI и DEC, которая предлагала некогда доминирующую в этой области машину PDP-11.
Таблица 8.
Реальное время.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Евгений Хухлаев — ИПМ им. М.В.Келдыша РАН, Москва.