Capa de abstracción de hardware
La capa de abstracción de hardware (en inglés, hardware abstraction layer, 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 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 detalles de tales sistemas, como las cachés, los buses de E/S y las interrupciones, y ofrecen al software una forma uniforme de interactuar con el hardware específico sobre el que deba correr.
La HAL opera en un nivel inferior al de las API de aplicación: mientras que una API ofrece servicios a los programas de usuario, la HAL es utilizada por el propio núcleo del sistema operativo para aislar del resto del código las particularidades de cada plataforma de hardware. De este modo, la mayor parte del núcleo puede escribirse de forma portable, y solo la HAL debe adaptarse a cada arquitectura.
Ejemplos
[editar]Windows NT
[editar]El sistema operativo Windows NT tiene una HAL que permite la portabilidad del código de modo núcleo a una variedad de procesadores con distintas arquitecturas de administración de memoria, y a una variedad de sistemas con diferentes arquitecturas de bus de E/S. La mayor parte de este código se ejecuta sin cambios en estos sistemas.
Sistemas operativos como BSD, macOS, GNU/Linux, CP/M, DOS y Solaris también cuentan con una capa equivalente, aunque no siempre esté designada específicamente de tal forma.
Android
[editar]Android introdujo una HAL estandarizada conocida como la «interfaz de proveedor» (parte del proyecto Project Treble) en la versión 8.0 «Oreo». Esta interfaz separa el código de bajo nivel de los fabricantes del marco del sistema operativo Android, y debe mantener compatibilidad con versiones futuras de Android para facilitar el desarrollo de actualizaciones del sistema.[1] Antes de Project Treble, Android se basaba en varias HAL heredadas no estandarizadas.[2]
Halium es una HAL basada en Android utilizada por varios sistemas operativos móviles, como Ubuntu Touch y LuneOS, para ejecutarse en teléfonos inteligentes diseñados originalmente para Android.
Véase también
[editar]Referencias
[editar]- ↑ 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.