Home Page

Tips page
c
cellulari
debian
egittologia
emacs
emacs-latex
hardware
html
inglese
java
latex
linux

*Alcuni comandi utili utilizzando find
*ARP e MAC address
*Ascoltare un CD audio
*Attivare il NumLock (BlocNum)
*Attivare i tasti i tasti Magic SysRq
*AWK, use an environment variable inside a script
*Bash e Argument list too long
*BogoMIPS
*Cancellare file e non recuperare spazio
*Capacita` dell'hard disk
*Come cambiare i font delle applicazioni con librerie GTK
*Come cambiare l'hostname
*Come tentare di recuperare file, filesystem e partizioni
*Compilare in parallelo
*Condividere una partizione
*Configure proxy for shells
*Continuous disk access
*Controllare la salute di hard disk e filesystem
*Convertire ext2 in ext3 (e viceversa)
*Convertire un file di testo dalla codifica DOS a quella UNIX
*Cosa fare quando si perde la password di root
*Cosa significa l'errore ``TCP
*Creare un boot floppy
*Creare un file temporaneo
*Deframmentazione di un filesystem
*Delete last chars from a string
*Determinare lo spazio libero sul disco
*Eliminare il beep
*Emettere un beep da script
*Enable PPP connection on boot
*Exclude a directory with rsync
*Execute telnet from a script
*Gestione dei file di log
*Gestione dei file .iso
*Gestione della data/ora
*Gestione di utenti e gruppi
*Hash md5 di una stringa
*Identificare la distribuzione installata
*I file ps e pdf
*Il file /etc/fstab
*Il file /etc/issue[.net] e /etc/motd
*Il filesystem SysFs
*I link soft ed hard
*Il path delle applicazioni
*Il sistema tutto in maiuscolo
*I moduli del kernel
*Impostare piu` IP per una scheda di rete
*Introduzione a LVM
*Inviare messaggi agli altri utenti
*I permessi della directory root, /
*La gerarchia del filesystem di Linux
*La memoria Ram sotto Linux
*La memoria swap
*Limitare la possibilita` di diventare root
*Limitazioni alla dimensione del file
*Log dei login utente
*Modificare il comportamento di ctrl+alt+canc
*Modificare le variabili della parent shell
*Montare o rimontare un filesystem come read-only
*More columns in a shell output
*Negare il login durante la manutenzione del sistema
*NoHUP
*Obtain the exact process start time
*Ottenere uno snapshot dello schermo
*Partizionamento di un sistema Linux
*Perche' si usa ./ per avviare alcuni eseguibili
*Permanent PPP connection
*PID of a process
*Programmare l'esecuzione dei programmi
*Quale processo utilizza un certo file o porta
*Quali vantaggi si hanno dalla ricompilazione
*Remove from find results
*Ricreare velocemente /tmp al boot
*Ridirezione dell'output
*Rimappare la tastiera
*Ripristinare i caratteri sballati in console
*Riscrivere l'MBR
*Salvarsi da un ``rm'' di troppo...
*Save MBR
*Scrivere in modo sincrono su filesystem
*Scrivere nel log di sistema di Linux
*Separazione dei comandi nella shell
*Separazione delle parole nella shell
*Share the internet connection
*Shell configuration files
*Single quote character escape with sed
*Spostare una directory in un'altra partizione
*Stimare il carico di lavoro della macchina
*Undelete di un file
*Usare le pendrive USB sotto Linux
*Usare partizioni primarie o estese
*Use md5sum to verify saved files
*Use ssh and scp without password
*Utilizzare hdparm per controllare gli hard disk
*Verificare un file video
*What is a zombie process
*What is the file System.map?
*What is the shebang? (Shell scripts)
*What shared libraries a program uses
*Yesterday date

matlab
misc
mysql
network
octave
programming
python
security
sed
tech
webapps
windows

University Page

Programming

Debian & Linux

Some works

About me

Del.icio.us Bookmarks

BOINC Combined Statistics

Site Statistics

Contact me sending an e-mail (antispam defense activated)

debian

hacker emblem

blogger

GeoURL

View Sandro Tosi's profile on LinkedIn

This is my Google PageRank

Title: I moduli del kernel
Author: Sandro Tosi
Last modified: 2004-10-11

Le  distribuzioni tendono  a distribuire  un kernel  ridotto all'osso,
necessario soltanto  ad eseguire i compiti fondamentali,  con tutto il
resto  compilato  come  modulo,   caricabile  on-the-fly  in  caso  di
bisogno. Inoltre,  e` anche una  pratica comune, in opposizione  ad un
kernel monolitico,  compilare solo lo stretto necessario  e lasciare i
supporti a  periferiche poco utilizzare  (driver per l'USB,  la scheda
audio, la  porta parallela) compilati  come moduli da  caricare quando
diventa necessario.

