Феномены UNIX

 

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

 

ОС UNIX в первозданном виде была разработана в Bell Laboratories (AT&T) Кеном Томпсоном в 1969 году. Система создавалась не на пустом месте – она обобщила многие результаты проекта Multics и элементы одноименной операционной системы, разработанной консорциумом исследователей из General Electric, Массачусетского технологического института и, естественно, AT&T Bell Laboratories. В 1970 году Деннис Ритчи вместе с Кеном Томпсоном переписали код UNIX на языке Си, созданном с целью обеспечения гибкости и мобильности при разработке программ. Язык Си позволил создать первый код ОС UNIX, который можно было компилировать на различных компьютерных платформах. Сама система стала мобильной, то есть переносимой на различные типы компьютеров практически без перепрограммирования. Широко распространяться UNIX начала в 80-х годах и вручение его создателям Международной премии А. Тьюринга в области программирования (1983 г.) ознаменовало признание этой системы мировой общественностью.

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

 

1.    UNIX – это идеология и технологическая основа систем, многие из которых не называют себя UNIX

 

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

Само же название UNIX является защищенным товарным знаком, который многократно перепродавался и в настоящее время находится у компании Caldera International (CALD), одного из разработчиков и дистрибьюторов операционной системы Linux -- популярнейшего некоммерческого клона UNIX.

В настоящее время можно условно выделить два основных семейства UNIX -- System V и BSD. Впрочем, многие UNIX-клоны сочетают свойства обоих семейств.

Канонические исходные тексты ОС UNIX были написаны сотрудниками телефонной компании AT&T, и, соответственно, долгое время авторские права и права на продажу лицензий на использование исходных текстов принадлежали этой компании. В дальнейшем компания AT&T образовала дочернюю компанию USL (UNIX System Laboratories) с основной задачей развития и сопровождения исходных текстов ОС UNIX. Именно USL выпустила вариант ОС UNIX System V 4.0 (SVR 4.0), который стал фактическим стандартом операционной системы UNIX System V.  В свою очередь, на основе System V возникло много коммерческих клонов ОС UNIX.

Многие годы клоны ОС UNIX, разработанные в Калифорнийском университете (г. Беркли), являлись реальной альтернативой AT&T UNIX. Например, ОС UNIX BSD 4.2 была бесплатно доступна в исходных текстах и достаточно широко использовалась на компьютерах VAX компании DEC. BSD 4.3 являлась основой популярной ОС Ultrix компании DEC. ОС UNIX BSD использовалась в SunOS. Перечислим и коротко охарактеризуем некоторые известные клоны ОС UNIX.

 

Solaris компании Sun Microsystems

Начиная с SunOS 4.0, произошел переход этой системы к SVR 4.0. Это связано с тем, что SVR 4.0 включает функциональные возможности UNIX линии BSD.

Компания Sun Microsystems внесла ряд существенных расширений в SVR 4.0. Прежде всего, это касается обеспечения распараллеливания программ при использовании мультипроцессорных компьютеров. В настоящее время Sun Microsystems начала бета-тестирование девятой версии Solaris. Выпуск операционной системы намечен на 2002 год. Бета-версия операционной системы работает на фирменных процессорах UltraSparc, а также на платформе Intel. В попытке составить конкуренцию "открытым" системам на базе Linux, компания Sun поставляет Solaris бесплатно вместе с серверами с числом процессоров менее 8.

 

HP-UX компании Hewlett-Packard, AIX компании IBM

Эти системы объединяет тот факт, что в основе каждой из них находится SVR 4.x. Поэтому основной набор системных и библиотечных вызовов в этих клонах ОС UNIX совпадает.

SCO UNIX

Варианты ОС UNIX, производимые компанией SCO (приобретенной недавно компанией Caldera) и предназначенные исключительно для использования на Intel-платформах, до сих пор базируются на лицензированных исходных текстах System V 3.2. Однако SCO довела свои продукты до уровня полной совместимости со всеми основными стандартами.

ОС группы Berkeley Software Distribution (BSD)

Группа BSD оказала огромное влияние на общее развитие ОС UNIX. В 70-х годах университет Беркли получил из AT&T исходные тексты 16-разрядной ОС UNIX. На ее основе была произведена 32-разрядная система, которая сначала использовалась на компьютерах семейства VAX. В результате наборы системных вызовов UNIX AT&T и BSD стали значительно различаться. Это продолжалось до появления SVR 4.0, в которой был реализован общий набор системных вызовов.

Несколько лет назад компания USL, являвшаяся владельцем исходных текстов System V, подала в суд на университет Беркли, мотивируя это тем, что в BSD 4.4 нелегально используются части исходных текстов SVR 4.0. Процесс продолжался около двух лет и закончился победой университета, хотя в то же время было выставлено условие произвести полную очистку текстов BSD от следов System V.

В свое время BSD разделилась на коммерческую и некоммерческую части. Коммерческая компания получила название BSDI, а некоммерческие ветви развития получили такие широко известные на теперешний момент названия: FreeBSD, NetBSD, OpenBSD.

 

ОС Linux

ОС Linux - это оригинальная реализация ОС UNIX, выполненная молодым сотрудником университета Хельсинки (Финляндия) Линусом Торвальдсом. В августе 1991 года 21-летний программист Линус Торвальдс создал первую работающую версию ядра операционной системы Linux.

"Я создаю бесплатную операционную систему (это всего лишь хобби, поэтому она не будет большой и профессиональной) для 386(486)AT. Я мучил ее с апреля, и вот теперь она работает", -- писал Торвальдс в конференцию, посвященную Minix, одному из вариантов операционной системы UNIX. По словам Торвальдса, "начиналось все с малого — это была даже не операционная система. Я просто развлекался со своей новой машиной. Превращение в операционную систему произошло в значительной мере случайно, просто потому, что выбор в этой области был невелик. Я не мог позволить себе приобрести какую-либо коммерческую ОС, но и не хотел обрекать себя на DOS или Windows. Не припомню даже, а была ли тогда Windows вообще?"

 

