Unix – живая легенда

Образовательная программа компании Global Inform. Украина, Харьков


автор статьи - Андрей Большеченко

ДАВАЙТЕ ПОЗНАКОМИМСЯ

Пожалуй, всякий пользователь компьютера, которому приходилось выходить за рамки набора текстов в Microsoft Word и создания таблиц в Excel, хотя бы краем уха слышал о Unix — своего рода легенде среди операционных систем. При этом как и любую легенду, ее сопровождает масса домыслов и субъективных мнений, заметно превосходящих в количественном отношении достоверную информацию, что создает своеобразный ореол некоей таинственности, а следовательно, ненонятности. А если вспомнить, насколько редко упоминается Unix в массовых изданиях, становится вполне объяснимым, почему это название вызывает своего рода мистический трепет. Поскольку кто же захочет связываться с чем-то “громоздким и непонятным”, если “и так все работает”, и кому нужны лишние хлопоты?

У автора до знакомства с Unix это название ассоциировалось с машинами размером со шкаф, заполняющими целые комнаты, грохотом неуклюжих печатных устройств и десятками черно-зеленых терминалов, на которых следовало набирать длинные команды, чтобы получить еще более замысловатые ответы. Однако в процессе знакомова с Unix открывались все новые и новые ее достоинства, а старые мифы рушились один за другим. Оказалось, что она работает и на персональных компьютерах, а использовать командную строку Unix ненамного сложнее (а иногда и гораздо проще), чем в DOS ( DOS изначально была очень похожа на сильно упрощенную Unix). Кроме того, всевозможные оболочки, утилиты и прочие “маленькие радости”, порой весьма обличающие жизнь пользователя тех же DOS или MS Windows, имеются и здесь. Выяснилось, наконец, что красивые визуальные эффекты не являются чем-то труднодостижимым. Например, для тех пользователей, которые привыкли к Norton Commander (или его сводному брату — Volkov), для Unix есть программа Midniqht Commander. Она обладает аналогичными Norton возможностями, а также большим количеством дополнительных свойств (например, связанных с особенностями файловой системы Unix), некоторые из которых просто и “не снились” DOS и Windows. Для задач, требующих полноценного графического интерфейса, здесь есть система Х Window и большое количество графических оболочек. Так что в вопросе выбора рабочей среды у пользователя этой операционной системы и возможностей, и альтернатив достаточно. Тогда возникает естественный вопрос — в чем же заключаются особенности Unix?

Вообще говоря, Unix представляет собой набор инструментов и средств для решения вашей задачи: вы оказываетесь как бы на месте математика, который с помощью нескольких аксиом и уже доказанных теорем, комбинируя их icm или иным образом, может решить практически любую задачу. В то же время многие другие системы предоставляют готовые результаты, а пользователю нужно только запоминать действия, необходимые для решения каждой конкретной проблемы. Это отличие, конечно, тpeбyeт некоторых сил и времени на освоение, но, затратив их, вы обнаружите. что приобрели ни с чем не сравнимые гибкость и мощь. Благодаря такой гибкости, а также 01Крыюсти архитектуры и унифицированному подходу ко многим аналогичным компонентам (например, все устройства, включая разделы на жестком диске, представляются как файлы), Unix являе1ся мощной платформой для решения очень многих проблем.

Для задач, которые в DOS или Windows требуют написания специальных программ на языках уровня С или Pascal, в Unix достаточно испопь:-юьа1Ь командный интерпретатор и несколько системных утилит (если вы создавали ВАТ-файлы в DOS, то обнаружите, что в Unix этот подход гибче и позволяет сделать намного больше).

Однако это не значит, что собственно программирование здесь не в почете. Скорее, наоборот, Unix — своего рода рай для программистов. Под Unix существует огромное количество трансляторов (как компиляторов, так и интерпретаторов) со всевозможных языков программирования, отладчиков, отладочных библиотек и других инструментов. Следует отметить, что так как ОС Unix практически на 90% написана на языке С, то этот язык является здесь наиболее распространенным и, соответственно, для него предназначена большая часть инструментария и документации. Автору самому пришлось столкнуться с проблемой интеграции двух достаточно больших программных пакетов, один из которых был написан на C++, а другой на Fortran. Сначала исследовалась возможность стыковки интерфейсов этих двух языков. Однако вскоре была обнаружена программа конвертирования текстов Fortran в С, и пакеты удалось интегрировать намного теснее, чем предполагалось. Замечу только, что текст на Fortran длиной в 10000 строк был переведен в С и скомпилирован без единой правки за 15 минут.

