Хроника прошедшего года
Новые стандарты
От мала до велика

Существенные изменения, происходящие сегодня в архитектуре компьютеров, сказались и на судьбе развития операционных систем. Еще год назад трудно было предсказать столь быстрый прогресс 64-разрядных ОС. Наиболее знаменательным событием стало появление спецификаций X/Open, направленных на создание единого стандарта на системы, работающие со сверхбольшими объемами оперативной и дисковой памяти. Год назад при разговоре о 64-разрядных ОС вопрос формулировался следующим образом: "А пришло ли их время?" или сводился к чисто академическим рассуждениям о том, какие системы следует к ним относить.

Первые 64-разрядные ОС по существу были таковыми только частично: адресуемое виртуальное адресное пространство процессоров колебалось от 40 до 52 разрядов, полностью 64-разрядные компьютерные системы были представлены только Digital и MIPS. Промежуточными были и решения по работе с файловыми системами.

Хроника прошедшего года

Если в области аппаратных решений проблем уже тогда не было (почти для всех семейств микропроцессоров была разработана 64-разрядная архитектура), то отсутствие стандартов, системного программного обеспечения и реальных приложений во многом сдерживало применение этих ОС. Прошел год и на Cebit'96 уже вся программа одной только компании Digital была буквально пронизана идеями, напрямую связанными с решениями по работе с 64-разрядными средами. Собственно сам лозунг, под которым проходила экспозиция - "Route 64 - Highway to the Future", - однозначно определял стратегию движения фирмы и ее взгляды на тенденции развития информационных технологий. В "обойме" решений DEC были машины, на которых предполагается "ездить по магистрали 64" - это AlphaStation 600. Они демонстрируют весьма убедительные результаты при работе с VLM (Very Large Memory) приложениями Oracle. Начинка этих машин - в виде Digital Unix и NT, работающих на кластерных конфигурациях.

В борьбу на рынке 64-разрядных систем вступил и "Голубой гигант". Как известно, процессоры MIPS/Silicon Graphics уже несколько лет имеют 64-разрядную архитектуру, Digital выпускает все новые поколения 64-разрядных чипов Alpha. IBM же намерена выпустить 64-разрядные продукты в 1997 году, причем этот шаг главным образом объясняется не актуальностью научных применений, а требованиями коммерческого сектора рынка.

Компания SunSoft недавно объявила о 64-разрядной версии Solaris - операционной среды, предназначенной для работы с масштабируемыми решениями корпоративного уровня и приложений, распределенных на Internet. В течение этого года продукт станет достоянием общественности, а пока предварительные наброски средств работы с большой разрядностью уже включены в Solaris 2.5. Сегодня Solaris работает на 64-разрядном микропроцессоре UltraSPARC. Он способен оперировать с 64-разрядной арифметикой и поддерживает файловую систему емкостью в 1 Тбайт. Шагая по пути реализации полностью 64-разрядных систем, SunSoft разрабатывает средства поддержки асинхронной передачи длинных слов между оперативной и дисковой памятью. К середине этого года намечено включение в ОС аппарата поддержки работы с оперативной памятью в 3,75 Гбайт на процессор. Предполагается, что Solaris будет поддерживать работу с файлами размером до 1 Тбайт. Это, по всей вероятности, произойдет в начале 1997 года. Со временем размер файлов достигнет 9 Тбайт. В 1998 ОС станет использовать полностью 64-разрядную адресацию виртуального пространства.

Компания Santa Cruz Operation объявила о версии SCO UnixWare 2.1, которая предназначена для работы с корпоративными серверами, построенными на очень расширенных, по сегодняшним оценкам, Intel-платформах. Эта версия, кроме того, - своеобразный трамплин к 64-разрядному клону UNIX, обладающему к тому же возможностями работы с высокоскоростными сетями и различными протоколами, а также динамическими средствами управления массивами RAID в серверных применениях. В связке с SCO выступает и HP. Результатом такой кооперации стала концепция Unveil Next Generation UNIX System Technology Stream, которая должна стать основой создания распределенных UNIX-систем. Отличительная особенность этого проекта - архитектура 3-D (3DA), обеспечивающая плавный переход с 32-х на 64-разрядные приложения. Предполагается, что этот проект, который стартовал в начале этого года, будет завершен в 1997 году. К тому времени уже должны появиться первые результаты совместных разработок в области микропроцессорной технологии PA-RISC/Intel Pentium. Другими словами, все готовы вступить в игру, но у нее нет правил.

