18.11.2010 31015

Сетевые операционные системы

 

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

При организации сетевой работы операционная система играет роль интерфейса, скрывающего от пользователя все детали функционирования низкоуровневых программно-аппаратных средств сети. Например, вместо числовых адресов компьютеров сети, таких как МАС-адрес и IP-адрес, операционная система компьютерной сети позволяет оперировать удобными для запоминания символьными именами. В результате в представлении пользователя сеть с её множеством сложных реальных деталей превращается в достаточно понятный набор разделяемых ресурсов.

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

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

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

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

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

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

На рис. 1. показаны основные функциональные компоненты сетевой операционной системы:

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

Сетевые средства, в свою очередь, можно разделить на три компоненты:

1. Средства предоставления локальных ресурсов и услуг в общее пользование - серверная часть операционной системы;

2. Средства запроса доступа к удаленным ресурсам и услугам - клиентская часть операционной системы;

3. Транспортные средства операционной системы, которые совместно с коммуникационной системой обеспечивают передачу сообщений между компьютерами сети.

Основные функциональные компоненты сетевой операционной системы

Рис. 1. Основные функциональные компоненты сетевой операционной системы

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

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

Управляют передачей сообщений между клиентской и серверными частями по коммуникационной системе сети транспортные средства ОС. Эти средства выполняют такие функции, как формирование сообщений, разбиение сообщения на части (пакеты, кадры), преобразование имен компьютеров в числовые адреса, организацию надежной доставки сообщений, определение маршрута в сложной сети и т. д. и т. п. Правила взаимодействия компьютеров при передаче сообщений по сети фиксируются в коммуникационных протоколах, таких как Ethernet, Token Ring, IP, IPX и пр. Чтобы две ЭВМ смогли обмениваться сообщениями по сети, транспортные средства их операционных систем должны поддерживать некоторый общий набор коммуникационных протоколов. Программные модули операционной системы, реализующие эти коммуникационные протоколы, переносят сообщения клиентских и серверных частей операционной системы по сети, не вникая в их содержание.

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

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

Сетевая операционная система предоставляет пользователю некоторый набор сетевых услуг при помощи сетевых служб. Таким образом, сетевая служба предоставляет собой сетевой компонент, предоставляющий пользователям сети некоторый набор услуг. Эти услуги иногда называют также сетевым сервисом (от англоязычного термина «service»). Необходимо отметить, что этот термин в технической литературе переводится и как «сервис», и как «услуга», и как «служба». Хотя указанные термины иногда используются как синонимы, следует иметь в виду, что в некоторых случаях различие в значениях этих терминов носит принципиальный характер. Далее в тексте под «службой» мы будем понимать сетевой компонент, который реализует некоторый набор услуг, а под «сервисом» - описание того набора услуг, который предоставляется данной службой. Таким образом, сервис - это интерфейс между потребителем услуг и поставщиком услуг (службой).

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

Среди сетевых служб можно выделить такие, которые ориентированы не на простого пользователя, а на администратора. Такие службы используются для организации работы сети. Например, служба Bindery операционной системы Novell NetWare З.х позволяет администратору вести базу данных о сетевых пользователях компьютера, на котором работает эта ОС. Более прогрессивным является подход с созданием централизованной справочной службы, или, по-другому, службы каталогов, которая предназначена для ведения базы данных не только обо всех пользователях сети, но и обо всех её программных и аппаратных компонентах. В качестве примеров службы каталогов часто приводятся NDS компании Novell и Street/Talk компании Banyan. Другими примерами сетевых служб, предоставляющих сервис администратору, являются служба мониторинга сети, позволяющая захватывать и анализировать сетевой трафик, служба безопасности, в функции которой может входить, в частности, выполнение процедуры логического входа с проверкой пароля, служба резервного копирования и архивирования.

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

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

1. Сетевые службы глубоко встроены в ОС;

2. Сетевые службы объединены в виде некоторого набора - оболочки;

3. Сетевые службы производятся и поставляются в виде отдельного продукта.

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

Однако в дальнейшем разработчики сетевых операционных систем посчитали более эффективным подход, при котором сетевая ОС с самого начала работы над ней задумывается и проектируется специально для работы в сети. Сетевые функции у этих операционных систем глубоко встраиваются в основные модули системы, что обеспечивает её логическую стройность, простоту эксплуатации и модификации, а также высокую производительность. Важно, что при таком подходе отсутствует избыточность. Если все сетевые службы хорошо интегрированы, то есть рассматриваются как неотъемлемые части ОС, то все внутренние механизмы такой операционной системы могут быть оптимизированы для выполнения сетевых функций. Например, операционная система Windows NT компании Microsoft за счет встроенности сетевых средств обеспечивает более высокие показатели производительности и защищенности информации по сравнению с сетевой операционной системой LAN Manager той же компании, являющейся надстройкой над локальной операционной системой OS/2. Другими примерами сетевых ОС со встроенными сетевыми службами являются все современные версии UNIX, NetWare, OS/2 Warp.

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

Одна и та же оболочка может предназначаться для работы над совершенно разными операционными системами. В таких случаях оболочка должна строиться с учетом специфики той операционной системы, над которой она будет работать. Так, например, сетевая оболочка LAN Server существует в различных вариантах: для работы над операционными системами VAX VMS, VM, OS/400, AIX, OS/2.

