сетевые средства, в свою
очередь, можно разделить на
три компонента:
средства предоставления локальных
ресурсов и услуг в общее
пользование — серверная часть
ОС;
средства запроса доступа
к удаленным ресурсам и услугам
— клиентская часть ОС;
транспортные средства ОС, которые
совместно с коммуникационной
системой обеспечивают передачу
сообщений между компьютерами
сети.
Рис. 2.1. Функциональные компоненты сетевой
ОС
Упрощенно работа сетевой
.ОС происходит следующим образом.
Предположим, что' пользователь
компьютера А решил разместить
свой файл на диске другого
компьютера сети — компьютера
В. Для этого он набирает
на клавиатуре соответствующую
команду и нажимает клавишу
Enter. Программный модуль ОС, отвечающий
за интерфейс с пользователем,
принимает эту команду и передает
ее клиентской части ОС компьютера
А.
Клиентская часть ОС не
может получить непосредственный
доступ к ресурсам другого
компьютера — в данном случае
к дискам и файлам компьютера
В. Она может только «попросить»
об этом серверную часть ОС,
работающую на том компьютере,
которому принадлежат эти ресурсы.
Эти «просьбы» выражаются в
виде сообщений, передаваемых по сети.
Сообщения могут содержать не только команды
на выполнение некоторых действий, но
и собственно данные, например содержимое
некоторого файла.
Управляют передачей сообщений
между клиентской и серверными
частями по коммуникационной
системе сети транспортные средства
ОС. Эти средства выполняют такие
функции, как формирование сообщений,
разбиение сообщения на части
(пакеты, кадры), преобразование имен
компьютеров в числовые адреса,
организацию надежной доставки
сообщений, определение маршрута
в сложной сети и т. д.
и т. п. Правила взаимодействия
компьютеров при передаче сообщений
по сети фиксируются в коммуникационных
протоколах, таких как Ethernet, Token Ring,
IP, IPX и пр. Чтобы два компьютера
смогли обмениваться сообщениями
по сети, транспортные средства
их ОС должны поддерживать
некоторый общий набор коммуникационных
протоколов. Коммуникационные протоколы
переносят сообщения клиентских
и серверных частей ОС по
сети, не вникая в их содержание.
На стороне компьютера В,
на диске которого пользователь
хочет разместить свой файл, должна
работать серверная часть ОС,
постоянно ожидающая прихода
запросов из сети на удаленный
доступ к ресурсам этого компьютера.
Серверная часть, приняв запрос
из сети, обращается к локальному
диску и записывает в один
из его каталогов указанный
файл. Конечно, для выполнения
этих действий требуется не
одно, а целая серия сообщений,
переносящих между компьютерами
команды ОС и части передаваемого
файла.
Очень удобной и полезной
функцией клиентской части ОС
является способность отличить
запрос к удаленному файлу
от запроса к локальному файлу.
Если клиентская часть ОС умеет
это делать, то приложения не
должны заботиться о том, с
локальным или удаленным файлом
они работают, — клиентская программа
сама распознает и перенаправляет
(redirect) запрос к удаленной машине.
Отсюда и название, часто используемое
для клиентской части сетевой
ОС, — редиректор. Иногда функции
распознавания выделяются в отдельный
программный модуль, в этом случае
редиректором называют не всю
клиентскую часть, а только
этот модуль.
Клиентские части сетевых
ОС выполняют также преобразование
форматов запросов к ресурсам.
Они принимают запросы от приложений
на доступ к сетевым ресурсам
в локальной форме, то есть
в форме, принятой в локальной
части ОС. В сеть же запрос
передается клиентской частью
в другой форме, соответствующей
требованиям серверной части
ОС, работающей на компьютере, где
расположен требуемый ресурс. Клиентская
часть также осуществляет прием
ответов от серверной части
и преобразование их в локальный
формат, так что для приложения
выполнение локальных и удаленных
запросов неразличимо.
Сетевые службы и сетевые
сервисы
Совокупность серверной и
клиентской частей ОС, предоставляющих
доступ к конкретному типу
ресурса компьютера через сеть,
называется сетевой службой. В
приведенном выше примере клиентская
и серверная части ОС, которые
совместно обеспечивают доступ
через сеть к файловой системе
компьютера, образуют файловую службу.
Говорят, что сетевая служба
предоставляет пользователям сети
некоторый набор услуг. Эти
услуги иногда называют также
сетевым сервисом (от англоязычного
термина «service»). Необходимо отметить,
что этот термин в технической
литературе переводится и как
«сервис», и как «услуга», и как
«служба». Хотя указанные термины
иногда используются как синонимы,
следует иметь в виду, что в
некоторых случаях различие в значениях
этих терминов носит принципиальный характер.
Далее в тексте под «службой» мы будем
понимать сетевой компонент, который реализует
некоторый набор услуг, а под «сервисом»
— описание того набора услуг, который
предоставляется данной службой. Таким
образом, сервис — это интерфейс между
потребителем услуг и поставщиком услуг
(службой).
Каждая служба связана с
определенным типом сетевых ресурсов
и/или определенным способом доступа
к этим ресурсам. Например, служба
печати обеспечивает доступ пользователей
сети к разделяемым принтерам
сети и предоставляет сервис
печати, а почтовая служба предоставляет
доступ к информационному ресурсу
сети — электронным письмам.
Способом доступа к ресурсам
отличается, например, служба удаленного
доступа — она предоставляет
пользователям компьютерной сети
доступ ко всем ее ресурсам
через коммутируемые телефонные
каналы. Для получения удаленного
доступа к конкретному ресурсу,
например к принтеру, служба удаленного
доступа взаимодействует со службой
печати. Наиболее важными для
пользователей сетевых ОС являются
файловая служба и служба печати.
Среди сетевых служб можно
выделить такие, которые ориентированы
не на простого пользователя,
а на администратора. Такие службы
используются для организации
работы сети. Например, служба Bindery операционной
системы Novell NetWare 3.x позволяет администратору
вести базу данных о сетевых
пользователях компьютера, на котором
работает эта ОС. Более прогрессивным
является подход с созданием
централизованной справочной службы,
или, по-другому, службы каталогов,
которая предназначена для ведения
базы данных не только обо
всех пользователях сети, но и
обо всех ее программных и
аппаратных компонентах. В качестве
примеров службы каталогов часто
приводятся NDS компании Novell и StreetTalk
компании Banyan. Другими примерами
сетевых служб, предоставляющих
сервис администратору, являются
служба мониторинга сети, позволяющая
захватывать и анализировать
сетевой трафик, служба безопасности,
в функции которой может входить,
в частности, выполнение процедуры
логического входа с проверкой
пароля, служба резервного копирования
и архивирования.
От того, насколько богатый
набор услуг предлагает операционная
система конечным пользователям,
приложениям и администраторам
сети, зависит ее позиция в
общем ряду сетевых ОС.
Сетевые службы по своей
природе являются клиент- серверными
системами. Поскольку при реализации
любого сетевого сервиса естественно
возникает источник запросов (клиент)
и исполнитель запросов (сервер),
то и любая сетевая служба
содержит в своем составе две
несимметричные части — клиентскую
и серверную (рис. 2.2). Сетевая служба
может быть представлена в
операционной системе либо обеими
(клиентской и серверной) частями,
либо только одной из них.
Рис. 2.2. Клиент-серверная природа
сетевых служб
Обычно говорят, что сервер
предоставляет свои ресурсы клиенту,
а клиент ими пользуется. Необходимо
отметить, что при предоставлении
сетевой службой некоторой услуги
используются ресурсы не только
сервера, но и клиента. Клиент
может затрачивать значительную
часть своих ресурсов (дискового
пространства, процессорного времени
и т. п.) на поддержание работы
сетевой службы. Например, при реализации
почтовой службы на диске клиента
может храниться локальная копия
базы данных, содержащей его обширную
переписку. В этом случае клиент
выполняет большую работу при
формировании сообщений в различных
форматах, в том числе и сложном
мультимедийном, поддерживает ведение
адресной книги и выполняет
еще много различных вспомогательных
работ. Принципиальной же разницей
между клиентом и сервером
является то, что инициатором
выполнения работы сетевой службой
всегда выступает клиент, а сервер
всегда находится в режиме
пассивного ожидания запросов. Например,
почтовый сервер осуществляет
доставку почты на компьютер
пользователя только при поступлении
запроса от почтового клиента.
Обычно взаимодействие между
клиентской и серверной частями
стандартизуется, так что один
тип сервера может быть рассчитан
на работу с клиентами разного
типа, реализованными различными
способами и, может быть, разными
производителями. Единственное условие
для этого — клиенты и сервер
должны поддерживать общий стандартный
протокол взаимодействия.
Встроенные сетевые службы
и сетевые оболочки
На практике сложилось несколько
подходов к построению сетевых
операционных систем, различающихся
глубиной внедрения сетевых служб
в операционную систему (рис. 2.3):
сетевые службы глубоко встроены
в ОС;
сетевые службы объединены
в виде некоторого набора —
оболочки;
сетевые службы производятся и поставляются
в виде отдельного продукта.
Первые сетевые ОС представляли
собой совокупность уже существующей
локальной ОС и надстроенной
над ней сетевой оболочки. При
этом в локальную ОС встраивался
минимум сетевых функций, необходимых
для работы сетевой оболочки,
которая выполняла основные сетевые
функции.
Однако в дальнейшем разработчики
сетевых ОС посчитали более
эффективным подход, при котором
сетевая ОС с самого начала
работы над ней задумывается
и проектируется специально для
работы в сети. Сетевые функции
у этих ОС глубоко встраиваются
в основные модули системы,
что обеспечивает ее логическую
стройность, простоту эксплуатации
и модификации, а также высокую
производительность. Важно, что при
таком подходе отсутствует избыточность.
Если все сетевые службы хорошо
интегрированы, то есть рассматриваются
как неотъемлемые части ОС, то
все внутренние механизмы такой
операционной системы могут быть
оптимизированы для выполнения
сетевых функций. Например, ОС Windows
NT компании Microsoft за счет встроенности
сетевых средств обеспечивает
более высокие показатели производительности
и защищенности информации по
сравнению с сетевой ОС LAN Manager
той же компании, являющейся надстройкой
над локальной операционной системой
OS/2. Другими примерами сетевых
ОС со встроенными сетевыми
службами являются все современные
версии UNIX, NetWare, OS/2 Warp. ,
Рис. 2.3. Варианты построения сетевых
ОС
Другой вариант реализации
сетевых служб — объединение
их в виде некоторого набора
(оболочки), при этом все службы
такого набора должны быть
между собой согласованы, то
есть в своей работе они
могут обращаться друг к другу,
могут иметь в своем составе
общие компоненты, например общую
подсистему аутентификации пользователей
или единый пользовательский
интерфейс. Для работы оболочки
необходимо наличие некоторой
локальной операционной системы,
которая бы выполняла обычные
функции, необходимые для управления
аппаратурой компьютера, и в среде
которой выполнялись бы сетевые
службы, составляющие эту оболочку.
Оболочка представляет собой
самостоятельный программный продукт
и, как всякий продукт, имеет
название, номер версии и другие
соответствующие характеристики. В
качестве примеров сетевой оболочки
можно указать, в частности, LAN
Server и LAN Manager.
Одна и та же оболочка
может предназначаться для работы
над совершенно разными операционными
системами. В таких случаях
оболочка должна строиться с
учетом специфики той операционной
системы, над которой она будет
работать. Так, LAN Server, например, существует
в различных вариантах: для
работы над операционными системами
VAX VMS, VM, OS/400, AIX, OS/2.
Сетевые оболочки часто подразделяются
на клиентские и серверные.
Оболочка, которая преимущественно
содержит клиентские части сетевых
служб, называется клиентской. Например,
типичным набором программного
обеспечения рабочей станции
в сети NetWare является система MS-DOS
с установленной над ней клиентской
оболочкой NetWare, состоящей из клиентских
частей файловой службы и службы
печати, а также компонента, поддерживающего
пользовательский интерфейс.
Серверная сетевая оболочка,
примерами которой могут служить
те же LAN Server и LAN Manager, а также
NetWare for UNIX, File and Print Services for NetWare, ориентирована
на выполнение серверных функций.
Серверная оболочка как минимум
содержит серверные компоненты
двух основных сетевых служб
— файловой службы и службы
печати. Именно такой набор серверных
компонентов реализован в упомянутых
выше продуктах NetWare for UNIX и File
and Print Services for NetWare. Некоторые же оболочки
содержат настолько широкий набор
сетевых служб, что их называют
сетевыми операционными системами.
Так, ни один обзор сетевых
операционных систем не будет
достаточно полным, если в нем
отсутствует информация о LAN Server,
LAN Manager, ENS, являющихся сетевыми оболочками.
Таким образом, термин «сетевая
операционная система» приобретает
еще одно значение — набор
сетевых служб, способных согласованно
работать в общей операционной
среде.
С одним типом ресурсов
могут быть связаны разные
службы, отличающиеся протоколом
взаимодействия клиентских и
серверных частей. Так, например,
встроенная файловая служба Windows
NT реализует протокол SMB, используемый
во всех ОС компании Microsoft, а
дополнительная файловая служба,
входящая в состав оболочки File
and Print Services for NetWare для той же Windows
NT, работает по протоколу NCP, «родному»
для сетей NetWare. Кроме того, в
стандартную поставку Windows NT входит
сервер FTP, предоставляющий услуги
файлового сервера для UNIX-систем.
Ничто не мешает приобрести
и установить для работы в
среде Windows NT и другие файловые
службы, такие, например, как NFS, кстати
имеющей несколько реализаций, выполненных
разными фирмами. Наличие нескольких
видов файловых услуг позволяет
работать в сети приложениям,
разработанным для разных операционных
систем.