Санкт-Петербург      Сервисная служба           
(812) 346-82-56               8 (800) 555-59-69

Операционная система UNIX

ОС UNIX изначально создавался как компактная система для программных разработок. Практически вся система написана на языке С и, вследствие этого, проста для понимания и легко переносима на различные аппаратные платформы. История этой ОС начиналась в 70-е годы. В это время она свободно распространялась в основном в университетской среде и завоевывала популярность как инструментальная среда. Важной особенностью этой операционной системы является компактность кода - всего около 12 млн. строк. После появления в конце 70 миниЭВМ ОС UNIX стала практически стандартом для этих машин, поскольку обладая всей функциональностью коммерческих ОС (RSX, RT, VMS и ряд других) могла легко портироваться на различные платформы без существенных трудозатрат. С появлением в середине 80-х годов первых ПК возникли и версии ОС UNIX для платформы Intel. С момента появления первого 32-разрядного процессора фирмы Intel 80386 и расширения RISC платформ (MIPS, Alpha, HP-PA, Motorola) начинается новый виток в развитии этой ОС. Однако настоящий бум на UNIX решения возник благодаря появлению Internet. Всемирная сеть - это прежде всего 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 или в продукте фирмы Citrix MetaFrame, хотя изначально NT строилась исключительно как многозадачная среда без поддержки многопользовательской работы. Крайне важным аспектом использования ОС UNIX является то, что практически с самого начала своего существования она использовалась для организации сетевых вычислений. Все наиболее распространенные сетевые протоколы (TCP/IP, NFS) возникли и были отработаны в среде ОС UNIX. Для этой ОС существуют самые эффективные (в смысле соотношения затрат/производительности) решения для организации файл-серверных и принтерных служб в гетерогенных средах (Samba), более чем успешно конкурирующие с решениями на базе Windows NT или NetWare.

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

С широким распространением с середины 80-х симметричных мультипроцессорных систем для коммерческих приложений появились версии UNIX, поддерживающие многопоточные и многопроцессорные режимы работы. Уже в 1989 году появились устойчивые реализации SMP для SCO UNIX (для процессоров Intel386) и 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-х разрядной обработки данных и адресации для современных приложений очевидна. Это и поддержка технологии сверхбольших моделей организации памяти (VLMR), используемой в современных СУБД баз данных, и увеличение производительности вычислительных систем, и эффективная работа со сверхбольшими файловыми системами. Сейчас большая часть операционных систем семейства UNIX является 64-х разрядными, в отличие от Windows NT, остающейся по-прежнему 32-х разрядной и существующей только на двух платформах - Intel и DEC Alpha, хотя изначально эта ОС задумывалась как многоплатформенная. Даже такому гиганту как Microsoft оказалось не под силу поддерживать свою операционную систему на всех платформах.

Надежность

Надежность системы UNIX в значительной степени определяется ее открытостью и достаточно долгим сроком жизни. Открытость системы и наличие большого количества независимых компаний, проводящих разработки этой ОС, позволяют создавать нормальную конкурентную среду, в которой быстро и качественно реализуются новые механизмы, компоненты и исправления. Кроме того, постоянное развитие UNIX стимулируется наличием некоммерческих версий этой операционной системы. Все это разительно отличается от идеологии развития Windows NT, разработкой которой монопольно занимается одна компания со всеми вытекающими отсюда последствиями. Большинство слабых сторон Windows NT в конечном счете проистекают из философии компании: «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, FSC, 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, о недружественном интерфейсе и высокой стоимости решений на ее основе - это типичный миф, который так любим компанией Microsoft. Такое же мнение можно встретить и у людей, которые никогда всерьез не занимались реальным администрированием компьютерных систем и не знакомы с ОС 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: верифицируемая защита.

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

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

За время существования UNIX для этой операционной системы было написано огромное количество приложений. Объем программного обеспечения написанного для UNIX настолько велик, что уже сам по себе обеспечит этой ОС долгую жизнь. Для разных версий UNIX это количество достигает 12 000. Только для Solaris фирмы Sun Microsystems ежемесячно появляется более 150 новых приложений. Доступность приложений для Windows NT за последние три года значительно выросла, однако в большинстве случаев качество, устойчивость и функциональность их значительно хуже, чем у аналогичных продуктов для UNIX. Для некоммерческой версии UNIX Linux теперь доступны такие прикладные системы IBM DB 2, Oracle Enreprise Server, Informix, Lotus Development и много других. Кроме того, ряд крупнейших производителей вычислительной техники таких как Compaq, Hewlett-Packard и Dell Computer уже начали поставки серверов с преинсталлированным Linux. Очень важным событием с точки зрения развития приложений для сетецентрических вычислительных моделей стало появление Java. Быстро, всего за несколько лет, Java стал наиболее признанным языком программирования. Его появление сдвинуло баланс вычислений с клиента в сторону сервера. Возможно, это станет серьезным ударом по предсказаниям о доминировании ОС для настольных ПК. Этому может способствовать и появление дешевых офисных приложений для Unix, например StarOffice фирмы Sun Microsystems. Очевидно, что серверы могут эффективно обслуживать приложения или даже их части без того, чтобы хранить данные на клиенте.

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