GNU/Linux >> Tutoriels Linux >  >> Linux

Que sont exactement les en-têtes du noyau Linux ?

Les fichiers d'en-tête définissent une interface :ils précisent comment les fonctions du fichier source sont définies.

Ils sont utilisés pour qu'un compilateur puisse vérifier si l'utilisation d'une fonction est correcte car la signature de la fonction (valeur de retour et paramètres) est présente dans le fichier d'en-tête. Pour cette tâche, l'implémentation réelle de la fonction n'est pas nécessaire.

Vous pouvez faire la même chose avec les sources complètes du noyau mais vous installerez beaucoup de fichiers inutiles.

Exemple :si je veux utiliser la fonction

int foo(double param);

dans un programme je n'ai pas besoin de savoir comment l'implémentation de foo c'est-à-dire que j'ai juste besoin de savoir qu'il accepte un seul paramètre (double ) et renvoie un entier.


Comme indiqué, les fichiers d'en-tête définissent les interfaces avec les fonctions ainsi que les structures utilisées par les programmes.

Dans le cas des fichiers d'en-tête du noyau, ces fonctions et structures se trouvent dans le noyau lui-même.

Si vous construisez un noyau complet, alors, évidemment, vous avez besoin des fichiers source complets, pas seulement des en-têtes. Cependant, si vous compilez un pilote de périphérique ou un autre module chargeable lié au noyau, vous n'avez besoin que des fichiers d'en-tête, vous pouvez donc économiser de l'espace en n'installant pas les sources complètes.

La séparation des packages afin que vous puissiez installer uniquement les fichiers d'en-tête est en partie historique car la différence d'utilisation du disque était une considération importante lorsque les disques étaient plus petits. De nos jours, avoir toute la source sur le disque (inutilement) ne serait pas une considération majeure en matière d'espace disque.


Le terme fichiers d'en-tête provient du C langage de programmation utilisé pour écrire le noyau Linux.

Pour l'expliquer d'un très haut niveau...

En C, vous devez avoir une déclaration à terme d'une fonction avant de l'utiliser. En d'autres termes, une description de la fonction, de ses paramètres et du type de données qu'elle renvoie. Il est courant de mettre toutes les déclarations en avant dans un seul fichier appelé en-tête . Les fichiers de code source d'autres programmes peuvent alors include cet en-tête et avoir accès à toutes les fonctions de l'exécutable du programme résultant une fois qu'il a été compilé.

Les fichiers d'en-tête Linux sont tous des .h fichiers contenant les fonctions fournies par le noyau Linux pouvant être appelées à partir d'autres programmes.


Linux
  1. Linux - Qu'est-ce que la mémoire élevée et la mémoire faible sous Linux ?

  2. Linux - Quelles sources d'entropie sont utilisées par le noyau Linux ?

  3. Que sont les fichiers .run ?

  4. Qu'est-ce qui rend un serveur Linux noyau fondamental ?

  5. Que sont les pages sales sous Linux

Que faire en cas de panique du noyau Linux

Qu'est-ce que /dev/null sous Linux

Linux - Que voulons-nous dire exactement lorsque nous disons que nous utilisons Linux ?

Que sont les inodes sous Linux ?

Quelles sont les différences entre lsof et netstat sous Linux ?

Qu'est-ce qu'un noyau teinté sous Linux ?