UNIX

1999 год, безусловно, обещает стать одним из самых замечательных в истории операционной системы (ОС) UNIX. Какие же примечательные события позволяют сделать такой вывод? Прежде всего, это колоссальный рост интереса к данной ОС как альтернативной Windows NT серверной платформы. По данным нового исследования IDC рыночная доля UNIX (включая Linux) в прошлом году увеличилась на 216%. По этому показателю она оставила далеко позади и Windows NT, и NetWare, и все другие продукты на рынке серверных ОС. В 1998 г. вышли в свет Solaris 7 - первая 64-битная ОС фирмы SUN, SCO UnixWare 7 - революционный продукт фирмы SCO на рынке коммерческих ОС для Intel платформ, и, конечно, новая версия Linux. Огромный интерес к централизованным вычислениям и сетецентрическим моделям связан с развитием феномена Интернет, появлением сетевых компьютеров и технологии Intranet, сложностями с управлением распределенными вычислениями и др. Рост интереса к UNIX как к классической ОС неразрывно связан с ее концептуальной ясностью и выверенностью временем, большим количеством поддерживаемых архитектур и платформ, высокой надежностью и эффективностью, исключительной масштабируемостью, широким спектром бизнес-приложений. Перечисленные преимущества позволяют с уверенностью говорить о дальнейшем развитии этой ОС, и по прогнозам IDC общий объем рынка UNIX в 2001 г. составит $35 млрд (15 - для NT).

Основная концепция

ОС UNIX изначально создавалась как компактная система для программных разработок. Практически вся она написана на языке С и, вследствие этого, проста для понимания и легко адаптируема на различные аппаратные платформы. История этой ОС начиналась в 70-е гг. В это время она свободно распространялась в основном в университетской среде и завоевывала популярность как инструментальная среда. Важная особенность этой ОС - компактность кода - всего около 12 млн строк. После появления в конце 70-х гг. мини-ЭВМ ОС UNIX стала практически стандартом для этих машин, поскольку, обладая всей функциональностью коммерческих ОС (RSX, RT, VMS и ряд других), могла легко портироваться на различные платформы без существенных трудозатрат. С появлением в середине 80-х гг. первых ПК возникли и версии ОС UNIX для платформы Intel, а с момента появления первого 32-разрядного процессора фирмы Intel 80386 и расширения RISC-платформ (MIPS, Alpha, HP-PA, Motorola и другие) начинается новый виток в развитии этой ОС. Однако настоящий бум на UNIX-решения возник благодаря Интернет. Интернет - это, прежде всего, UNIX. Вся мирная сеть изначально строилась на технологиях, неразрывно связанных с ОС UNIX, таких, как TCP/IP, SMTP, GOPHER и других, и именно она привлекла внимание к этой ОС. На UNIX выросли нынешние выпускники университетов - то поколение, которое сейчас начинает работу в качестве специалистов по ИТ, и будет определять развитие корпоративных информационных технологий своих предприятий. Каковы же основные отличительные черты этой замечательной нестареющей ОС?
В отличие от классических ОС для ПК (DOS, Windows, OS/2, NetWare), UNIX является многопользовательской многозадачной ОС с разделением времени. Одна и та же вычислительная система под управлением ОС UNIX может использоваться как сервер: приложений, коммуникационный, печати или файл-сервер, и в то же время обслуживать запросы большого количества пользователей. В этом UNIX очень близка к таким ОС, как MVS, VMS, OS/400, т. е. ОС больших машин. Известны конфигурации UNIX-систем для онлайнового обслуживания 10000 пользователей (британская страховая компания Churchill, 64-процессорный сервер CRAY CS6400 (современное наименование - SUN UE10000)).
Несмотря на многообразие версий UNIX, архитектура и основные интерфейсы системы жестко стандартизованы. Поэтому в большинстве случаев для администраторов, а тем более пользователей, никаких различий в работе с разными версиями UNIX просто нет. Основной организацией, занимающейся выработкой стандартов для UNIX, является консорциум Open Group, возникший в результате слияния X/Open и OSF в 1997г.
Многопользовательский режим работы - важнейшая отличительная черта этой ОС. Данный режим позволяет легко администрировать систему и организовывать работу пользователей через терминальный интерфейс, чрезвычайно экономичный и надежный. Концептуальная правильность многопользовательского режима косвенно подтверждается и тем, что после пяти лет разработок Windows NT, фирма Microsoft признала его необходимость и пытается осуществить его в своем продукте Windows Terminal Server, хотя изначально Windows NT строилась исключительно как многозадачная среда без поддержки многопользовательской работы. Практически с самого начала своего существования ОС UNIX применялась для организации сетевых вычислений. Самый распространенный сегодня сетевой протокол - TCP/IP - возник и был отработаны в среде ОС UNIX. Для этой ОС существуют самые эффективные (в смысле соотношения цена/производительность) решения для организации файл-серверных и принтерных служб в гетерогенных средах, более чем успешно конкурирующих с решениями на базе Windows NT или NetWare.

