- архитектура
ОС
Любая сложная
система должна иметь понятную и
рациональную структуру, то есть разделяться
на части — модули, имеющие вполне
законченное функциональное назначение
с четко оговоренными правилами
взаимодействия. Ясное понимание
роли каждого отдельного модуля существенно
упрощает работу по модификации и
развитию системы. Напротив, сложную
систему без хорошей структуры
чаще проще разработать заново, чем
модернизировать. Функциональная сложность
операционной системы неизбежно
приводит к сложности ее архитектуры,
под которой понимают структурную
организацию ОС на основе различных
программных модулей. Обычно в состав
ОС входят исполняемые и объектные
модули стандартных для данной ОС
форматов, библиотеки разных типов, модули
исходного текста программ, программные
модули специального формата (например,
загрузчик ОС, драйверы ввода-вывода),
конфигурационные файлы, файлы документации,
модули справочной системы и т. д.
Большинство современных операционных
систем представляют собой хорошо структурированные
модульные системы, способные к
развитию, расширению и переносу на
новые платформы. Какой-либо единой
архитектуры ОС не существует, но существуют
универсальные подходы к структурированию
ОС. Наиболее общим подходом к структуризации
операционной системы является разделение
всех ее модулей на две группы:
ядро —
модули, выполняющие основные функции
ОС;
модули, выполняющие
вспомогательные функции ОС.
Модули ядра
выполняют такие базовые функции
ОС, как управление процессами, памятью,
устройствами ввода-вывода и т. п. Ядро
составляет сердцевину операционной системы,
без него ОС является полностью неработоспособной
и не сможет выполнить ни одну из
своих функций.
В состав ядра входят функции, решающие
внутрисистемные задачи организации
вычислительного процесса, такие как переключение
контекстов, загрузка/выгрузка станиц,
обработка прерываний. Эти функции недоступны
для приложений. Другой класс функций
ядра служит для поддержки приложений,
создавая для них так называемую прикладную
программную среду. Приложения могут обращаться
к ядру с запросами — системными вызовами
— для выполнения тех или иных действий,
например для открытия и чтения файла,
вывода графической информации на дисплей,
получения системного времени и т. д. Функции
ядра, которые могут вызываться приложениями,
образуют интерфейс прикладного программирования
— API.
Функции, выполняемые модулями ядра, являются
наиболее часто используемыми функциями
операционной системы, поэтому скорость
их выполнения определяет производительность
всей системы в целом. Для обеспечения
высокой скорости работы ОС все модули
ядра или большая их часть постоянно находятся
в оперативной памяти, то есть являются
резидентными. Ядро является движущей
силой всех вычислительных процессов
в компьютерной системе, и крах ядра равносилен
краху всей системы. Поэтому разработчики
операционной системы уделяют особое
внимание надежности кодов ядра, в результате
процесс их отладки может растягиваться
на многие месяцы.
Обычно ядро
оформляется в виде программного
модуля некоторого специального формата,
отличающегося от формата пользовательских
приложений. Ядро в привилегированном
режиме
Для надежного
управления ходом выполнения приложений
операционная система должна иметь
по отношению к приложениям определенные
привилегии. Иначе некорректно работающее
приложение может вмешаться в
работу ОС и, например, разрушить часть
ее кодов. Все усилия разработчиков
операционной системы окажутся напрасными,
если их решения воплощены в незащищенные
от приложений модули системы, какими
бы элегантными и эффективными эти
решения ни были. Операционная система
должна обладать исключительными полномочиями
также для того, чтобы играть роль
арбитра в споре приложений за
ресурсы компьютера в мультипрограммном
режиме. Ни одно приложение не должно иметь
возможности без ведома ОС получать
дополнительную область памяти, занимать
процессор дольше разрешенного операционной
системой периода времени, непосредственно
управлять совместно используемыми
внешними устройствами. Обеспечить
привилегии операционной системе невозможно
без специальных средств аппаратной поддержки.
Аппаратура компьютера должна поддерживать
как минимум два режима работы — пользовательский
режим (user mode) и привилегированный режим,
который также называют режимом ядра (kernel
mode), или режимом супервизора (supervisor mode).
Подразумевается, что операционная система
или некоторые ее части работают в привилегированном
режиме, а приложения — в пользовательском
режиме. Так как ядро выполняет
все основные функции ОС, то чаще всего
именно ядро становится той частью ОС,
которая работает в привилегированном
режиме.Иногда это свойство — работа в
привилегированном режиме — служит основным
определением понятия «ядро». Архитектура
операционной системы с ядром в привилегированном
режиме.
Приложения ставятся в подчиненное положение
за счет запрета выполнения в пользовательском
режиме некоторых критичных команд, связанных
с переключением процессора с задачи на
задачу, управлением устройствами ввода-вывода,
доступом к механизмам распределения
и защиты памяти. Выполнение некоторых
инструкций в пользовательском режиме
запрещается безусловно (очевидно, что
к таким инструкциям относится инструкция
перехода в привилегированный режим),
тогда как другие запрещается выполнять
только при определенных условиях. Например,
инструкции ввода-вывода могут быть запрещены
приложениям при доступе к контроллеру
жесткого диска, который хранит данные,
общие для ОС и всех приложений, но разрешены
при доступе к последовательному порту,
который выделен в монопольное владение
для определенного приложения. Важно,
что условия разрешения выполнения критичных
инструкций находятся под полным контролем
ОС и этот контроль обеспечивается за
счет набора инструкций, безусловно запрещенных
для пользовательского режима. Аналогичным
образом обеспечиваются привилегии ОС
при доступе к памяти. Например, выполнение
инструкции доступа к памяти для приложения
разрешается, если инструкция обращается
к области памяти, отведенной данному
приложению операционной системой, и запрещается
при обращении к областям памяти, занимаемым
ОС или другими приложениями. Полный контроль
ОС над доступом к памяти достигается
за счет того, что инструкция или инструкции
конфигурирования механизмов защиты памяти
(например, изменения ключей защиты памяти
в мэйнфреймах IBM или указателя таблицы
дескрипторов памяти в процессорах Pentium)
разрешается выполнять только в привилегированном
режиме.
Очень важно, что механизмы защиты памяти
используются операционной системой не
только для защиты своих областей памяти
от приложений, но и для защиты областей
памяти, выделенных ОС какому-либо приложению,
от остальных приложений. Говорят, что
каждое приложение работает в своем адресном
пространстве. Это свойство позволяет
локализовать некорректно работающее
приложение в собственной области памяти,
так что его ошибки не оказывают влияния
на остальные приложения и операционную
систему.
Между количеством
уровней привилегий, реализуемых
аппаратно, и количеством уровней
привилегий, поддерживаемых ОС, нет
прямого соответствия. Так, на базе
четырех уровней, обеспечиваемых процессорами
компании Intel, операционная система OS/2
строит трехуровневую систему привилегий,
а операционные системы Windows NT, UNIX и
некоторые другие ограничиваются двухуровневой
системой. С другой стороны, если
аппаратура поддерживает хотя бы два
уровня привилегий, то ОС может на этой
основе создать программным способом
сколь угодно развитую систему защиты.
Эта система может, например, поддерживать
несколько уровней привилегий, образующих
иерархию. Наличие нескольких уровней
привилегий позволяет более тонко
распределять полномочия как между
модулями операционной системы, так
и между самими приложениями. Появление
внутри операционной системы более
привилегированных и менее привилегированных
частей позволяет повысить устойчивость
ОС к внутренним ошибкам программных
кодов, так как такие ошибки будут
распространяться только внутри модулей
с определенным уровнем привилегий.
Дифференциация привилегий в среде
прикладных модулей позволяет строить
сложные прикладные комплексы, в
которых часть более привилегированных
модулей может, например, получать доступ
к данным менее привилегированных
модулей и управлять их выполнением.
Многослойная структура ОС. Вычислительную
систему, работающую под управлением
ОС на основе ядра, можно рассматривать
как систему, состоящую из трех иерархически
расположенных слоев: нижний слой образует
аппаратура, промежуточный — ядро,
а утилиты, обрабатывающие программы
и приложения, составляют верхний
слой системы (рис. 3.6). Слоистую структуру
вычислительной системы принято
изображать в виде системы концентрических
окружностей, иллюстрируя тот факт,
что каждый слой может взаимодействовать
только со смежными слоями. Действительно,
при такой организации ОС приложения
не могут непосредственно взаимодействовать
с аппаратурой, а только через
слой ядра.
- Планирование
и структура
Важный
момент, о котором необходимо помнить
при планировании любой установки, - совместимость
приложений. Если вы переходите на Windows
7 с Windows Vista, тут не должно быть больших
проблем, так как приложения, созданные
для Windows Vista в большинстве случаев должны
работать нормально и под Windows 7. Однако
если вы осуществляете перевод компьютеров
с Windows XP на Windows 7, вам понадобится некоторое
время, чтобы разобраться в том, что нужно
сделать, чтобы все приложения нормально
работали на новой операционной системе.
Причины падения приложений
Каковы же причины
того, что приложения, сделанные
для Windows XP иногда 'падают', когда вы
пытаетесь запускать их под Windows
7? Вот пара проблемных областей: User
Account Control: Приложения, требующие администраторских
привилегий, которые созданы для
Windows XP, могут работать некорректно
под Windows 7, даже если пользователь является
членом локальной группы Administrators на
данном компьютере. В Microsoft попытались
минимизировать количество подобных проблем
включением специальных прокладок
совместимости для приложений в
Windows 7 для большинства обычных
программ, которые позволят пользователям
запускать такие приложения, даже
если они стандартные пользователи,
а не администраторы. Некоторые более
старые приложения, однако, просто не будут
работать под Windows 7, даже если пользователь
является локальным администратором.
В таком случае вам может понадобиться
воспользоваться одним из следующих
инструментов, описанных ниже, чтобы
запускать старые приложения отдельно
от операционной системы Windows 7: Virtual PC 2007
SP1, Windows Virtual PC с режимом Windows XP Mode, Microsoft
Enterprise Desktop Virtualization или Microsoft Application Virtualization.
Структура пользовательского
профиля и различия в версиях:
Структура пользовательского профиля
была переделана в Windows Vista в сторону
большей рациональности. Если старое
приложение было сделано, чтобы получать
доступ к файлам пользовательского
профиля корректным способом с помощью
вызовов функций API и переменных
среды, то изменения в пользовательском
профиле помешать запускать его
под Windows 7, так как в Windows 7 включены
directory junctions для обычных профильных
папок в Windows XP вроде My Documents. Тем не
менее, если старое приложение работает
с прописанными в коде приложения профильными
папками в стиле Windows XP, по этой причине
приложение может не работать в Windows 7.
Еще одна проблема, из-за которой старое
приложение может не запуститься, - если
у приложения проблемы с определение номера
версии Windows 7. Когда вы пытаетесь запустить
приложение, оно проверяет номер версии
ОС, видит, что это - 6.1, но не знает, что
это означает, и поэтому не запускается.
В таких случаях, если только некоторые
пользователи с этим столкнутся, можно
попробовать Program Compatibility Troubleshooter в Windows
7 для решения данной проблемы. Если с этим
столкнется много пользователей, вы можете
попробовать Application Compatibility Toolkit, чтобы
проанализировать проблему и разработать
решение, которое вы сможете установить
на проблемных компьютерах.
Средства для упрощения проблем, связанных
с совместимостью приложений
Microsoft предлагает несколько инструментов,
которые вы можете использовать для того,
чтобы убедиться, что вы сможете запускать
старые приложения после перехода на Windows
7. Эти инструменты бывают трех типов, и
я им дал такие названия:
Одноразовые инструменты ' Попробуйте
сначала эти инструменты в случае, если
с проблемой сталкиваются только несколько
пользователей.
Широкомасштабные
инструменты ' В средах большого масштаба
следует сначала стоит попробовать
эти инструменты.
Средства виртуализации
' Если ничего не помогает, устраивайте
виртуализацию.
2.средства управления
ресурсами ОС
Microsoft System Center Configuration
Manager 2007 предлагает исчерпывающее
решение для управления изменениями
и конфигурациями всех систем
на платформе Microsoft и позволяет
организациям обеспечивать доставку
приложений и обновлений с минимальными
затратами ресурсов ИТ-отделов.
Configuration Manager 2007
предоставляет вам следующие
возможности:
• Снижение затрат
на программное обеспечение и
соблюдение стандартов защиты информации
за счет:
– анализа всего
набора установленных приложений
– анализа конфигураций
оборудования серверов и приложений
– заданий и
контроля за желаемой конфигурацией
и настройками систем
– контроля запускаемых
и используемых приложений
• Быстрое и
надежное предоставление пользователям
критически важных бизнес-приложений
в нужное время и в нужном месте
• Надежная целевая
доставка обновлений для приложений
Microsoft и сторонних программ
• Повышение
безопасности операционной системы Windows
за счет:
– улучшенного
обнаружения и оценки уязвимостей,
связанных с наиболее распространенными
ошибками в
настройках
– интеграции с
новой возможностью Windows Server 2008 по обеспечению
защиты доступа к сети (NAP) и ограничению
работы в локальной сети систем,
не удовлетворяющих политикам безопасности
(например отсутствием критически важных
обновлений безопасности)
• Встроенная поддержка
автоматизированного развертывания
операционных систем
• Удаленное
управление компьютерами для решения
проблем и обеспечения поддержки
• Эффективная
поддержка систем в распределенных
сетях
Configuration Manager 2007
упрощает процедуры обновления
существующих систем, обеспечивает
возможности по развертыванию
новых конфигураций, автоматизирует
множество рутинных операций, а также
отслеживает соответствие конфигураций
систем политикам организации, тем самым
поднимая общий уровень защиты ИТ-инфраструктуры.