Привилегированный режим и Hardware Abstraction Layer
Ядро также отвечает за связь большинства аппаратных устройств с приложениями.
Компонент ядра, называемый Hardware Abstraction Layer (HAL), отвечает за управление аппаратными устройствами, подключенными к компьютеру. Исключениями являются
драйверы устройств, которые обмениваются информацией с файловой системой и сетью,
Win32K и подсистемами графики GDI, используемыми для взаимодействия с монитором
и устройствами ввода данных.
На рисунке1 – Архитектура Windows XP показан общий обзор разделения задач,
выполняемых различными компонентами операционной системы.
Режим совместимости приложений
Windows ХР построена на архитектуре слоев, защищающих важные системные компоненты от прямого доступа пользовательских приложений. В более ранних версиях операционных систем Microsoft прикладные программы могли напрямую взаимодействовать с аппаратными устройствами, подключенными к компьютеру. По нескольким причинам HAL был разработан вместе с Windows NT. Сначала Windows NT была создана для работы на нескольких аппаратных платформах - на процессорах Intel, процессорах типа PowerPC, Alpha, и процессорах MIPS. С обеспечением абстрактного уровня кода между фактическими аппаратными устройствами и прикладными программами, стала возможна установка Windows NT на разные платформы. С использованием HAL блокирование системы приложением при зависании отдельного устройства, в свою очередь, стало невозможным.
Абстрактный уровень - уровень программирования, который позволяет операционной системе взаимодействовать с объектом на общем или абстрактном уровне надежнее, чем на детальном (аппаратном) уровне.
От поддержки для PowerPC и MIPS отказались во время разработки Windows NT 4.0,
а поддержка для процессоров Alpha была отменена в период тестирования Windows 2000.
Тем не менее, Windows ХР имеет поддержку не только для 32-разрядных процессоров
Intel, но и для 64-разрядных процессоров Intel Itanium. HAL необходим, чтобы облегчить
отделение внутрисистемных процессов от используемого оборудования.
Второе преимущество HAL состоит в том, что код некорректно работающего приложения не может привести к аварийному отказу системы. HAL отвечает за обращение операционной системы к компонентам используемого оборудования. Код, который выполняется в пользовательском режиме, не может перезаписывать части буфера физической памяти, используемых, например, сетевыми устройствами. Даже компоненты операционной системы, которые взаимодействуют с драйверами устройств и графическим дисплеем – это часть ядра, так что приложения должны обращаться к системным подпрограммам, чтобы обратиться к этим устройствам. Разделение между пользовательским режимом и привилегированным режимом предназначено для того, чтобы в большинстве случаев отдельной программе было очень сложно вызвать крах Windows ХР.
На рисунке 1 подсистема Windows on Windows (WOW) показана наряду с подсистемой Режим совместимости приложений (Application Compatibility Mode). Более старые приложения, которые были написаны для 16-разрядных процессоров, могут быть эмулированы WOW-подсистемой. Несмотря на то, что большинство 32-разрядных приложений, написанные для Windows, начиная с Windows 95 до Windows 2000, должны работать под Windows ХР, есть некоторых старые программы, которые могут не работать. Эти программы можно будет запускать с помощью компонента, называемого Режим совместимости приложений, позволяющего эмулировать предыдущие операционные системы.
Может оказаться, что некоторые приложения не будут устойчиво работать под Windows ХР В частности, относящиеся к категории антивирусных программ, программам поддержки; также могут не работать некоторые системные утилиты. Однако производители программ высшей категории будут выпускать обновления, так что вы сможете использовать ваши любимые утилиты под Windows ХР. Просто зайдите на сайт Windows Catalog (http//www.microsoft.com/windowsxp/partners/catalog.asp) для приложений совместимых с Windows ХР. (Вы можете также обращаться к этой Web-странице в пределах Windows ХР, выбирая Пуск | Все программы | Каталог Windows (Start | All Programs | Windows Catalog).
Кроме выполнения приложений, написанных для более ранних версий Windows (и
даже некоторых программ MS-DOS), 64-разрядная Windows ХР обеспечивает поддержку для 64-разрядных приложений. 64-разрядная версия Windows ХР будет включать другую подсистему, называемую Windows on Windows 64 (WOW64), которая даст возможность 32-разрядным приложениям выполняться с приложениями, специально написанными для 64-разрядной версии. Хотя большинство из нас не нуждается в возможностях высокопроизводительных 64-разрядных рабочих станций, эта версия Windows ХР будет очень полезна в системах машинного проектирования и трехмерной анимации. Так как поддержка для 64-разрядного процессора Alpha была отменена, то версия 64-разрядного Windows ХР будет реализована на процессоре Intel Itanium .
Защищенная память и ядро
Так как физическая память используется, только когда это позволено кодом привилегированного режима операционной системы, то она также известна как защищенная память. В ранних операционных системах, типа MS DOS, программа с ошибочным кодом могла легко перезаписать раздел памяти, выделенный другой программе. Результаты могли быть непредсказуемы, но обычно приводили к аварийному отказу системы. Разделяя операционную систему на пользовательский и привилегированный режимы, и таким об- разом защищая память привилегированным кодом, Windows ХР не позволяет приложениям легко получать доступ к той памяти, к которой они не должны его иметь.
Исполняемые сервисы
Executive Services - просто общее название разнообразных компонентов, которые обеспечивают основы функционирования операционной системы. Эти основные службы, предлагаемые ядром операционной системы, включают следующее:
Менеджер Виртуальной Памяти (Virtual Memory Manager - VMM) - этот компонент администрирования отвечает за управление 4 Гб виртуальной памяти, выделенной на каждый процесс, так же как и за запись и извлечение страниц физической памяти, необходимых операционной системе или приложению в определенный момент времени.
Средство вызова локальных процедур (Local Procedure Call Facility) - этот
компонент ответствен за взаимодействие процессов. Он необходим, потому что каждый
процесс использует то же самое виртуальное адресное пространство.
Менеджер процессов (Process Manager) - когда приходит время запуска или завершения процесса, этот компонент операционной системы отвечает за создание необходимой структуры памяти и запуск потоков процесса. С этого момента другие компоненты операционной системы, типа администратора виртуальной памяти, подключаются к контролированию того, как функционирует процесс и как он использует системные ресурсы.
Менеджер объектов (Object Manager) - Windows ХР использует концепцию объекта для многих различных вещей. Рассматривайте объект, как основную единицу, которой управляет операционная система. Например, системные ресурсы, такие как порты, рассматриваются в качестве объектов. Объект обеспечивает интерфейс, которым может воспользоваться приложение, чтобы взаимодействовать с системными ресурсами универсальным способом.
Монитор безопасности (Security Reference Monitor) - это очень важная часть операционной системы. Security Reference Monitor-это компонент, который управляет всеми механизмами защиты, имеющимися в операционной системе. Он включает такие вещи, как начальный вход в систему, подтверждение пароля пользователя и проверку уровня доступа пользователя к различным ресурсам.
Как работает виртуальная память
Компонент ядра, называемый Менеджер Виртуальной Памяти (Virtual Memory
Manager - VMM) отвечает за управление физической памятью, установленной на компьютере, и распределение ее между отдельными процессами по необходимости. Это одна из наиболее важных возможностей не только Windows ХР, но и всех современных операционных систем, таких как Unix и Open VMS. 32-разрядный Windows ХР может поддерживать адресацию до 4 Гб памяти.
64-разрядная версия Windows ХР, которая будет работать на процессоре Intel Itanium, сможет поддерживать до 16 Терабайт виртуальной памяти. Это огромное увеличение по сравнению с объемом памяти, доступным на более распространенной 32-разрядной версии Windows ХР Professional. С удвоением размера числового значения, которое сможет обрабатывать процессор, легко понять, почему ХР, вероятнее всего, будет преуспевать. Предоставляя приложениям, требующим большие структуры данных и более быстрые возможности обработки чисел, чем это может обеспечить 32- разрядная машина, пользователи, нуждающиеся в более мощных вычислительных возможностях, найдут их в Windows ХР.
Из 4 Гб диапазона адресной памяти 2 Гб зарезервировано для операционной системы непосредственно, а оставшиеся 2 Гб зарезервированы для приложения. Это означает, что с точки зрения приложения, есть фактически 2 Гб памяти. Однако, одна важная вещь, о которой не стоит забывать, - это то, что виртуальная память является виртуальной. Другой момент - это то, что количество адресов, с которыми Windows ХР может работать, на самом деле гораздо больше, и что существует разница между памятью, выделенной одному приложению, и всей памятью, установленной на компьютере. Помните также о том, что есть адреса виртуальной памяти и физическая память.
Виртуальные адреса - это просто пронумерованные сегменты в адресном пространстве, которые могут быть использованы процессом. Физическая память - фактическая память, установленная на вашем компьютере.
VMM заботится об отображении виртуальных адресов на физические адреса памяти.
Следить за адресным пространством памяти процесса и координировать эти адреса с фактической физической памятью, установленной в компьютер - это и есть функция VMM
Диапазон адресов памяти от 00000000Н до 7FFFFFFFH (шестнадцатеричную запись любят использовать многие программисты). Кроме того, помните, что каждый процесс использует тот же диапазон адресов. Вы можете подумать, что адресный интервал может быть разделен среди одновременно протекающих процессов, каждый из которых получит только часть адресного интервала; однако это не так. Каждый процесс может использовать весь адресный интервал. VMM следит за адресами каждого запущенного процесса.
Нет сомнения, что многие из вас знают, что первоначальным разработчиком Windows NT был Дэвид Катлер (David Cutler), он также был главным разработчиком операционной системы Digital Equipment Corporation's Virtual Memory System, теперь называемой OpenVMS.
Естественно, что Windows ХР использует улучшенные методы работы виртуальной памяти, похожие на использующиеся в OpenVMS
Страничная адресация виртуальной памяти
Способы управления виртуальной памятью, предоставляемые Windows ХР, на пер-
вый взгляд могут показаться сложными, но в действительности это простой процесс со-
здания 4 Гб памяти при гораздо меньшем объеме физической памяти, имеющейся на компьютере. Несколько важных положений, которые следует помнить, говоря о виртуальной памяти, основанной на страницах
• 32-разрядная виртуальная адресация.
• Каталоги страниц.
• Таблицы страниц.
• Блоки страниц.
• Буферы хранения трансляции.
32-разрядная виртуальная адресация
Windows ХР использует 32-разрядный адрес, чтобы расположить данные в памяти.
Однако обращение ко всей памяти осуществляется сегментами размером 4096 байта, на-
зываемыми страницами.Сам 32-разрядный адрес разделен на три компонента, каждый из которых используется для занесения в таблицу, указывающей в конечном итоге фактическое расположение требуемых приложением данных в памяти