Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Сетевые операционные системы (Основные понятия)

Содержание:

ВВЕДЕНИЕ

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

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

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

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

Объект исследования данной работы - операционные системы.

Предмет исследования - сетевые операционные системы.

Цель работы - изучить основные понятия, а также архитектуру сетевых ОС.

Для достижения поставленной цели необходимо решить следующие задачи:

  • определить значения понятия операционная система;
  • изучить историю операционных систем;
  • выделить компоненты сетевых ОС;
  • изучить способы построения сетевых ОС;
  • рассмотреть основные команды сетевой ОС Linux.

При написании работы в качестве основных источников использовались:

  • Олифер В.Г. Сетевые операционные системы;
  • Кофлер М. Linux. Установка, настройка, администрирование.

1. ОПЕРАЦИОННЫЕ СИСТЕМЫ

1.1. Основные понятия

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

Часто пользователи задаются вопросом - из чего состоит вычислительная система? В первую очередь сюда относится техническое обеспечение - hardware: память, процессор, монитор, дисковые устройства и т.д., объединенные между собой магистральным соединением, называемым шиной. Кроме технического обеспечения в системе есть еще и программное - software, которое бывает двух видов: системное и прикладное. К системному программному обеспечению обычно относят программы, способствующие функционированию и разработке прикладных программ [2].

К прикладному программному обеспечению относятся различные бизнес-программы, игры и т. п.

Стоит отметить, что подобное деление программного обеспечения на системное и прикладное является условным. Фактически, программное обеспечение системы может быть представлено в виде нескольких слоев (см. рисунок 1) [14].

Существует несколько точек зрения, описывающих операционную систему.

1. Операционная система как виртуальная машина

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

Картинки по запросу Слои программного обеспечения компьютерной системы

Рисунок 1 - Слои программного обеспечения компьютерной системы

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

Кроме того, современные вычислительные комплексы позволяют создавать иллюзию неограниченного размера оперативной памяти и количества процессоров. За все это отвечает операционная система. Таким образом, операционная система представляется пользователю виртуальной машиной, с которой ему гораздо проще иметь дело, чем непосредственно с компьютерным оборудованием [1].

2. Операционная система как менеджер ресурсов

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

3. Операционная система как защитник пользователей и программ

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

пользователей произвольно вмешиваться в работу программ других пользователей. Также система должна пресекать попытки несанкционированного использования вычислительной системы. Всю эту деятельность она осуществляет с точки зрения организатора безопасной работы пользователей и их программ. Поэтому операционная система в данном случае представляется системой безопасности государства, на которую возложены полицейские и контрразведывательные функции [12].

4. Операционная система как постоянно функционирующее ядро

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

1.2. История развития

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

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

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

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

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

Для поддержания работоспособности и облегчения процессов эксплуатации машин создавались диагностические программы. Эти программы стали базовым системным программным обеспечением [4].

Улучшение характеристик ЭВМ и рост показателей их производительности привел к понимаю того, что существующего базового программного обеспечения уже недостаточно. В результате этого были созданы операционные системы ранней пакетной обработки, которые получили название мониторов. В рамках этих системы в процессе выполнения любой работы в пакете (трансляция, сборка, выполнение готовой программы) никакая часть системного ПО не располагалась в оперативной памяти в силу того, что вся память предоставлялась текущей работе. Следующим шагом стало появление мониторных систем, где оперативная память разбивалась на три области [9]:

  • фиксированная область мониторной системы;
  • область пользователя;
  • область общей памяти, предназначенная для хранения данных, которыми могут обмениваться объектные модули.

В связи с интенсивным развитием методов управления данными, возникала такая важная функция ОС, как реализация ввода-вывода без участия центрального процесса. Данный подход называется спулинг (от англ. SPOOL – Simultaneous Peripheral Operation on Line) [12].

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

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

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

Режим разделения времени позволил пользователю интерактивно взаимодействовать со своими программами, как это было до появления систем пакетной обработки [1].

Одной из первых ОС, вобравшей в себя все достижения того времени, была операционная система МСР (Main Control Program - главная управляющая программа), разработанная фирмой Burroughs для своих компьютеров В5000 в 1963 году. Именно данная ОС реализовала основные концепции, популярные и в наше время:

  • мультипрограммирование;
  • мультипроцессорная обработка;
  • виртуальная память;
  • возможность отладки программ на исходном языке;
  • написание операционной системы на языке высокого уровня [11].

