LKMPG: Fasi preliminari: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Riga 2: Riga 2:
==Moduli vs Programmi==
==Moduli vs Programmi==
===Come i moduli iniziano e finiscono===
===Come i moduli iniziano e finiscono===
Un programma di solito inizia con la funzione main(), esegue una serie di istruzioni e termina al completamento di queste istruzioni. I moduli del kernel lavorano in modo leggermente diverso. Un modulo inizia sempre o con la funzione <code>init_module</code> o con la funzione che specifichi nella chiamata di <code>module_init</code>. Questa è la funzione d'ingresso per i moduli: dice al kernel che funzionalità il modulo fornisce e imposta il kernel in modo da eseguire le funzioni del modulo quando richieste. Una volta fatto tutto questo, la funzione d'ingresso termina ed il modulo non fa nulla finchè il kernel vuole fare qualcosa con il codice che il modulo fornisce.
Tutti i moduli terminano chiamando o la funzione <code>cleanup_module</code> o la funzione specificata nella chiamata di <code>module_exit</code>. Questa è la funzione d'uscita dei moduli: questa rimuove qualsiasi cosa la funzione d'ingresso ha fatto. Elimina le funzionalità registrate dal modulo all'interno del kernel dalla funzione d'ingresso.
Ogni modulo deve avere una funzione d'ingresso ed una d'uscita. Poichè c'è piu di un modo di specificare le funzioni d'ingresso ed uscita, cercherò di fare del mio meglio usando i termini `funzione d'ingresso' e `funzione d'uscita', ma se dovessi cosa intendo.


===Funzioni disponibili per i moduli===
===Funzioni disponibili per i moduli===
43

contributi

Menu di navigazione