Первые сетевые операционные системы появились в начале 70-х
годов прошлого столетия. Они позволяли организовать распределенное хранение и
обработку данных между несколькими взаимосвязанными компьютерами.
Сетевая операционная система – это операционная
система, с одной стороны, выполняющая все функции локальной операционной
системы, а с другой – обладающая дополнительными средствами, позволяющими ей
взаимодействовать по сети с операционными системами других компьютеров.
Программные модули, реализующие сетевые функции, появлялись в операционных
системах постепенно по мере развития сетевых технологий, аппаратной базы
компьютеров и возникновения новых задач, требующих сетевой обработки.
Сетевая операционная система может рассматриваться как набор
операционных систем отдельных компьютеров, составляющих сеть. На разных
компьютерах могут быть установлены одинаковые или разные операционные системы.
Все эти операционные системы функционируют независимо друг от друга в том
смысле, что каждая из них принимает независимые решения о создании своих
собственных процессов и управлении локальными ресурсами. Но в любом случае
операционные системы компьютеров, работающих в сети, должны включать взаимно
согласованный набор коммуникационных протоколов для организации взаимодействия
процессов, выполняющихся на разных компьютерах сети, и разделения ресурсов этих
компьютеров между пользователями сети.
Функциональные компоненты сетевой ОС
• средства
управления локальными ресурсами компьютера реализуют все функции ОС
автономного компьютера (распределение оперативной памяти между процессами,
планирование и диспетчеризацию процессов, управление процессорами в
мультипроцессорных машинах, управление внешней памятью, интерфейс с
пользователем и т. д.);
• сетевые
средства, в свою очередь, можно разделить на три компонента:
1. средства предоставления
локальных ресурсов и услуг в общее пользование — серверная часть ОС;
2. средства запроса доступа к
удаленным ресурсам и услугам — клиентская часть ОС;
3. транспортные средства ОС,
которые совместно с коммуникационной системой обеспечивают передачу
сообщений между компьютерами сети.
Упрощенно работа сетевой ОС происходит следующим образом.
Предположим, что пользователь компьютера А решил разместить свой файл на диске
другого компьютера сети — компьютера В. Для этого он набирает на клавиатуре
соответствующую команду и нажимает клавишу Enter.
Программный модуль ОС, отвечающий за интерфейс с пользователем, принимает эту
команду и передает ее клиентской части ОС компьютера А.
Клиентская часть ОС не может получить непосредственный доступ
к ресурсам другого компьютера — в данном случае к дискам и файлам компьютера В.
Она может только «попросить» об этом серверную часть ОС, работающую на том
компьютере, которому принадлежат эти ресурсы. Эти «просьбы» выражаются в виде
сообщений, передаваемых по сети. Сообщения могут содержать не только команды
на выполнение некоторых действий, но и собственно данные, например содержимое
некоторого файла.
Управляют передачей сообщений между клиентской и серверными
частями по коммуникационной системе сети транспортные средства ОС. Эти средства
выполняют такие функции, как формирование сообщений, разбиение сообщения на
части (пакеты, кадры), преобразование имен компьютеров в числовые адреса,
организацию надежной доставки сообщений, определение маршрута в сложной сети и
т. д. и т. п. Правила взаимодействия компьютеров при передаче сообщений по сети
фиксируются в коммуникационных протоколах, таких как
Ethernet, Token Ring, IP,
IPX и пр. Чтобы два компьютера смогли обмениваться
сообщениями по сети, транспортные средства их ОС должны поддерживать некоторый
общий набор коммуникационных протоколов. Коммуникационные протоколы переносят
сообщения клиентских и серверных частей ОС по сети, не вникая в их содержание.
На стороне компьютера В, на диске которого пользователь хочет
разместить свой файл, должна работать серверная часть ОС, постоянно ожидающая
прихода запросов из сети на удаленный доступ к ресурсам этого компьютера.
Серверная часть, приняв запрос из сети, обращается к локальному диску и
записывает в один из его каталогов указанный файл. Конечно, для выполнения этих
действий требуется не одно, а целая серия сообщений, переносящих между
компьютерами команды ОС и части передаваемого файла.
Сетевые службы и сетевые сервисы
Совокупность серверной и клиентской частей ОС, предоставляющих
доступ к конкретному типу ресурса компьютера через сеть, называется сетевой
службой. В приведенном выше примере клиентская и серверная части ОС,
которые совместно обеспечивают доступ через сеть к файловой системе компьютера,
образуют файловую службу.
Сервис — это интерфейс между потребителем услуг и поставщиком
услуг (службой).
Наиболее важными для пользователей сетевых ОС являются
файловая служба и служба печати.
Среди сетевых служб можно выделить такие, которые
ориентированы не на простого пользователя, а на администратора. Такие службы
используются для организации работы сети.
Сетевые службы по своей природе являются клиент-серверными
системами. Поскольку при реализации любого сетевого сервиса естественно
возникает источник запросов (клиент) и исполнитель запросов (сервер), то и
любая сетевая служба содержит в своем составе две несимметричные части —
клиентскую и серверную. Сетевая служба может быть представлена в операционной
системе либо обеими (клиентской и серверной) частями, либо только одной из них.
Принципиальной разницей между клиентом и сервером является то,
что инициатором выполнения работы сетевой службой всегда выступает клиент, а
сервер всегда находится в режиме пассивного ожидания запросов. Например,
почтовый сервер осуществляет доставку почты на компьютер пользователя только
при поступлении запроса от почтового клиента.
Обычно взаимодействие между клиентской и серверной частями
стандартизуется, так что один тип сервера может быть рассчитан на работу с
клиентами разного типа, реализованными различными способами и, может быть,
разными производителями. Единственное условие для этого — клиенты и сервер
должны поддерживать общий стандартный протокол взаимодействия.
Встроенные сетевые службы и сетевые оболочки
На практике сложилось несколько подходов к построению сетевых
операционных систем, различающихся глубиной внедрения сетевых служб в
операционную систему:
• сетевые службы
глубоко встроены в ОС;
• сетевые службы
объединены в виде некоторого набора — оболочки;
• сетевые службы
производятся и поставляются в виде отдельного продукта.
Первые сетевые ОС представляли собой совокупность уже
существующей локальной ОС и надстроенной над ней сетевой оболочки. При этом в
локальную ОС встраивался минимум сетевых функций, необходимых для работы сетевой
оболочки, которая выполняла основные сетевые функции.
Однако в дальнейшем разработчики сетевых ОС посчитали более
эффективным подход, при котором сетевая ОС с самого начала работы над ней
задумывается и проектируется специально для работы в сети. Сетевые функции у
этих ОС глубоко встраиваются в основные модули системы, что обеспечивает ее
логическую стройность, простоту эксплуатации и модификации, а также высокую
производительность. Важно, что при таком подходе отсутствует избыточность. Если
все сетевые службы хорошо интегрированы, то есть рассматриваются как
неотъемлемые части ОС, то все внутренние механизмы такой операционной системы
могут быть оптимизированы для выполнения сетевых функций.
Другой вариант реализации сетевых служб — объединение их в
виде некоторого набора (оболочки), при этом все службы такого набора должны
быть между собой согласованы, то есть в своей работе они могут обращаться друг
к другу, могут иметь в своем составе общие компоненты, например общую подсистему
аутентификации пользователей или единый пользовательский интерфейс. Для работы
оболочки необходимо наличие некоторой локальной операционной системы, которая
бы выполняла обычные функции, необходимые для управления аппаратурой
компьютера, и в среде которой выполнялись бы сетевые службы, составляющие эту
оболочку. Оболочка представляет собой самостоятельный программный продукт и, как
всякий продукт, имеет название, номер версии и другие соответствующие
характеристики.
Существует и третий способ реализации сетевой службы — в виде
отдельного продукта.
Одноранговые и серверные сетевые операционные системы
В зависимости от того, как распределены функции между
компьютерами сети, они могут выступать в трех разных ролях:
1. компьютер, занимающийся
исключительно обслуживанием запросов других компьютеров, играет роль
выделенного сервера сети;
2. компьютер, обращающийся с
запросами к ресурсам другой машины, исполняет роль клиентского узла;
3. компьютер, совмещающий
функции клиента и сервера, является одноранговым узлом.
Очевидно, что сеть не может состоять только из клиентских или
только из серверных узлов. Сеть, оправдывающая свое назначение и обеспечивающая
взаимодействие компьютеров, может быть построена по одной из трех следующих
схем:
• сеть на основе
одноранговых узлов — одноранговая сеть;
• сеть на основе
клиентов и серверов — сеть с выделенными серверами;
• сеть, включающая
узлы всех типов, — гибридная сеть.
Каждая из этих схем обладает своими достоинствами и
недостатками, определяющими их области применения.
В одноранговых сетях все компьютеры равны в возможностях
доступа к ресурсам друг друга. Каждый пользователь может по своему желанию
объявить какой-либо ресурс своего компьютера разделяемым, после чего другие
пользователи могут его использовать. В одноранговых сетях на всех компьютерах
устанавливается такая операционная система, которая предоставляет всем
компьютерам в сети потенциально равные возможности. Сетевые операционные
системы такого типа называются одноранговыми ОС. Очевидно, что
одноранговые ОС должны включать как серверные, так и клиентские компоненты
сетевых служб. Примерами одноранговых ОС могут служить
LANtastic, Personal Ware, Windows for Workgroups, Windows NT Workstation,
Windows 95/98.
Одноранговые сети проще в организации и эксплуатации, по этой
схеме организуется работа в небольших сетях, в которых количество компьютеров
не превышает 10-20. В этом случае нет необходимости в применении
централизованных средств администрирования — нескольким пользователям нетрудно
договориться между собой о перечне разделяемых ресурсов и паролях доступа к
ним.
Однако в больших сетях средства централизованного
администрирования, хранения и обработки данных, а особенно защиты данных
становятся необходимыми, и такие возможности легче обеспечить в сетях с
выделенными серверами.
В сетях с выделенными серверами используются специальные
варианты сетевых ОС, которые оптимизированы для работы в роли серверов и
называются серверными ОС. Пользовательские компьютеры в этих сетях
работают под управлением клиентских ОС.
Многие компании, разрабатывающие сетевые ОС, выпускают два
варианта одной и той же операционной системы. Один вариант предназначен для
работы в качестве серверной ОС, а другой — в качестве клиентской. Эти варианты
чаще всего основаны на одном и том же базовом коде, но отличаются набором служб
и утилит, а также параметрами конфигурации, некоторые из которых
устанавливаются по умолчанию и не поддаются изменению.
Например, операционная система Windows NT
выпускается в варианте для рабочей станции — Windows NT
Workstation — и в варианте для выделенного сервера —
Windows NT Server. Оба эти варианта операционной системы включают
клиентские и серверные части многих сетевых служб.
В больших сетях наряду с отношениями клиент-сервер сохраняется
необходимость и в одноранговых связях, поэтому такие сети чаще всего строятся
по гибридной схеме.
Выводы
• ОС — это комплекс
взаимосвязанных программ, предназначенный для повышения эффективности
аппаратуры компьютера путем рационального управления его ресурсами, а также для
обеспечения удобств пользователю путем предоставления ему расширенной
виртуальной машины.
• К числу основных
ресурсов, управление которыми осуществляет ОС, относятся процессоры, основная
память, таймеры, наборы данных, диски, накопители на магнитных лентах,
принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между
процессами. Для решения задач управления ресурсами разные ОС используют
различные алгоритмы, особенности которых в конечном счете и определяют облик
ОС.
• Наиболее важными
подсистемами ОС являются подсистемы управления процессами, памятью, файлами и
внешними устройствами, а также подсистемы пользовательского интерфейса, защиты
данных и администрирования.
• Прикладному
программисту возможности ОС доступны в виде набора функций, составляющих
интерфейс прикладного программирования (API).
• Термин «сетевая
операционная система» используется в двух значениях: во-первых, как
совокупность ОС всех компьютеров сети и, во-вторых, как ОС отдельного
компьютера, способного работать в сети.
• К основным
функциональным компонентам сетевой ОС относятся средства управления локальными
ресурсами и сетевые средства. Последние, в свою очередь, можно разделить на три
компонента: средства предоставления локальных ресурсов и услуг в общее
пользование — серверная часть ОС, средства запроса доступа к удаленным ресурсам
и услугам — клиентская часть ОС (редиректор) и транспортные средства ОС, которые
совместно с коммуникационной системой обеспечивают передачу сообщений между
компьютерами сети.
• Совокупность
серверной и клиентской частей, предоставляющих доступ к конкретному типу ресурса
компьютера через сеть, называется сетевой службой. Сетевая служба предоставляет
пользователям сети набор услуг — сетевой сервис. Каждая служба связана с
определенным типом сетевых ресурсов и/или определенным способом доступа к этим
ресурсам. Наиболее важными для пользователей сетевых ОС являются файловая служба
и служба печати. Сетевые службы могут быть либо глубоко встроены в ОС, либо
объединены в виде некоторой оболочки, либо поставляться в виде отдельного
продукта.
• В зависимости от
того, как распределены функции между компьютерами сети, они могут выступать в
трех разных ролях. Компьютер, занимающийся исключительно обслуживанием запросов
других компьютеров, играет роль выделенного сервера сети. Компьютер,
обращающийся с запросами к ресурсам другой машины, исполняет роль клиентского
узла. Компьютер, совмещающий функции клиента и сервера, является одноранговым
узлом.
• Одноранговые сети
состоят только из одноранговых узлов. При этом все компьютеры в сети имеют
потенциально равные возможности. Одноранговые ОС включают как серверные, так и
клиентсткие компоненты сетевых служб. Одноранговые сети проще в организации и
эксплуатации, по этой схеме организуется работа в небольших сетях, в которых
количество компьютеров не превышает 10-20.
• В сетях с
выделенными серверами используются специальные варианты сетевых ОС,
оптимизированные для работы в роли либо серверов, либо клиентов. Для серверных
ОС характерны поддержка мощных аппаратных платформ, в том числе
мультипроцессорных, широкий набор сетевых служб, поддержка большого числа
одновременно выполняемых процессов и сетевых соединений, наличие развитых
средств защиты и средств централизованного администрирования сети. Клиентские
ОС, в общем случае являясь более простыми, должны обеспечивать удобный
пользовательский интерфейс и набор редиректо-ров, позволяющий получать доступ к
разнообразным сетевым ресурсам.
• В число
требований, предъявляемых сегодня к сетевым ОС, входят: функциональная полнота
и эффективность управления ресурсами, модульность и расширяемость,
переносимость и многоплатформенность, совместимость на уровне приложений и
пользовательских интерфейсов, надежность и отказоустойчивость, безопасность и
производительность.