Интеллектуальная поисковая система Nigma.ru


Баннерная



Секреты ОС Windows XP. Драйвер уровня аппаратных абстракций HAL.

Hardware Abstraction Layer (HAL, Слой аппаратных абстракций) — слой абстрагирования, реализованный в программном обеспечении, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, запускаемом на этом компьютере. HAL предназначен для скрытия различий в аппаратном обеспечении от основной части ядра операционной системы, таким образом чтобы большая часть кода, работающая в режиме ядра не нуждалась в изменении при её запуске на системах с различным аппаратным обеспечением.

На персональных компьютерах HAL, по существу, может рассматриваться как драйвер материнской платы, позволяющий взаимодействовать инструкциям высокоуровневых языков программирования с низкоуровневыми компонентами, такими как аппаратное обеспечение, к примеру напрямую с аппаратным обеспечением.

В операционных системах семейства Windows NT HAL является частью ядра. Это обеспечивает портируемость кода ОС Windows NT, работающего в режиме ядра на различные виды процессоров, с различными блоками управления памятью и на ряд систем с различными архитектурами шин ввода/вывода; большая часть этого кода выполняется без изменений на этих системах, при компиляции для системы команд оговоренных выше систем. К примеру, рабочие станции, основанные на SGI Intel x86, были не совместимы с IBM PC-совместимыми рабочими станциями, но благодаря HAL Windows NT мог запускаться на них.

BSD, Mac OS X, Linux, CP/M, MS-DOS, Solaris и некоторые другие портируемые ОС также имеют HAL, несмотря на то, что он не разрабатывался явно для выполнения описанных выше функций. Некоторые системы, такие как GNU/Linux, имеют возможность вставлять подобный слой, к примеру Adeos, во время работы. Ядро операционной системы NetBSD широко известно наличием чистого слоя абстрагирования от аппаратного обеспечения (HAL), что позволяет ему быть высоко-портируемым. Частью этой системы являются uvm(9)/pmap(9), bus_space(9), bus_dma(9) и другие подсистемы.

Популярные шины, которые используются более чем на одной архитектуре, такие как ISA, EISA, PCI, PCI-E и д.р., также абстрагированы, позволяя написанным под них драйверам также быть высоко-портируемыми с минимальным изменением кода.

«Экстремальный» пример HAL может быть найден в архитектурах System/38 и AS/400. Большинство компиляторов для таких систем генерируют абстрактный машинный код. Лицензированный Внутренний Код(Licensed Internal Code) или ЛИК(LIC) переводит этот виртуальный машинный код во внутренний(собственный) код процессора, на котором он запускается, и выполняет получившийся внутренний код. (Исключение составляют компиляторы, которые сами генерируют ЛИК; эти компиляторы не доступны за пределами IBM) Это было настолько успешным, что прикладное программное обеспечение и программное обеспечение операционной системы, расположенные над слоем ЛИК, скомпилированные на оригинальной архитектуре System/38 запускаются без каких-либо модификаций и перекомпиляций на последних системах AS/400. И это несмотря на тот факт, что лежащее в основе аппаратное обеспечение было кардинально изменено; по крайней мере три различных типа микропроцессоров находились в использовании.

HAL является даже более низким уровнем в компьютерных языках программирования, чем API, потому что он взаимодействует непосредственно с аппаратным обеспечением вместо ядра системы, следовательно HAL требует меньше процессорного времени чем API. Языки высокого уровня часто используют HAL и API для взаимодействия с компонентами более низкого уровня.

Операционные системы, имеющие HAL, легко портируются на различное оборудование. Это особенно важно для встраиваемых систем, которые работают на дюжине различных платформ

HAL можно выбрать во время установки операционной системы. Чтобы указать вручную драйвер уровня аппаратных абстракций во время обновления или установки Windows XP, следует на текстовом этапе установки, обратить внимание на следующее сообщение в нижней части экрана:

Нажмите F6, если Вам необходимо загрузить SCSI или Raid драйвер стороннего производителя.

При появлении данного сообщения нажмите клавишу "F5". Теперь при просмотре параметров Вы можете выбрать необходимый Вам драйвер HAL. Если будет нажата клавиша F7, то будет загружен драйвер HAL "Стандартный компьютер" и проверка на совместимость с ACPI будет пропущена.

После нажатия клавиши "F5" Вы увидите список типов компьютеров (в списке указаны жирным шрифтом). Описание драйвера уровня аппартных абстракций приведено ниже.
  • Многопроцессорный компьютер с ACPI: Используется на многопроцессорных компьютерах с ACPI.
  • Однопроцессорный компьютер с ACPI: Используется на многопроцессорных компьютерах с ACPI, но только с одним установленным процессором.
  • Компьютер с ACPI: Используется для системных плат, позволяющих установить только один процессор.
  • Многопроцессорный Compaq SystemPro или 100% совместимый: Используется для компьютера Compaq Systempro.
  • Однопроцессорный компьютер с MPS: Используется на двухпроцессорных системных платах без поддержки ACPI и только с одним установленным процессором.
  • Многопроцессорный компьютер с MPS: Используется на двухпроцессорных системных платах без поддержки ACPI с двумя установленными процессорами.
  • Стандартный компьютер: Любой стандартный компьютер без поддержки ACPI или без MPS. Это может быть система, основанная на процессоре 386, 486, Pentium, Pentium II или Pentium III
  • Стандартный компьютер I486 степпинг-С.
  • Прочие.
Одновременно на экране отображаются только два типа компьютеров. Для просмотра всего списка следует использовать клавиши стрелок для прокрутки списка.
При выборе варианта Прочие программа установки попросит вас вставить дискету з записанным на неё HAL. Для этого перед началом установки необходимо скачать с сайта производителя вашего процессора необходимый драйвер и записать его на дискету.
Теперь давайте немного разберёмся в терминологии.
  • ACPI - Advanced Configuration Power Interface (интерфейс расширенной конфигурации по питанию) - предложенная Microsoft единая система управления питанием для всех компьютеров, наподобие используемой в NoteBook. В частности, позволяет предусмотрено сохранение состояния системы перед отключением питания, с последующим его восстановлением без полной перезагрузки Hybernation (используется в Windows XP).
  • MPS - Multi processor structure.
Важно! При обновлении с Microsoft Windows 2000 на Windows XP HAL сохраняется. Поэтому, если в Windows 2000 был использован драйвер уровня аппаратных абстракций "Стандартный компьютер", то соответствующий драйвер HAL будет загружен и в Windows XP. Кроме того, процедура изменения драйвера уровня аппаратных абстракций со "Стандартного компьютера" на "Компьютер с ACPI" отличается от метода, используемого в Windows 2000.


Rambler's Top100 Яндекс цитирования Автор сайта Master 487704927 Hosted by uCoz