[Tech] Moduli e Linux 2.6

Szymon Stefanek pragma@firenze.linux.it
Sab 8 Gen 2005 06:13:11 CET


On Friday 07 January 2005 17:17, Daniele Masini wrote:

> - Qual è la parte del kernel che si occupa del caricamento automatico dei
> moduli in memoria?

kmod (kernel/kmod.c)

In particolare request_module() viene chiamata da altre parti del kernel che 
necessitano il caricamento di un qualche driver. request_module() esegue
modprobe che se correttamente configurato può "tirare su" i moduli relativi ai 
device in /dev, alle interfacce di rete etc...

> - E' ancora possibile far scaricare automaticamente un modulo dalla
> memoria?

A quanto pare, no.
Un articoletto che pone le basi per ulteriori approfondimenti si trova qui:
	http://www.informatik.uni-freiburg.de/~danlee/fun/modused/

> - Qual è la parte del kernel che si occupa del reference counting 
> dei moduli?

In generale è l'utilizzatore del modulo che ne gestisce il refcount.

include/linux/module.h
	try_module_get() incrementa il refcount
	module_put() decrementa il refcount

Queste funzioni vengono chiamate da "chiunque" abbia bisogno di utilizzare il 
modulo. Quindi ad esempio quando apri un char device passi da 
	chrdev_open() in fs/chardev.c
che a sua volta chiama
	cdev_get() sempre in fs/chardev.c
che finalmente chiama try_module_get() se il device è "owned" da un modulo.

Eventualmente anche i moduli stessi possono aumentare o diminuire il proprio 
refcount per gestire le situazioni particolari in cui il kernel non è in 
grado di capire che una particolare risorsa fornita dal modulo è in uso.

Articoletto: http://lwn.net/Articles/22197/

-- 

Szymon Stefanek

------------------------------------------------------------------------------
-
- A kiedy rozdasz najcieplejszy szept
- Gdy, przewędrujesz każdy mały sens
- Pomyślisz, że tak, że wypełnił się czas
- To ostatnia z dróg szuka twoich stóp
- Teraz stań na najwyższej z gór 
- Połknij wiatr byś wykrzyczeć mógł

-
------------------------------------------------------------------------------
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: non disponibile
URL:         <http://lists.linux.it/pipermail/flug-tech/attachments/20050108/aad7f1f0/attachment.pgp>


Maggiori informazioni sulla lista flug-tech