Na computação , especialmente na arquitetura , uma camada de abstração de hardware (abreviada como HAL para camada de abstração de hardware ) é um intermediário de software entre o sistema operacional e o hardware . Ele oferece funções padronizadas para lidar com o hardware do computador, enquanto oculta os detalhes técnicos da implementação.
Muitos produtores de sistemas operacionais incluem uma camada de abstração de hardware em seus produtos. É uma peça importante de software em sistemas operacionais portáteis - provavelmente para ser usado em diferentes tipos de hardware: no caso de portar, apenas a camada de abstração de hardware requer adaptação.
Uma camada de abstração de hardware possui uma interface de programação que fornece funções genéricas e comoditizadas para manipular o hardware do computador enquanto oculta os detalhes técnicos de como o hardware funciona. Isso permite que o software interaja com o hardware do computador, ignorando os detalhes técnicos do hardware.
A camada de abstração de hardware é a camada mais baixa do software, totalmente dependente do hardware, próxima aos drivers e ao núcleo do sistema operacional. Oferece funções que permitem, por exemplo, a implementação de comutação de contexto , sincronização , tratamento de interrupções , tendo em conta o endianness do processador utilizado, tratamento do relógio do sistema ou da unidade, gestão da memória . Cada função contém instruções para implementá-la em um determinado tipo de hardware.
É uma parte importante dos sistemas operacionais portáteis, que pode ser usado em diferentes tipos de hardware. Ele melhora a portabilidade do sistema operacional: se tal sistema precisar ser adaptado para uso em um novo tipo de hardware, a camada de abstração de hardware é a única peça de software que precisa de adaptação.
Muitos produtores de sistemas operacionais incluem uma camada de abstração de hardware em seus produtos. A construção da camada de abstração do material é específica de cada produtor.
Ao projetar um sistema embarcado , a existência de uma camada de abstração de hardware permite que o design do software comece antes que o design do hardware seja concluído.
O sistema operacional eCos possui uma camada de abstração de hardware na forma de um conjunto de linguagem de programação C ou macros em linguagem assembly , que são adaptadas de acordo com as características do hardware.
A família do sistema operacional Windows NT possui uma camada de abstração de hardware. Existem 5 modelos diferentes; durante a instalação do sistema operacional, ele instala automaticamente o modelo mais adequado ao hardware do computador.