Столь же доброжелательной Unix является и для администратора благодаря существованию здесь огромною количества утилит администрирования и серверов всевозможных услуг. Сетевые возможности здесь, в отличие от многих других ОС, встроенные. Протоколы TCP/IP, на основе которых сейчас построено большинство глобальных и локальных сетей, впервые появились в Unix. Эта ОС обладает мощной настраиваемой системой протоколирования событий, что позволяя администратору отследить неполадки в системе или попытки ее взлома. К тому жр Unix является очень гибко конфигурируемой системой. Подавляющее большинство конфигурационных файлов — текстовые, следовательно, с помощью простого текстового редактора можно настроить систему по своим требованиям.

Unix является многозадачной и многопользовательской си-С1емой. Права каждого пользователя четко определены (за исключением администратора, root - он всесилен). Граверное, именно это обусловило практически полное отсутствие вирусов в Unix. Если вы сконфигурировали систему и после этого работаете как обычный пользователь (без специальных привилегий), вирусу (или некорректной программе — что подчас намного опаснее) практически невозможно повредить жизненно важные файлы системы. Кстати, это позволяет почти безбоязненно запускать пpoграммы, в которых вы не совсем уверены. Все некорректные действия пресекаются (и регистрируются), а программа выгружается из памяти, и все ресурсы (т. е. оперативная память, устройства) возвращаются системе. Существует возможность назначать пользователям специальные привилегии, например, на удаление заданий из очереди принтера или на разделение папок в сети. Поддержка одновременной работы нескольких пользователей позволяет из менять определенные параме1ры системы с правами администратора без выгрузки всех задач: нужно просто зайти в систему вторым пользователем — администратором. Это может быть сделано в отдельном окне или в другой виртуальной консоли. Такую процедуру с помощью штатных средств невозможно осуществить даже в Windows NT — одной из главных конкурирующих систем для Unix на сегодняшний день. Вход в систему возможен также по сети: для удаленной работы в Unix в текстовом режиме необходима программа telnet, причем система, с которой вы регистрируетесь на Unix-станции, может работать под любой другой ОС. Автору приходилось настраивать сервер, на котором была установлена Linux, из комнаты с клиентскими машинами, которая была pacположена четырьмя этажами ниже. Если бы потребовалось переходить между клиентами и сервером, то, наверное, пришлось бы заниматься этим до сих пор,

Еще одна немаловажная деталь: в Unix вы можете загружать, изменять параметры и даже выгружать(!) драйверы устройств без перезагрузки системы. Естественно, это вправе делать только привилегированный пользователь,

История Unix насчитывает почти 30 лет. За это время она усовершенствовалась и переняла многое из передовых ин формация II 1ых технологий (и наоборот — интересные идеи из Unix попали в другие ОС), именно поэтому она была и остается на протяжении этих лет одной из самых мощных и удобных ОС. И, несмотря на усилия производителей других ОС, “старушка” не собирается уступать.

ИСТОРИЯ UNIX

В 1969 г. в рамках научно-исследовательского проекта фирмы Bell Labs котурна AT&T была создана операционная система разделения времени — ОС Multics. Она предназначалась, в основном, для управления файловой системой, управления задачами и обслуживания большого количества пользователей. Хотя эта ОС не оправдала надежд и не смогла решить всех поставленных задач, два ведущих разрабо1чика группы по созданию Multics, Кэн Томпсон и Деннис Ритчи, а также несколько энтузиастов не захотели оставить интересные идеи, которые должны были быть в ней реализованы. Томпсон и Ритчи предложили Bell Labs разработать текстовый процессор, и под этот проект были выделены деньги и компьютер - PDP-11 (те, кто давно работает с вычислительной техникой, наверное, помнят “наш” вариант этой машины — СМ-4). Для него и была создана первая ОС Unix. Проект текстового редактора был выполнен в срок, и Bell Labs стала первым пользователем этой операционной системы. Система оказалась очень удобной, и Bell Labs занялась ее доработкой и усовершенствованием.