Еще одним примером системы разделения времени того периода стала система CTSS (Compatible Time Sharing System) – совместимая система разделения времени, разработанная в Массачусетском технологическом институте в 1963 году для компьютера IBM-7094. Эта система предназначалась для разработки системы разделения времени следующего поколения MULTICS (Multiplexed Information And Computing Service) [10].

Одним из главных событий в истории операционных систем является появление в 1964 году семейства компьютеров под названием System/360 фирмы IBM. Это стало первой в мире реализацией концепции семейства программно и информационно совместимых компьютеров, которые впоследствии стали стандартом для всех фирм компьютерной отрасли.

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

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

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

  • привилегированный (Супервизор в OS/360);
  • пользовательский (Задача в OS/360) [1].

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

В начале 70-х годов появились первые сетевые ОС, позволяющие не только территориально рассредоточить пользователей, как это было в системах телеобработки данных, но и организовать распределенное хранение и обработку данных между компьютерами, соединенными электрическими связями [10].

В 1974 году IBM объявила о создании собственной сетевой архитектуры SNA для своих мэйнфреймов, способной обеспечивать взаимодействие типа «терминал-терминал», «терминал-компьютер», «компьютер-компьютер». В это же время в Европе активно разрабатывалась технология построения сетей с коммутацией пакетов на базе протоколов Х.25.

К середине 70-х годов широкое распространение получили мини-компьютеры (PDP-11, Nova, HP). Их архитектура была гораздо проще за счет усечения многих функций мультипрограммных ОС. Операционные системы мини-ЭВМ были специализированными и не всегда многопользовательскими.

Еще одним важным событием в истории мини-компьютеров было создание ОС UNIX. Эта система была написана Кеном Томпсоном. UNIX была написана на языке программирования C и представляла собой усеченную однопользовательскую версию системы MULTICS. Она получила свое массовое распространение в середине 70-х годов [14].

Широкое распространение С-компиляторов сделало UNIX уникальной переносимой OC, а в силу того, что она поставлялась вместе с исходным кодом, она стала первой открытой операционной системой.

Распространение мини-компьютеров дало толчок к созданию локальных сетей. В простейших ЛВС компьютеры соединялись посредством последовательных портов [9].

Дальнейшее развитие сетевых систем тесно связано со стеком протоколов TCP/IP, принятым в 1983 году.

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

Широкого распространения получила ОС раннего этапа развития персональных компьютеров - MS-DOS от компании Microsoft. Она представляла собой однопрограммную, однопользовательскую систему с интерфейсом командной строки. Большинство функций, обеспечивающих удобство работы в этой системе предоставлялось дополнительными программами – оболочкой Norton Commander, приложением PC Tools и др. [1]

Наибольшее влияние на развитие программного обеспечения ПК оказала операционная система Windows, первая версия которой была создана в 1985 году. Сетевые функции в ней также реализовались посредством сетевых оболочек и позже появились в MS-DOS версии 3.1 [9].

В это же время были выпущены сетевые продукты Microsoft – MS-NET, а позже – LAN Manager, Windows for Workgroup, а затем и Windows NT.

Отдельное внимание стоит уделить компании Novell и ее продукту NetWare. Данная операционная система сразу поставлялась со встроенными сетевыми функциями. ОС NetWare распространялась как операционная система для центрального сервера локальной сети и за счет специализации функций файл-сервера позволяла достигать высокой скорости удаленного доступа к файлам и повышенной безопасности данных. Однако данная система имела специфический программный интерфейс (API), который затруднял написание приложений [14].

В 1987 году была создана первая многозадачная ОС для ПК – OS/2, разработанная совместно компаниями Microsoft и IBM. Эта была хорошо продуманная система с виртуальной памятью, графическим интерфейсом и возможностью выполнять DOS-приложения. Кроме того, для нее были созданы сетевые оболочки LAN Manager (Microsoft) и LAN Server (IBM), которые, однако, уступали по производительности файловому серверу NetWare и потребляли больше аппаратных ресурсов, но имели важные достоинства - с их помощью на сервере можно было выполнять любые программы, разработанные для OS/2, MS-DOS и Windows, кроме того, можно было использовать компьютер, на котором они работали, в качестве рабочей станции [2].

