La capa de abstracción de hardware (en inglés, Hardware Abstraction Layer o HAL) es un elemento del sistema operativo que funciona como una interfaz entre el software y el hardware del sistema, proveyendo una plataforma de hardware consistente sobre la cual corren las aplicaciones. Cuando se emplea una HAL, las aplicaciones no acceden directamente al hardware sino que lo hacen a la capa abstracta provista por la HAL. Del mismo modo que las API, las HAL permiten que las aplicaciones sean independientes del hardware porque abstraen información acerca de tales sistemas, como lo son las cachés, los buses de E/S y las interrupciones, y usan estos datos para darle al software una forma de interactuar con los requerimientos específicos del hardware sobre el que deba correr.
El sistema operativo Windows NT tiene un HAL que permite la portabilidad del código de modo núcleo de Windows NT a una variedad de procesadores con distintas arquitecturas de administración de memoria, y una variedad de sistemas con diferentes arquitecturas de bus E/S. La mayor parte de este código se ejecuta sin cambio en estos sistemas.
Sistemas operativos como BSD, Mac Os X, GNU/Linux, CP/M, DOS, Solaris y otros tienen también una HAL, aunque no siempre esté específicamente designada de tal forma. Las HAL son de un nivel incluso inferior en lenguajes de programación que las interfaces de aplicación de programas (API), porque interactúan directamente con el hardware en vez de con el sistema kernel, por lo que requieren menos tiempo de procesamiento que las API. Los lenguajes de alto nivel suelen usar HALs o API para comunicarse con componentes de menor nivel.
Con HAL, toda la información sobre los tipos de hardware es accesible en un único formato. Cuando un nuevo dispositivo es añadido al sistema, una señal asíncrona es situada en el bus del sistema de mensajes detallando el tipo de dispositivo que ha sido añadido. Scripts del sistema pueden configurar el dispositivo, es decir, HAL soporta dispositivos plug and play.
Android
Android introdujo un HAL conocido como la "interfaz de proveedor" (conocido como "Project Treble") en la versión 8.0 "Oreo". Abstrae el código de bajo nivel del marco de Android OS, y deben ser compatibles con versiones futuras de Android para facilitar el desarrollo de actualizaciones de firmware.[1] Antes de Project Treble, Android se basaba en varios HALs no estandarizados de legado.[2]
Halium es un HAL basado en Android utilizado por varios sistemas operativos móviles como Ubuntu Touch y LuneOS para ejecutarse en teléfonos inteligentes con Android instalado.
Enlaces externos
- Microsoft Ayuda y Soporte Determinar la capa HAL que se usa
Referencias
- ↑ Amadeo, Ron (12 de mayo de 2017). «Google’s “Project Treble” solves one of Android’s many update roadblocks». Ars Technica (en inglés estadounidense). Consultado el 16 de junio de 2024.
- ↑ «Tipos HAL». Android Open Source Project. Consultado el 16 de junio de 2024.