Lapisan abstraksi perangkat keras

Lapisan abstraksi perangkat keras adalah sebuah lapisan logis antara perangkat keras fisik dari sebuah komputer dan perangkat lunak yang berjalan di dalam komputer yang bersangkutan. Fungsi dari HAL adalah untuk menyembunyikan perbedaan-perbedaan di dalam perangkat keras dan maka dari itu menyediakan platform yang konsisten untuk menjalankan aplikasi di atasnya. HAL dapat ditemui di dalam sistem operasi keluarga UNIX BSD, Linux, dan Windows NT. Selain pada sistem-sistem tersebut, contoh dari penerapan HAL yang baik adalah pada arsitektur IBM AS/400. Implementasi dari Licensed Internal Code (LIC) yang sukses sehingga perangkat lunak yang ditulis untuk pendahulu AS/400, S/38, dapat berjalan dengan sempurna tanpa harus dilakukan modifikasi pada AS/400. Padahal, AS/400 menggunakan tiga buah prosesor dengan jenis berbeda. Sistem operasi yang memiliki HAL yang didefinisikan bersifat portabel terhadap perangkat keras yang berbeda-beda. Hal ini jelas merupakan salah satu hal yang penting, apalagi untuk sistem embedded yang berjalan di atas beberapa mikrokontroler berbeda-beda.