Файл: Сетевые операционные системы (Требования, предъявляемые к сетевым операционным системам).pdf
Добавлен: 29.06.2023
Просмотров: 48
Скачиваний: 2
Модель клиент-сервер и микроядра
В вопросе структурирования операционной системы идея применения подхода клиент-сервер и микроядра реализуется посредством разбиения ее на несколько процессов. Такие процессы представляют собой серверы, каждый из которых наделен определенными сервисными функциями. Как пример могут выступать такие функции, как управление памятью или файловой системой.
Клиент, которым может быть либо другой компонент ОС, либо прикладная программа, запрашивает сервис, посылая сообщение на сервер. Ядро ОС (называемое здесь микроядром), работая в привилегированном режиме, доставляет сообщение нужному серверу, сервер выполняет операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения.
Микроядро реализует основную функцию операционной системы – управление ресурсами. Кроме того, нередки случаи, когда микроядро также выполняет функцию взаимодействия с аппаратным обеспечением. Различные варианты реализации модели клиент-сервер в структуре ОС могут существенно различаться по объему работ, выполняемых в режиме ядра.
Микроядерный подход при проектировании архитектуры ОС требует ответа на вопрос, какие функции ОС следует оставить в ядре, а какие вынести из него. Модули, содержащиеся в ядре, нельзя заменить без его перекомпиляции.
В состав микроядра обычно не включают сетевые функции, пользовательский интерфейс, файловую систему, а лишь основные функции управления[9].
Объектно-ориентированный подход
Несмотря на то, что микроядерный подход в некотором роде заложил базу для модульных систем, которые обладают способностью развиваться на регулярной основе, он не смог полностью реализовать необходимость оснащения ОС средствами для расширения и модернизации. На сегодняшний день объектно-ориентированный подход соответствует поставленной цели в наибольшей степени. При реализации объектно-ориентированного подхода программный компонент функционально изолируется от остальных.
Естественно, что центральным понятием объектно-ориентированного подходя является объект. В данном случае под объектом понимается единица программ и данных, которая взаимодействует с иными объектами при помощи обмена сообщениями. Объект может также представлять собой представление как определенной конкретной вещи, например, программы или документа, так и абстрактного предмета или явления – например, процесс или событие.
В данном подходе функции, которые реализует объект, формируют список действий, которые можно выполнить над данными, хранящимися в самом объекте. Так, объект-клиент имеет возможность обращения к другому объекту, которое реализуется при отправке сообщения с запросом на выполнение необходимой функции объекта-сервера.
Таким образом, объект предстает для внешнего мира в виде «черного ящика» с хорошо определенным интерфейсом. Способность объектов представать в виде «черного ящика» позволяет упаковывать в них и представлять в виде объектов уже существующие приложения, ничего в них не изменяя.
Применение такого подхода является наиболее эффективным и действенным при проектировании и реализации активно развивающегося программного обеспечения. Примером такого обеспечения может выступать, например, разработка приложений, которые предназначены для реализации на разнообразных аппаратных платформах.
Полностью объектно-ориентированные ОС особенно привлекательны для системных программистов, так как, применяя объекты системного уровня, программисты смогут залезать вглубь операционных систем для приспособления их к своим нуждам, не нарушая целостность системы[10].
На сегодняшний день объектно-ориентированный подход представляет собой одно из наиболее перспективных направлений в конструировании программного обеспечения.
Множественные прикладные среды
Подход, подразумевающий применение множественных прикладных сред, наделяет пользователя возможностью реализовывать на своем компьютере не только родные программы, но и продукты, которые были написаны для совершенно иных операционных систем. Эта возможность отличает подход множественных прикладных сред от вышеприведенных, в которых происходит непосредственное взаимодействие системы только с программистом, но редко доступно конечному пользователю.
На современном уровне освоения информационных систем уже стандартным является наличие на компьютере средств выполнения «чужих» программ. Так, отпадает большая часть ограничений со стороны прикладных программ при выборе той или иной операционной системы. Кроме того, с течением времени подход множественных прикладных сред становится все более не новшеством, а стандартом.
Так, множественными прикладными средами обеспечивается совместимость некоторой операционной системы с приложениями, которые были написаны для совершенно иных операционных систем и процессоров. Реализация такого подхода осуществляется на двоичном уровне.
Реализация поддержки технологии множественных прикладных сред обеспечивается в некоторой степени модульностью операционных систем современности.
Всестороннее применение технологии множественных прикладных сред обеспечивает пользователям широкое поле выбора операционных систем и достаточно простой доступ к существенно более качественному и эффективному ПО.
Таким образом, очевидно, что ОС претерпели ряд существенных изменений в процессе своего развития, и выросли от монолитных систем к хорошо структурированным модульным системам, которые способны к развитию, расширению и простой интеграции с новыми, беспрестанно прогрессирующими платформами[11].
2.Обзор примеров сетевых операционных систем
2.1 Операционная система UNIX
Операционная система UNIX была задумана как инструментальная система, предназначенная для разработки программного обеспечения. Уникальной эту систему делает тот факт, что она была спроектирована по большому счету только лишь двумя разработчиками, при этом система вообще создавалась для личного пользования и некоторое время применялась на мини-ЭВМ. Отсюда также идут истоки скромности командного интерфейса и, одновременно, независимость файловой системы. Система была написана на языке С, который известен тем, что на нем пишутся прикладные программы наравне с системными. Отсюда исходит легкость и мобильность системы.[12].
Основная цель, стоящая перед разработчиками системы, состояла в стремлении сохранения простоты и минимальности функций. При этом все реальные сложности планировалось передать пользовательским программам.
Второй по очередности и важности стояла такая цель, как общность. Она подразумевала возможность применения во многих случаях одних и тех же методов и механизмов.
Цель эта была достигнута, и общность рассматриваемой операционной системы отображается во многих аспектах, в их числе:
- обращения к файлам, устройствам ввода/вывода и буферам межпроцессных сообщений выполняются с помощью одних и тех же примитивов;
- одни и те же механизмы именования, присвоения альтернативных имен и защиты от несанкционированного доступа применяются к файлам с данными и директориями и устройствам;
- одни и те же механизмы работают в отношении программно и аппаратно инициируемых прерываний[13].
Помимо вышеприведенных, была и третья цель создания системы. Она заключалась в создании операционной среды, в которой большие задачи можно было бы решать посредством комбинации уже существующих небольших программ, а не разработки программ с нуля.
Также следует иметь ввиду такую особенность UNIX, как способность предоставления пользователям возможности направления выхода одной программы сразу на вход другой посредством программных каналов. В результате подобного подхода появляется возможность новые программы создавать путем компоновки и объединения уже имеющихся и функционирующих небольших программ. Это избавляет от необходимости написания новых программных продуктов, что существенно экономит время и другие ресурсы.[14]
Отличия ос UNIX от других систем
Операционная система UNIX представляет собой ядро с включенными в него драйверами и из утилит. Если есть необходимость изменения конфигурации операционной системы UNIX, то следует пересобирание или, иначе говоря, перелинковывание ядра из объектных кодов или из исходных текстов. В то же время, в системе Windows и OS/2 при загрузке прилинковывают драйверы, и при таком подходе значительно снижается компактность собранного ядра и повторное использование общего кода, особенно в сравнении с UNIX. В данном случае компактность кода является наиболее важным фактором, так как ядро и драйверы никогда не свопируются на диск. Кроме того, UNIX представляет собой операционную систему, которая на сегодняшний день поддерживает наибольшее число платформ.
ОС UNIX предназначена для квалифицированного администратора, т.к. требует знаний принципов функционирования происходящих в ней процессов. ОС UNIX отличается высокой надежностью функционирования, это обеспеченно за счет жесткого разделения памяти и реальной многозадачности.
Практически все протоколы, на которых основан Internet, ориентированы под ОС UNIX (TCP/IP).
Функции ос UNIX, особенности её построения - принцип иерархии.
К основным функциям операционной системы UNIX можно отнести следующее:
- Обработка прерываний.
- Создание и уничтожение процессов.
- Переключение процессов из одного состояния в другое.
- Диспетчеризация.
- Приостановка и активизация процессов.
- Синхронизация процессов.
- Организация взаимодействия между процессами.
- Манипулирование блоками управления процессами.
- Поддержка операции ввода-вывода.
- Поддержка операции распределения и перераспределения памяти.
- Поддержка работы файловых систем.
- Поддержка механизма вызова-возврата по обращению к процедурам[15].
В структуре рассматриваемой операционной системы выделяются три основные части:
Самая низкоуровневая часть ОС представляется специальными средствами, предназначенными для управления некоторыми аппаратными и программными ресурсами, которые являются специфичными для данной конкретной платформы.
Более высоким уровнем является уровень конкретных служебных программ и языков программирования. На данном уровне система получает ресурсы посредством обращения к ядру операционной системы, иначе говоря – посредством прерываний.
Высшим уровнем является уровень вспомогательных процедур, интерпретаторов, компиляторов. На названном уровне уже строятся пользовательские приложения (текстовые редакторы, графические интерфейсы и собственно приложения).
Для создания системного процесса используется системный вызов fork (разветвление), в результате которого получаются два идентичных процесса, называемые родительский процесс и порожденный (дочерний) процесс. Они не имеют общей первичной памяти, но совместно используют все открытые файлы. Для уничтожения процесса имеется вызов EXIT, который завершает работу данного процесса и передает код возврата (завершения) родительскому процессу. Сегменты данного процесса уничтожаются. Остается структура пользования для родительского процесса. Когда родительский процесс подучил информацию об уничтожении порожденного им процесса, тогда уничтожается структура пользования и освобождается место в таблице процессов[16].
Операционная система Linux
Linux – это современная POSIX-совместимая и Unix-подобная операционная система для персональных компьютеров и рабочих станций.
Это многопользовательская сетевая операционная система с сетевой оконной графической системой X Window System. ОС Linux поддерживает стандарты открытых систем и протоколы сети Internet и совместима с системами Unix, DOS, MS Windows. Все компоненты системы, включая исходные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа пользователей.
ОС Linux широко распространена на платформах Intel PC 386/486/Pentium/Pentium Pro и завоевывает позиции на ряде других платформ (DEC AXP, Power Macintosh и др.).
Разработка ОС Linux выполнена Линусом Торвалдсом из университета Хельсинки и не поддающейся подсчету обширной командой из тысяч пользователей сети Internet, сотрудников исследовательских центpов, фондов, унивеpситетов и т.д[17].
Возможности, которые предоставляет ОС Linux:
- дает возможность бесплатно и легально иметь современную ОС для использования как на работе, так и дома;
- обладает высоким быстродействием;
- работает надежно, устойчиво, совершенно без зависаний;
- мало подвержена вирусам;
- позволяет использовать полностью возможности современных ПК, снимая ограничения, присущие DOS и MS Windows по использованию памяти машины и ресурсов процессора(ов);
- эффективно управляет многозадачностью и приоритетами, фоновые задачи (длительный расчет, передача электронной почты по модему, форматирование дискеты и т.д. и т.п.) не мешают интерактивной работе;
- позволяет легко интегрировать компьютер в локальные и глобальные сети, в т.ч. в Internet; работает с сетями на базе Novell и MS Windows;
- позволяет выполнять представленные в формате загрузки прикладные программы других ОС - различных версий Unix, DOS и MS Windows;
- обеспечивает использование огромного числа разнообразных программных пакетов, накопленных в мире Unix и свободно распространяемых вместе с исходными текстами;
- предоставляет богатый набор инструментальных средств для разработки прикладных программ любой степени сложности, включая системы класса клиент-сервер, объектно-ориентированные, с многооконным текстовым и/или графическим интерфейсом, пригодных для работы как в Linux, так и в других ОС;
- дает пользователю и особенно разработчику замечательную учебную базу в виде богатой документации и исходных текстов всех компонент, включая ядро самой ОС;
- дает всем желающим попробовать свои силы в разработке, организовать общение и совместную работу через Internet с любыми из разработчиков ОС Linux и сделать свой вклад, став соавтором системы[18].