Os computadores possuem alguns tipos de software para desempenhar suas funções. Sabendo disso, os softwares que gerenciam o hardware e ainda fornecem aos programadores e aos programas de aplicativos um conjunto de recursos abstratos e claros, ao invés de recursos confusos de hardware, são conhecidos como