Стоит отметить, что именно в 80-е годы были приняты основные стандарты на коммуникационные технологии для локальных сетей: в 1980 г. – Ethernet, в 1985 г. – Token Ring, в конце 80-х – FDDI (Fiber Distributed Data Interface), распределенный интерфейс передачи данных по волоконно-оптическим каналам, двойное кольцо с маркером. Это позволило обеспечить совместимость сетевых ОС на нижних уровнях, а также стандартизировать операционные системы с драйверами сетевых адаптеров.

На персональных компьютерах использовались не только специально разработанные для них ОС (MS-Dos, NetWare, OS/2), но и адаптированные ОС, в том числе и UNIX.

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

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

В последнее время особое внимание уделяется корпоративным сетевым операционным системам. Это одна из наиболее важных задач в обозримом будущем. Корпоративные ОС должны хорошо и устойчиво работать в крупных сетях, характерных для крупных организаций, имеющих филиалы в нескольких городах и, возможно, даже в разных странах. Корпоративная ОС должна без проблем взаимодействовать с ОС разного типа и работать на различных аппаратных платформах. Сейчас лидерами в классе корпоративных ОС являются MS Windows, UNIX и Linux-системы [9].

2. СЕТЕВЫЕ ОС

2.1. Причины возникновения

Существует несколько причины, по которым компьютеры потребовалось объединять в сети. К ним относятся:

  • необходимость разделения ресурсов (не только физических, но и информационных). Если в компании имеется несколько компьютеров и периодически возникает потребность в печати какого-нибудь текста, то нет смысла в покупке принтера для каждого компьютера. Гораздо выгоднее в таком случае использовать один сетевой принтер для всех компьютеров. Аналогичная ситуация может возникать с файлами данных - нет необходимости держать одинаковые файлы на всех компьютерах, поддерживая их идентичность, если можно хранить файл на одном компьютере, обеспечив к нему сетевой доступ со всех остальных;
  • возможность ускорения вычислений. В данном случае сетевое объединение компьютеров успешно конкурирует с многопроцессорными вычислительными комплексами. Многопроцессорные системы, не затрагивая по существу строение операционных систем, требуют достаточно серьезных изменений на уровне hardware, что существенно повышает их стоимость. В большинстве случаев можно добиться необходимой скорости вычислений параллельного алгоритма, за счет нескольких процессоров в рамках одного вычислительного комплекса. Подобные сетевые кластеры часто имеют преимущество перед многопроцессорными комплексами в соотношении эффективность/стоимость;
  • повышение надежности работы вычислительной техники. Существуют системы, в которых отказ может быть причиной катастрофических последствий, например, в сферах атомной энергетики или космонавтики. В таких системах несколько вычислительных комплексов дублируют друг друга. В этом случае при выходе из строя основного комплекса, его работа продолжится за счет дублирующего;
  • возможность использования вычислительных сетей для общения. В настоящее время электронная почта практически заменила обычную, а использование вычислительной техники для организации электронных или телефонных разговоров уверенно вытесняет обычную телефонную связь [9].

2.2. Структура

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

В сетевой ОС отдельного компьютера можно выделить несколько элементов, представленных на рисунке 2 [10].

К средствам управления локальными ресурсами компьютера относятся:

  • функции распределения оперативной памяти между процессами;
  • функции планирования и диспетчеризации процессов;
  • функции управления процессорами в мультипроцессорных машинах;
  • функции управления периферийными устройствами;
  • прочие функции управления ресурсами локальных ОС.

Серверную часть ОС реализуют средства предоставления собственных ресурсов и услуг в общее пользование. Их задачи:

Картинки по запросу Структура сетевой ОС

Рисунок 2 - Структура сетевой ОС

  • обеспечение блокировки файлов и записей, что важно для их совместного использования;
  • обеспечение блокировки файлов и записей, что важно для их совместного использования;
  • ведение справочников имен сетевых ресурсов;
  • обработка запросов удаленного доступа к собственной файловой системе и базе данных;
  • управление очередями запросов удаленных пользователей к периферийным устройствам [9].

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

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

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

На рисунке 3 представлено взаимодействие сетевых компонентов [8].

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