D.H.Brown Associates (DHBA) -- американская компания, занимающаяся консалтингом в сфере информационных технологий, провела в 2001 году исследования, которые показали, что самые мощные версии операционной системы семейства Linux превосходят по возможностям некоторые из коммерческих Unix-систем. В процессе тестирования ОС оценивались по множеству параметров, в том числе качеству работы в многопроцессорных системах и с файлами большого размера. Такое же исследование, проведенное несколько лет назад, тогда показывало, что у Linux, которая только начинала заручаться общественной поддержкой, было множество слабых мест. Последние же результаты отражают постепенный стабильный рост качества Linux -- клона UNIX, уже завоевавшего доверие со стороны крупнейших компаний и таких компьютерных гигантов, как IBM, Oracle, SAP AG, Intel и пр.

В то время как важность Linux, как основной платформы для серверов, растет, компания Sun Microsystems может остаться сегодня единственным разработчиком патентованных решений. Такие компании, как IBM, HP и Compaq, уже внесли свою лепту в развитие Linux, способствуя выпуску различных дистрибутивов этой системы. Sun осталась практически единственной компанией, делающей ставку на ОС UNIX, видящей свое будущее в процессорах Sparc и своей системе Solaris. UNIX-клон от Hewlett-Packard HP-UX (последняя версия - 11i) все более вытесняется ОС Linux, которой в компании придают все большее значение. Например, новейшие серверы и рабочие станции Hewlett-Packard Itanium изначально поддерживаются этой ОС. IBM, продолжая поддерживать свой UNIX-клон AIX, уже внедряет Linux (Linux for zSeries) на серверных платформах S/390 Parallel Enterprise Server G5. Compaq, разработчик 64-разрядного Tru64 UNIX, сегодня также все большее предпочтение отдает Linux, пытаясь комбинировать лучшие решения обеих систем в рамках программы Linux/Tru64 UNIX Affinity.

Многообразие клонов UNIX возможно и привело бы к несовместимости отдельных систем, если бы не стандарты, принятые и поддерживаемые сообществом разработчиков.

 

Чем больше появлялось версий UNIX (и особенно коммерческих), тем очевиднее становилась необходимость стандартизации систем, так как наличие стандартов облегчает переносимость приложений и защищает как пользователей, так и производителей ПО.

Одним из наиболее ранних стандартов ОС UNIX явился изданный UNIX System Laboratories (USL) документ System V Interface Definition (SVID). Сегодня, несмотря на многочисленные переходы авторского права на исходный код ОС UNIX,  SVID продолжает пользоваться авторитетом у производителей. Большинство коммерческих вариантов ОС UNIX основаны на лицензированных исходных текстах, в результате чего они де-факто удовлетворяют этому стандарту.

Большинство коммерческих реализаций UNIX основывалось на System V, UNIX BSD всегда была более популярна в академических кругах и университетах, что вызвало необходимость определения некоторого интерфейса, который являлся бы по сути объединением средств AT&T и BSD. Эта работа была начата Ассоциацией профессиональных программистов Открытых Систем UniForum, а затем продолжена в специально созданных рабочих группах POSIX (Portable Operating System Interface). Наиболее известным и авторитетным является принятый ISO по представлению IEEE стандарт POSIX 1003.1, в котором определены минимальные требования к UNIX-системе.

Международная организация X/Open, которая выполняет многие работы, связанные с открытыми системами, собирает и систематизирует стандарты, имеющие промышленное значение, в специальном своде, так называемом X/Open Common Application Environment (CAE). Спецификации интерфейсов, входящих в CAE, публикуются в документе X/Open Portability Guide (XPG).

В конце 1989 года Американским национальным институтом стандартов (ANSI) был утвержден стандарт языка программирования C (X3.159-1989). Целью принятия этого стандарта было улучшение переносимости программ, написанных на C, в различные операционные системы (не только UNIX). В нем определены не только семантика и синтаксис языка, но и содержимое стандартных библиотек.

В заключение заметим, что развитие ОС UNIX продолжается на самых разных уровнях, в том числе появляются новые интерфейсы пользователей. Так, например, известный эксперт Марк Херст (Mark Hurst), попытавшись объединить графический интерфейс MacOS и UNIX-идеологию, получил в результате мощную и гибкую среду, более удобную, чем обычный Мак. В настоящее время Good Easy (такое название получила новая система) не без успеха применяется в принадлежащей Херсту консультационной компании Creative Good. Основу Good Easy составляют пять приложений: текстовый редактор, почтовый редактор, Web-браузер, файловый менеджер и календарь-планировщик. Общая среда, в которой они функционируют, позволяет программам обмениваться информацией в простом текстовом формате. Используя буфер и функциональные клавиши, можно быстро перенаправлять текст из одного приложения в другое. Как и в случае юниксовых средств конвейерной обработки (pipes), эта возможность используется, чтобы получить из совсем простых программ нечто большее.

Необходимость развития идеологии ОС UNIX и сращения ее с графическим интерфейсом понимали и сами создатели UNIX. В восьмидесятых и начале девяностых годов в Bell Labs разрабатывалась операционная система Plan 9, которая преследовала те же цели, что и Good Easy. Однако, из-за политики компании Plan 9 так и не получил широкого распространения.

 

2.    UNIX – это система, изначально создаваемая в учебной и академической среде, что отразилось на открытости ее кодов и идеологии

 

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

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

Вместе с UNIX развилась концепция программного обеспечения с открытым исходным кодом (Open Source), которая заключается в том, что программист или пользователь может, например, с помощью Internet, получить какую-нибудь программу вместе с ее исходным текстом, изменить ее, исправить ошибки и передать другим пользователям. Однако Open Source не означает только лишь доступность исходного текста. Существует документ (Open Source Definition), который в оригинале можно прочитать по адресу: www.opensource.org. Данный документ регламентирует все стороны лицензирования ПО, которое попадает под определение Open Source.

