oldi

Многообразие UNIX

Алексей Кошелев

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

Построение UNIX

Краткое описание UNIX-систем

Выбор UNIX

Краткое сравнение с Windows NT

Построение UNIX

Основой работы UNIX является ядро операционной системы. Это обычный выполняемый файл, лежащий в директории, типа /unix, или /stand/unix, или /vmunix, или /vmlinuz (в зависимости от конкретной реализации). При старте системы он целиком грузится в память, постоянно там находится и выполняет все системные функции. В ядре находятся драйверы устройств, возможно, и ненужные, подпрограммы управления системными ресурсами, таблицы текущих процессов и открытых файлов, системные вызовы, то есть обработчики системно-зависимых функций. Аналогом последних является 21 прерывание в MS-DOS или многочисленные экспортируемые функции в DLL в Windows.

Любые операции с дисками кэшируются в памяти – так называемый буферный кэш. Процессы, то есть все выполняемые программы, записываются в таблице процессов. В целях экономии памяти в UNIX всегда загружается только одна копия выполняемой программы; также имеются разделяемые библиотеки (аналогом является DLL), позволяющие иметь только одну копию некоторых функций. Каждый процесс имеет свое виртуальное адресное пространство. Для того чтобы обеспечить возможность поддерживать программы, требующие оперативной памяти, которая превосходит их физический объем, UNIX поддерживает swapping. Область памяти программы делится на три части: собственно код программы, статические и динамические данные. Можно потребовать по возможности не выгружать программу после завершения, установив бит «навязчивости». В этом случае при последующей загрузке программа будет запущена почти мгновенно.

Файловая система UNIX представляет собой одно большое дерево. Каждый раздел диска имеет свое дерево, а все такие деревья сцепляются в одно. Корнем является директория “/”. В файловую систему входит и директория /dev, в которой находится описание физических и логических устройств, таких как жесткие диски, принтер, TTY и некоторые другие. Поскольку для быстроты файловая система кэшируется, то выключение питания может привести к разрушению файловой системы. Подробный формат файловой системы можно узнать, дав команду

man fs

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

man command_name
В начало

В начало

Краткое описание UNIX-систем

Спустя довольно непродолжительное время после своего возникновения UNIX стала развиваться по двум направлениям. Первое – коммерческое, поддерживалось USL (UNIX System Laboratory), второе – некоммерческое, было проектом, осуществляемым в Berkley. Первое направление доросло до SVR, второе — до BSD. Однако USL засудила BSD за использование фрагментов кода с копирайтом AT&T, вследствие чего многие коммерческие UNIX перешли на линию SVR.

Сразу оговорюсь: я не буду перечислять все типы UNIX, так как их очень много. Я затрону лишь наиболее распространенные из них.

Начну с краткого перечисления разных типов UNIX для PC.

Некоммерческие:

  • NetBSD.
  • FreeBSD 2.1 – наиболее подходит для работы в сети. В нем полностью заново переделан код ядра, где мог бы возникнуть конфликт с USL.
  • Linux – самый популярный среди бесплатных UNIX.

Коммерческие:

  • BSD/OS 2.0 BSDi/386 – недорогой.
  • Solaris – копия с SUN.
  • SCO UNIX.

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

 

Машина (железо)

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

Sun

Sun OS

IBM RS/6000

AIX

HP 9000

HP-UX

DEC

Ultrix

DEC Alpha AXP

OSF/1

SGCS Silicon Graphic

IRIX

Тем самым, получая некоторое железо, вы одновременно получаете родной UNIX. Исключений не много. Наиболее известные: существует Linux для IBM/RS6000, а также Windows NT для Alpha-станций и IBM/RS6000. Я упомянул Windows NT, поскольку дальше при описании UNIX я буду иногда указывать на то, что та или иная функция или программа просто не входит в Windows.

В начало

В начало

Выбор UNIX

Перед системным администратором стоит задача выбрать операционную систему для сервера компании. У этого вопроса есть и коммерческая сторона. Во-первых, существует стереотип, что бесплатное не может быть хорошим, во-вторых, зачастую считается, что лучше купить дорогой Windows NT и дешевый компьютер, чем тратить деньги на дорогой, скажем, компьютер SUN. Однако, если приоритет выбора на стороне специалиста, нужно учесть несколько моментов.

Покупка не-PC-железа ведет к поставке именно родного UNIX; более того, некоторое специальное аппаратное обеспечение поддерживает далеко не все, что продается, то есть нужна определенная память, видеокарты. Более того, выбор железа и соответственно системы может ограничить возможности установки программного обеспечения. Скорее всего придется покупать родные программы. Таким образом, покупая компьютер из перечисленных в таблице, вы изначально определяете, что вы будете использовать из программного и аппаратного обеспечения. Вероятнее всего, нужно выбирать именно систему. Существует несколько критериев: предоставляемые системой возможности — сетевые возможности, удаленная работа с файлами, средства Интернет/Интранет; безопасность; техническая поддержка; возможность обновления и исправления ошибок; удобство администрирования. По мнению аналитических изданий, проводивших сравнение UNIX-систем, на сегодняшний день существует примерно следующая расстановка сил: AIX, Digital UNIX, IRIX 6.4, Sun OS, HP-UX.