Картинки по запросу Взаимодействие компонентов операционной системы при взаимодействии компьютеров

Рисунок 3 - Взаимодействие компонентов операционной системы при взаимодействии компьютеров

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

На практике существует несколько подходов к построению сетевых операционных систем, представленных на рисунке 4 [9].

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

Картинки по запросу Варианты построения сетевых ОС

Рисунок 4 - Варианты построения сетевых ОС

использование на каждом компьютере сети операционной системы MS-DOS. Принцип построения сетевых ОС в виде сетевой оболочки над локальной ОС используется и в современных ОС, таких, например, как LANtastic или Personal Ware [11].

Другой подход является более эффективным, так как предполагает изначальную разработку системы для работы в сети. Сетевые функции у таких ОС встраиваются в основные модули системы, что обеспечивает их логичность, простоту использования и модификации, а также высокие показатели производительности. Примером такой ОС является система Windows NT фирмы Microsoft, которая за счет встроенности сетевых средств обеспечивает более высокие показатели производительности и защищенности информации по сравнению с сетевой ОС LAN Manager той же фирмы (совместная разработка с IBM), являющейся надстройкой над локальной операционной системой OS/2 [9].

2.3. Одноранговые сетевые ОС и ОС с выделенными серверами

В зависимости от того, как функции распределяются между компьютерами сети, сетевые ОС делятся на два класса: одноранговые и двухранговые (сети с выделенными серверами). Схематичное представление данных сетей представлено на рисунках 5-6 [9].

http://citforum.ru/pictures/it/sos/img00004.gif

Рисунок 5 - Одноранговая сеть

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

http://citforum.ru/pictures/it/sos/img00005.gif

Рисунок 6 - Двухранговая сеть

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

Очевидно, что выделенные серверы должны работать под управлением особой ОС - она должна быть оптимизирована для выполнения тех или иных серверных функций. Поэтому в сетях с выделенными серверами чаще всего применяются сетевые операционные системы, в состав которых входит несколько вариантов ОС, отличающихся возможностями серверных частей. Так, например, сетевая ОС Novell NetWare предоставляет серверный вариант, оптимизированный для работы в качестве файл-сервера, а также варианты оболочек для рабочих станций с различными локальными ОС. Стоит отметить, что эти оболочки реализуют исключительно клиентские функции. Еще одним примером ОС, ориентированной на построение сети с выделенным сервером, является операционная система Windows NT. В отличие от NetWare, оба варианта данной сетевой ОС - Windows NT Server (для выделенного сервера) и Windows NT Workstation (для рабочей станции) - способны поддерживать функции и сервера, и клиента. Однако серверный вариант Windows NT обладает большими возможностей для предоставления ресурсов своего компьютера другим пользователям сети в силу того, что способен выполнять более обширный набор функций, поддерживая большее число одновременных соединений с клиентами, а также реализуя централизованное управление сетью, оперируя более развитыми средствами защиты [9].

Выделенный сервер не рекомендуется использовать в качестве компьютера для выполнения текущих задач, которые не связаны с его основным назначением. Это может сократить его производительность как сервера. В связи с этим в ОС Novell NetWare на серверной части отсутствует возможность выполнения обычных прикладных программ. Это говорит о том, что сервер не содержит клиентской части, а на пользовательских рабочих станциях отсутствуют серверные компоненты. Стоит отметить, что другие сетевые ОС поддерживают функцию выполнения приложений на выделенном сервере. Например, ОС Windows NT Server способна выполнять программы конечного пользователя, которые могут требовать выполнения клиентских функций ОС при появлении запросов к ресурсам других компьютеров сети. В этом случае рабочие станции, работающие под управлением ОС Windows NT Workstation, могут выполнять функции невыделенного сервера [11].

Стоит отметить, что несмотря на то, что в сети с выделенным сервером все компьютеры способны одновременно выступать в роли как сервера, так и клиента, эта сеть не является функционально симметричной: программно и аппаратно в ней присутствует два типа компьютеров - одни, в большей степени ориентируются на реализацию серверных функций и работают под управлением специализированных серверных ОС, а другие выполняют клиентские функции и работают под управлением соответствующего этому назначению варианта ОС. Данный факт является причиной существования несимметричности аппаратуры - для выделенных серверов применяются более мощные компьютеры с гораздо большими объемами внешней и оперативной памяти. Таким образом, функциональная несимметричность в сетях с выделенным сервером сопровождается несимметричностью операционных систем и аппаратной несимметричностью (специализацией компьютеров) [4].