Многозадачность и поддержка потоков

С широким распространением с середины 80-х гг. симметричных мультипроцессорных систем для коммерческих приложений появились версии UNIX, поддерживающие многопоточные и многопроцессорные режимы работы. Уже в 1989 г. появились устойчивые реализации SMP для SCO UNIX (для процессоров Intel 80386) и DEC ULTRIX (MIPS R2000/3000). В ОС UNIX традиционно поддерживается классическая схема мультипрограммирования. Система имеет возможность параллельного выполнения нескольких пользовательских программ. Каждому такому выполнению соответствует процесс ОС. Поскольку каждый процесс выполняется в собственной виртуальной памяти, процессы в системе защищены друг от друга. В компьютерах с архитектурой SMP несколько процессоров имеют доступ к общей памяти через высокоскоростной общий интерфейс. Диспетчер процессов, обеспечивающий распределение ресурсов процессоров между процессами, использует кольцевой режим планирования (round robin). Его основной смысл  состоит в том, что время процессора(ов) делится на кванты фиксированного размера, а процессоры, готовые к выполнению, выстраиваются в кольцевую очередь. Очевидно, что, чем больше процессоров в системе, тем меньше их остается в очереди на исполнение, поскольку они распределяются на любые свободные в данный момент ЦПУ. Кроме того, в ОС UNIX был внедрен механизм легковесных процессов  (light-weight processes) или нитей управления. Фактически, нити - это процессы, исполняющиеся в одной и той же виртуальной памяти обычного (обладающего виртуальной памятью) процесса. Механизм нитей позволяет еще больше поднять эффективность работы SMP-систем, так как дает возможность распараллеливать выполнение даже в рамках одного процесса. Синхронизация выполнения нитей достигается при помощи механизма замков (lock). Многопоточность помогает решить и другую проблему - обеспечение работы в режиме реального времени.

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

Системы, поддерживающие режимы реального времени, можно разделить на два типа - с .мягким. и .жестким. реальным временем. Жесткое реальное время означает, что любое событие в системе должно обрабатываться за время, гарантированно меньшее установленного для данного события предела. Режим мягкого реального времени предполагает, что некоторые процессы имеют права на получение ресурсов основной памяти и процессора, существенно превосходящие права остальных процессов, не относящихся к категории реального времени. Поскольку ОС UNIX изначально создавалась как система с разделением времени, то концепция мягкого реального времени реализуется в ней достаточно легко. Большинство версий UNIX в настоящее время поддерживают мягкое реальное время (SCO, DEC UNIX, Reliant UNIX, IRIX, Solaris). Кроме того, существуют реализации UNIX-подобных систем c жестким реальным временем (LYNX, QNX). Такие ОС широко используются для управления интеллектуальными контроллерами в системах сбора информации, для создания интерактивных систем ввода и т.д. К особенностям таких версий UNIX относятся чрезвычайно компактное ядро с возможностью размещения его в ПЗУ и отсутствие или запрещение выгрузки процессов во внешнюю память.

Распространенность

ОС UNIX является одной из самых распространенных ОС в мире. Ее версии существуют практически для всех аппаратных платформ: от ПК до векторных супер-ЭВМ и MPP-систем. UNIX давно стала стандартной ОС для мощных профессиональных рабочих станций, SMP-систем и кластеров. Начиная с 1992 г., после появления первых 64-разрядных процессоров Alpha 21064 и MIPS R4000, появились 64-разрядные версии UNIX. Важность поддержки 64-разрядной обработки данных и адресации для современных приложений очевидна. Это и поддержка технологии сверхбольших моделей организации памяти (VLM), используемой в современных СУБД баз данных, и увеличение производительности вычислительных систем, и эффективная работа со сверхбольшими файловыми системами. Сейчас большая часть ОС семейства UNIX является 64-разрядными, в отличие от Windows NT, остающейся по-прежнему 32-разрядной и существующей только на двух платформах - Intel и Alpha, хотя изначально эта ОС задумывалась как многоплатформенная. Даже такому гиганту, как Microsoft, оказалось не под силу поддерживать свою ОС на всех платформах.