Не секрет, что несмотря на декларируемую приверженность стандартам в области Unix, ряд нареканий вызвали отклонения от общепризнанных спецификаций в различных клонах ОС. Поэтому многие аналитики рассматривали появившиеся в середине прошлого года предложения X/Open по расширению спецификаций UNIX SPEC на 64-разрядные системные среды как реальную попытку унификации ОС и объединения совместных усилий всех разработчиков.

Новые стандарты

Предложения регламентируют спецификации, позволяющие разработчикам мигрировать с 32-х на 64-разрядные комплексы следующего поколения и ускорить создание переносимых приложений, способных работать на уже достаточно многочисленных 64-разрядных платформах. Ядром этих предложений стали спецификации X/Open Single UNIX Specification (ранее известные как SPEC1170), из которых были удалены главы, регламентирующие размер пространства данных в прикладных интерфейсах. Рабочая группа договорилась также об общих спецификациях на 64-разрядную модель программирования - LP64. Кроме того, тогда же были внесены предложения по расширениям POSIX. В состав рабочей группы X/Open входят представители Digital, Hewlett-Packard, IBM, Intel, Novell, NCR (ранее AT&T GIS), Santa Cruz Operation, SunSoft и X/Open, а все технические подробности по вышеупомянутым спецификациям можно почерпнуть из домашней страницы X/Open, размещенной на сервере www.xopen.org.

Сегодня есть уже три альтернативных варианта на место стандартной, общепризнанной 64-разрядной модели программирования. Речь идет о LP64, ILP64 и LLP64. Большинство процессоров, представленных сегодня на рынке, давно уже способны работать с адресным пространством, превышающим 4 Гбайт. Теперь остается лишь договориться о единой модели программирования.

Нотация LP64, известная как 4/8/8, предполагает длину типа long и указателя равными 64 разрядам; ILP64 или 8/8/8 имеет в виду, что int, long и указатель 64-разрядные; LLP64 или 4/4/8 оперирует с дополнительным типом (long long) и указателем из 64 разрядов. Большинство современных моделей 32-разрядных систем используют модель ILP32, в которой типы данных int, long и указатели имеют длину 32 бита, а большинство программ на языке Си создается для MS Windows 3.1 и интерфейса Win-16 API, который использует модель LP32 (int - 16 бит, long и указатели 32). В системах Apple Macintosh также используется модель LP32. LLP64 регламентирует отношения между типами int и long, оставаясь в рамках 32-разрядной адресации, а поддержка 64-разрядных масштабируемых данных обеспечивается включением нового, нестандартного типа __int64 или long long. В результате LLP64 является в действительности 32-разрядной моделью с 64-разрядной адресацией. Большинство проблем с этой моделью из-за стандартного предположения, что указатель эквивалентен типу int, а здесь это не так. Эта модель является промежуточной "заплаткой", призванной связать программные интерфейсы двадцатипятилетней идеологической давности с новыми - 64-разрядными. В модели ILP64 предпринята попытка объединить int, long и указатель, установив их все в одну размерность, поэтому применение указателей int или long не приводит к ошибкам. Однако эта модель игнорирует переносимость данных и сильно зависит от дополнительных типов int32 и __int32, а здесь кроется конфликт с существующими типами данных. Большинство программ сегодня 16-, 32-разрядные или смешанные, поэтому ключевым фактором, влияющим на использование 64-разрядных процессоров является способность обеспечить обмен данными между 64- и 32-разрядными системами, а также стоимость одновременной поддержки двух системных окружений. Сегодня это особенно важно для распределенных баз данных, когда у 32-разрядных программ должна быть возможность выполнения в более производительном 64-разрядном окружении, например на серверах, а для моделей типа ILP64, требующих нестандартных типов данных, это становится невозможным. В этом смысле использование модели LP64 гарантирует работоспособность программы в 64-разрядном окружении после перекомпиляции без изменения исходного кода. Сегодня все продукты для Digital UNIX требуют, чтобы в приложениях использовалась модель LP64, а SGI предполагает смесь из моделей ILP32 и LP64. Опыт обеих компаний по переносу программ между различными средами показывает, что для модели LP64 ISV пользователи тоже могут переносить код в 64-разрядную среду, сохраняя совместимость с 32-разрядными приложениями.

В условиях, когда еще не все производители определились с выбором модели программирования, консорциум X/Open предлагает всему сообществу, имеющему дело с открытыми системами, ориентироваться на LP64, тем более, что уже имеется положительный опыт работы в условиях сосуществования двух сред.

От мала до велика

