Когда отдельные странные люди говорят, что с приходом Windows NT (а до этого OS/2 и т.д.) эпоха ОС UNIX закончилась, я тихо смеюсь про себя. В чем же состоит жизненная сила операционной системы (а точнее, семейства ОС) UNIX?

По-моему, самый важный фактор - то, что исторически система не принадлежала какой-либо компании, производящей аппаратные или программные средства. Так получилось, что на протяжении многих лет ОС UNIX занимались телекоммуникационная компания AT&T (для которой средства программного обеспечения всегда не являлись основным бизнесом) и университеты. В результате технология операционной системы и даже ее исходные тексты стали доступными для широкой публики, включая академические и коммерческие ее части. Как говорил классик, идея должна овладеть массами. В данном случае она ими овладела. Но в чем же, собственно, состоит идея?

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

Операционная система UNIX не идеальна. Можно найти примеры десятков других ОС, которые сделаны более продуманными, обеспечивают более мощные средства программирования и т.д. (В качестве моих любимых примеров можно указать предшествовавшую UNIX ОС Multics или хотя бы VAX VMS.) Но можно совершенно определенно сказать, что они существенно более сложны в понятийном отношении.

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

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

Именно ОС UNIX дала нам новую жизнь. Примитивная операционная система, ограниченные возможности, но обеспечение стабильности. Мы (разработчики операционных систем) плевались вначале, ругались с отечественными фанами UNIX и, конечно же, были правы. Но мы не понимали в то время, что иногда приходится жертвовать фигуру в пользу качества. Первые программы в среде ОС UNIX поражали своей тривиальностью. Но как было интересно обнаружить, что эти тривиальные программы действительно работают после повторной компиляции совсем на других компьютерах.

Конечно, расцвет ОС UNIX в России стал возможен только после окончательного краха российской вычислительной техники. Это не та ОС, которая снисходительна к отдельным недостаткам вычислительной техники, в особенности к особенно уязвимых периферийных устройств (в свое время мне пришлось попробовать установить ОС Демос на ЭВМ "Электроника-82", и должен заметить, что это принесло массу головной боли и никакого удовольствия). После перехода на использование качественной западной вычислительной техники мы больше никогда не имели проблем с ОС UNIX. Более того, с каждым годом использования этой ОС количество проблем уменьшается.

Операционная система UNIX дала жизнь концепции Открытых Систем. Этот подход обеспечивает возможности разработки мобильных (легко переносимых с одной аппаратной платформы на другую) приложений, масштабируемости (возможности почти линейного наращивания эффективности приложений при возрастании аппаратных возможностей), интероперабельности (возможности совместного использования независимо разработанных приложений). Хотя проектировщики и разработчики ОС UNIX не ставили перед собой эту задачу, счастливая звезда UNIX дала возможность этой ОС стать практической основой Открытых Систем. Но все ли так хорошо в жизни ОС UNIX? Конечно же, нет. По-моему, UNIX, достигая в последнее время возможностей наиболее развитых операционных систем, в то же время приобретает их отрицательные качества - перегруженность, чрезмерную сложность и т.д.

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

Посмотрим, что произойдет с UNIX в будущем... Было больно слышать, как отрекался от своего детища Деннис Ритчи. "Это совсем не та система, которую мы делали", - говорил он. С другой стороны, мы видим сегодня замечательные примеры свободно распространяемых вариантов ОС UNIX (Free DSD, Linux), наблюдаем интересные опыты более удачной структуризации системы (Mach, Chorus). Мне кажется, что мы еще поживем...


Сергей Кузнецов - главный редактор журнала "Открытые системы", председатель совета Объединения пользователей ОС UNIX. С ним можно связаться по телефону: (095) 932-9212.

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