Programmation système
La programmation système est un type de programmation qui vise au développement de programmes qui font partie du système d’exploitation d’un ordinateur ou qui en réalisent les fonctions. Elle se distingue de la programmation des applications en ce qu’elle s’intéresse non pas au traitement des données, mais à la resolution des problèmes pour les humains, aux interfaces, aux protocoles et à la gestion des ressources, telles que le temps et l’espace. Donc, en réalité seuls les programmes d'application sont réellement utilisés par les utilisateurs. Les programmes système le sont implicitement.
Elle inclut, en outre, l’accès aux fichiers, la programmation du clavier, de l’écran, des modems, la programmation réseau, et, en général, la programmation de tous les périphériques qui font entrer ou sortir de l’information d’un ordinateur, de la mémoire vive et des processeurs.
Implémentation
La programmation système se fait généralement par le biais de langages tel que le langage assembleur et d’un langage de bas niveau (langage C), c’est le cas des systèmes d’exploitation de type UNIX (GNU/Linux, FreeBSD, Solaris…) dont 90 % du code est écrit en C, le reste (10 %) est en assembleur suivant les architectures cibles (x86, SPARC…).