Сетевые оболочки создаются как для локальных, так и для сетевых операционных систем. Действительно, почему бы не дополнить набор сетевых служб, встроенных в сетевую ОС, другими службами, составляющими некоторую сетевую оболочку. Например, сетевая оболочка ENS (Enterprise Network Services), содержащая базовый набор сетевых служб операционной системы Banyan VINES, может работать над сетевыми ОС UNIX и NetWare (конечно, для каждой из этих операционных систем требуется собственный вариант ENS).

Существует и третий способ реализации сетевой службы - в виде отдельного продукта. Например, сервер удаленного управления WinFrame - продукт компании Citrix - предназначен для работы в среде Windows NT. Он дополняет возможности встроенного в Windows NT сервера удаленного доступа Remote Access Server. Аналогичную службу удаленного доступа для NetWare также можно приобрести отдельно, купив программный продукт NetWare Connect. С течением времени сетевая служба может получить разные формы реализации. Так, например, компания Novell планирует поставлять справочную службу NDS, первоначально встроенную в сетевую ОС NetWare, для других ОС. Для этого служба NDS будет переписана в виде отдельных продуктов, каждый из которых будет учитывать специфику соответствующей ОС. Уже имеются версии NDS для работы в средах SCO UNIX и HP-UX, Solaris 2.5 и Windows NT. А справочная служба StreetTalk уже давно существует и в виде встроенного модуля сетевой ОС Bayan Vines, и в составе оболочки ENS, и в виде отдельного продукта для различных операционных систем.

В сетях с выделенными серверами используются специальные варианты сетевых операционных систем, которые оптимизированы для работы в роли серверов и называются серверными ОС. Пользовательские компьютеры в этих сетях работают под управлением клиентских операционных систем.

Специализация операционной системы для работы в качестве сервера является естественным способом повышения эффективности серверных операций. А необходимость такого повышения часто ощущается весьма остро, особенно в крупной сети. При существовании в сети сотен или даже тысяч пользователей интенсивность запросов к совместно используемым ресурсам может быть очень большой, и сервер должен справляться с этим потоком запросов без больших задержек. Очевидным решением этой проблемы является использование в качестве сервера компьютера с мощной аппаратной платформой и операционной системой, оптимизированной для серверных функций. Чем меньше функций выполняет ОС, тем более эффективно можно их реализовать, поэтому для оптимизации серверных операций разработчики ОС вынуждены ущемлять некоторые другие её функции, причем иногда вплоть до полного их отбрасывания. Одним из ярких примеров такого подхода является серверная операционная система NetWare. Её разработчики поставили перед собой цель оптимизировать выполнение файлового сервиса и сервиса печати. Для этого они полностью исключили из системы многие элементы, важные для универсальной операционной системы, в частности графический интерфейс пользователя, поддержку универсальных приложений, защиту прикладных программ мультипрограммного режима друг от друга, механизм виртуальной памяти. Все это позволило добиться уникальной скорости файлового доступа и вывело эту операционную систему в лидеры серверных ОС на долгое время.

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

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

1. Поддержка мощных аппаратных платформ, в том числе мультипроцессорных;

2. Поддержка большого числа одновременно выполняемых процессов и сетевых соединений;

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

4. Более широкий набор сетевых служб.

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

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

Например, операционная система Windows NT выпускается в варианте для рабочей станции - Windows NT Workstation - и в варианте для выделенного сервера - Windows NT Server. Оба эти варианта операционной системы включают клиентские и серверные части многих сетевых служб.

Так, ОС Windows NT Workstation кроме выполнения функций сетевого клиента может предоставлять сетевым пользователям файловый сервис, сервис печати, сервис удаленного доступа и другие сервисы, а следовательно, может служить основой для одноранговой сети. С другой стороны, ОС Windows NT Server содержит все необходимые средства, которые позволяют использовать компьютер под её управлением в качестве клиентской рабочей станции. Под управлением ОС Windows NT Server имеется возможность локально запускать прикладные программы, которые могут потребовать выполнения клиентских функций ОС при появлении запросов к ресурсам других компьютеров сети. Windows NT Server имеет такой же развитый графический интерфейс, как и Windows NT Workstation, что позволяет с равным успехом использовать эти ОС для интерактивной работы пользователя или администратора.

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

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

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

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

3. Совместимость. Существует несколько «долгоживущих» популярных операционных систем (разновидности UNIX, MS-DOS, Windows 3-х, Windows NT, OS/2), для которых наработана широкая номенклатура прикладных программ. Некоторые из них пользуются широкой популярностью. Поэтому для пользователя, переходящего по тем или иным причинам с одной операционной системы на другую, очень привлекательна возможность запуска в новой операционной системе привычного приложения. Если ОС имеет средства для выполнения прикладных программ, написанных для других операционных систем, то про нее говорят, что она обладает совместимостью с этими ОС. Следует различать совместимость на уровне двоичных кодов и совместимость на уровне исходных текстов. Понятие совместимости включает также поддержку пользовательских интерфейсов других операционных систем.

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

5. Безопасность. Современная операционная система должна защищать данные и другие ресурсы вычислительной системы от несанкционированного доступа. Чтобы ОС обладала свойством безопасности, она должна как минимум иметь в своем составе средства аутентификации - определения легальности пользователей, авторизации - предоставления легальным пользователям дифференцированных прав доступа к ресурсам, аудита - фиксации всех «подозрительных» для безопасности системы событий. Свойство безопасности особенно важно для сетевых ОС. В таких ОС к задаче контроля доступа добавляется задача защиты данных, передаваемых по сети.

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