Наконец, нельзя не сказать и о некоммерческих ОС, которые в той или иной степени могут считаться относящимися к семейству Unix. О FreeBSD мы уже упоминали. Это, по-видимому, лучший из некоммерческих продуктов, и эта ОС уже давно нашла себе применение в промышленной обработке данных.
Последние годы отмечены шумной экспансией ОС Linux [9, 26]. Ядро этой ОС было разработано в 1991 Линусом Торвальдсом (Финляндия) прежде всего "для личного пользования". Торвальдс сделал исходный код своей ОС открытым. При фиксированном ядре любой программист может написать собственные сервисы ОС Linux и опубликовать их через Internet. Трудно сказать, что послужило причиной такой популярности ОС Linux. Она не является ни уникальной, ни лучшей ни как свободно распространяемая, ни как открытая, ни как Unix для компьютеров небольшой вычислительной мощности. По-видимому, этот феномен объясняется некоторым совпадением объективных и субъективных факторов, анализ которых не входит в наши цели.
До 1997 г. ОС Linux была популярна почти исключительно в университетской среде. Однако в 1997 г. ряд фирм объявил о выпуске собственных версий Linux. Некоторые из этих версий (например, Red Hat) остались бесплатными, некоторые (например, Caldera) стали коммерческими. Принципиально важно то, что у Linux появились "хозяева", которые несли ответственность (в том числе и коммерческую) за сопровождение ОС. Это вызвало стремительное возрастание интереса к Linux пользователей, которые решают задачи промышленной обработки информации. Такой интерес объясняется, с одной стороны, желанием иметь "почти настоящую" ОС Unix со значительно меньшими расходами, с другой, нежеланием попадать в полную зависимость от Microsoft. Фирмы-лидеры информационных технологий не могли игнорировать настроения рынка и объявили либо о выпуске собственных версий Linux (например, Hewlett-Packard), либо о поддержке определенных версий Linux на своих аппаратных платформах и в своем промежуточном программном обеспечении (например, IBM). Интересно, что эти фирмы являются производителем собственных коммерческих версий ОС Unix. В последних версиях всех коммерческих ОС Unix, рассмотренных выше, в API ОС внесены системные вызовы, обеспечивающие возможность выполнения в них приложений, написанных для Linux. Пока, по-видимому, гранды информационных технологий не видят в Linux серьезного конкурента для своих ОС в сфере промышленной обработки данных и систем высокой готовности и предусматривают перенос информационных систем с Linux на коммерческие Unix при достижении ими определенной степени зрелости. Не без помощи "грандов" достигнут перенос Linux на большое число платформ - от встроенных вычислительных устройств до мейнфреймов и суперкомпьютеров. Возможно, с достижением Linux промышленного уровня, в этой ОС сможет воплотиться идея, не удавшаяся в проекте Monterey - единая ОС Unix для всех.
Следует отметить еще одну интересную сферу применения Linux. Ряд стран (например, Китай, Россия) объявил о принятии в качестве базовой ОС для информационных системах в своих силовых структурах ОС, "изготовляемой на основе Linux". Основную роль здесь играет открытость исходного кода. Доступность исходного кода Linux позволяет правительственным специалистам этих стран с одной стороны убедиться в отсутствии в ОС "закладок", занимающихся "электронным шпионажем", а с другой - провести исчерпывающую верификацию ОС и добиться ее высокой надежности и безопасности.
В следующем изложении мы ориентируемся прежде всего на "классическую" ОС Unix, ведущую свою родословную от Bell Labs, и ее последнюю на сегодняшний день версию - Open Unix 8, но рассматриваем также и некоторые особенности других коммерческих и некоммерческих ОС семейства Unix.
Unix - полноценная, изначально многопользовательская, многозадачная и многотерминальная операционная система. Точнее, это целое семейство систем, почти полностью совместимых друг с другом на уровне исходных текстов программ.
Какие бывают Unix'ы и на каких машинах они запускаются?
Unix | платформа |
SCO Unix (Santa Cruz Operation) | i*86 |
Novell UnixWare (куплена SCO) | i*86 |
Interactive Unix (куплен Sun) | i*86 |
Linux | i*86, Motorolla 680*0, DEC Alpha, IBM POWER-PC, Sun Sparc,??? |
Семейство BSD: BSDI, FreeBSD, NetBSD, OpenBSD | i*86, Acorn ARM, Sun Sparc,??? |
Solaris | Sun Sparc, i*86 |
AIX | IBM RS/6000 и AS/400 на POWER-PC |
IRIX | SGI MIPS |
Digital Unix (ранее Unix OSF/1) | DEC Alpha |
HP-UX | Hewlett-Packard PA-RISC |
Этот список не претендует на полноту, ибо кроме перечисленных есть еще множество менее распространенных Unix'ов и Unix-подобных систем, не говоря уже о древних Unix'ах для устаревших машин.
Условно можно выделить семейства System V и Berkeley. System V (читается "System Five") имеет несколько вариантов, последний по моим сведениям System V Release 4. Университет Berkeley славен не только разработкой BSD, но и большинства протоколов Internet. Впрочем, многие Unix'ы сочетают свойства обеих систем.
FreeBSD База - www.freebsd.org;
есть также на ftp. kiae. su/FreeBSD/*-RELEASE/ и еще во множестве мест
OpenBSD ftp. openbsd.org
Linuxftp. cs. msu. su/pub/Os/Linux/Slachware_3.1/
SCOПо моим сведениям, в Internet недоступен, но можно получить лицензию на бесплатное использование. Обратитесь на www.sco.com
Unix состоит из ядра с включенными в него драйверами и из утилит (внешних по отношению к ядру программ). Если надо изменить конфигурацию (добавить устройство, изменить порт или прерывание), то ядро пересобирают (перелинковывают) из обьектных модулей или (напр., во FreeBSD) из исходников. /* Это не совсем верно. Некоторые параметры пожно поправить без пересборки. Существуют также loadable kernel modules. */
В противоположность Unix'у Windows (если не уточняется, какая, то имеются в виду 3.11, 95 и NT) и OS/2 при загрузке фактически на ходу прилинковывают драйверы. При этом компактность собранного ядра и повторное использование общего кода на порядок ниже, чем у Unix. Кроме того, при неизменной конфигурации системы ядро Unix без переделки (потребуется изменить только стартовую часть BIOS) может быть записан в ПЗУ и выполняться не загружаясь в ОЗУ. Компактность кода особенно важна, т.к. ядро и драйверы никогда не покидают физическую оперативную память, не свопятся на диск.
Unix - самая многоплатформенная OS. WindowsNT пытается подражать ему, но пока это плохо удается - после отказа от MIPS и POWER-PC, W'NT остались всего на двух платформы - традиционная i*86 и DEC Alpha. Переносимость программ с одной версии Unix на другую ограничена. Неаккуратно написанная программа, не учитывающая различий в реализациях Unix, делающая необоснованные предположения типа 'переменная integer должна занимать четыре байта' может потребовать серьезной переделки. Но все равно это на много порядков легче, чем например пернести с OS/2 на NT.
Unix используется как в качестве как сервера, так и рабочей станции. В номинации серверов с ним конкурируют MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS и операционные системы мэйнфреймов. Каждая система имеет свою область применения, в которой она лучше других.
WindowsNT - для администраторов, которые предпочитают удобный интерфейс экономному расходованию ресурсов и высокой производительности.
Netware - для сетей, где нужна высокая производительность файлового и принтерного сервиса и не столь важны остальные сервисы. Главный недостаток - на сервере Netware трудно запускать приложения.
OS/2 хороша там, где нужен "легкий" сервер приложений. Ресурсов требует меньше чем NT, в управлении гибче (хотя в настройке может и сложнее), а многозадачность очень хорошая. Авторизация и разграничение прав доступа не реализованы на уровне ОС, что с лихвой окупается реализацией на уровне приложений-серверов. (Впрочем, зачастую остальные OS делают то же самое). Многие станции FIDOnet и BBS сделаны на базе OS/2.
VMS - мощный, ничем не уступающий Unix'ам (а во многом и превосходящий его) сервер приложений, но только для платформ VAX и Alpha фирмы DEC.
Мэйнфреймы - для обслуживания очень большого количества пользователей (порядка нескольких тысяч). Но работа этих пользователей как правило организована в виде не клиент-серверного взаимодействия, а в виде хост-терминального. Терминал же в этой паре скорее не клиент, а сервер (Мир Internet, N3 за 1996-й год). К преимуществам мэйнфреймов надо отнести более высокую защищенность и устойчивость к сбоям, а к недостаткам - соответствующую этим качествам цену.
Unix хорош для квалифицированного (или желающего стать таковым) администратора, т.к требует знания принципов функционирования происходящих в нем процессов. Реальная многозадачность и жесткое разделение памяти обеспечивают высокую надежность функционирования системы, хотя в производительности файл - и принт-сервисов Unix'ы уступают Netware.