В рамках одноранговой сети все компьютеры одинаковы в своих правах доступа к ресурсам друг друга. Любой пользователь сети может присвоить какому-либо ресурсу своего компьютера статус разделяемого, в результате чего другие пользователи смогут его эксплуатировать. В таких сетях всех компьютеры используют одну и ту же ОС, предоставляющую всем компьютерам сети потенциально равные возможности. Одноранговые сети могут строиться, например, на базе ОС LANtastic, Personal Ware, Windows for Workgroup, Windows NT Workstation.

Кроме того, в одноранговых сетях может возникнуть функциональная несимметричность. Такая ситуация возникает в том случае, когда одни пользователи не хотят делить свои ресурсы с другими. При этом их компьютеры выполняют роль клиента, а за другими компьютерами администратор закрепляет исключительно функции по организации совместного использования ресурсов, следовательно, они являются серверами [14].

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

Таким образом, одноранговые сети проще в эксплуатации и организации, однако в основном они используются для объединения небольших пользовательских групп, которые не предъявляют больших требований к объемам хранимой информации, ее защищенности от несанкционированного доступа и к скорости доступа. При повышенных требованиях к этим характеристикам более подходящими являются двухранговые сети, где сервер лучше решает задачу обслуживания пользователей своими ресурсами, по причине того, что его аппаратура и сетевая операционная система специально спроектированы для этой цели [9].

3. РАБОТА В СЕТЕВОЙ ОС LINUX

3.1. Основные понятия

Впервые операционная система Linux появилась в 1991 году. Ее создателем является финский студент Линус Торвальдс. Чтобы получить более широкую сферу применения Линус изменил лицензию системы на GNU GPL и опубликовал исходный код в свободный доступ. Это позволило использовать операционную систему в коммерческих целях, а также привлекло большое количество разработчиков. До сих пор Торвальдс остается координатором в процессе разработке ядра Linux [3].

Благодаря свободной лицензии разработчики со всего мира создали большое количество приложений, позволяющих использовать Linux не только для настольных ПК, но и для серверных платформ [5].

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

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

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

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

На сегодняшний день широко используются два способа взаимодействия с ОС [15]:

  • с помощью передачи команд и получения ответов на них;
  • использование графического интерфейса, при котором передача команд реализуется преимущественно мышью, а ответы представляют собой визуальное изменение интерфейса.

По умолчанию в среде ОС Linux рекомендуется использование первого способа. Для осуществления системой возможности принятия команд применяется специальная программа - командный интерпретатор, задача которого - перевод команд пользователя в конкретные системные действия, а также отображение полученного результата. Экземпляр командного интерпретатора запускается для каждого пользователя и взаимодействует только с ним. В ОС Linux доступно для использования пользователями в качестве интерпретаторов несколько программ, которые имеют несущественные различия в поведении: sh, bash, ksh, zsh.

Умение работать в командном интерпретаторе позволяет достаточно эффективно управлять ОС, а также использовать все ее возможности для решения прикладных задач [13].

3.2. Журнал ядра

Для того, чтобы ознакомиться с журналом ядра, необходимо выполнить команду dmesg. Результат выполнения данной команды представлен на рисунке 7 [3].

Рисунок 7 – Фрагмент журнала ядра

Чтобы отфильтровать сообщения о процессоре, необходимо использовать специальный фильтр - grep. Для этого необходимо использовать команду dmesg | grep CPU. Результат выполнения данных действий представлен на рисунке 8 [5].

Рисунок 8 – Сообщения о процессоре

3.3. Сетевые средства мониторинга

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

  • работоспособность подключения к сети;
  • статистика сетевого взаимодействия;
  • графическое представление графической информации [6].

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

Самой простой утилитой проверки соединения является команда ping, выполнение которой представлено на рисунке 9 [13].

Рисунок 9 - Команда ping

Команда ping предназначена для проверки качества соединения и достижимости сетевыми пакетами целевого узла. Для работы программа использует запросы протокола ICMP и, получая ICMP ответы, показывает статистику доставки пакетов и скорость непосредственно канала между источником и адресатом.

