GNU/Linux >> Linux Esercitazione >  >> Linux

Cosa sono esattamente le intestazioni del kernel Linux?

I file di intestazione definiscono un'interfaccia:specificano come sono definite le funzioni nel file sorgente.

Vengono utilizzati in modo che un compilatore possa verificare se l'utilizzo di una funzione è corretto in quanto la firma della funzione (valore restituito e parametri) è presente nel file di intestazione. Per questa attività non è necessaria l'effettiva implementazione della funzione.

Potresti fare lo stesso con i sorgenti completi del kernel ma installerai molti file non necessari.

Esempio:se voglio usare la funzione

int foo(double param);

in un programma non ho bisogno di sapere come l'implementazione di foo è, ho solo bisogno di sapere che accetta un singolo parametro (double ) e restituisce un numero intero.


Come affermato, i file di intestazione definiscono le interfacce alle funzioni e le strutture utilizzate dai programmi.

Nel caso dei file header del kernel, queste funzioni e strutture sono all'interno del kernel stesso.

Se stai costruendo un kernel completo, allora, ovviamente, hai bisogno dei file sorgente completi, non solo delle intestazioni. Tuttavia, se stai compilando un driver di dispositivo o un altro modulo caricabile che si collega al kernel, hai bisogno solo dei file di intestazione, quindi puoi risparmiare spazio non installando i sorgenti completi.

La separazione dei pacchetti in modo da poter installare solo i file di intestazione è in parte storica poiché la differenza nell'utilizzo del disco era una considerazione significativa quando i dischi erano più piccoli. Al giorno d'oggi, avere l'intera sorgente su disco (inutilmente) non sarebbe una considerazione importante per lo spazio su disco.


Il termine file di intestazione deriva dalla C linguaggio di programmazione utilizzato per scrivere il kernel Linux.

Per spiegarlo da un livello molto alto...

In C, devi avere una dichiarazione diretta di una funzione prima di utilizzarla. In altre parole, una descrizione della funzione, dei suoi parametri e del tipo di dati che restituisce. È prassi comune inserire tutte le dichiarazioni anticipate in un singolo file chiamato intestazione . I file di codice sorgente per altri programmi possono quindi include questa intestazione e avere accesso a tutte le funzioni nell'eseguibile del programma risultante dopo che è stato compilato.

I file di intestazione di Linux sono tutti .h file che contengono le funzioni fornite dal kernel Linux che possono essere richiamate da altri programmi.


Linux
  1. Linux:cosa sono la memoria alta e la memoria insufficiente su Linux?

  2. Linux:quali sorgenti di entropia vengono utilizzate dal kernel Linux?

  3. Debug live del kernel Linux, come si fa e quali strumenti vengono utilizzati?

  4. Cos'è un kernel contaminato in Linux?

  5. qual è una risoluzione di jiffie nel kernel Linux

Cosa fare in caso di panico del kernel Linux

Che cos'è /dev/null in Linux

Linux:cosa intendiamo esattamente quando diciamo che stiamo usando Linux?

Cosa sono gli inode in Linux?

Cosa sono la memoria alta e la memoria bassa su Linux?

Quali fonti di entropia sono utilizzate dal kernel Linux?