https://profilbaru.com/article/Hardware_Abstraction_Layer