Еще год назад представители компаний, не имеющих на тот момент 64-разрядных реализаций ОС, уверенно парировали нападки по поводу невозможности работы с большими файлами или оперативной памятью, объясняя все отсутствием реальной потребности. И действительно, мало кто тогда предполагал, что массированное наступление технологий Internet резко изменит ситуацию - работа с мультимедийными массивами, использование распределенных баз данных, суммарный объем которых запросто превышает предел 2-4 Гбайт, очень быстро доказали необходимость 64-разрядных ОС. Недаром разработчики Netscape включили в программу поддержку работы с файловой системой XFS.

Одна из главных тенденций, наблюдаемых сегодня в мире "взрослых" операционных систем, - это создание масштабируемых клонов Unix, способных работать на всем спектре вычислительных систем от ПК до суперкомпьютеров. К этой группе можно причислить также Reliant Unix, недавно образовавшийся в результате слияния SINIX - представителя клона ОС Unix в версии компании SNI и DC/OSx компании Pyramid. По замыслу разработчиков эта система должна иметь двоичную совместимость при взаимодействии со всеми моделями рабочих станций SNI RM и суперкомпьютеров Reliant или RM1000. В результате пользователь работает только с одной ОС, независимо от используемой в данный момент конфигурации. Фирма Convex в сотрудничестве с компанией HP также активно работает над созданием единой операционной среды, равно как для рабочих станций, так и для систем SPP1200 и SPP2000. В качестве примера можно привести ОС IRIX, функционирующую на настольных системах типа Indy и на суперкомпьютерах серии Power Challenge и Onyx.

Кроме того, интерес к ОС IRIX подогрело сообщение о слиянии компаний SGI и Cray Research. В результате позиции клона MIPS-компьютеров укрепились не только на рынках рабочих станций и серверов, но и на поприще суперкомпьютерных систем, которые сегодня вызывают интерес уже не только научных и учебных организаций. Есть смысл, не вдаваясь в подробности, упомянуть ключевые особенности ОС IRIX, во многом определяющие сегодня современную 64-разрядную ОС. Прежде всего, это концепция ядра для поддержки будущего стандарта POSIX 1003.1c, регламентирующего работу в окружении одновременно нескольких систем программирования. Само собой разумеется, что в ОС используются полностью 64 разрядные регистры и адресация. Размер адресуемой оперативной памяти в версии 6.2 может составлять 16 Гбайт, а при использовании виртуальной памяти - 1 Тбайт.

Еще десять лет назад в ОС IRIX вместе со стандартной для всех клонов Unix файловой системой была включена EFS, которая позволяла работать с файлами размером 2 Гбайт при объеме всей системы 8 Гбайт. Конечно, сегодня этими параметрами уже никого не удивишь, поэтому два года назад в ОС была включена расширенная журнальная файловая система XFS, поддерживающая работу с 64-разрядной адресацией. Файловая система XFS оперирует файлами размером 9 млн. Тбайт, позволяя содержать в одном каталоге до 64 млн. файлов. Производительность чтения/записи для XFS составляет 500 Мбайт/с при работе с блоками размером от 512 байт до 1 Гбайт. Предусмотрен набор графических инструментов для создания, удаления, монтирования и модификации файловой системы. Совсем необязательно быть гуру в Unix, чтобы, например, восстановить удаленный файл или смонтировать том. Специальный файловый менеджер xlv в файловой системе XFS позволяет выполнять операции конкатенации, увеличения и уменьшения размеров смонтированных томов.

Журнальная организация XFS позволяет совершить быстрый, безболезненный откат после возможных сбоев, причем без вызова каких-либо специальных утилит проверки. Проверка имеющихся в текущей конфигурации дисков и процессоров также осуществляется полностью автоматически. Для работы в реальном масштабе времени в ОС IRIX предусмотрено расширение REACT и файловая система GRIO.

Работа современных компьютерных систем немыслима без сети, поэтому включение в любую ОС сетевой файловой системы NFS является само собой разумеющейся. Более того, в версию 5.3 входит система NFS использующая 64-разрядную адресацию, которая позволяет передавать файлы размером более 2 Гбайт. Для уменьшения нагрузки на сеть клиенты NFS могут применять функцию Cache Filesystems (CFS), сохраняющую наиболее часто используемые файлы в отдельной области памяти. Для централизованного управления распределенной файловой системой используется Network Information System (NIS), позволяющая автоматически монтировать файловые системы NFS и блокировать доступ к файлам неавторизованным пользователям.


С Дмитрием Волковым можно связаться по телефону: (095) 529-1551.

Поделитесь материалом с коллегами и друзьями