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