Avere pratica con  i moduli diventa molto utile.  Ecco un elenco delle
azioni piu` comuni con i moduli.

o  Caricare moduli al boot

   Alcuni  moduli sono  necessari all'avvio  del sistema  (per esempio
   quello per il filesystem di /) mentre altri possono essere caricati
   anche in seguito, durante la fase  di boot (quelli per la scheda di
   rete, ad esempio): si  possono inserire nel file ``/etc/modules'' i
   nomi dei  moduli da caricare.  In Debian, e` possibile  usare anche
   ``modconf'',  uno strumento  semi-visuale (basato  su  ncurses) per
   modificare questo file.


o  Caricare un modulo

   Per caricare un modulo ci sono due modi:

   # insmod <module>

   # modprobe <module>

   La differenza  risiede, in particolare, nel  fatto che ``modprobe''
   cerca  di risolvere  le  dipendenze con  gli  altri moduli,  mentre
   ``insmod'' no.

   Un  modulo puo`  anche  essere caricato  automaticamente quando  si
   accede  ad un  certo device;  nel file  ``/etc/modules.conf'' viene
   mantenuta  la mappa delle  corrispondenze modulo/device.  In Debian
   abbiamo   una  utility,  ``update-modules'',   che  si   occupa  di
   automatizzare il processo di manutenzione di questo file.


o  Rimuovere un modulo

   E`  possibile   che  non   sia  consentito  rimuovere   dei  moduli
   (principalmente  per   motivi  di  sicurezza);   quando  questo  e`
   possibile si puo` eseguire

   # rmmod <module>


o  Elencare i moduli attualmente caricati

   # lsmod


o  Informazioni su un modulo

   # modinfo <module>


o  Generare il file delle dipendenze dei moduli

   Perche`  la  gestione  dei  moduli  avvenga in  modo  corretto,  e`
   necessario  avere un  albero  delle dipendenze  tra moduli;  questa
   avviene  tramite  il  comando  ``depmod'': al  boot,  spesso  viene
   rigenerato questo  albero, ma e` comunque possibile  farlo anche da
   noi:

   # depmod -a <kernel_version>

   che rigenera il file delle dipendenze, ``modules.dep'', all'interno
   della directory /lib/modules/<kernel_version>/ .


o  Moduli del kernel 2.6

   Con l'introduzione della nuova  release stabile del kernel, la 2.6,
   il formato  dei moduli  e` cambiato; insieme  ad esso,  e` cambiata
   anche  l'estensione passando  da  ``.o'' (quella  normale per  ogni
   ``object''  compilato) a  ``.ko'' (``Kernel  Object''). A  causa di
   questo cambiamento, e` necessario aggiornare le module-init-tool


o  Utilizzo di un modulo binario precompilato

   Molte aziende non distribuiscono i sorgenti dei propri moduli (vedi
   nVidia  per  le  sue  schede  video)  ma  solo  una  loro  versione
   binaria.  Non e`  una pratica  che mi  rende molto  tranquillo (chi
   controlla cosa  c'e` dentro?) ma  spesso e` l'unico modo  per poter
   utilizzare il proprio hardware.

   In teoria,  un modulo per essere utilizzabile  ``in sicurezza'' con
   un kernel dovrebbe essere stato compilato per la stessa versione di
   quello nel  quale vogliamo inserirlo  e con la stessa  versione del
   compilatore utilizzato  per il kernel (non sempre  questo e` vero),
   ma soprattutto devono essere rispettate le dipendenze: se inserisco
   un modulo  che richiede il supporto  SCSI ed esso  non e` presente,
   non voglio nemmeno immaginare che potrebbe succedere... ;)

   Le aziende, invece, solitamente  forniscono una sorta di ``nucleo''
   binario che poi deve essere ``adattato'' al proprio environment: di
   solito si  tratta di linkare alcune  parti del kernel  e delle libc
   necessari per sapere quali simboli usare e quali syscall esportare.