Обычный размер запроса составляет 64 байта, но может быть изменен при помощи соответствующего ключа [15].

Второй утилитой проверки работоспособности соединения можно назвать traceroute. Особенностью является способность не только определить достижимость по сети целевого узла, но и определить маршрут передачи пакетов. Для отправки запросов утилита может использовать не только ICMP, но и UDP, TCP, GRE. В ходе посылки пакета для определения промежуточных узлов параметр TTL последовательно увеличивается для возможности получения пакета от узла маршрутизатора о том, что время жизни истекло. Этот факт и используется для фиксации очередного узла маршрута следования. Пример трассировки представлен на рисунке 10 [13].

Рисунок 10 - Команда traceroute

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

3.4. Мониторинг производительности

ОС Linux предоставляет несколько утилит для мониторинга производительности.

Одна из них - команда top. Результат выполнения данной команды представлен на рисунке 11 [6].

Рисунок 11 - Команда top

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

Еще одна команда - dstat, результат выполнения которой представлен на рисунке 12 [5].

Эта команда также является утилитой для мониторинга работы системы с расширенным набором доступных счетчиков. Позволяет сочетать сбор различных характеристик в зависимости от целей наблюдения. В том числе обладает возможностью подключения плагинов для обработки счетчиков [13].

Рисунок 12 - Команда dstat

Также стоит отметить команду iostat, результат выполнения которой представлен на рисунке 13 [15].

Рисунок 13 - Команда iostat

Данная утилита предназначается для мониторинга производительности устройств ввода/вывода. В процессе ее выполнения поддерживается периодический вывод информации с округлением среднего за заданный промежуток времени. Стандартный вывод содержит информацию о количестве запросов в секунду (tps), средних пропускных способностях устройств за промежуток времени, прочитанном и записанном количестве данных в килобайтах [13].

ЗАКЛЮЧЕНИЕ

В рамках выполнения данной работы была рассмотрена тема «Сетевые операционные системы».

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

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

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

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

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

На практике существует несколько подходов к построению сетевых операционных систем. Они также рассмотрены в рамках второй главы.

Третья глава работы – практическая. В ней описаны некоторые команды, полезные при работе в сетевой ОС Linux.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Бибарсов М.Р.Операционные системы, среды и оболочки. - Ставрополь: Изд-во СГПИ, 2010. – 120 с.

2. Востокин С.В. Операционные системы. - Самара: Изд-во Самар, гос. аэрокосм, ун-та, 2012. - 120 с.

3. Журавлева Т.Ю. Практикум по дисциплине «Операционные системы»: автоматизированный практикум. - Саратов: Вузовское образование, 2014. - 76 с.

4. Илюшкин Б.И. Операционные системы. Процессы и потоки. - СПб.: СЗТУ, 2015. - 103 с.

5. Кофлер М. Linux. Установка, настройка, администрирование. - СПб.: Питер, 2014. - 327 с.

6. Курячий Г.В. Операционная система Linux. – Саратов: Профобразование, 2017. - 89 с.

7. Лянцев О.Д. Операционные системы. – Уфа: РИК УГАТУ, 2016. – 276 с.

8. Макаренко С. И. Операционные системы, среды и оболочки. – Ставрополь: СФ МГГУ им. М. А. Шолохова, 2008. – 210 с.

9. Олифер В.Г. Сетевые операционные системы. - СПб.: Питер, 2009. - 669 с.

10. Партыка Т.Л. Операционные системы, среды и оболочки. - М.: ФОРУМ: ИНФРА-М, 2017. - 327 с.

11. Рябченко Е.Ю. Архитектура и безопасность операционных систем. - Казань: Казан. ун-т, 2015. - 157 с.

12. Синицын С.В. Операционные системы. - М.: Изд. центр "Академия", 2013. - 304 с.

13. Спивак А.И. Сетевые операционные системы. Лабораторный практикум. – СПб.: Университет ИТМО, 2016. – 56 с.

14. Таненбаум Э. Современные операционные системы. – СПб.: Питер, 2013. - 561 с.

15. Уорд Б. Внутреннее устройство Linux. - СПб.: Питер, 2016. - 422 с.