За сравнительно короткое время много ведущих компаний сделали большой шаг в сторону модели открытого программного обеспечения. Например, компания Inprise  обеспечила статус бесплатного программного продукта компилятору С++ 5.5. Продукт С++ Builder и Borland Delphi перенесены на Linux в рамках проекта Kylix. Бесплатная Linux-версия JBuilder на базе Borland Java уже доступна для загрузки. Компания Samsung выпускает первый электронный органайзер Yopy на базе Linux. Motorola Computer Group объявила о намерении выпустить собственную версию ОС Linux (High Availability Linux -- HA Linux), а Novell - NDS (Novell Directory Services) eDirectory for Linux. По словам многих аналитиков, поддержка Linux Novell'ом будет способствовать активизации применения Linux на предприятиях.

По информации ведущих аналитических компаний мира, именно открытость исходного кода будет способствовать развитию тех или иных компаний - производителей программного обеспечения. В ближайшее время ожидается переход многих компаний в том числе, и Microsoft, к эре Open Source. Это должно способствовать ожесточению "борьбы за пользователя" между Windows и Linux, особенно  в серверной сфере.

Компания Caldera International (CALD), ставшая владельцем компании SCO, а вместе с ней и принадлежавших той прав на операционную систему UNIX, объявила в 2001 году о намерении открыть исходники ряда входящих в UNIX утилит. Под условиями лицензии GNU GPL будут опубликованы оригинальные исходные коды программы для обработки текстов awk, поисковой утилиты grep, стандартного парсера регулярных выражений (UNIX Regular Expression Parser) и систему измерения производительности работы AIM. По всей видимости, это не последний шаг Caldera в этом направлении. В опубликованном пресс-релизе компания намекает, что за AIM, awk, grep и Regular Expression Parser могут последовать и другие компоненты UNIX. На всю операционную систему действие GNU GPL пока не распространяется, хотя Caldera намеревается по запросам предоставлять доступ к исходникам Open UNIX 8 участникам своей программы для разработчиков. Невозможность открытия кода всей системы объясняется наличием в ней фрагментов, права на которые принадлежат другим фирмам.

Тем не менее, переход к идеологии Open Source не позволил решить компании Caldera сложных финансовых проблем. Недавно она объявила о том, что чистый убыток в III квартале 2001 года составил $18,8 млн., или $0,34 на акцию. В число 51 служащего, потерявшего работу в ходе последних сокращений в компании Caldera International, попал программист Джурген Кьенхофер (Juergen G. Kienhoefer), игравший ключевую роль в разработке корпоративной стратегии достижения минимальных отличий в работе операционных систем Linux и UNIX. Д. Кьенхофер  участвовал в разработке системы Linux Kernel Personality (LKP), позволяющей Linux-программам работать без модификаций на платформе высокоуровневого ПО Open Unix от Caldera.

 

3.    UNIX – это самая мобильная из всех известных ОС

 

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

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

В качестве примера мобильности приведем один из клонов ОС UNIX – Linux, который становится одной из самых популярных платформ для программного обеспечения в рамках лицензии “Open Source”. Linux поддерживает практически всю компьютерную периферию от RAID-контроллеров до принтеров и TV-тюнеров. Крупные производители аппаратного обеспечения сами пишут драйверы под Linux (Creative, nVidia и др.) и делают доступной необходимую для разработчиков информацию о своих продуктах (Intel, 3Dfx и др.).

Другая область, в которой у Linux большие перспективы, - это встроенные системы. Всевозможные интеллектуальные устройства, начиная с Web-терминалов и карманных компьютеров и заканчивая всевозможной бытовой техникой с подключением к Сети и игровыми приставками, все более и более вытесняют персоналки из некоторых областей, в которых последние властвовали до сих пор. Другим примером мобильности UNIX может служить проект NetBSD, одной из основных целей которого изначально было построение дистрибутива ОС с поддержкой большого количества машинных архитектур (на данный момент он поддерживает 16 архитектур).

 

4.    Сегодня UNIX – это симбиоз коммерческих и абсолютно бесплатных операционных систем

 

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

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

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

Более того, многие из стандартизованных средств были впервые реализованы  именно в группах разработки бесплатных клонов ОС UNIX (например, в группе BSD был разработан и впервые реализован стек транспортных протоколов TCP/IP).

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

Еще одним примером симбиоза может служить создание на базе бесплатных реализаций ОС UNIX коммерческих продуктов. Так компания Hewlett-Packard объявила о планах выпуска собственной защищенной версии операционной системы Linux, которая называется HP Secure OS Software for Linux. В отличие от обычной ОС Linux, стоить она будет недешево – $3000. Но зато она предназначается для мощных корпоративных серверов. В нее вошли версия ядра 2.4 операционной системы Linux, дополнения, разработанные для нее программистами Hewlett-Packard, Web-сервер Apache и утилиты для организации связи между приложениями, а также для обнаружения атак на корпоративную сеть. Разработкой защищенных версий Linux занимается не только Hewlett-Packard. Например, по заказу Управления национальной безопасности США разработку защищенной ОС Linux сейчас ведет компания Network Associates. Агентство национальной безопасности США (АНБ) выложило второй релиз операционной системы собственного изготовления SE Linux. Гриф "SE" означает "Security-Enhanced", то есть "повышенная безопасность". Стоимость контракта оценивается в 1,2 миллиона долларов.

 

5.    UNIX – это самые защищенные серверы и рабочие места для профессионалов

 

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

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

Права доступа к файлу регулируются установкой специальных битов разрешения доступа, связанных с файлом. Устанавливая биты разрешения доступа, можно независимо управлять выдачей разрешений на чтение, запись и выполнение для трех категорий пользователей: владельца файла, группового пользователя и прочих. Пользователи могут создавать файлы, если разрешен доступ к каталогу. Вновь созданные файлы становятся листьями в древовидной структуре файловой системы.

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

Также были введены гибкие средства для контроля за потребляемыми пользователями ресурсами системы, такими как дисковое пространство, доступное пользователю, время центрального процессора, память и др.

Как следствие такого весьма жесткого контроля за правами доступа пользователя и потребляемыми им ресурсами системы - практически полное отсутствие вирусов в среде ОС UNIX (несмотря на то, что первый в мире червь заражал именно UNIX, пользуясь «дырой» в программном обеспечении, позволявшей программе-вирусу получить права суперпользователя на заражаемой им системе). Широкое распространение версий ОС UNIX с открытым исходным кодом с одной стороны облегчает труд взломщика, но, с другой стороны, исходные тексты системы постоянно подвергаются аудиту разработчиков со всего мира, что способствует выявлению потенциальных «дыр» в защите и ликвидации их в случае обнаружения.

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