Поскольку AIX стоит на первом месте, я коснусь его более подробно. AIX, особенно последние версии 4.3.x, на самом деле отличается количеством предоставляемых возможностей. В комплект поставки входит поддержка всех мыслимых Интернет-сервисов. Для удаленной работы с файлами поддерживаются NFS с такими функциями, как CacheFS и AutoFS. Работа с дисками осуществляется несколько иным способом, чем в других UNIX. Есть возможность создавать так называемые Volume groups, что позволяет делать файловые системы, превосходящие физический диск. Другими словами, вы можете сделать, например, файловую систему размером 6 Гбайт, имея в наличии два диска по 4 Гбайт. Отличительной особенностью является поддержка jfs (journal file system). Ее преимуществом является то, что она постоянно обновляется, не приводя к сбоям при аварийном выключении питания. Администрирование системы целиком может производиться из программы smit. Это удобная программа с меню (как в текстовом, так и в графическом режиме) дает возможность настроек всего – от протоколов до программного обеспечения. Графический интерфейс (CDE) также является довольно удобным. Может быть, единственным недостатком системы является ее излишняя коммерциализация. В дополнение к довольно большой цене на саму систему вам придется потратить деньги на программное обеспечение. Вы будете вынуждены отдельно докупать даже компилятор C (C++). Более того, лицензионный код действует в течение ограниченного времени, и потом вам придется продлевать лицензию.

Остальные системы уступают в поддержке тех или иных возможностей сети, NFS, в наличии тех или иных серверов типа Web. Однако это не умаляет их достоинств. Более того, например, SUN вместе с SunOS является весьма популярной системой. Отчасти это объясняется тем, что аналогичная (чуть ли не тождественная) система создана для PC. Кроме того, в Sun OS существует сильная поддержка NFS.

Поскольку предыдущее описание затрагивало специфическое железо, то выбора между системами не было. По-другому обстоит дело на PC. Существует три наиболее популярных типа UNIX на интеловской платформе: FreeBSD, Linux, Solaris.

FreeBSD. Некоммерческая операционная система, сделанная на основе BSD. Однако в ней переписан весь код ядра, дабы избежать конфликтов авторских прав. Она признана наиболее надежной системой, поддерживающей все сетевые функции, имеет поддержку NFS, графический интерфейс Xfree86. Тем не менее нельзя признать ее удобной в администрировании. В основном все настройки необходимо делать из командной строки или редактировать конфигурационные файлы. По собственному опыту: FreeBSD наиболее удобна на шлюзах, особенно в сочетании с Firewall.

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

Solaris. Удобная, красивая, что немаловажно, а также мощная система, воплотившая на PC многие прелести родного SUN. Поддерживает многопроцессорные платы, правда, Intel более чем два сделать пока не хочет. Наиболее часто используется на машинах для скромных вычислительных целей: что-то вроде мини-лаборатории.

Вначале я говорил, что весьма важно иметь легкий и удобный способ обновления системы и установки новых программ. В AIX, Solaris и Linux эта проблема решена очень удачно. Все новые программы, дополнения к системе, обновления приходят в единообразном формате (для каждой системы, правда, в своем). В AIX администрированием программ занимается программа smit, которая, как я говорил, занимается также администрированием и всего остального. Примечательно, что в AIX отслеживается зависимость пакетов, то есть если пакет A использует пакет B, то при установке A будет проверено наличие B. Если его нет, то он будет установлен. В Solaris установкой и удалением пакетов ведают утилиты pkgadd, pkgrm и pkgchk, которые добавляют, удаляют и проверяют установку пакетов. Правда, зависимость пакетов может быть отслежена неверно, поэтому желательно следить за порядком установки. В Linux большинство программ поставляются в виде .rpm-файлов. Команда rpm позволяет устанавливать, удалять и обновлять пакеты программ.

В начало

В начало

Краткое сравнение с Windows NT

В заключение хочется привести некоторое сравнение с Windows, не имея цели принижать последнюю, а лишь приводя факты:

 

Номинация

UNIX

Windows NT

Цена

Только сам CD-диск

До 3000 $

Техническая поддержка

Онлайн www.linux.org/help/howto.html

Почти нет

Наличие исходного кода

Да

Нет

telnet-сервер

Да

Нет

ftp-сервер

Да

Да

SMTP/POP3-сервер

Да

Нет

News-сервер

Да

Нет

X-сервер

Да

Нет

DNS

Да

Да

Сетевые протоколы

TCP/IP, IPv6, NFS, SMB, IPX/SPX, NCP Server (NetWare Server), AppleTalk

TCP/IP, SMB, IPX/SPX, AppleTalk

Компилятор C (C++)

Да

Нет

Дисковые квоты

Да

Нет

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

КомпьютерПресс 4'2000