Надежность

Надежность системы UNIX в значительной степени определяется ее открытостью и достаточно долгим сроком жизни. Открытость системы и большое количество независимых компаний, проводящих разработки этой ОС, позволяют создавать нормальную конкурентную среду, в которой быстро и качественно реализуются новые механизмы, компоненты и исправления. Кроме того, постоянное развитие UNIX стимулируется некоммерческими версиями этой ОС. Все это разительно отличается от идеологии развития Windows NT, разработкой которой монопольно занимается одна компания со всеми вытекающими отсюда последствиями. Большинство слабых сторон Windows NT, в конечном счете, проистекают из философии компании Microsoft: .Windows повсюду. и к настоящему времени явно устаревшей концепции наличия на каждом ПК локального контекста прикладной задачи (и, следовательно, ОС Windows). Однако из-за достаточно высокой (на момент появления) цены и относительно низкого быстродействия графической подсистемы) Microsoft пришлось сделать ряд шагов, направленных на повышение быстродействия Windows NT путем встраивания графической подсистемы в ядро ОС. Это привело к принципиальному снижению стабильности системы. В настоящий момент именно графические службы и драйверы NT вместе образуют слабейшее звено системы поскольку им доступны критически важные области системной памяти. И на клиенте, и на сервере работа Windows NT всецело зависит от качества графических драйверов, в основном производимых третьими фирмами, и использующих их программ. Несмотря на это, как показывает практика, сравнение выполнения графических приложений для NT и UNIX, исключая случаи низкого разрешения экрана, практически всегда оказывается не в пользу NT. В UNIX система X11 и драйверы дисплея изолированы от ядра системы, и благодаря этому UNIX гораздо лучше подходит для любой среды, поскольку сбои графических драйверов не влияют на его работу.
К важным свойствам ОС UNIX относится ряд специальных черт, позволяющих автоматически переконфигурировать системы после выхода из строя отдельных компонентов, дублировать наиболее критические компоненты систем, производить автоматическую перезагрузку системы в случае ее краха (LAR функции). Большинство версий Unix поддерживают загружаемые модули устройств, т.е. позволяют загрузить систему, а после этого .на ходу. переконфигурировать поддержку оборудования и программ или BTLD-драйверы (присоединяемые к ядру во время загрузки). После завершения работы с устройством соответствующий модуль можно выгрузить. Надежность файловых систем в ОС UNIX обеспечивается использованием современных технологий журналирования типа Veritas.

Масштабируемость

Практически все версии UNIX поддерживают высокий уровень масштабируемости для симметричных мультипроцессорных систем, а масштабируемость в рамках кластерных решений можно рассматривать как частный случай масштабирования ОС UNIX в целом. Как правило, хорошая масштабируемость определяется как линейный рост производительности с увеличением числа процессоров. Однако это не всегда так, поскольку общая производительность, естественно, зависит от масштабируемости общесистемных интерфейсов (шин, коммутаторов), дисковой подсистемы, подсистемы оперативной памяти и от других составляющих. Если абстрагироваться от аппаратных платформ, системы UNIX хорошо удовлетворяют требованиям масштабирумости: практически отсутствует предел на количество запускаемых процессов, с ростом количества процессов накладные расходы на диспетчеризацию увеличиваются незначительно (что особенно показательно по сравнению с NT), собственно системные и сетевые сервисы тоже хорошо распараллеливаются. Различные производители ОС UNIX показывают хорошие результаты масштабируемости для своих платформ. Наиболее распространены системы с масштабируемостью 32-64 процессора (SUN, SGI, Siemens Nixdorf, Digital). Для MPP-систем количество процессорных узлов достигает несколько сотен. Максимальное число процессоров для UNIX-систем используется в известном SMP-кластере NCR 5100 и достигает 2048.

Кластерные решения