В 1976 г. Bell Iabs выпустила шестую версию этой системы -V6, которая бесплатно распространялась в университетах. Седьмая стала первой версией для широкого распространения (в основном, в университетах и научно-исследовательских лабораториях), она вышла через три года и послужила основой для большинства последующих версий Unix. Университетам она предлагалась по цене S100, а всем остальным - за $21000. После выхода V7, которая кроме PDP-машин работала уже и на машинах VAX (тогда эта ОС уже была переписана на языке С, вследствие 401 о перенос на другие платформы упростился), для продвижения Unix как коммерческою продукта в AT&T была создана “Группа поддержки Unix”, впоследствии преобразованная в Unix System Laboratories (USL).

В университетах Unix распространялась вместе с исходными текстами, что позволяло устранят ошибки, а также реализовывать свои идеи в этой ОС. Исходные тексты тоже являлись неплохим учебным пособием для студентов. Таким образом, количество приложений для Unix росло, а сама ОС совершенствовалась.

После выдачи лицензий на V6 университетам появляются другие ветви ОС Unix. Наиболее удачным оказался вариант, разработанный Университетом Беркли. Он был выпущен в 1Q78 г. и назывался 3BSD Unix. Вышедшая в 1983 г. версия 4.2BSD Unix, в которую вошли протоколы TCP/IP, стала стандартом де-факто Unix.

В начале 80-х годов большинство крупных поставщиков вычислительной техники, таких как DEC, Hewlett-Packard, IBM, Sun Microsystems начали выпускать версии Unix для своего аппаратного обеспечения. Внезапно обнаружилось изобилие стандартов Unix. Вместо того чтобы систематизировать существующие версии Unix, эти стандарты способствовали появлению на рынке все новых и новых версий ОС.

В настоящее время версии Unix по своей структуре разделяют на две ветви: АТТ и BSD по сходству ОС с версией концерна AT&T и вариантом Университета Беркли соответственно. В таблице приведены основные поставщики версий ОС Unix и платформы, на которых они работают.

Компания Платформа Версия
Sun Microsystems SPARC SunOS
Sun Microsystems Intel Solaris
Digital Equipment Corp. DEC Alpha Digital Unix*
Hewlett-Packard PA-RISC HP-UX
Novell Intel UnixWare**
Santa Cruz Operation (SCO) Intel SCO Unix
NeXT Computer Silicon Graphics NEXT. MIPS NEXTSTEP
IBM Intel и др. IRIX
BSDI Intel и др. BSD/OS
* Корпорация DEC - единственный крупный поставщик, который прекратил разработку своей версии Unix в пользу с1андарта. ** В настоящее время UnixWare принадлежит компании Santa Cruz Operation.

Различные версии Unix не хотели работать друг с другом, их структуры значительно отличались, таким образом, привлекательность Unix в целом как открытой системы (на которую опубликованы спецификации, что позволяло другим производителям разрабатывать для нес программы и упрощало ее обслуживание) померкла. Естественно, что при та ком разнообразии версий появилась необходимость в стандарте. В 1988 г. две фирмы, обладающие лучшими системами ветвей System V и BSD, — AT&T и Sun Microsystems заключили соглашение и сформировали Unix International.

Тогда же три других крупных поставщика Unix — DEC, HP и IBM - образовали Организацию открытого программного обеспечения (Open Software Foundation — OSF). To было время “великого противостояния” производителей Unix, а проигрывали от этого, естественно, пользователи.

Лишь после появления конкурирующею продукта фирмы Microsoft - Windows NT все ведущие поставщики Unix объединились. В 199.^ г. Sun Microsystems, Unix System Labs, Hewlett-Packard, IBM, SCO и Univel объявили о создании Common Open Software Environment (COSE) - набора спецификаций, определяющих наиболее популярные стандарты де-факто. Основными стандартами стали сетевая архитектура Open Network Computing (ONC), графическая система X Window System и графический пользовательский интерфейс Motif (у Sun Microsystems к тому времени уже был разработанный ею достаточно популярный интерфейс OpenLook, однако Sun отказалась от него в пользу Motif). Сейчас на базе Motif разработана система Common Desktop Environment (CDE) — унифицированная графическая рабочая среда пользователя. Это упростило процесс написания программного обеспечения для Unix, перенос его в различные версии этой ОС, а также интеграцию систем, в которых присутствовало несколько версий Unix, и снова повысило ее популярность.


This page maintained by Global Inform Group Ukraine, Kharkov © 1998-99