Нельзя не упомянуть также о существовании большого количества бесплатно распространяемого ПО с открытым исходным кодом, которое может быть использовано в том виде, в котором оно есть, или же модифицировано под конкретные нужды разработчика.

 

6.    UNIX – чаще всего это системы не для «чайников», которых абсолютное большинство и с которыми нельзя не считаться

 

Несмотря на все названные преимущества ОС UNIX, ее вряд ли можно считать удовлетворительным рабочим местом для человека, плохо разбирающегося в информационных технологиях, секретаря или бухгалтера. И главная причина этого – отсутствие привычного набора программ. Во всем мире сегодня идут жаркие дискуссии “UNIX против Windows”, “Linux против Windows” и т. п. Эти противопоставления интригуют разве что новичков. Очевидно, что никакую реальную систему нельзя сделать идеальной для всех применений – серверов, рабочих станций, домашних и офисных ПК, встроенных приложений бытовой техники. Существует мнение, что именно такой подход – причина всех нареканий на продукты Microsoft. У UNIX и его клонов есть своя, заданная с самого начала ниша, - это прежде всего система для разработчика, исследователя, специалиста в информационных технологиях.

Вместе с тем, повсеместно идут попытки содания “десктопных” вариантов ОС UNIX, и прежде всего это касается клонов Linux.

Есть и другой подход к привлечению широких кругов пользователей в ряды сторонников UNIX – обучать их работе с этой системой с детства, заставляя думать и вникать в тонкости информационных технологий. Так по заявлению представителей компании Blue Linux, следующая версия одноименной ОС Blue Linux будет разработана специально для образовательных учреждений. В пакет войдут образовательные программы, ориентированные на детей в возрасте от 5 лет. "Мы надеемся, что сможем снизить стоимость обеспечения школьных компьютерных систем, дать возможность школам направить деньги непосредственно на обучение", - заявил Мэтт Джезорек (Matt Jezorek), основатель компании.

Австралийское отделение Sun Microsystems и Linux-сообщество решили взять под свое крыло благотворительную организацию PCs for Kids, подвергнувшуюся нападкам Microsoft за установку нелицензионных версий Windows на подержанные компьютеры, передаваемые детям из бедных семей. Sun Microsystems предложила взамен Windows устанавливать на ПК свое бесплатное программное обеспечение, а Linux-компания Cyber Source из Мельбурна взялась научить специалистов PCs for Kids необходимым навыкам для установки Sun'овского "Star Office" и ОС Linux Red Hat 6.2 на старые компьютеры. «Начать работать с Linux - это кардинально новый поворот в нашем деле, а для детей это будет как вместо футбола начать играть в гандбол», - сказал директор PCs for Kids Колин Бэйс (Colin Bayes).

 

7.    UNIX – это платформы для суперкомпьютеров и стиральных машин

 

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

 

Приведем несколько примеров серверных решений. В октябре 2001 года IBM анонсировала самый мощный в мире UNIX-сервер, объединяющий в себе различные достижения в области создания микропроцессоров и технологий, апробированных на мэйнфреймах. Сервер IBM eServer p690 представляет собой UNIX-систему для консолидации разрозненной серверной инфраструктуры. Он работает под управлением операционной системы класса UNIX AIX 5L, а также 64-битовой ОС Linux.

В условиях острой конкуренции на рынке UNIX-серверов SGI выпустила новую  32-процессорную систему среднего уровня Origin 300. В этой системе используются модули ЦП, ввода-вывода и накопителей, которые можно собирать в разных сочетаниях в зависимости от решаемой задачи. Тот же конструктивный принцип реализован в анонсированном в июле 2000 года семействе серверов Origin 3000, в которых может использоваться до 512 центральных процессоров. При этом SGI утверждает, что ее системы дешевле продуктов лидеров рынка UNIX-серверов Sun Microsystems, IBM и Hewlett-Packard.

Национальный научный фонд США (National Science Foundation, NSF) заказал постройку мощнейшего в мире суперкомпьютера на 64-битовых процессорах Intel Itanium. Суперкомпьютер, получивший имя "TeraGrid," объединит более 3300 процессоров Itanium в кластерную систему, расположенную в четырех городах Соединенных Штатов: в университете штата Иллинойс, в суперкомпьютерном центе Сан-Диего (SDSC) в Калифорнийском университете, в Аргоннской национальной лаборатории (пригород Чикаго) и в Калифорнийском технологическом институте (Пасадена). Суммарная вычислительная мощность TeraGrid составит более 13,6 терафлоп (13,6 трлн. операций в секунду), суммарный объем хранимых данных – более 450 ТБ. Часть из выделенных NSF $53 млн. пойдет на закупку уже готовых компонентов и подсистем у IBM, работающих под управлением ОС Linux и связанных между собой оптической сетью Qwest.

Операционная система Linux и серверы, на которой она установлена, становятся самыми популярными в киноиндустрии. Именно Linux чаще всего устанавливают на студийные серверы, на которых создаются спецэффекты для фильмов. Например, на Linux-компьютерах были сделаны спецэффекты для фильма "Титаник". Недавно IBM официально представила новое аппаратное решение для кино- и анимационных студий Linux Digital Studio, которое состоит из мощных рабочих станций, серверов и накопительных систем. Основным конкурентом IBM в Голливуде является компания SGI, на счету которой есть такой шедевр спецэффектов, как "Парк юрского периода". Компания около двух лет назад начала поставлять в Голливуд компьютеры с ОС Linux. В этой области также известны компании Hewlett-Packard и Sun - их Linux-серверы тоже обслуживают индустрию кино.

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

 

