[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