Наиболее принципиальным отличием между системами класса Windows 9x и Windows 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 — уровень абстракции аппаратных средств), низкоуровневые драйверы устройств и исполняющая система Windows 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, являются перемещаемыми: они могут перемещаться с контроллера домена на любой другой компьютер этого домена. В результате, имея множество компьютеров, объединенных в домен, и контроллер домена, на котором созданы все необходимые учетные записи, мы можем использовать эти учетные записи для управления доступом к различным ресурсам. Более того, мы можем контролировать использование этих ресурсов и регистрировать попытки несанкционированного доступа к тем или иным объектам. Контроль за использованием прав и разрешений, а также их регистрация называется аудитом.