Аналитическая компания Evans Data в конце прошлого года опубликовала результаты исследования рынка встроенных систем. Опросив более 500 разработчиков, компания обнаружила, что в 2002 году, следует ожидать серьезных перемен в этой области. В настоящее время в большинстве встроенных устройств используются собственные операционные системы. Такой подход доминирует еще с тех времен, когда применение операционных систем общего назначения было невозможно или неэффективно. По прогнозу аналитиков Evans Data, в 2002 году произойдет коренной перелом в пользу ОС Linux. За несколько месяцев ее доля вырастет на 140%, что обеспечит этому UNIX-клону лидирующее положение. По мере распространения Linux будет уменьшаться распространенность самодельных операционных систем (к концу 2002 года они практически выйдут из употребления).

В конце 2001 года компания Red Hat анонсировала пакет для разработки встраиваемых приложений на платформе Linux - Red Hat Embedded Linux Developer Suite. В его состав вошли новая версия Red Hat Embedded Linux на основе ядра Linux 2.4, новые версии инструментальных средств GNUPro на базе gcc3, новые средства конфигурирования и среда разработки, отладчик RedBoot Embedded Bootloader/BIOS, библиотеки glibc 2.2 для всех архитектур, а также последние версии пакетов Red Hat Linux RPM.

Приведем несколько примеров применения встроенных систем.

Сингапурская компания Serial System, которая занимается производством бытовой электроники, недавно представила свое новое творение -- карманное устройство Terapin Mine, на которое можно записать до 10 ГБ информации. Его размеры 178х81х25 мм. На Terapin Mine можно записывать цифровые фотографии, резервные копии файлов с компьютера, аудиофайлы и пр. Его можно также подключить к корпоративной локальной сети и использовать в качестве миниатюрного файл-сервера. Кроме того, Terapin оснащен разъемом PC Card, к которому можно подключить адаптер для радиосети. Работает он под управлением "усеченной" версии ОС Linux.

Компания Access Co., Ltd. заявила о начале распространения демонстрационной версии Web-браузера "NetFront v3.0 for PS Linux" для PlayStation2, работающей под управлением Linux. Браузер предназначен для пользователей бета-версий Linux kit for PlayStation2 "SCPH-10270K", выпущенной Sony Computer Entertainment Inc. в июне 2000 года.

Компания Motorola (MOT) включит встраиваемую ОС Lineo Embedix, работающую на базе ядра Linux, в hi-end-серию телевизионных приставок DCT5000. Начало продаж приставок намечено на первый квартал 2002 года.

В конце сентября 2000 года IBM представила наручные часы с операционной системой Linux 2.2. Выпущено две основные модели - с жидкокристаллическим черно-белым дисплеем с разрешением 96х120 пикселов и часы с электролюминесцентным дисплеем, поддерживающим разрешение 640х480.

 

8.    UNIX – это явно выраженное отставание в десктопных приложениях

 

Не все так же радужно на рынке “десктопных” приложений UNIX. Типичный пример – печальный конец проекта Corel Linux. Компания Corel Corp. не так давно продала большую часть своего подразделения по работе с Linux, подписав соглашение с частной компанией Xandros, дающее последней доступ к разработке операционной системы. Corel получает 5 процентов акций Xandros и 2 процента акций учредителя последней, компании Linux Global Partners.

Недавно компания Dell прекратила онлайновые продажи настольных компьютеров с  предустановленной операционной системой Linux. Dell поддерживала эту операционную систему путем инвестиций в такие компании, как Red Hat и Eazel -- поставщик программного обеспечения для Linux. Руководство Dell заявило, что потенциал Linux больше связан с рабочими станциями и серверами.

Loki Software, самая известная из компаний, занимающихся портированием PC-игр на платформу Linux, обанкротилась. Loki была образована в августе 1998 года и предполагалось, что ее усилия одновременно помогут и Linux, и игровым компаниям: первый получил бы современные игры, которых ему не хватает, чтобы считаться полноценной системой для домашнего компьютера, вторые смогли бы освоить потенциально выгодный рынок. За время своей деятельности компания портировала на Linux множество игр, в том числе Tribes 2, Alpha Centauri, Quake III, SimCity 3000 и Heroes of Might and Magic III.

Заметим, что во всех случаях речь идет о Linux, наиболее адаптированном к потребностям пользователей клоне ОС UNIX. "У Linux очень маленькая доля рынка настольных ПК", - отметил вице-президент по системному ПО аналитической фирмы IDC Дэн Кузнецки (Dan Kusnetzky). "Покупатели ПК мигрируют в том направлении, где лежат полезные программы", — сказал он. Другие производители ПК, такие как IBM, продолжают предлагать определенные модели компьютеров, например ноутбуки ThinkPad, с предустановленной Linux. Но и они говорят, что основной бизнес Linux связан с серверами. Несмотря на активизацию усилий таких групп, как Gnome, KDE направленных на создание графического интерфейса пользователя для Linux, операционная система так и не смогла закрепиться на рынке настольных ПК. "Для Linux нет офисных приложений, - заявила представительница Red Hat Мелисса Лондон (Melissa London). — Чтобы сделать ее операционной системой для десктопов, нужно приложить очень много сил. Мы стараемся, но все же больше надеемся на рынок серверов".

Вместе с тем, попытки создать в рамках ОС UNIX (в частности, в рамках Linux) популярную среду для офисных приложений не прекращаются. Так, например, Turbolinux, разработчик решений для Internet-инфраструктуры на основе Linux, выпустила дистрибутив Turbolinux Workstation 7.0, рассчитанный на производителей персональных компьютеров (ОЕМ). Workstation 7.0 разработана с учетом требований корпоративных пользователей и призвана обеспечить бизнес-пользователей необходимыми для работы Linux-инструментами. Workstation 7.0 позволяет дополнительно установить Windows 95/98 на свободный раздел диска и поддерживает выборочную загрузку (вот оно решение вопроса «Linux против Windows”). Еще один пример. Компанией CodeWeavers был выпущен плагин, позволяющий просматривать файлы Windows-приложений в среде Linux. Среди возможностей программы - просмотр контента в формате QuickTime и ShockWave в Linux браузерах, файлы формата MS Word, Excel, Powerpoint в e-mail клиентах для Linux. Плагин обеспечивает совместимость Linux с популярными Windows-форматами, дает практичное решение пользователям Linux. Программа поддерживает многие почтовые клиенты для Linux, такие как Netscape, GNOME Evolution и KDE Kmail. В будущих версиях плагина планируется поддержка практически всех Windows-форматов.

