Основные особенности архитектуры

Наиболее принципиальным отличием между системами класса Windows 9x и Win­dows XP является то, что у них разная архитектура. Большинство операционных систем использует такую особенность современных процессоров, как возможность работать в одном из двух режимов: привилегирован­ном(режиме ядра, или режиме супервизора) и пользовательском(режиме выпол­нения приложений). При описании своей системы Windows XP Microsoft для ука­зания этих режимов использует термины kernel mode и user mode соответственно. Программные коды, которые выполняются процессором в привилегированном режиме, имеют доступ и к системным аппаратным средствам, и к системным дан­ным. Чтобы защитить операционную систему и данные, располагающиеся в опе­ративной памяти, от ошибок приложений или их преднамеренного вмешательства в чужие вычисления, только системному коду, относящемуся к управляющей (супервизорной) части операционной системы, разрешают выполняться в привиле­гированном режиме работы процессора. Все остальные программные модули дол­жны выполняться в пользовательском режиме.

Поскольку при создании Windows XP разработчики хотели обеспечить ее мобиль­ность, то есть легкую переносимость на другие платформы, они приняли решение использовать только два уровня привилегий из четырех, имеющихся в микропро­цессорах Intel семейства i80x86. Как мы уже знаем, нулевой уровень привилегий в микропроцессорах с архитектурой ia32 обеспечивает возможность выполнять лю­бые команды и иметь доступ ко всем регистрам процессора. Наименьшие приви­легии имеются у кода, выполняемого в третьем кольце защиты (см. главу 4), кото­рое и предназначается для выполнения обычных приложений. Напомним, что код, работающий в этом режиме, не может ни при каких обстоятельствах получить до­ступ к данным, расположенным в нулевом кольце защиты. Поэтому, если бы сис­темный код использовал не два уровня привилегий, а все четыре, то появились бы очевидные проблемы при переносе системы на другой процессор. Системы типа Windows XP построены по микроядерной технологии. Конечно, их ядро никак нельзя назвать маленьким, особенно в сравнении с ядром операцион­ной системы QNX. Однако в целом архитектура Windows XP безусловно отвечает идеям построения операционной системы, в которой управляющие модули орга­низованы с четким выделением центральной части и взаимодействием этой части с остальными по принципу клиент-сервер. Это означает, что в состав ядра включе­ны только самые важные основообразующие управляющие процедуры, а осталь­ные управляющие модули операционной системы вызываются из ядра как служ­бы. Причем только часть служб использует процессор в режиме ядра, а остальные — в пользовательском режиме, как и обычные приложения пользователей. А для обеспечения надежности они располагаются в отдельном виртуальном ад­ресном пространстве, к которому ни один модуль и ни одна прикладная програм­ма, помимо системного кода, не может иметь доступа.

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

Из рисунка видно, что помимо собственно ядра в том же режиме супервизора ра­ботают модуль HAL (Hardware Abstraction Layer — уровень абстракции аппарат­ных средств), низкоуровневые драйверы устройств и исполняющая система Win­dows XP, называемая Win32 Executive. Начиная с Windows NT 4.0 в режиме ядра работают и диспетчер окон (Window Manager), который иногда называют «User», и модули графического интерфейса устройств (GDI).

Программное обеспечение, абстрагирующее работу исполняющей системы и соб­ственно ядра от специфики работы конкретных устройств и контроллеров, во мно­гом упрощает перенос операционной системы на другую платформу. Оно пред­ставлено в системе модулем динамически связываемой библиотеки HAL.DLL. Одним из важнейших компонентов операционных систем Windows XP, который появился вследствие следования микроядерному принципу их построе­ния, является исполняющая система (Win32 Executive). Она выполняет такие ба­зовые функции операционной системы, как управление процессами и потоками, управление памятью, взаимодействие между процессами, защиту, операции вво­да-вывода (включая файловые операции, кэширование, работу с сетью и некото­рые другие). Ниже перечислены компоненты исполняющей системы.

Диспетчер процессов (Process Manager) создает, отслеживает и удаляет про­цессы. Для выполнения этих функций создается соответствующий дескриптор, определяются базовый приоритет процесса и карта адресного пространства, создается и поддерживается список всех готовых к выполнению потоков.

· Диспетчер виртуальной памяти (Virtual Memory Manager) предоставляет вир­туальную память выполняющимся процессам. Каждый процесс имеет отдель­ное адресное пространство, используется страничное преобразование линей­ных адресов в физические, поэтому потоки одного процесса не имеют доступа к физическим страницам, отведенным для другого процесса.

· Диспетчер объектов (Object Manager) создает и поддерживает объекты. В част­ности, поддерживаются дескрипторы объектов и атрибуты защиты объектов. Объектами считаются каталоги, файлы, процессы и потоки, семафоры и собы­тия и многие другие.

· Монитор безопасности (Security Reierence Monitor) обеспечивает санкциони­рование доступа к объектам, контроль полномочий доступа и ведение аудита. Совместно с процессом входа в систему (logon) и защищенными подсистемами реализует модель безопасности Windows XP. (Планировщик потоков) работает с несколькими очередями. Всего существует 32 уровня приоритетов — от 0 до 31. Распределение приоритетов между выполняющимися процессами и потоками осуществляется по следующим правилам:

· Low - 4 (низкий приоритет); BelowNormal - ниже среднего;

· Normal - 8 (нормальный приоритет);

· AboveNormal - выше среднего;. High - 16 (высокий приоритет);

· RealTime - 24 (приоритет реального времени).

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

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

Модель безопасности

Операционные системы Windows XP обеспечивают защиту на локаль­ном уровне. Это означает, что механизмы защиты работают на каждом компьюте­ре с такой операционной системой. Однако это имеет и обратную сторону. Дело в том, что учетные записи пользователей и групп локальны: они действуют только на том компьютере, где их создали. Если же есть необходимость обратиться к об­щим ресурсам компьютера через сеть, нужно, чтобы для пользователя, который выполняет такое обращение к удаленным объектам, была создана такая же учет­ная запись. Поскольку становится затруднительным обеспечить наличие учетных записей для каждого пользователя на всех тех компьютерах, с ресурсами которых ему необходимо работать, пользуясь вычислительной сетью, в свое время была предложена технология доменных сетей. В домене, который представляет собой множество компьютеров, должен быть выделен сервер со всеми учетными запися­ми этого домена. Такой сервер называют контроллером домена. Учетные записи домена в отличие от локальных учетных записей, имеющихся на каждом компыотере с операционной системой типа Windows NT, являются перемещаемыми: они могут перемещаться с контроллера домена на любой другой компьютер этого до­мена. В результате, имея множество компьютеров, объединенных в домен, и кон­троллер домена, на котором созданы все необходимые учетные записи, мы можем использовать эти учетные записи для управления доступом к различным ресур­сам. Более того, мы можем контролировать использование этих ресурсов и регис­трировать попытки несанкционированного доступа к тем или иным объектам. Кон­троль за использованием прав и разрешений, а также их регистрация называется аудитом.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: