LKMPG: Ciao Mondo: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Riga 32: Riga 32:
</pre>
</pre>


I moduli del kernel devono avere almeno due funzioni. Una funzione "iniziale" (inizializzazione) detta <code>init_module()</code> che è chiamata quando il modulo è inserito nel kernel tramite insmod, e una funzione "finale" (di pulizia) detta <code>cleanup_module()</code> che è chiamata prima che il modulo venga rimosso con rmmoded. In realtà, le cose sono cambiate a partire dal kernel 2.3.13. Puoi utilizzare qualunque nome ti piaccia per la funzione di inizializzazione e di cleanup, e imparerai a farlo nella Sezione XXXX2.3XXXX. Infatti, il nuovo metodo è quello preferito. Comunque, molti continuano ad utilizzare init_module() e cleanup_module() per le proprie funzioni iniziali e finali.
I moduli del kernel devono avere almeno due funzioni. Una funzione "iniziale" (inizializzazione) detta <code>init_module()</code> che è chiamata quando il modulo è inserito nel kernel tramite insmod, e una funzione "finale" (di pulizia) detta <code>cleanup_module()</code> che è chiamata prima che il modulo venga rimosso con rmmoded. In realtà, le cose sono cambiate a partire dal kernel 2.3.13. Si può utilizzare qualunque nome che piaccia per la funzione di inizializzazione e di cleanup, e si imparerà a farlo nella Sezione XXXX2.3XXXX. Infatti, il nuovo metodo è quello preferito. Comunque, molti continuano ad utilizzare init_module() e cleanup_module() per le proprie funzioni iniziali e finali.


Tipicamente, <code>init_module()</code> o registra un handler con il kernel per fare una serie di azioni, oppure rimpiazza una della funzioni del kernel stesso con un codice proprio (usualmente questo codice fa una serie di azioni e poi chiama la funzione originale). Si suppone che la funzione <code>cleanup_module()</code> disfaccia tutto ciò che ha fatto <code>init_module()</code>, in modo tale che il modulo possa essere rimosso tranquillamente.
Tipicamente, <code>init_module()</code> o registra un handler con il kernel per fare una serie di azioni, oppure rimpiazza una della funzioni del kernel stesso con un codice proprio (usualmente questo codice fa una serie di azioni e poi chiama la funzione originale). Si suppone che la funzione <code>cleanup_module()</code> disfaccia tutto ciò che ha fatto <code>init_module()</code>, in modo tale che il modulo possa essere rimosso tranquillamente.
168

contributi