В качестве же примера, который может послужить реальной альтернативой офисным приложениям Microsoft, можно привести, пожалуй, пока только StarOffice. Sun купила StarOffice в 1999 году у немецкой компании Star Division, сделав пакет бесплатным и попытавшись переманить часть пользователей Microsoft Office. Компания также сделала доступным исходный код программы в рамках проекта Open Office и тем самым привлекла к разработке бесплатного офисного пакета множество разработчиков со всего мира. Предыдущая версия программы 5.2, однако, занимала много памяти и очень медленно загружалась. В последней версии 6.0 все программы представляют собой отдельные приложения, работающие независимо друг от друга. В пакет интегрирован новый формат хранения данных, более компактный, чем в предыдущей версии. Новая версия StarOffice  выпущена для платформ Linux, Sun Solaris и Microsoft Windows. Проводилась еще разработка версии для Mac OS X, однако Sun прекратила работу в этом направлении, предложив открытую доработку пакета.

 

9.    UNIX – это клон сетевых операционных систем, многие из которых стали поддерживать Internet на десятки (!) лет раньше, чем Windows

 

История Internet началась в 1969 году, когда Агентство Исследований Министерства обороны США (Department of Defence Advanced Research Projects Agency - DARPA) начало финансирование проекта по созданию экспериментальной компьютерной сети коммутации пакетов (packet switching network). Эта сеть, получившая название ARPANET, была построена для обеспечения надежной связи между компьютерным оборудованием различных производителей. Агентство перспективных исследовательских проектов Министерства обороны США (DARPA -- Department of Defense Advanced Research Project Agency) поддержало и финансировало проект, посвященный поиску общей основы связи сетей с разной технологией. Так появилось семейство протоколов TCP/IP. В 1983 году TCP/IP был стандартизирован. В это же время агентство DARPA начало финансирование проекта Калифорнийского университета в Беркли («родины» BSD-клона UNIX) по поддержке TCP/IP в операционной системе UNIX.

Разработка стека сетевых протоколов TCP/IP, реализация этого стека в UNIX и стыковка TCP/IP с механизмом программных гнезд привели к тому, что ОС UNIX стала истинной сетевой операционной системой. Сегодня большая часть коммуникационных средств ОС UNIX основывается на использовании протоколов стека TCP/IP. Протоколы TCP/IP положили основу Всемирной сети сетей Internet, а их комбинация с механизмом программных гнезд во многом способствовала становлению архитектурной концепции "клиент-сервер".

Самый распространенный Web-сервер в мире - это Apache. По данным компании Netcraft (http://www.netcraft.com/Survey/), общее число Web-узлов, работающих под его управлением, к концу 1998 г. достигло 2 млн. (55% общего числа узлов) и постоянно растет. Для сравнения: на долю серверов Microsoft приходится 25%, Netscape -7%. Будучи бесплатной открытой программой, предназначенной для бесплатных же UNIX-систем (FreeBSD, Linux и др.), по функциональным возможностям и надежности не уступает коммерческим серверам, а широкие возможности конфигурирования позволяют настроить его для работы практически с любой конкретной системой. Не так давно компания Compaq подписала соглашение с Covalent Technology по совместной разработке и продвижению на рынок программного обеспечения для Web-сервера Apache. Соглашение касается продуктов для линейки серверов Compaq Proliant, работающих под ОС Linux. Помимо Compaq, сервером Apache ранее заинтересовались Hewlett-Packard, IBM и Oracle. Apache составляет серьезную конкуренцию Internet Information Server корпорации Microsoft и коммерческому Web-серверу компании iPlanet. В ноябре 2001 года вышла финальная версия Apache 2.0. Новую версию отличает более высокая производительность и хорошая интеграция с другими платформами. Кроме того, управлять Apache 2.0 стало значительно проще, так что справиться с ним теперь сможет даже неквалифицированный пользователь.

Среди основных нововведений можно выделить несколько особенно важных. Во-первых, это MPM (Multiprocessing Modules) - набор модулей, упрощающих работу с большим количеством параллельных процессов, потоков и с многочисленными одновременными запросами. Другое полезное новшество - это Apache Portable Run-Time, который представляет из себя основную часть Web-сервера, сделанную полностью независимой от ОС. Наконец, следует отметить появление фильтров – способа быстро менять содержимое сайта в зависимости от нужд пользователя (например, изменять язык сайта или использовать для генерации страниц другие программы).

 

10.UNIX – это серверное обеспечение подавляющего большинства Internet-служб

 

Компания Netcraft опубликовала очередное исследование, посвященное процентному соотношению операционных систем и различного ПО, устанавливаемых на http-серверах Сети. Согласно исследованию, администраторы все большее предпочтение отдают продукции конкурентов Microsoft: в процентном отношении доля серверов Apache и не-Windows операционных систем (в частности, Linux) заметно увеличилась.

Тем не менее, общее число машин, работающих под различными версиями Windows (Windows 2000, NT4, NT3, Windows 9x/Me) составляет на данный момент почти половину всех Web-серверов. На втором по популярности месте идет ОС Linux - 29,6 процента серверов. Далее идут различные версии Solaris (Solaris 2, Solaris 7, Solaris 8) - 7,1 процента и BSD (BSDI BSD/OS, FreeBSD, NetBSD, OpenBSD) - 6,1 процента машин.

 

11.UNIX – это родина таких «слонов», как C, Shell, Perl, и технология конвейерной обработки команд

 

Язык Си, на котором написана сама ОС, с одной стороны, сочетает в себе свойства языка высокого уровня: описание типов, программные структуры if, for, while и т. п., а с другой - содержит средства, присущие обычно языкам уровня ассемблера: регистровые переменные, адресную (ссылочную) арифметику, возможности работы с полями бит и отдельными битами и т. п. Язык Си, вслед за языком Би, был создан Деннисом Ритчи вместе с Кеном Томпсоном с целью обеспечения гибкости и мобильности при разработке программ для первых версий UNIX. Впоследствии язык Си был стандартизирован и на данный момент является основным средством разработчика при программировании под UNIX.

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

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

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

Основное назначение этих языков (их разновидностей существует достаточно много, но мы рассмотрим только три наиболее распространенные варианта - Bourne-shell, C-shell и Korn-shell) состоит в том, чтобы предоставить пользователям удобные средства взаимодействия с системой. Что это означает? Языки не даром называются командными. Они предназначены для того, чтобы дать пользователю возможность выполнять команды, предназначенные для исполнения некоторых действий операционной системы.

Существует два вида команд. Собственные команды shell (такие как cd, echo, exec и т. д.) выполняются непосредственно интерпретатором, т. е. их семантика встроена в соответствующий язык. Имена других команд на самом деле являются именами файлов, содержащих выполняемые программы. В случае вызова такой команды интерпретатор командного языка с использованием соответствующих системных вызовов запускает параллельный процесс, в котором выполняется нужная программа. Конечно, смысл действия подобных команд является достаточно условным, поскольку зависит от конкретного наполнения внешних файлов. Тем не менее, в описании каждого языка содержатся и характеристики "внешних команд" (например, find, grep, cc и т.д.) в расчете на то, что здравомыслящие пользователи (и их администраторы) не будут изменять содержимое соответствующих файлов.

Существенным компонентом командного языка являются средства, позволяющие разнообразными способами комбинировать простые команды, образуя на их основе составные команды. В семействе языков shell возможны следующие средства комбинирования. В одной командной строке (важный термин, означающий единицу информационного взаимодействия с командным интерпретатором) можно указать список команд, которые должны выполняться последовательно, или список команд, которые должны выполняться "параллельно" (т.е. независимо одна от другой).

Очень важной особенностью семейства языков shell являются возможности перенаправления ввода/вывода и организации конвейеров команд. Естественно, эти возможности опираются на базовые средства ОС UNIX. Кратко напомним, в чем они состоят. Для каждого пользовательского процесса (а внешние команды shell выполняются в рамках отдельных пользовательских процессов) предопределены три выделенных дескриптора файлов: файла стандартного ввода (standard input), файла стандартного вывода (standard output) и файла стандартного вывода сообщений об ошибках (standard error). Хорошим стилем программирования в среде ОС UNIX является такой, при котором любая программа читает свои вводные данные из файла стандартного ввода, а выводит свои результаты и сообщения об ошибках в файлы стандартного вывода и стандартного вывода сообщений об ошибках соответственно. Поскольку любой порожденный процесс "наследует" все открытые файлы своего предка, то при программировании команды рекомендуется не задумываться об источнике вводной информации программы, а также конкретном ресурсе, поддерживающем вывод основных сообщений и сообщений об ошибках. Нужно просто пользоваться стандартными файлами, за конкретное определение которых отвечает процесс-предок (заметим, что по умолчанию все три файла соответствуют вводу и выводу на тот терминал, с которого работает пользователь).

Что обеспечивает такая дисциплина работы? Прежде всего возможность создания программ, "нейтральных" по отношению к источнику своих вводных данных и назначению своих выводных данных. Собственно, на этом и основаны принципы перенаправления ввода/вывода и организации конвейера команд. Все достаточно просто. Если вы пишете в командной строке конструкцию

com1 par1, par2, ..., parn > file_name,

то это означает, что для стандартного вывода команды com1 будет использоваться файл с именем file_name. Если вы пишете

file_name < com1 par1, par2, ..., parn,

то команда com1 будет использовать файл с именем file_name в качестве источника своего стандартного ввода. В случае же, если вы пишете

com1 par1, par2, ..., parn | com2 par1, par2, ..., parm,

то в качестве стандартного ввода команды com2 будет использоваться стандартный вывод команды com1 (конечно, при организации такого рода "конвейеров" используются программные каналы).

Конвейер представляет собой простое, но исключительно мощное средство языков семейства shell, поскольку позволяет во время работы динамически создавать "комбинированные" команды. Например, указание в одной командной строке последовательности связанных конвейером команд

ls -l | sort -r

приведет к тому, что подробное содержимое текущего каталога будет отсортировано по именам файлов в обратном порядке и выдано на экран терминала. Если бы не было возможности комбинирования команд, то для ее достижения потребовалось бы внедрение в программу ls возможностей сортировки.

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

Язык программирования Perl был изначально предназначен для выполнения задач командных сценариев UNIX в тех случаях, когда они слишком трудны, плохо переносимы или сложны для программирования другими средствами. Дистрибутив Perl распространяется бесплатно, исходные тексты языка и многие двоичные файлы для использования вне UNIX-архитектуры можно получить на одном из серверов сети CPAN (Comprehensive Perl Archive Network) по адресу http://www.perl.com/CPAN или на узле поддержки разработчиков по адресу http://www.developer.net.ru/download. В настоящее время Perl перенесен практически на все платформы, и сейчас он известен в самых разных версиях - для UNIX, Windows, MS-DOS, OS/2, MacOS, Amiga, Atari ST, VMS, Plan 9 и др.

 

12.UNIX – это осязаемая и контролируемая совокупность множества одновременно выполняемых вычислительных процессов

 

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

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

Ядро системы предоставляет возможности (набор системных вызовов) для порождения новых процессов, отслеживания окончания порожденных процессов и так далее. С другой стороны, в ОС UNIX ядро системы - это полностью пассивный набор программ и данных. Любая программа ядра может начать работать только по инициативе некоторого пользовательского процесса. Это происходит при выполнении системного вызова, либо по причине внутреннего или внешнего прерывания (примером внутреннего прерывания может быть прерывание из-за отсутствия в основной памяти требуемой страницы виртуальной памяти пользовательского процесса; примером внешнего прерывания является любое прерывание процессора по инициативе внешнего устройства). В любом случае считается, что выполняется «ядерная» часть обратившегося или прерванного процесса, т. е. ядро всегда работает в контексте некоторого процесса.

В последние годы в связи с широким распространением так называемых симметричных мультипроцессорных архитектур компьютеров (Symmetric Multiprocessor Architectures - SMP) в ОС UNIX был внедрен механизм легковесных процессов (light-weight processes) -- нитей, или потоков управления (threads). Говоря по-простому, нить - это процесс, выполняющийся в виртуальной памяти, используемой совместно с другими нитями того же "тяжеловесного" (т. е. обладающего отдельной виртуальной памятью) процесса. В принципе, легковесные процессы использовались в операционных системах много лет назад. Уже тогда стало ясно, что программирование с неконтролируемым использованием общей памяти приносит больше хлопот и неприятностей, чем пользы, по причине необходимости использования явных примитивов синхронизации.

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

 

13.UNIX – это одновременная реализация двух концепций «компьютер – это сеть» и «сеть – это компьютер»

 

Оба девиза «компьютер – это сеть» и «сеть – это компьютер» приписывают компании Sun Microsystems, Inc. – ведущему производителю UNIX-систем. Первая концепция хорошо иллюстрируется линейкой рабочих станций Sun Ultra 5, Sun Ultra 10, Sun Ultra 30, Sun Ultra 60 и Sun Ultra 450, а также вариантами серверных решений на этих платформах. Каждая из представленных моделей построена на основе архитектуры UltraComputing. Радикально новым в архитектуре UltraComputing является отказ от традиционной шины, захватываемой активным устройством, в пользу коммутатора пакетов для связи основных компонентов системы. Коммутатор объединяет в сеть отдельные подсистемы компьютера: связь между процессором, оперативной памятью, графической подсистемой и подсистемой ввода-вывода в компьютерах Ultra осуществляется через коммутатор пакетов Ultra Port Architecture (UPA), допускающим одновременную транспортировку нескольких потоков данных между ЦП, памятью, системами ввода/вывода и другими периферийными устройствами.

В последние годы большое развитие получила технология сетей хранения данных - SAN (Storage Area Networking), которые представляют собой наборы аппаратных и программных технологий,  связывающие устройства хранения примерно таким же образом, как локальные сети объединяют персональные компьютеры. Такой подход дает конечным пользователям ряд преимуществ, в частности обеспечивает более простую маршрутизацию запросов с поддержкой высокого уровня готовности, возможность постепенно, «небольшими порциями» наращивать емкость дисковой памяти и более гибкий подход к управлению.

Производители аппаратных систем хранения и поставщики программного обеспечения активно участвуют в развитии концепции SAN. «В Sun Microsystems говорят, что компьютер - это сеть, - заявил один из авторов концепции SAN Роджер Клорес (Veritas Software) . - Мы  же считаем, что компьютер - это сеть хранения».

И все-же основная концепция компании Sun Microsystems - "Сеть - это Компьютер". Основной смысл этого подхода состоит в использовании для информационных вычислений не только отдельно взятого компьютера с ограниченными ресурсами, но и практически безграничных ресурсов сети, к которым данный компьютер имеет доступ.

В качестве иллюстрации этой концепции очень хорошо подходит проект другой компании - Hewlett-Packard, которая совместно с Французским научно-исследовательским  институтом компьютерных наук (INRIA) обнародовали технологию организации  высокопроизводительной вычислительной сети из обычных персональных компьютеров без какой-либо их аппаратной доработки. Испытания системы под названием "I-Cluster" успешно прошли в 2001 году. Ученые ставили задачу попасть в список TOP500 самых мощных суперкомпьютеров мира. По результатам стандартного теста Linpack комплекс I-Cluster с задачей справился, заняв в мировом рейтинге 385-е место. Каждая из 225 машин представляла собой самый обычный настольный компьютер с процессором Pentium III 733 MГц, памятью 256 MБ и жестким диском 15 ГБ. Никаких аппаратных доработок не делалось, даже не открывались корпуса системных блоков. Машины объединили скоростной Ethernet-сетью. Общая стоимость машин составила около 210 тысяч долларов. Вначале на 100 машинах удалось получить производительность 36 гигафлоп в секунду (миллиардов операций с плавающей точкой в секунду). После увеличения числа компьютеров до 225 эта величина достигла 81,6 гигафлоп в секунду. Комплекс работал под управлением специально разработанного программного обеспечения для Linux.

 

14.UNIX – это то, что не так часто рекламируется в широкой прессе, как Windows, потому что для целевой аудитории ее реклама зачастую не требуется

 

Естественно, людей интересующихся профессиональными рабочими станциями и серверами, значительно меньше, чем обычных пользователей компьютеров, для которых UNIX – лишь не очень удобная альтернатива настольным Windows-решениям. Отсюда и информации об UNIX значительно меньше. Так, например, по слову UNIX поисковый сервер Яndex выдает всего лишь 667 468 страниц, в то время как по слову Windows – 1 965 258. Итак, несколько слов в заключение.

UNIX сегодня представляет собой операционную систему, вклад в развитие которой вносят программисты и компании всего мира. Этому способствует несколько факторов -- приверженность концепции Open Sources, свободность и доступность, чаще всего бесплатность клонов UNIX, серьезный уровень стандартизации, и, наконец, развитие сети Internet, с помощью которой осуществляется обмен идеями, кодами, "заплатами" и т. д.

Среди вышеназванных в статье феноменов, конечно же, наиболее пародоксальными выглядят те, которые связаны с предпочтениями, которые отдают многие коммерческие корпорации бесплатным вариантам UNIX (чаще всего Linux). Вряд ли такие "киты" рынка ИТ, как IBM, HP, Sun, Intel и другие, стали бы поддерживать и развивать бесплатные ОС, не просчитав стратегических результатов этой деятельности. Большую роль в развитии UNIX играет и политика Microsoft (снова парадокс), для операционных систем которой реальной альтернативой во многих сегментах применений может стать только UNIX. Однако поддержка крупнейшими корпорациями бесплатных клонов UNIX говорит скорее о наблюдающейся сегодня общей тенденции, предполагающей развитие рынка ИТ в направлении увеличения роли системной интеграции, сервисного обслуживания, консалтинга. То есть секторов, связанных напрямую не с производством и разработкой новых высокотехнологичных продуктов, а скорее с их внедрением и сопровождением.


Дмитрий Ландэ,
Зам. директора ИЦ "ЭЛВИСТИ",
e-mail: [email protected]
Александр Дармохвал,
Руководитель отдела ИЦ "ЭЛВИСТИ",
e-mail: [email protected]