Le principal type de logiciel système est le système d'exploitation. Celui-ci est généralement composé de nombreux programmes distincts ; il existe des pilotes pour chacun des périphériques connectés à l'ordinateur, comme les écrans, les claviers, le disque dur, le disque SSD, la souris, etc. La caractéristique distinctive de tous ces programmes est qu'ils fournissent la programmation de bas niveau pour s'interfacer directement avec les différents composants matériels. Ils fournissent également une interface à laquelle le logiciel d'application peut se connecter. Leur principal objectif est d'éviter au programmeur d'applications de devoir programmer chaque élément du matériel séparément. Le code de l'application envoie simplement une commande au logiciel système pour qu'il fasse quelque chose, comme "lire la ligne de texte suivante sur le disque dur". Le logiciel système garde la trace de l'emplacement de la prochaine ligne de texte et effectue les étapes nécessaires pour lire les octets de données à partir de ce point sur le disque dur jusqu'à ce qu'il détecte la fin de cette ligne de texte. Au cours du processus, s'il rencontre une erreur, il peut prendre des mesures correctives pour tenter de résoudre l'erreur, ou il peut simplement renvoyer un code d'erreur à l'application. En supposant que l'opération de lecture a réussi, le logiciel du système stocke en interne l'endroit où il a arrêté la lecture au cas où la ligne de texte suivante serait demandée et termine le processus. En faisant les choses de cette manière, si le disque dur est changé pour un autre de plus grande ou de plus petite capacité, ou qui a des caractéristiques internes différentes. le programme d'application continuera à fonctionner correctement car le logiciel système sera capable de s'adapter aux différences matérielles en interne.