ОС UNIX широко используется для реализации кластерных решений. Как известно, под кластерами традиционно понимается объединение нескольких стандартных вычислительных систем (называемых узлами), используемых как единое целое для обеспечения доступа пользователей к приложениям, системным ресурсам и данным. В качестве узлов могут применяться однопроцессорные, SMP и MPP-системы. Кластерные решения обеспечивают высокий уровень надежности: при выходе из строя одного или даже нескольких узлов работа приложения может быть продолжена на любых других узлах, входящих в состав кластера. При этом дополнительная нагрузка будет равномерно распределяться среди работающих узлов кластера. Второй важной задачей, решаемой при помощи кластерных технологий, является увеличение производительности путем добавления новых узлов и усиления существующих. Очевидно, что для организации кластера необходима стабильная устойчивая ОС с развитыми многозадачными и многопользовательскими режимами, хорошей поддержкой SMP и надежной журнальной файловой системой, каковой и является ОС UNIX. Для решения задач кластеризации важно также наличие приложений, поддерживающих распараллеливание нагрузки в кластере. Такие распространенные приложения, как СУБД Oracle и Informix поддерживают параллельное исполнение практически для всех UNIX-платформ. Первые кластерные решения для UNIX появились уже в конце 80-х гг. В основном это были решения для обеспечения высокой готовности, функционирующие в конфигурациях из двух узлов. Одна из машин кластера использовалась в качестве основной, вторая - в качестве резервной. Примером таких решений являются продукты Sentinel фирмы Star Technology, HSX фирмы Corollary и ряд других. В настоящее время кластерные решения для ОС UNIX позволяют создавать кластеры с количеством узлов до 256, обеспечивают распараллеливание работы всех системных компонентов и приложений по всем узлам кластера и позволяют легко администрировать такие объединения машин, как единое целое.

Удобство и простота администрирования

Традиционное мнение о сложности установки и администрирования UNIX, о недружественном интерфейсе и высокой стоимости решений на ее основе - это типичный миф. Такого же мнения придерживаются и люди, которые никогда всерьез не занимались реальным администрированием компьютерных систем и не знакомы с ОС UNIX. Достаточно один раз попробовать самому установить любую из них, например, SCO OpenServer или Linux, чтобы убедиться в обратном.
Теперь относительно недружественного интерфейса с командной строкой. Интересно, как бы вы отнеслись к предложению заменить .примитивный. обычный голосовой метод общения со своими друзьями на высокопонятную систему жестов и ужимок? Вы не согласны? Кажется, в Microsoft предполагают, что второй путь гораздо .интуитивнее, более открыт и практичен.. На самом деле, .недружественный. интерфейс с командной строкой позволяет чрезвычайно просто и гибко, с минимальными трудозатратами осуществлять администрирование сложных сетей и объектов ОС, тогда как в NT для этого необходимо открывать огромное количество окон с непонятной смысловой нагрузкой, навигация внутри которых к тому же крайне затруднена. Оболочки командной строки, входящей в состав UNIX, поддерживают развитые языки сценариев, которые часто оказываются наиболее эффективным средством автоматизации сложных задач администрирования. Кроме того, администраторы и пользователи UNIX могут работать в системе через различные графические оконные интерфейсы, например, через удобный стандартизованный интерфейс CDE (Common Desktop Environment). Надо отметить, что графические интерфейсы в среде UNIX появились, и стали широко использоваться задолго до того, как была задумана Windows 1.0. Графическая оболочка CDE построена на базе оконной среды X Window, и имеет большое количество средств для контроля и управления ОС, тонкой настройки, слежения за состоянием оборудования и т.д. Кстати, UNIX-сервер можно в отличие от NT с начала до конца администрировать даже с терминала или с любой рабочей станции, поддерживающей протокол Telnet. Настроенная система UNIX устойчиво работает и не требует ресурсов на поддержку. Как показывает опыт, один администратор может обслуживать большое количество систем, географически разнесенных на сотни километров. Для больших и средних организаций в таких случаях часто оказывается экономически выгодно передавать обслуживание своих систем третьим фирмам (outsourcing).

Безопасность

В системе UNIX как в многопользовательской среде всегда большое внимание уделялось проблеме безопасности. Основные принципы и уровни безопасности для ОС UNIX разрабатываются на основе документа Национального центра компьютерной безопасности США (NCSC) .Критерии оценки надежных компьютерных систем., известного как .Оранжевая книга.. Оранжевая книга определяет иерархию 4 уровней безопасности, каждый последующий из которых строже предыдущего:

D: минимальная безопасность;
C: дискреционная защита;
B: мандатная защита;
A: верифицируемая защита.

Каждый уровень делится на один или более перенумерованных классов (чем больше номер, тем больше степень безопасности): C2 обеспечивает большую безопасность, чем С1.  Мы можем определить уровни безопасности, общие для основных современных версий UNIX. Для большинства версий UNIX стандартным является уровень безопасности C2: управляемая защита доступа с требованием возможностей ревизии, защиты паролем, других средств контроля владения и использования ресурсов, строгого тестирования и документирования. Возможно повышение уровня защиты (например, до уровня B1 или выше) за счет дополнительных компонентов, приобретаемых отдельно.

Стоимость решения для ОС UNIX

Что касается стоимости, то в большинстве случаев использование ОС UNIX экономически выгоднее, чем любых других. Начнем с того, что для небольших компаний и частных лиц, ориентирующихся на широко распространенную технику на базе Intel процессоров, можно использовать бесплатные (или условно бесплатные) версии UNIX, такие, как FreeBSD или Linux. При желании можно купить коммерческие версии: Solaris 7, SCO UnixWare 7 или SCO OpenServer 5.0, OpenBSD. Стоимость базовых лицензий - примерно от $1000, что вполне сопоставимо по цене с Windows NT Server 4.0 и дешевле IntranetWare. При этом, если вы используете UNIX в качестве сервера без организации многопользовательской работы через терминальные сессии, то вам совершенно нет никакой необходимости покупать дополнительные пользовательские лицензии для доступа клиентов, что резко снижает общие расходы по сравнению с другими ОС. UNIX на RISC-платформах обычно стоит немного дороже (от $1000-2000), однако большинство производителей включают стоимость базовой лицензии в стоимость своих вычислительных систем. Поэтому докупать приходиться только лицензии на дополнительных пользователей (примерно $50-200 на каждого). Толковый администратор для UNIX стоит от $400 (Санкт-Петербург, в провинции дешевле, в Москве - дороже), но не надо забывать, что от того, как работает ваша система, зачастую зависит весь ваш бизнес и экономить на этом довольно рискованно. Кроме того, надо понимать, что обычно это действительно человек, который сможет что-то сделать в случае необходимости, а не только переустановить систему и позвонить в ближайший центр поддержки фирмы Microsoft. Что касается общей стоимости прикладного решения, то вследствие большей экономичности сетецентрической модели UNIX решения существенно дешевле. В качестве примера можно сослаться на решение по системе финансового учета для одной из крупнейших табачных фирм Санкт-Петербурга, подготовку которого вела известная американская консалтингово-внедренческая фирма Robertson & Blums. Решение на базе UNIX оказалось почти в 8 раз (!!!) дешевле аналогичного на базе Windows NT.

Приложения для ОС UNIX

За время существования UNIX для этой ОС было написано огромное количество приложений. Объем ПО, написанного для UNIX, настолько велик, что уже сам по себе обеспечит этой ОС долгую жизнь. Для разных версий UNIX это количество достигает 12000. Только для ОС Solaris фирмы SUN ежемесячно появляется более 150 новых приложений. Доступность приложений для Windows NT за последние три года значительно выросла, однако в большинстве случаев качество, устойчивость и функциональность их значительно хуже, чем у аналогичных продуктов для UNIX. Для некоммерческой версии UNIX - Linux - теперь доступны такие прикладные системы, как IBM DB/2, Oracle Server Enterprise Edition, Informix, Lotus Notes и много других. Кроме того, ряд крупнейших производителей вычислительной техники: Compaq, Hewlett-Packard и Dell Computer, начали поставки серверов с прединсталлированным Linux.
Очень важным событием с точки зрения развития приложений для сетецентрических вычислительных моделей стало появление Java. Быстро, всего за несколько лет, Java стал наиболее признанным языком программирования. Его появление сдвинуло баланс вычислений с клиента в сторону сервера. Возможно, это станет серьезным ударом по предсказаниям о доминировании ОС для настольных ПК. Этому может способствовать и появление дешевых офисных приложений для Linux, например, Corel Office. Очевидно, что серверы могут эффективно обслуживать приложения или даже их части без того, чтобы хранить данные на клиенте.

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

Виталий Кузмичев,
фирма Lynx-BCC,
тел. 314-0314.

КОМПЬЮТЕР-ИНФОРМ