Сетевые ОС
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: банки рефератов, бесплатные сообщения
| Добавил(а) на сайт: Chekudaev.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
4 Безопасность
В дополнение к стандарту POSIX правительство США также определило
требования компьютерной безопасности для приложений, используемых
правительством. Многие из этих требований являются желаемыми свойствами для
любой многопользовательской системы. Правила безопасности определяют такие
свойства, как защита ресурсов одного пользователя от других и установление
квот по ресурсам для предотвращения захвата одним пользователем всех
системных ресурсов ( таких как память).
Обеспечение защиты информации от несанкционированного доступа является
обязательной функцией сетевых операционных систем. В большинстве популярных
систем гарантируется степень безопасности данных, соответствующая уровню С2
в системе стандартов США.
Основы стандартов в области безопасности были заложены "Критериями оценки
надежных компьютерных систем". Этот документ, изданный в США в 1983 году
национальным центром компьютерной безопасности (NCSC - National Computer
Security Center), часто называют Оранжевой Книгой.
В соответствии с требованиями Оранжевой книги безопасной считается такая
система, которая "посредством специальных механизмов защиты контролирует
доступ к информации таким образом, что только имеющие соответствующие
полномочия лица или процессы, выполняющиеся от их имени, могут получить
доступ на чтение, запись, создание или удаление информации".
Иерархия уровней безопасности, приведенная в Оранжевой Книге, помечает
низший уровень безопасности как D, а высший - как А.
В класс D попадают системы, оценка которых выявила их несоответствие
требованиям всех других классов.
Основными свойствами, характерными для С-систем, являются: наличие
подсистемы учета событий, связанных с безопасностью, и избирательный
контроль доступа. Уровень С делится на 2 подуровня: уровень С1, обеспечивающий защиту данных от ошибок пользователей, но не от действий
злоумышленников, и более строгий уровень С2. На уровне С2 должны
присутствовать средства секретного входа, обеспечивающие идентификацию
пользователей путем ввода уникального имени и пароля перед тем, как им
будет разрешен доступ к системе. Избирательный контроль доступа, требуемый
на этом уровне позволяет владельцу ресурса определить, кто имеет доступ к
ресурсу и что он может с ним делать. Владелец делает это путем
предоставляемых прав доступа пользователю или группе пользователей.
Средства учета и наблюдения (auditing) - обеспечивают возможность
обнаружить и зафиксировать важные события, связанные с безопасностью, или
любые попытки создать, получить доступ или удалить системные ресурсы.
Защита памяти - заключается в том, что память инициализируется перед тем, как повторно используется. На этом уровне система не защищена от ошибок
пользователя, но поведение его может быть проконтролировано по записям в
журнале, оставленным средствами наблюдения и аудитинга.
Системы уровня В основаны на помеченных данных и распределении
пользователей по категориям, то есть реализуют мандатный контроль доступа.
Каждому пользователю присваивается рейтинг защиты, и он может получать
доступ к данным только в соответствии с этим рейтингом. Этот уровень в
отличие от уровня С защищает систему от ошибочного поведения пользователя.
Уровень А является самым высоким уровнем безопасности, он требует в
дополнение ко всем требованиям уровня В выполнения формального, математически обоснованного доказательства соответствия системы требованиям
безопасности.
Различные коммерческие структуры (например, банки) особо выделяют
необходимость учетной службы, аналогичной той, что предлагают
государственные рекомендации С2. Любая деятельность, связанная с
безопасностью, может быть отслежена и тем самым учтена. Это как раз то, что
требует С2 и то, что обычно нужно банкам. Однако, коммерческие
пользователи, как правило, не хотят расплачиваться производительностью за
повышенный уровень безопасности. А-уровень безопасности занимает своими
управляющими механизмами до 90% процессорного времени. Более безопасные
системы не только снижают эффективность, но и существенно ограничивают
число доступных прикладных пакетов, которые соответствующим образом могут
выполняться в подобной системе. Например для ОС Solaris (версия UNIX) есть
несколько тысяч приложений, а для ее аналога В-уровня - только сотня.
Операционные системы различных фирм производителей программного обеспечения
1 Семейство операционных систем UNIX
История и общая характеристика семейства операционных систем UNIX
UNIX имеет долгую и интересную историю. Начавшись как несерьезный и почти
"игрушечный" проект молодых исследователей, UNIX стал многомиллионной
индустрией, включив в свою орбиту университеты, многонациональные
корпорации, правительства и международные организации стандартизации.
UNIX зародился в лаборатории Bell Labs фирмы AT&T более 20 лет назад. В то
время Bell Labs занималась разработкой многопользовательской системы
разделения времени MULTICS (Multiplexed Information and Computing Service)
совместно с MIT и General Electric, но эта система потерпела неудачу, отчасти из-за слишком амбициозных целей, не соответствовавших уровню
компьютеров того времени, а отчасти и из-за того, что она разрабатывалась
на языке PL/1, а компилятор PL/1 задерживался и вообще плохо работал после
своего запоздалого появления. Поэтому Bell Labs вообще отказалась от
участия в проекте MULTICS, что дало возможность одному из ее
исследователей, Кену Томпсону, заняться поисковой работой в направлении
улучшения операционной среды Bell Labs. Томпсон, а также сотрудник Bell
Labs Денис Ритчи и некоторые другие разрабатывали новую файловую систему, многие черты которой вели свое происхождение от MULTICS. Для проверки новой
файловой системы Томпсон написал ядро ОС и некоторые программы для
компьютера GE-645, который работал под управлением мультипрограммной
системы разделения времени GECOS. У Кена Томпсона была написанная им еще во
времена работы над MULTICS игра "Space Travel" - "Космическое путешествие".
Он запускал ее на компьютере GE-645, но она работала на нем не очень хорошо
из-за невысокой эффективности разделения времени. Кроме этого, машинное
время GE-645 стоило слишком дорого. В результате Томпсон и Ритчи решили
перенести игру на стоящую в углу без дела машину PDP-7 фирмы DEC, имеющую
4096 18-битных слов, телетайп и хороший графический дисплей. Но у PDP-7
было неважное программное обеспечение, и, закончив перенос игры, Томпсон
решил реализовать на PDP-7 ту файловую систему, над который он работал на
GE-645. Из этой работы и возникла первая версия UNIX, хотя она и не имела в
то время никакого названия. Но она уже включала характерную для UNIX
файловую систему, основанную на индексных дескрипторах inode, имела
подсистему управления процессами и памятью, а также позволяла двум
пользователям работать в режиме разделения времени. Система была написана
на ассемблере. Имя UNIX (Uniplex Information and Computing Services) было
дано ей еще одним сотрудником Bell Labs, Брайаном Керниганом, который
первоначально назвал ее UNICS, подчеркивая ее отличие от
многопользовательской MULTICS. Вскоре UNICS начали называть UNIX.
Первыми пользователями UNIX'а стали сотрудники отдела патентов Bell Labs, которые нашли ее удобной средой для создания текстов.
Большое влияние на судьбу UNIX оказала перепись ее на языке высокого уровня
С, разработанного Денисом Ритчи специально для этих целей. Это произошло в
1973 году, UNIX насчитывал к этому времени уже 25 инсталляций, и в Bell
Labs была создана специальная группа поддержки UNIX.
Широкое распространение UNIX получил с 1974 года, после описания этой
системы Томпсоном и Ритчи в компьютерном журнале CACM. UNIX получил широкое
распространение в университетах, так как для них он поставлялся бесплатно
вместе с исходными кодами на С. Широкое распространение эффективных C-
компиляторов сделало UNIX уникальной для того времени ОС из-за возможности
переноса на различные компьютеры. Университеты внесли значительный вклад в
улучшение UNIX и дальнейшую его популяризацию. Еще одним шагом на пути
получения признания UNIX как стандартизованной среды стала разработка
Денисом Ритчи библиотеки ввода-вывода stdio. Благодаря использованию этой
библиотеки для компилятора С, программы для UNIX стали легко переносимыми.
[pic]
Рис. 5.1. История развития UNIX
Широкое распространение UNIX породило проблему несовместимости его
многочисленных версий. Очевидно, что для пользователя весьма неприятен тот
факт, что пакет, купленный для одной версии UNIX, отказывается работать на
другой версии UNIX. Периодически делались и делаются попытки стандартизации
UNIX, но они пока имели ограниченный успех. Процесс сближения различных
версий UNIX и их расхождения носит циклический характер. Перед лицом новой
угрозы со стороны какой-либо другой операционной системы различные
производители UNIX-версий сближают свои продукты, но затем конкурентная
борьба вынуждает их делать оригинальные улучшения и версии снова
расходятся. В этом процессе есть и положительная сторона - появление новых
идей и средств, улучшающих как UNIX, так и многие другие операционные
системы, перенявшие у него за долгие годы его существования много
полезного.
На рисунке 5.1 показана упрощенная картина развития UNIX, которая учитывает
преемственность различных версий и влияние на них принимаемых стандартов.
Наибольшее распространение получили две весьма несовместимые линии версий
UNIX: линия AT&T - UNIX System V, и линия университета Berkeley-BSD. Многие
фирмы на основе этих версий разработали и поддерживают свои версии UNIX:
SunOS и Solaris фирмы Sun Microsystems, UX фирмы Hewlett-Packard, XENIX
фирмы Microsoft, AIX фирмы IBM, UnixWare фирмы Novell (проданный теперь
компании SCO), и список этот можно еще долго продолжать.
Наибольшее влияние на унификацию версий UNIX оказали такие стандарты как
SVID фирмы AT&T, POSIX, созданный под эгидой IEEE, и XPG4 консорциума
X/Open. В этих стандартах сформулированы требования к интерфейсу между
приложениями и ОС, что дает возможность приложениям успешно работать под
управлением различных версий UNIX.
Независимо от версии, общими для UNIX чертами являются:
многопользовательский режим со средствами защиты данных от
несанкционированного доступа, реализация мультипрограммной обработки в режиме разделения времени, основанная на использовании алгоритмов вытесняющей многозадачности
(preemptive multitasking), использование механизмов виртуальной памяти и свопинга для повышения уровня
мультипрограммирования, унификация операций ввода-вывода на основе расширенного использования
понятия "файл", иерархическая файловая система, образующая единое дерево каталогов
независимо от количества физических устройств, используемых для размещения
файлов, переносимость системы за счет написания ее основной части на языке C, разнообразные средства взаимодействия процессов, в том числе и через сеть, кэширование диска для уменьшения среднего времени доступа к файлам.
Далее мы подробно остановимся на основных концепциях версии UNIX System V
Release 4, которая вобрала в себя лучшие черты линий UNIX System V и UNIX
BSD.
Версия UNIX System V Release 4 - это незаконченная коммерческая версия
операционной системы, т.к. в ее кодах отсутствуют многие системные утилиты, необходимые для успешной эксплуатации ОС, например утилиты
администрирования или менеджер графического интерфейса. Версия SVR4
является скорее стандартной реализацией кода ядра, вобравшая в себя
наиболее популярные и эффективные решения из различных версий ядра UNIX, такие как виртуальная файловая система VFS, отображаемые в память файлы и
т.п. Код SVR4 (частично доработанный) лег в основу многих современных
коммерческих версий UNIX, таких как HP-UX, Solaris, AIX и т.д.
2 Микроядро Mach
Ядро любой современной коммерческой версии UNIX представляет собой набор очень большого количества функций, с запутанными взаимосвязями и очень расплывчатыми границами между основными подсистемами. В результате любая модификация организованной таким образом системы дается тяжело и приводит к появлению в новых версиях большого количества ошибок. Кроме того, не во всех инсталляциях нужны все компоненты ядра, а при монолитном его построении удаление ненужных функций затруднено. Недостатки, присущие операционным системам с большим монолитным ядром (а это в первую очередь различные версии UNIX'а), породили интерес к системам, построенным на основе микроядра.
Микроядерный подход заключается в том, что базовые функции ядра оформляются в виде отдельной небольшой компоненты, выполняемой в привилегированном режиме, а остальные функции ОС выполняются в пользовательском режиме с использованием примитивов микроядра. Ввиду больших потенциальных преимуществ, которые сулит этот подход, можно предположить, что в ближайшее время большинство новых операционных систем будет строиться на основе микроядра. Наиболее известными реализациями этого подхода являются микроядра Mach и Chorus.
Основной сложностью использования микроядерного подхода на практике
является замедление скорости выполнения системных вызовов при передаче
сообщений через микроядро по сравнению с классическим подходом.
Можно подробно рассмотреть принципы организации и функции микроядра Mach по
двум причинам. Во-первых, микроядро по определению содержит базовые
механизмы, имеющиеся внутри любой операционной системы, поэтому знакомство
с этими механизмами в чистом виде полезно и для изучения любой конкретной
ОС.
Во-вторых, микроядра лицензируются и используются как готовый
программный продукт в качестве основы для построения коммерческой сетевой
операционной системы. Сейчас имеется несколько коммерческих реализаций
операционных систем на основе микроядра Mach (NextStep фирмы Next, UNIX
BSD, OSF/1 v.1.3), а также проводится ряд работ по использованию этого
ядра. Так как свойства микроядра в значительной степени определяют свойства
ОС, построенной на его основе, то знание микроядра помогает в оценке
характеристик использующей его ОС.
1 История Mach
Система Mach имела в качестве предшественницы систему RIG - Rochester
Intelligent Gateway, начало разработки которой пришлось на 1975 год. RIG
была написана для 16-битового мини-компьютера компании DataGeneral под
названием Elipce. Целью этой разработки была демонстрация возможностей
структурирования операционной системы и представления ее в виде набора
процессов, которые могут взаимодействовать между собой путем передачи
сообщений, в том числе и по сети. Затем эта операционная система была
улучшена путем добавления средств защиты и средств прозрачной работы в сети
и получила название Accent (в 1981 году, в университете Карнеги-Меллона). В
1984 году она уже использовалась на 150 компьютерах PERQ - ранних
графических станциях, но проиграла соревнование с UNIX'ом. Это
обстоятельство побудило создать третье поколение ОС, использующей механизм
обмена сообщениями. Этот проект и был назван Mach. В связи с тем, что Mach
проектировалась как система, совместимая с UNIX, планировалась поддержка
большого количества приложений для UNIX. Кроме совместимости с UNIX, в Mach
были введены и другие усовершенствования, включая нити, улучшенные
механизмы межпроцессного взаимодействия, поддержка многопроцессорных
систем, улучшенная виртуальная память и др. В это время агентство DARPA
искало операционную систему для поддержки мультипроцессоров. Выбор был
сделан в пользу университета Карнеги-Меллона, и работы над ОС Mach были
продолжены. Было решено сделать эту систему совместимой с 4.2BSD путем
комбинации Mach и 4.2BSD в виде единого ядра. Хотя этот подход привел к
большому ядру, он гарантировал абсолютную совместимость. Первая версия Mach
была реализована в 1986 году для VAX11/784, 4-х процессорной машины. Вскоре
эта ОС была перенесена на IBM PC RT и Sun 3. К 1987 году Mach выполнялась
также на мультипроцессорах Encore и Sequent. Хотя Mach и имела сетевые
средства, ее скорее можно было отнести к ОС отдельной машины или
мультипроцессора, а не к сетевой распределенной прозрачной системе. Вскоре
была создана организация производителей компьютеров OSF (IBM, DEC, Hewlett
Packard) для того, чтобы отобрать контроль над ОС UNIX у ее собственника
AT&T. Они выбрали Mach 2.5 в качестве основы для их первой операционной
системы OSF/1. Хотя Mach 2 и OSF/1 содержали большое количество кода
Berkeley и AT&T, была надежда, что OSF, по крайней мере, сможет
контролировать направление развития UNIX. В 1988 году ядро Mach 2.5 было
большим и монолитным из-за того, что содержало большое количество кода
Berkeley UNIX. А в 1989 году университет Карнеги-Меллона удалил весь код
BSD UNIX из ядра и поместил его в пользовательское пространство. То, что
осталось, было микроядром, состоящим из чистого кода Mach. Эта версия 3.0 и
используется как основа последующих версий OSF.
2 Цели Mach
ОС Mach значительно изменилась со времени ее первой реализации в виде RIG.
Цели проекта также изменились со временем. На текущий момент основные цели
выглядят так:
1. Обеспечение базовых функций для создания других операционных систем
(например, UNIX).
2. Поддержка больших разреженных адресных пространств.
3. Обеспечение прозрачного доступа к сетевым ресурсам.
4. Поддержка параллелизма как в системе, так и в приложениях.
5. Обеспечение переносимости Mach на различные типы компьютеров.
3 Основные концепции Mach
Микроядро Mach было разработано в качестве основы, на базе которой
можно эмулировать UNIX и другие ОС. Эта эмуляция осуществляется программным
уровнем, который работает вне ядра, в пользовательском пространстве (рис.
6.1). Следует отметить, что несколько эмуляторов могут работать
одновременно, так что можно выполнять программы 4.3BSD, System V и MS-DOS
на одной машине в одно и то же время.
Ядро Mach, подобно другим микроядрам, обеспечивает управление
процессами, управление памятью, коммуникации и функции ввода-вывода.
Функции управления файлами, каталогами и другие традиционные для
операционных систем функции выполняются в пользовательском пространстве.
Идея построения ядра Mach состоит в обеспечении механизмов, необходимых для
работы системы, но стратегия использования этих механизмов реализуется на
уровне пользовательских процессов.
Ядро управляет пятью главными абстракциями:
Рекомендуем скачать другие рефераты по теме: реферат молодежь, реферати.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата