| Current Path : /proc/695564/cwd/proc/358557/root/usr/share/debian-reference/ |
| Current File : //proc/695564/cwd/proc/358557/root/usr/share/debian-reference/ch03.it.html |
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Capitolo 3. Inizializzazione del sistema</title>
<link rel="stylesheet" type="text/css" href="debian-reference.css"/>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="home" href="index.it.html" title="Debian Reference"/>
<link rel="up" href="index.it.html" title="Debian Reference"/>
<link rel="prev" href="ch02.it.html" title="Capitolo 2. Gestione dei pacchetti in Debian"/>
<link rel="next" href="ch04.it.html" title="Capitolo 4. Autenticazione e controllo degli accessi"/>
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Capitolo 3. Inizializzazione del sistema</th>
</tr>
<tr>
<td align="left"><a accesskey="p" href="ch02.it.html"><img src="images/prev.png" alt="Indietro"/></a> </td>
<th width="60%" align="center"> </th>
<td align="right"> <a accesskey="n" href="ch04.it.html"><img src="images/next.png" alt="Avanti"/></a></td>
</tr>
</table>
<hr/>
</div>
<div class="chapter">
<div class="titlepage">
<div>
<div>
<h1 class="title"><a id="_the_system_initialization"/>Capitolo 3. Inizializzazione del sistema</h1>
</div>
</div>
</div>
<div class="toc">
<p>
<strong>Indice</strong>
</p>
<dl class="toc">
<dt>
<span class="section">
<a href="ch03.it.html#_an_overview_of_the_boot_strap_process">3.1. Panoramica del processo di avvio</a>
</span>
</dt>
<dd>
<dl>
<dt>
<span class="section">
<a href="ch03.it.html#_stage_1_the_uefi">3.1.1. Stadio 1: l'UEFI</a>
</span>
</dt>
<dt>
<span class="section">
<a href="ch03.it.html#_stage_2_the_boot_loader">3.1.2. Stadio 2: il bootloader</a>
</span>
</dt>
<dt>
<span class="section">
<a href="ch03.it.html#_stage_3_the_mini_debian_system">3.1.3. Stadio 3: il mini-sistema Debian</a>
</span>
</dt>
<dt>
<span class="section">
<a href="ch03.it.html#_stage_4_the_normal_debian_system">3.1.4. Stadio 4: il normale sistema Debian</a>
</span>
</dt>
</dl>
</dd>
<dt>
<span class="section">
<a href="ch03.it.html#_systemd_init">3.2. Init systemd</a>
</span>
</dt>
<dd>
<dl>
<dt>
<span class="section">
<a href="ch03.it.html#_the_hostname">3.2.1. Il nome host</a>
</span>
</dt>
<dt>
<span class="section">
<a href="ch03.it.html#_the_filesystem">3.2.2. Il filesystem</a>
</span>
</dt>
<dt>
<span class="section">
<a href="ch03.it.html#_network_interface_initialization">3.2.3. Inizializzazione delle interfacce di rete</a>
</span>
</dt>
</dl>
</dd>
<dt>
<span class="section">
<a href="ch03.it.html#_the_kernel_message">3.3. I messaggi del kernel</a>
</span>
</dt>
<dt>
<span class="section">
<a href="ch03.it.html#_the_system_message">3.4. I messaggi di sistema</a>
</span>
</dt>
<dt>
<span class="section">
<a href="ch03.it.html#_system_management_operations">3.5. Gestione del sistema</a>
</span>
</dt>
<dt>
<span class="section">
<a href="ch03.it.html#_other_system_monitors">3.6. Altri strumenti di monitoraggio del sistema</a>
</span>
</dt>
<dt>
<span class="section">
<a href="ch03.it.html#_customizing_systemd">3.7. Personalizzare systemd</a>
</span>
</dt>
<dd>
<dl>
<dt>
<span class="section">
<a href="ch03.it.html#_socket_activation">3.7.1. Attivazione di socket</a>
</span>
</dt>
</dl>
</dd>
<dt>
<span class="section">
<a href="ch03.it.html#_the_udev_system">3.8. Il sistema udev</a>
</span>
</dt>
<dd>
<dl>
<dt>
<span class="section">
<a href="ch03.it.html#_the_kernel_module_initialization">3.8.1. L'inizializzazione dei moduli del kernel</a>
</span>
</dt>
</dl>
</dd>
</dl>
</div>
<p>È bene che l'amministratore di sistema conosca almeno a grandi linee come
viene avviato e configurato il sistema Debian. Anche se i dettagli precisi
sono nei file sorgenti dei pacchetti installati e nella loro documentazione,
essi sono un po' troppo per la maggior parte degli utenti.</p>
<p>Ecco una panoramica di base dei punti principali dell'inizializzazione di un
sistema Debian. Dato che un sistema Debian è in costante evoluzione, si
dovrebbe far riferimento alla documentazione più recente.</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p> <a class="ulink" href="https://kernel-team.pages.debian.net/kernel-handbook/index.html">Debian Linux Kernel
Handbook</a> è la fonte principale di informazioni sul kernel Debian.</p>
</li>
<li class="listitem">
<p> <code class="literal">bootup</code>(7) descrive il processo di avvio del sistema
basato su <code class="literal">systemd</code> (Debian recenti).</p>
</li>
<li class="listitem">
<p> <code class="literal">boot</code>(7) descrive il processo di avvio del sistema basato
su UNIX System V Release 4 (Debian più vecchie).</p>
</li>
</ul>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="_an_overview_of_the_boot_strap_process"/>3.1. Panoramica del processo di avvio</h2>
</div>
</div>
</div>
<p>Il sistema del computer passa attraverso varie fasi del <a class="ulink" href="https://it.wikipedia.org/wiki/Boot">processo di avvio</a>, dall'accensione a
quando offre all'utente il sistema operativo (SO) pienamente funzionante.</p>
<p>Per semplicità la spiegazione è limitata alla piattaforma PC tipica con
l'installazione standard.</p>
<p>Il normale processo di avvio è come un razzo a quattro stadi. Ogni stadio
del razzo passa il controllo del sistema allo stadio successivo.</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p> <a class="xref" href="ch03.it.html#_stage_1_the_uefi" title="3.1.1. Stadio 1: l'UEFI">Sezione 3.1.1, «Stadio 1: l'UEFI»</a> </p>
</li>
<li class="listitem">
<p> <a class="xref" href="ch03.it.html#_stage_2_the_boot_loader" title="3.1.2. Stadio 2: il bootloader">Sezione 3.1.2, «Stadio 2: il bootloader»</a> </p>
</li>
<li class="listitem">
<p> <a class="xref" href="ch03.it.html#_stage_3_the_mini_debian_system" title="3.1.3. Stadio 3: il mini-sistema Debian">Sezione 3.1.3, «Stadio 3: il mini-sistema Debian»</a> </p>
</li>
<li class="listitem">
<p> <a class="xref" href="ch03.it.html#_stage_4_the_normal_debian_system" title="3.1.4. Stadio 4: il normale sistema Debian">Sezione 3.1.4, «Stadio 4: il normale sistema Debian»</a> </p>
</li>
</ul>
</div>
<p>Naturalmente questo può essere configurato in modo diverso. Per esempio, se
è stato compilato un kernel personalizzato, si potrebbe saltare la fase con
il mini-sistema Debian. Non dare per scontato che quanto detto valga per il
proprio sistema fino a che non si abbia controllato direttamente.</p>
<div class="section">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="_stage_1_the_uefi"/>3.1.1. Stadio 1: l'UEFI</h3>
</div>
</div>
</div>
<p>La <a class="ulink" href="https://it.wikipedia.org/wiki/UEFI">Unified Extensible
Firmware Interface (UEFI)</a> definisce un gestore di avvio come parte
della specifica UEFI. Quando un computer viene acceso, il gestore dell'avvio
è il primo stadio del processo di avvio che controlla la configurazione di
avvio e, in base alle sue impostazioni, esegue poi il boot loader del
sistema operativo specificato o il kernel del sistema operativo (solitamente
il boot loader). La configurazione di avvio è definita dalle variabili
memorizzate nella NVRAM, incluse variabili che indicano i percorsi del file
system dei caricatori dei SO o dei kernel dei SO. Una <a class="ulink" href="https://en.wikipedia.org/wiki/EFI_system_partition">partizione di sistema EFI (ESP, EFI System
Partition)</a> è una partizione di dispositivo per archiviazione di dati
che è utilizzata nei computer che sono conformi alla specifica UEFI. Il
firmware UEFI accede ad essa quando un computer viene acceso, essa memorizza
le applicazioni UEFI e i file che tali applicazioni devono eseguire, inclusi
i boot loader dei sistemi operativi. (Nei sistemi PC vecchi può essere
invece utilizzato il <a class="ulink" href="https://it.wikipedia.org/wiki/Bios">BIOS</a> memorizzato nella
<a class="ulink" href="https://it.wikipedia.org/wiki/Master_boot_record">MBR</a>.)</p>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="_stage_2_the_boot_loader"/>3.1.2. Stadio 2: il bootloader</h3>
</div>
</div>
</div>
<p>Il <a class="ulink" href="https://it.wikipedia.org/wiki/Boot_loader">bootloader</a> è il secondo stadio del
processo di avvio che è iniziato dall'UEFI. Carica l'immagine kernel del
sistema e l'immagine <a class="ulink" href="https://it.wikipedia.org/wiki/Initrd">initrd</a> in memoria e passa
il controllo ad esse. L'immagine initrd è l'immagine del file system radice
ed il suo supporto dipende dal bootloader usato.</p>
<p>Il sistema Debian normalmente usa il kernel Linux xome kernel di sistema
predefinito. L'immagine initrd per l'attuale kernel Linux 5.x è tecnicamente
l'immagine <a class="ulink" href="https://wiki.debian.org/initramfs">initramfs</a> (Initial RAM
filesystem, file system RAM iniziale).</p>
<p>Sono disponibili molti bootloader e opzioni di configurazione.</p>
<div class="table">
<a id="listofbootloaders"/>
<p class="title">
<strong>Tabella 3.1. Elenco di bootloader</strong>
</p>
<div class="table-contents">
<table class="table" summary="Elenco di bootloader" border="1">
<colgroup>
<col style="text-align: left"/>
<col style="text-align: left"/>
<col style="text-align: left"/>
<col style="text-align: left"/>
<col style="text-align: left"/>
<col style="text-align: left"/>
</colgroup>
<thead>
<tr>
<th style="text-align: left"> pacchetto </th>
<th style="text-align: left"> popcon </th>
<th style="text-align: left"> dimensione </th>
<th style="text-align: left"> initrd </th>
<th style="text-align: left"> bootloader </th>
<th style="text-align: left"> descrizione </th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/grub-efi-amd64"> grub-efi-amd64
</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=grub-efi-amd64">I:261</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/g/grub-efi-amd64.html">159</a>
</td>
<td style="text-align: left"> Supportato </td>
<td style="text-align: left"> <a class="ulink" href="https://en.wikipedia.org/wiki/GRUB">GRUB UEFI</a> </td>
<td style="text-align: left"> Intelligente abbastanza da capire partizioni su disco e file system come
vfat, ext4, ... (UEFI) </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/grub-pc"> grub-pc </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=grub-pc">V:23, I:708</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/g/grub-pc.html">534</a>
</td>
<td style="text-align: left"> Supportato </td>
<td style="text-align: left"> <a class="ulink" href="https://en.wikipedia.org/wiki/GRUB">GRUB 2</a> </td>
<td style="text-align: left"> Intelligente abbastanza da capire partizioni su disco e file system come
vfat, ext4, ... (BIOS) </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/grub-rescue-pc"> grub-rescue-pc
</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=grub-rescue-pc">V:0, I:1</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/g/grub-rescue-pc.html">6422</a>
</td>
<td style="text-align: left"> Supportato </td>
<td style="text-align: left"> <a class="ulink" href="https://en.wikipedia.org/wiki/GRUB">GRUB 2</a> </td>
<td style="text-align: left"> È l'immagine di ripristino avviabile di GRUB 2 (CD e floppy) (versione
PC/BIOS) </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/lilo"> lilo </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=lilo">V:0, I:1</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/l/lilo.html">697</a>
</td>
<td style="text-align: left"> Supportato </td>
<td style="text-align: left"> <a class="ulink" href="https://it.wikipedia.org/wiki/LILO">Lilo</a> </td>
<td style="text-align: left"> Si basa sulla posizione dei settori dei dati sul disco fisso. (Vecchio) </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/syslinux"> syslinux </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=syslinux">V:3, I:41</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/s/syslinux.html">344</a>
</td>
<td style="text-align: left"> Supportato </td>
<td style="text-align: left"> <a class="ulink" href="https://en.wikipedia.org/wiki/SYSLINUX">Isolinux</a> </td>
<td style="text-align: left"> Capisce il filesystem ISO 9660. Usato dal CD di avvio. </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/syslinux"> syslinux </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=syslinux">V:3, I:41</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/s/syslinux.html">344</a>
</td>
<td style="text-align: left"> Supportato </td>
<td style="text-align: left"> <a class="ulink" href="https://en.wikipedia.org/wiki/SYSLINUX">Syslinux</a> </td>
<td style="text-align: left"> Capisce il <a class="ulink" href="https://it.wikipedia.org/wiki/File_Allocation_Table">filesystem MSDOS
(FAT)</a>. Usato dai dischetti floppy di avvio. </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/loadlin"> loadlin </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=loadlin">V:0, I:0</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/l/loadlin.html">90</a>
</td>
<td style="text-align: left"> Supportato </td>
<td style="text-align: left"> <a class="ulink" href="https://en.wikipedia.org/wiki/Loadlin">Loadlin</a> </td>
<td style="text-align: left"> Il nuovo sistema viene avviato dal sistema FreeDOS/MSDOS. </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/mbr"> mbr </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=mbr">V:0, I:5</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/m/mbr.html">50</a>
</td>
<td style="text-align: left"> Non supportato </td>
<td style="text-align: left"> <a class="ulink" href="http://www.chiark.greenend.org.uk/~neilt/">MBR di Neil Turton</a> </td>
<td style="text-align: left"> Software libero che sostituisce <a class="ulink" href="https://it.wikipedia.org/wiki/Master_boot_record">MBR</a>
MSDOS. Capisce solo le partizioni su disco. </td>
</tr>
</tbody>
</table>
</div>
</div>
<br class="table-break"/>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Warning">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Avvertimento]" src="images/warning.png"/>
</td>
<th align="left">Avvertimento</th>
</tr>
<tr>
<td align="left" valign="top">
<p>Non mettere mano ai bootloader senza aver creato supporti avviabili di
ripristino (chiavette USB, CD o floppy) create da immagini nel pacchetto
<code class="literal">grub-rescue-pc</code>. Questo permette di avviare il sistema
anche senza un bootloader funzionante sul disco fisso.</p>
</td>
</tr>
</table>
</div>
<p>Per i sistemi UEFI, GRUB2 prima legge la partizione ESP e usa l'UUID
specificato per <code class="literal">search.fs_uuid</code> in
"<code class="literal">/boot/efi/EFI/debian/grub.cfg</code>" per determinare la
partizione del file di configurazione del menu di GRUB2
"<code class="literal">/boot/grub/grub.cfg</code>". </p>
<p>La parte della chiave del file di configurazione del menu di GRUB2 è simile
a:</p>
<pre class="screen">menuentry 'Debian GNU/Linux' ... {
load_video
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root fe3e1db5-6454-46d6-a14c-071208ebe4b1
echo 'Loading Linux 5.10.0-6-amd64 ...'
linux /boot/vmlinuz-5.10.0-6-amd64 root=UUID=fe3e1db5-6454-46d6-a14c-071208ebe4b1 ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-5.10.0-6-amd64
}</pre>
<p>Per questa porzione di <code class="literal">/boot/grub/grub.cfg</code>, questa voce
di menu significa quanto segue.</p>
<div class="table">
<a id="themeaningofthemfbootgrubgrubcfg"/>
<p class="title">
<strong>Tabella 3.2. Il significato della voce di menu della porzione soprastante di
<code class="literal">/boot/grub/grub.cfg</code></strong>
</p>
<div class="table-contents">
<table class="table" summary="Il significato della voce di menu della porzione soprastante di /boot/grub/grub.cfg" border="1">
<colgroup>
<col style="text-align: left"/>
<col style="text-align: left"/>
</colgroup>
<thead>
<tr>
<th style="text-align: left"> impostazione </th>
<th style="text-align: left"> valore </th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"> moduli GRUB2 caricati </td>
<td style="text-align: left"> <code class="literal">gzio</code>, <code class="literal">part_gpt</code>,
<code class="literal">ext2</code> </td>
</tr>
<tr>
<td style="text-align: left"> partizione per file system radice utilizzata </td>
<td style="text-align: left"> partizione identificata come
<code class="literal">UUID=fe3e1db5-6454-46d6-a14c-071208ebe4b1</code> </td>
</tr>
<tr>
<td style="text-align: left"> percorso dell'immagine del kernel nel file system radice </td>
<td style="text-align: left"> <code class="literal">/boot/vmlinuz-5.10.0-6-amd64</code> </td>
</tr>
<tr>
<td style="text-align: left"> parametri di avvio del kernel utilizzati </td>
<td style="text-align: left"> "<code class="literal">root=UUID=fe3e1db5-6454-46d6-a14c-071208ebe4b1 ro quiet</code>" </td>
</tr>
<tr>
<td style="text-align: left"> percorso dell'immagine initrd nel file system radice </td>
<td style="text-align: left"> <code class="literal">/boot/initrd.img-5.10.0-6-amd64</code> </td>
</tr>
</tbody>
</table>
</div>
</div>
<br class="table-break"/>
<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Suggerimento]" src="images/tip.png"/>
</td>
<th align="left">Suggerimento</th>
</tr>
<tr>
<td align="left" valign="top">
<p>si può abilitare la visualizzazione dei messaggi del log di avvio del kernel
rimuovendo <code class="literal">quiet</code> in
"<code class="literal">/boot/grub/grub.cfg</code>". Per fare la modifica in modo
persistente, modificare la riga
"<code class="literal">GRUB_CMDLINE_LINUX_DEFAULT="quiet"</code>" in
"<code class="literal">/etc/default/grub</code>". </p>
</td>
</tr>
</table>
</div>
<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Suggerimento]" src="images/tip.png"/>
</td>
<th align="left">Suggerimento</th>
</tr>
<tr>
<td align="left" valign="top">
<p>Si può personalizzare la schermata grafica di GRUB impostando la variabile
<code class="literal">GRUB_BACKGROUND</code> in "<code class="literal">/etc/default/grub</code>"
in modo che punti al file dell'immagine o mettendo l'immagine stessa in
"<code class="literal">/boot/grub/</code>". </p>
</td>
</tr>
</table>
</div>
<p>Vedere "<code class="literal">info grub</code>" e <code class="literal">grub-install</code>(8).</p>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="_stage_3_the_mini_debian_system"/>3.1.3. Stadio 3: il mini-sistema Debian</h3>
</div>
</div>
</div>
<p>Il mini-sistema Debian è il terzo stadio del processo di avvio che viene
iniziato dal bootloader. Esegue il kernel del sistema con il suo filesystem
root in memoria. Questo è uno stadio opzionale preparatorio del processo di
avvio.</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Nota]" src="images/note.png"/>
</td>
<th align="left">Nota</th>
</tr>
<tr>
<td align="left" valign="top">
<p>L'espressione "sistema Debian mini" è stata coniata per descrivere il terzo
stadio del processo di avvio in questo documento. Normalmente ci si
riferisce a questo sistema come sistema <a class="ulink" href="https://it.wikipedia.org/wiki/Initrd">initrd</a>
o initramfs. Un sistema simile in memoria è usato dall'<a class="ulink" href="https://www.debian.org/devel/debian-installer/">installatore Debian</a>.</p>
</td>
</tr>
</table>
</div>
<p>Il programma "<code class="literal">/init</code>" viene eseguito come primo programma
in questo file system root in memoria. È un programma che inizializza il
kernel in spazio utente e passa il controllo allo stadio successivo. Questo
mini-sistema Debian offre flessibilità al processo di avvio, come la
possibilità di aggiungere moduli del kernel prima del processo di avvio
principale o di montare il file system root come cifrato.</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p> Il programma "<code class="literal">/init</code>" è uno script di shell se initramfs è
stato creato da <code class="literal">initramfs-tools</code>. </p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p> Si può interrompere questa parte del processo di avvio per ottenere una
shell di root fornendo il parametro di avvio per il kernel
"<code class="literal">break=init</code>" etc. Vedere lo script
"<code class="literal">/init</code>" per ulteriori condizioni di interruzione. Questo
ambiente shell è abbastanza sofisticato da fare una buona ispezione
dell'hardware della macchina. </p>
</li>
<li class="listitem">
<p> I comandi disponibili in questo mini-sistema Debian sono versioni minimali e
vengono principalmente forniti da uno strumento GNU chiamato
<code class="literal">busybox</code>(1). </p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p> Il programma "<code class="literal">/init</code>" è un programma binario di
<code class="literal">systemd</code> se initramfs è stato creato da
<code class="literal">dracut</code>. </p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p> I comandi disponibili in questo mini-sistema Debian sono un ambiente
<code class="literal">systemd</code>(1) ridotto al minimo. </p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Caution">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Attenzione]" src="images/caution.png"/>
</td>
<th align="left">Attenzione</th>
</tr>
<tr>
<td align="left" valign="top">
<p>È necessario usare l'opzione "<code class="literal">-n</code>" per il comando
<code class="literal">mount</code> quando si è nel filesystem root in sola lettura.</p>
</td>
</tr>
</table>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="_stage_4_the_normal_debian_system"/>3.1.4. Stadio 4: il normale sistema Debian</h3>
</div>
</div>
</div>
<p>Il sistema Debian normale è il quarto stadio del processo di avvio che viene
iniziato dal mini-sistema Debian. Il kernel di sistema del mini-sistema
Debian continua ad essere in esecuzione anche in questo ambiente. Il
filesystem root viene cambiato da quello in memoria all'effettivo filesystem
sul disco fisso.</p>
<p>Il programma <a class="ulink" href="https://it.wikipedia.org/wiki/Init">init</a> viene eseguito come primo
programma con PID=1 per effettuare il processo principale di avvio di far
partire molti programmi. Il percorso di file predefinito per il programma
init è «<code class="literal">/sbin/init</code>», ma può essere cambiato con un
parametro di avvio del kernel come in
«<code class="literal">init=/percorso/del/programma_init</code>».</p>
<p>"<code class="literal">/sbin/init</code>" è un collegamento simbolico a
"<code class="literal">/lib/systemd/systemd</code>" a partire da Debian 8 Jessie
(rilasciata nel 2015).</p>
<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Suggerimento]" src="images/tip.png"/>
</td>
<th align="left">Suggerimento</th>
</tr>
<tr>
<td align="left" valign="top">
<p>Si può verificare quale è l'effettivo comando init nel proprio sistema con
il comando «<code class="literal">ps --pid 1 -f</code>».</p>
</td>
</tr>
</table>
</div>
<div class="table">
<a id="listofbootutilitrthedebiansystem"/>
<p class="title">
<strong>Tabella 3.3. Elenco di utilità di avvio per il sistema Debian</strong>
</p>
<div class="table-contents">
<table class="table" summary="Elenco di utilità di avvio per il sistema Debian" border="1">
<colgroup>
<col style="text-align: left"/>
<col style="text-align: left"/>
<col style="text-align: left"/>
<col style="text-align: left"/>
</colgroup>
<thead>
<tr>
<th style="text-align: left"> pacchetto </th>
<th style="text-align: left"> popcon </th>
<th style="text-align: left"> dimensione </th>
<th style="text-align: left"> descrizione </th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/systemd">
<code class="literal">systemd</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=systemd">V:857, I:951</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/s/systemd.html">9572</a>
</td>
<td style="text-align: left"> demone <code class="literal">init</code>(8) basato su eventi per concorrenza
(alternativa a <code class="literal">sysvinit</code>) </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/systemd-sysv">
<code class="literal">systemd-sysv</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=systemd-sysv">V:830, I:950</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/s/systemd-sysv.html">72</a>
</td>
<td style="text-align: left"> le pagine di manuale e i collegamenti necessari affinché
<code class="literal">systemd</code> sostituisca <code class="literal">sysvinit</code> </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/init-system-helpers">
<code class="literal">init-system-helpers</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=init-system-helpers">V:694, I:961</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/i/init-system-helpers.html">140</a>
</td>
<td style="text-align: left"> strumenti ausiliari per commutare tra <code class="literal">sysvinit</code> e
<code class="literal">systemd</code> </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/initscripts">
<code class="literal">initscripts</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=initscripts">V:51, I:197</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/i/initscripts.html">177</a>
</td>
<td style="text-align: left"> script per inizializzare ed arrestare il sistema </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/sysvinit-core">
<code class="literal">sysvinit-core</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=sysvinit-core">V:6, I:7</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/s/sysvinit-core.html">342</a>
</td>
<td style="text-align: left"> utilità <code class="literal">init</code>(8) in stile System-V </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/sysv-rc">
<code class="literal">sysv-rc</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=sysv-rc">V:101, I:210</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/s/sysv-rc.html">85</a>
</td>
<td style="text-align: left"> meccanismo di cambiamento del runlevel in stile System-V </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/sysvinit-utils">
<code class="literal">sysvinit-utils</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=sysvinit-utils">V:906, I:999</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/s/sysvinit-utils.html">100</a>
</td>
<td style="text-align: left"> utilità in stile System-V (<code class="literal">startpar</code>(8),
<code class="literal">bootlogd</code>(8), …) </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/lsb-base">
<code class="literal">lsb-base</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=lsb-base">V:899, I:988</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/l/lsb-base.html">12</a>
</td>
<td style="text-align: left">funzionalità di script init <a class="ulink" href="https://it.wikipedia.org/wiki/Linux_Standard_Base">Linux Standard
Base</a> 3.2 </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/insserv">
<code class="literal">insserv</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=insserv">V:132, I:208</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/i/insserv.html">153</a>
</td>
<td style="text-align: left"> strumento per organizzare la sequenza di avvio usando dipendenze LSB negli
script init.d </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/uswsusp">
<code class="literal">uswsusp</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=uswsusp">V:1, I:4</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/u/uswsusp.html">714</a>
</td>
<td style="text-align: left"> strumenti per usare la sospensione software in spazio utente fornita da
Linux </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/kexec-tools">
<code class="literal">kexec-tools</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=kexec-tools">V:1, I:7</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/k/kexec-tools.html">286</a>
</td>
<td style="text-align: left"> strumento kexec per riavvii <code class="literal">kexec</code>(8) (riavvio a caldo) </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/systemd-bootchart">
<code class="literal">systemd-bootchart</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=systemd-bootchart">V:0, I:1</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/s/systemd-bootchart.html">132</a>
</td>
<td style="text-align: left"> analizzatore delle prestazioni del processo di avvio </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/mingetty">
<code class="literal">mingetty</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=mingetty">V:0, I:3</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/m/mingetty.html">38</a>
</td>
<td style="text-align: left"> <code class="literal">getty</code>(8) solo console </td>
</tr>
<tr>
<td style="text-align: left">
<a class="ulink" href="http://packages.debian.org/sid/mgetty">
<code class="literal">mgetty</code> </a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://qa.debian.org/popcon-graph.php?packages=mgetty">V:0, I:0</a>
</td>
<td style="text-align: left">
<a class="ulink" href="http://packages.qa.debian.org/m/mgetty.html">315</a>
</td>
<td style="text-align: left"> rimpiazzio di <code class="literal">getty</code>(8) per smart modem </td>
</tr>
</tbody>
</table>
</div>
</div>
<br class="table-break"/>
<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Suggerimento]" src="images/tip.png"/>
</td>
<th align="left">Suggerimento</th>
</tr>
<tr>
<td align="left" valign="top">
<p>Vedere la <a class="ulink" href="https://wiki.debian.org/BootProcessSpeedup">pagina del Wiki Debian
sulla velocizzazione del processo di avvio</a> per i più recenti
suggerimenti su come velocizzare il processo di avvio.</p>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="_systemd_init"/>3.2. Init systemd</h2>
</div>
</div>
</div>
<p>Questa sezione describe come viene avviato il sistema dal programma
<code class="literal">systemd</code>(1) con <code class="literal">PID=1</code> (cioè processo
init).</p>
<p>Il processo di init <code class="literal">systemd</code> lancia processi in parallelo
sulla base dei file di configurazione delle unità (vedere
<code class="literal">systemd.unit</code>(5)) che sono scritti in stile dichiarativo
invece che in stile procedurale come per SysV.</p>
<p>I processi avviati sono messi in singoli <a class="ulink" href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">gruppi di controllo (control group) Linux</a>
che prendono il nome dall'unità a cui appartengono nella gerarchia privata
di systemd (vedere <a class="ulink" href="https://en.wikipedia.org/wiki/Cgroups">cgroups</a> e <a class="xref" href="ch04.it.html#_linux_security_features" title="4.7.4. Funzionalità di sicurezza di Linux">Sezione 4.7.4, «Funzionalità di sicurezza di Linux»</a>).</p>
<p>I file di configurazione delle unità sono caricati da un insieme di percorsi
(vedere <code class="literal">systemd-system.conf</code>(5)) nel modo seguente:</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p> "<code class="literal">/lib/systemd/system</code>": file di configurazione predefiniti
del sistema operativo </p>
</li>
<li class="listitem">
<p> "<code class="literal">/etc/systemd/system</code>": file di configurazione
dell'amministratore di sistema che scavalcano i file di configurazione
predefiniti del sistema operativo </p>
</li>
<li class="listitem">
<p> "<code class="literal">/run/systemd/system</code>": file di configurazione generati al
momento dell'esecuzione che scavalcano i file di configurazione installati </p>
</li>
</ul>
</div>
<p>Le loro inter-dipendenze sono specificate dalle direttive
"<code class="literal">Wants=</code>", "<code class="literal">Requires=</code>",
"<code class="literal">Before=</code>", "<code class="literal">After=</code>", … (vedere
"MAPPING OF UNIT PROPERTIES TO THEIR INVERSES" in
<code class="literal">systemd.unit</code>(5)). Sono definiti anche i controlli delle
risorse (vedere <code class="literal">systemd.resource-control</code>(5)).</p>
<p>Il suffisso dei file di configurazione delle unità codifica il loro tipo in
questo modo:</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p><span class="strong"><strong>*.service</strong></span> descrive un processo
controllato e supervisionato da <code class="literal">systemd</code>. Vedere
<code class="literal">systemd.service</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.device</strong></span> descrive un device esposto in
<code class="literal">sysfs</code>(5) come albero di device
<code class="literal">udev</code>(7). Vedere <code class="literal">systemd.device</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.mount</strong></span> descrive un punto di mount del
file system controllato e supervisionato da
<code class="literal">systemd</code>. Vedere <code class="literal">systemd.mount</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.automount</strong></span> descrive un punto di mount
automatico del file system controllato e supervisionato da
<code class="literal">systemd</code>. Vedere <code class="literal">systemd.automount</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.swap</strong></span> descrive un device o file di swap
controllato e supervisionato da <code class="literal">systemd</code>. Vedere
<code class="literal">systemd.swap</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.path</strong></span> descrive un percorso monitorato da
<code class="literal">systemd</code> per l'attivazione basata su percorso. Vedere
<code class="literal">systemd.path</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.socket</strong></span> descrive un socket controllato e
supervisionato da <code class="literal">systemd</code> per l'attivazione basata su
socket. Vedere <code class="literal">systemd.socket</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.timer</strong></span> descrive un timer controllato e
supervisionato da <code class="literal">systemd</code> per l'attivazione basata su
timer. Vedere <code class="literal">systemd.timer</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.slice</strong></span> gestisce risorse con
<code class="literal">cgroups</code>(7). Vedere <code class="literal">systemd.slice</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.scope</strong></span> viene creato programmaticamente
usando le interfacce di bus di <code class="literal">systemd</code> per gestire un
insieme di processi di sistema. Vedere <code class="literal">systemd.scope</code>(5). </p>
</li>
<li class="listitem">
<p><span class="strong"><strong>*.target</strong></span> raggruppa altri file di
configurazione di unità per creare punti di sincronizzazione durante
l'avvio. Vedere <code class="literal">systemd.target</code>(5). </p>
</li>
</ul>
</div>
<p>All'avvio del sistema (cioè init) il processo <code class="literal">systemd</code>
cerca di avviare "<code class="literal">/lib/systemd/system/default.target</code>"
(normalmente un collegamento simbolico a
"<code class="literal">graphical.target</code>"). Come prima cosa alcune speciali
unità target (vedere <code class="literal">systemd.special</code>(7)) come
"<code class="literal">local-fs.target</code>", "<code class="literal">swap.target</code>" e
"<code class="literal">cryptsetup.target</code>" sono richiamate per montare i file
system. Poi altre unità target vengono anch'esse richiamate dalle dipendenze
delle unità target. Per i dettagli leggere <code class="literal">bootup</code>(7).</p>
<p><code class="literal">systemd</code> offre funzionalità di compatibilità
all'indietro. Gli script di avvio in stile SysV in
"<code class="literal">/etc/init.d/rc[0123456S].d/[KS]<span class="emphasis"><em>name</em></span></code>"
sono comunque analizzati e <code class="literal">telinit</code>(8) viene tradotto in
richieste di attivazione di unità systemd.</p>
<div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Caution">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Attenzione]" src="images/caution.png"/>
</td>
<th align="left">Attenzione</th>
</tr>
<tr>
<td align="left" valign="top">
<p>Run level emulati da 2 a 4 hanno tutti collegamenti simbolici al
corrispondente "<code class="literal">multi-user.target</code>".</p>
</td>
</tr>
</table>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="_the_hostname"/>3.2.1. Il nome host</h3>
</div>
</div>
</div>
<p>Il kernel gestisce il <span class="strong"><strong>nome host</strong></span> del
sistema. L'unità systemd avviata
da<code class="literal">systemd-hostnamed.service</code> imposta il nome host del
sistema all'avvio al nome memorizzato in
"<code class="literal">/etc/hostname</code>". Questo file dovrebbe contenere <span class="strong"><strong>solamente</strong></span> il nome host del sistema, non un nome di
dominio pienamente qualificato.</p>
<p>Per visualizzare il nome host attuale eseguire
<code class="literal">hostname</code>(1) senza alcun argomento.</p>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="_the_filesystem"/>3.2.2. Il filesystem</h3>
</div>
</div>
</div>
<p>Le opzioni usate per montare i file system normali dei dischi e di rete sono
impostate in "<code class="literal">/etc/fstab</code>". Vedere
<code class="literal">fstab</code>(5) e <a class="xref" href="ch09.it.html#_optimization_of_filesystem_by_mount_options" title="9.6.7. Ottimizzare il file system con opzioni di mount">Sezione 9.6.7, «Ottimizzare il file system con opzioni di mount»</a>.</p>
<p>La configurazione dei file system cifrati è impostata in
"<code class="literal">/etc/crypttab</code>". Vedere <code class="literal">crypttab</code>(5)</p>
<p>Vedere <code class="literal">wvdial</code>(1) e <code class="literal">wvdial.conf</code>(5).</p>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Warning">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Avvertimento]" src="images/warning.png"/>
</td>
<th align="left">Avvertimento</th>
</tr>
<tr>
<td align="left" valign="top">
<p>Dopo aver montato tutti i filesystem, i file temporanei in
"<code class="literal">/tmp</code>", "<code class="literal">/var/lock</code>" e
"<code class="literal">/var/run</code>" vengono ripuliti ad ogni avvio.</p>
</td>
</tr>
</table>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="_network_interface_initialization"/>3.2.3. Inizializzazione delle interfacce di rete</h3>
</div>
</div>
</div>
<p>Le interfacce di rete sono tipicamente inizializzate in
"<code class="literal">networking.service</code>" per l'interfaccia
<code class="literal">lo</code> e "<code class="literal">NetworkManager.service</code>" per le
altre interfacce nei moderni sistemi desktop Debian che usano
<code class="literal">systemd</code>.</p>
<p>Vedere <a class="xref" href="ch05.it.html" title="Capitolo 5. Impostazione della rete">Capitolo 5, <em>Impostazione della rete</em></a> per come configurarle.</p>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="_the_kernel_message"/>3.3. I messaggi del kernel</h2>
</div>
</div>
</div>
<p>I messaggi di errore del kernel visualizzati nella console possono essere
configurati impostando il loro livello di soglia.</p>
<pre class="screen"># dmesg -n3</pre>
<div class="table">
<a id="listofkernelerrorlevels"/>
<p class="title">
<strong>Tabella 3.4. Elenco dei livelli di errore del kernel</strong>
</p>
<div class="table-contents">
<table class="table" summary="Elenco dei livelli di errore del kernel" border="1">
<colgroup>
<col style="text-align: left"/>
<col style="text-align: left"/>
<col style="text-align: left"/>
</colgroup>
<thead>
<tr>
<th style="text-align: left"> valore del livello di errore </th>
<th style="text-align: left"> nome del livello di errore </th>
<th style="text-align: left"> significato </th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"> 0 </td>
<td style="text-align: left"> KERN_EMERG </td>
<td style="text-align: left"> il sistema è inutilizzabile </td>
</tr>
<tr>
<td style="text-align: left"> 1 </td>
<td style="text-align: left"> KERN_ALERT </td>
<td style="text-align: left"> bisogna agire immediatamente </td>
</tr>
<tr>
<td style="text-align: left"> 2 </td>
<td style="text-align: left"> KERN_CRIT </td>
<td style="text-align: left"> condizione critica </td>
</tr>
<tr>
<td style="text-align: left"> 3 </td>
<td style="text-align: left"> KERN_ERR </td>
<td style="text-align: left"> condizione di errore </td>
</tr>
<tr>
<td style="text-align: left"> 4 </td>
<td style="text-align: left"> KERN_WARNING </td>
<td style="text-align: left"> condizione di avvertimento </td>
</tr>
<tr>
<td style="text-align: left"> 5 </td>
<td style="text-align: left"> KERN_NOTICE </td>
<td style="text-align: left"> condizione normale ma significativa </td>
</tr>
<tr>
<td style="text-align: left"> 6 </td>
<td style="text-align: left"> KERN_INFO </td>
<td style="text-align: left"> messaggio informativo </td>
</tr>
<tr>
<td style="text-align: left"> 7 </td>
<td style="text-align: left"> KERN_DEBUG </td>
<td style="text-align: left"> messaggio a livello di debug </td>
</tr>
</tbody>
</table>
</div>
</div>
<br class="table-break"/>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="_the_system_message"/>3.4. I messaggi di sistema</h2>
</div>
</div>
</div>
<p>Sotto <code class="literal">systemd</code> sia i messaggi del kernel sia quelli di
sistema sono registrati nei log dal servizio journal
<code class="literal">systemd-journald.service</code> (alias
<code class="literal">journald</code>) o in dati binari persistenti dentro
"<code class="literal">/var/log/journal</code>" o in dati binari volatili dentro
"<code class="literal">/run/log/journal/</code>". A questi dati binari di log si può
accedere tramite il comando <code class="literal">journalctl</code>(1). Ad esempio si
può visualizzare il log dall'ultimo avvio con:</p>
<pre class="screen">$ journalctl -b</pre>
<div class="table">
<a id="listoftypicaljoulcommandsnippets"/>
<p class="title">
<strong>Tabella 3.5. Elenco di tipici esempi di comandi per <code class="literal">systemd</code></strong>
</p>
<div class="table-contents">
<table class="table" summary="Elenco di tipici esempi di comandi per systemd" border="1">
<colgroup>
<col style="text-align: left"/>
<col style="text-align: left"/>
</colgroup>
<thead>
<tr>
<th style="text-align: left"> Operazione </th>
<th style="text-align: left"> Esempio di comando </th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"> Visualizzare il log per i servizi di sistema e il kernel dall'ultimo avvio </td>
<td style="text-align: left"> "<code class="literal">journalctl -b --system</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Visualizzare il log per i servizi dell'utente attuale dall'ultimo avvio </td>
<td style="text-align: left"> "<code class="literal">journalctl -b --user</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Visualizzare il log di lavoro di "<code class="literal">$unit</code>" dall'ultimo
avvio </td>
<td style="text-align: left"> "<code class="literal">journalctl -b -u $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Visualizzare il log di lavoro di "<code class="literal">$unit</code>" (in stile
"<code class="literal">tail -f</code>") dall'ultimo avvio </td>
<td style="text-align: left"> "<code class="literal">journalctl -b -u $unit -f</code>" </td>
</tr>
</tbody>
</table>
</div>
</div>
<br class="table-break"/>
<p>In <code class="literal">systemd</code> l'utilità per il registro di log di sistema,
<code class="literal">rsyslogd</code>(8), può essere disinstallato. Se è installato,
cambia il comportamento per leggere i dati del log binario volatile (invece
del predefinito pre-systemd "<code class="literal">/dev/log</code>") e per creare dati
log di sistema ASCII tradizionali permanenti. Questo può essere
personalizzato da "<code class="literal">/etc/default/rsyslog</code>" e
"<code class="literal">/etc/rsyslog.conf</code>" sia per il file di log sia per la
visualizzazione a schermo. Vedere <code class="literal">rsyslogd</code>(8) e
<code class="literal">rsyslog.conf</code>(5). Vedere anche <a class="xref" href="ch09.it.html#_log_analyzer" title="9.3.2. Analizzatori di registro">Sezione 9.3.2, «Analizzatori di registro»</a>.</p>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="_system_management_operations"/>3.5. Gestione del sistema</h2>
</div>
</div>
</div>
<p><code class="literal">systemd</code> offre non solo un sistema init, ma anche
funzionalità generiche di gestione del sistema, con il comando
<code class="literal">systemctl</code>(1).</p>
<div class="table">
<a id="listoftypicalsyslcommandsnippets"/>
<p class="title">
<strong>Tabella 3.6. Elenco di tipici esempi di comandi <code class="literal">systemctl</code></strong>
</p>
<div class="table-contents">
<table class="table" summary="Elenco di tipici esempi di comandi systemctl" border="1">
<colgroup>
<col style="text-align: left"/>
<col style="text-align: left"/>
</colgroup>
<thead>
<tr>
<th style="text-align: left"> Operazione </th>
<th style="text-align: left"> Esempio di comando </th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"> Elencare tutte le configurazioni delle unità target </td>
<td style="text-align: left"> "<code class="literal">systemctl list-units --type=target</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Elencare tutte le configurazioni delle unità service </td>
<td style="text-align: left"> "<code class="literal">systemctl list-units --type=service</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Elencare tutti i tipi di configurazioni delle unità </td>
<td style="text-align: left"> "<code class="literal">systemctl list-units --type=help</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Elencare tutte le unità socket in memoria </td>
<td style="text-align: left"> "<code class="literal">systemctl list-sockets</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Elencare tutte le unità timer in memoria </td>
<td style="text-align: left"> "<code class="literal">systemctl list-timers</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Avviare "<code class="literal">$unit</code>" </td>
<td style="text-align: left"> "<code class="literal">systemctl start $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Fermare "<code class="literal">$unit</code>" </td>
<td style="text-align: left"> "<code class="literal">systemctl stop $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Ricaricare la configurazione specifica di un servizio </td>
<td style="text-align: left"> "<code class="literal">systemctl reload $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Fermare e riavviare tutte le "<code class="literal">$unit</code>" </td>
<td style="text-align: left"> "<code class="literal">systemctl restart $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Avviare "<code class="literal">$unit</code>" e fermare tutte le altre </td>
<td style="text-align: left"> "<code class="literal">systemctl isolate $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Passare alla modalità "<code class="literal">graphical</code>" (sistema GUI) </td>
<td style="text-align: left"> "<code class="literal">systemctl isolate graphical</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Passare alla modalità "<code class="literal">multi-user</code>" (sistema CLI) </td>
<td style="text-align: left"> "<code class="literal">systemctl isolate multi-user</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Passare alla modalità "<code class="literal">rescue</code>" (sistema CLI a singolo
utente) </td>
<td style="text-align: left"> "<code class="literal">systemctl isolate rescue</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Inviare il segnale kill a "<code class="literal">$unit</code>" </td>
<td style="text-align: left"> "<code class="literal">systemctl kill $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Controllare se il servizio "<code class="literal">$unit</code>" è attivo </td>
<td style="text-align: left"> "<code class="literal">systemctl is-active $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Controllare se il servizio "<code class="literal">$unit</code>" è fallito </td>
<td style="text-align: left"> "<code class="literal">systemctl is-failed $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Controllare lo stato di "<code class="literal">$unit|$PID|device</code>" </td>
<td style="text-align: left"> "<code class="literal">systemctl status $unit|$PID|$device</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Mostrare le proprietà di "<code class="literal">$unit|$job</code>" </td>
<td style="text-align: left"> "<code class="literal">systemctl show $unit|$job</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Ripristinare "<code class="literal">$unit</code>" fallita </td>
<td style="text-align: left"> "<code class="literal">systemctl reset-failed $unit"</code> </td>
</tr>
<tr>
<td style="text-align: left"> Elencare le dipendenze di tutti i servizi unità </td>
<td style="text-align: left"> "<code class="literal">systemctl list-dependencies --all</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Elencare i file di unità installati sul sistema </td>
<td style="text-align: left"> "<code class="literal">systemctl list-unit-files</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Abilitare "<code class="literal">$unit</code>" (aggiungere collegamento simbolico) </td>
<td style="text-align: left"> "<code class="literal">systemctl enable $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Disabilitare "<code class="literal">$unit</code>" (rimuovere collegamento simbolico) </td>
<td style="text-align: left"> "<code class="literal">systemctl disable $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Togliere maschera a "<code class="literal">$unit</code>" (rimuovere collegamento
simbolico a"<code class="literal">/dev/null</code>") </td>
<td style="text-align: left"> "<code class="literal">systemctl unmask $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Mascherare "<code class="literal">$unit</code>" (aggiungere collegamento simbolico
a"<code class="literal">/dev/null</code>") </td>
<td style="text-align: left"> "<code class="literal">systemctl mask $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Ottenere l'impostazione del target predefinito </td>
<td style="text-align: left"> "<code class="literal">systemctl get-default</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Impostare default-target a "<code class="literal">graphical</code>" (sistema GUI) </td>
<td style="text-align: left"> "<code class="literal">systemctl set-default graphical</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Impostare default-target a "<code class="literal">multi-user</code>" (sistema CLI) </td>
<td style="text-align: left"> "<code class="literal">systemctl set-default multi-user</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Mostrare l'ambiente del lavoro </td>
<td style="text-align: left"> "<code class="literal">systemctl show-environment</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Impostare la variabile "<code class="literal">variable</code>" dell'ambiente di lavoro
al valore "<code class="literal">value</code>" </td>
<td style="text-align: left"> "<code class="literal">systemctl set-environment variable=value</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Disimpostare la variabile "<code class="literal">variable</code>" dell'ambiente di
lavoro </td>
<td style="text-align: left"> "<code class="literal">systemctl unset-environment variable</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Ricaricare tutti i file di unità e i demoni </td>
<td style="text-align: left"> "<code class="literal">systemctl daemon-reload</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Spegnere il sistema </td>
<td style="text-align: left"> "<code class="literal">systemctl poweroff</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Spegnere e riavviare il sistema </td>
<td style="text-align: left"> "<code class="literal">systemctl reboot</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Sospendere il sistema </td>
<td style="text-align: left"> "<code class="literal">systemctl suspend</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Ibernare il sistema </td>
<td style="text-align: left"> "<code class="literal">systemctl hibernate</code>" </td>
</tr>
</tbody>
</table>
</div>
</div>
<br class="table-break"/>
<p>Negli esempi soprastanti "<code class="literal">$unit</code>" può essere un singolo
nome di unità (suffissi come <code class="literal">.service</code> e
<code class="literal">.target</code> sono opzionali) o, in molti casi, la specifica di
più unità (con glob in stile shell "<code class="literal">*</code>",
"<code class="literal">?</code>", "<code class="literal">[]</code>" usando
<code class="literal">fnmatch</code>(3) con corrispondenze con i nomi primari di tutte
le unità attualmente in memoria).</p>
<p>I comandi che cambiano lo stato del sistema negli esempi soprastanti sono
tipicamente preceduti da "<code class="literal">sudo</code>" per ottenere i privilegi
amministrativi necessari.</p>
<p>L'output di "<code class="literal">systemctl status $unit|$PID|$device</code>" usa il
colore del puntino ("●") per riassumere lo stato dell'unità a prima vista.</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p> Un "●" bianco indica uno stato "inattivo" o "deattivato". </p>
</li>
<li class="listitem">
<p> Un "●" rosso indica uno stato di "fallimento" o "errore". </p>
</li>
<li class="listitem">
<p> Un "●" verde indica uno stato "attivo", "in ricaricamento" o "in
attivazione". </p>
</li>
</ul>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="_other_system_monitors"/>3.6. Altri strumenti di monitoraggio del sistema</h2>
</div>
</div>
</div>
<p>Ecco un elenco di altri esempi di comandi per il monitoraggio in
<code class="literal">systemd</code>. Leggere le relative pagine di manuale, inclusa
<code class="literal">cgroups</code>(7).</p>
<div class="table">
<a id="listofothermonitpetsundersystemd"/>
<p class="title">
<strong>Tabella 3.7. Elenco di altri esempi di comandi per il monitoraggio in
<code class="literal">systemd</code></strong>
</p>
<div class="table-contents">
<table class="table" summary="Elenco di altri esempi di comandi per il monitoraggio in systemd" border="1">
<colgroup>
<col style="text-align: left"/>
<col style="text-align: left"/>
</colgroup>
<thead>
<tr>
<th style="text-align: left"> Operazione </th>
<th style="text-align: left"> Esempio di comando </th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"> Mostrare il tempo utilizzato per ogni passo di inizializzazione </td>
<td style="text-align: left"> "<code class="literal">systemd-analyze time</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Elencare tutte le unità col tempo di inizializzazione </td>
<td style="text-align: left"> "<code class="literal">systemd-analyze blame</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Carica e rileva gli errori nel file "<code class="literal">$unit</code>" </td>
<td style="text-align: left"> "<code class="literal">systemd-analyze verify $unit</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Mostra sintetiche informazioni di stato a runtime dell'utente della sessione
chiamante </td>
<td style="text-align: left"> "<code class="literal">loginctl user-status</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Mostra sintetiche informazioni di stato a runtime sulla sessione chiamante </td>
<td style="text-align: left"> "<code class="literal">loginctl session-status</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Traccia il processo di avvio con <a class="ulink" href="https://en.wikipedia.org/wiki/Cgroups">cgroups</a> </td>
<td style="text-align: left"> "<code class="literal">systemd-cgls</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Traccia il processo di avvio con <a class="ulink" href="https://en.wikipedia.org/wiki/Cgroups">cgroups</a> </td>
<td style="text-align: left"> "<code class="literal">ps xawf -eo pid,user,cgroup,args</code>" </td>
</tr>
<tr>
<td style="text-align: left"> Traccia il processo di avvio con <a class="ulink" href="https://en.wikipedia.org/wiki/Cgroups">cgroups</a> </td>
<td style="text-align: left"> Leggere <a class="ulink" href="https://en.wikipedia.org/wiki/Sysfs">sysfs</a> in
"<code class="literal">/sys/fs/cgroup/systemd/</code>" </td>
</tr>
</tbody>
</table>
</div>
</div>
<br class="table-break"/>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="_customizing_systemd"/>3.7. Personalizzare systemd</h2>
</div>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="_socket_activation"/>3.7.1. Attivazione di socket</h3>
</div>
</div>
</div>
<p>Con l'installazione predefinita molti servizi di rete (vedere <a class="xref" href="ch06.it.html" title="Capitolo 6. Applicazioni per la rete">Capitolo 6, <em>Applicazioni per la rete</em></a>) vengono avviati come processi demone dopo
<code class="literal">network.target</code> al momento dell'avvio di sistema da
<code class="literal">systemd</code>. "<code class="literal">sshd</code> non fa eccezione. Come
esempio di personalizzazione cambiamo questo comportamento nell'avvio
on-demand di "<code class="literal">sshd</code>".</p>
<p>Come prima cosa disabilitare l'unità di servizio installata dal sistema.</p>
<pre class="screen"> $ sudo systemctl stop sshd.service
$ sudo systemctl mask sshd.service</pre>
<p>Il sistema di attivazione on-demand dei socket dei servizi classici Unix
avveniva attraverso il superserver <code class="literal">inetd</code> (o
<code class="literal">xinetd</code>). Con <code class="literal">systemd</code> il comportamento
equivalente può essere abilitato aggiungendo file di configurazione di unità
<span class="strong"><strong>*.socket</strong></span> e <span class="strong"><strong>*.service</strong></span>.</p>
<p><code class="literal">sshd.socket</code> per specificare un socket su cui restare in
ascolto</p>
<pre class="screen">[Unit]
Description=SSH Socket for Per-Connection Servers
[Socket]
ListenStream=22
Accept=yes
[Install]
WantedBy=sockets.target</pre>
<p><code class="literal">sshd@.service</code> come file di servizio corrispondente di
<code class="literal">sshd.socket</code></p>
<pre class="screen">[Unit]
Description=SSH Per-Connection Server
[Service]
ExecStart=-/usr/sbin/sshd -i
StandardInput=socket</pre>
<p>Poi ricaricare.</p>
<pre class="screen"> $ sudo systemctl daemon-reload</pre>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="_the_udev_system"/>3.8. Il sistema udev</h2>
</div>
</div>
</div>
<p>Il <a class="ulink" href="https://en.wikipedia.org/wiki/Udev">sistema udev</a> fornisce un meccanismo di
rilevazione e inizializzazione automatiche dell'hardware (vedere
<code class="literal">udev</code>(7)) a partire dal kernel Linux 2.6. Per ogni
dispositivo rilevato dal kernel, il sistema udev avvia un processo utente
che usa le informazioni del file system <a class="ulink" href="https://en.wikipedia.org/wiki/Sysfs">sysfs</a>
(vedere <a class="xref" href="ch01.it.html#_procfs_and_sysfs" title="1.2.12. procfs e sysfs">Sezione 1.2.12, «procfs e sysfs»</a>), carica, usando il programma
<code class="literal">modprobe</code>(8) (vedere <a class="xref" href="ch03.it.html#_the_kernel_module_initialization" title="3.8.1. L'inizializzazione dei moduli del kernel">Sezione 3.8.1, «L'inizializzazione dei moduli del kernel»</a>), i moduli del kernel
necessari per il supporto del dispositivo e crea i nodi di device
corrispondenti.</p>
<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Suggerimento]" src="images/tip.png"/>
</td>
<th align="left">Suggerimento</th>
</tr>
<tr>
<td align="left" valign="top">
<p>Se, per una qualche ragione
"<code class="literal">/lib/modules/<span class="emphasis"><em>versione-kernel</em></span>/modules.dep</code>
non viene generato in modo appropriato dal <code class="literal">depmod</code>(8), i
moduli non possono essere caricati come dovuto dal sistema udev. Per
risolvere il problema eseguire "<code class="literal">depmod -a</code>".</p>
<p>Per le regole di montaggio in "<code class="literal">/etc/fstab</code>", non è
necessario che i nodi di device siano statici. Si possono usare gli <a class="ulink" href="https://en.wikipedia.org/wiki/Universally_Unique_Identifier">UUID</a> per montare i dispositivi, al posto dei nomi di
device come "<code class="literal">/dev/sda</code>". Vedere <a class="xref" href="ch09.it.html#_accessing_partition_using_uuid" title="9.6.3. Accedere alle partizioni usando UUID">Sezione 9.6.3, «Accedere alle partizioni usando UUID»</a>.</p>
</td>
</tr>
</table>
</div>
<p>Dato che il sistema udev è in qualche modo in costante evoluzione, in questo
documento sono fornite informazioni base, lasciando i dettagli ad altra
documentazione.</p>
<div class="section">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="_the_kernel_module_initialization"/>3.8.1. L'inizializzazione dei moduli del kernel</h3>
</div>
</div>
</div>
<p>Il programma <code class="literal">modprobe</code>(8) permette di configurare il
kernel Linux in esecuzione da processi utente, aggiungendo e rimuovendo
moduli del kernel. Il sistema udev (vedere <a class="xref" href="ch03.it.html#_the_udev_system" title="3.8. Il sistema udev">Sezione 3.8, «Il sistema udev»</a>) automatizza la sua invocazione per facilitare
l'inizializzazione dei moduli del kernel.</p>
<p>Ci sono moduli non-hardware e speciali moduli con driver hardware, come
quelli elencati in seguito, che devono essere precaricati elencandoli nel
file "<code class="literal">/etc/modules</code>" (vedere
<code class="literal">modules</code>(5)).</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>moduli <a class="ulink" href="https://it.wikipedia.org/wiki/TUN/TAP">TUN/TAP</a> che forniscono device virtuali
di rete Point-to-Point (TUN) e device virtuali di rete Ethernet (TAP), </p>
</li>
<li class="listitem">
<p>moduli <a class="ulink" href="https://it.wikipedia.org/wiki/Netfilter">netfilter</a> che forniscono
funzionalità di firewall netfilter (<code class="literal">iptables</code>(8), <a class="xref" href="ch05.it.html#_netfilter_infrastructure" title="5.6. Infrastruttura netfilter">Sezione 5.6, «Infrastruttura netfilter»</a> e </p>
</li>
<li class="listitem">
<p>moduli driver <a class="ulink" href="https://it.wikipedia.org/wiki/Watchdog">watchdog timer</a>. </p>
</li>
</ul>
</div>
<p>I file di configurazione per il programma <code class="literal">modprobe</code>(8)
sono contenuti nella directory "<code class="literal">/etc/modprobes.d/</code>", come
spiegato in <code class="literal">modprobe.conf</code>(5). (Se si desidera evitare
l'autocaricamento di alcuni moduli del kernel, considerare la loro aggiunta
nella lista nera nel file "<code class="literal">/etc/modprobes.d/blacklist</code>".)</p>
<p>Il file
"<code class="literal">/lib/modules/<span class="emphasis"><em>versione</em></span>/modules.dep</code>"
generato dal programma <code class="literal">depmod</code>(8) descrive le dipendenze
dei moduli usate dal programma <code class="literal">modprobe</code>(8).</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Nota]" src="images/note.png"/>
</td>
<th align="left">Nota</th>
</tr>
<tr>
<td align="left" valign="top">
<p>Se si hanno problemi di caricamento dei moduli all'avvio o con
<code class="literal">modprobe</code>(8), "<code class="literal">depmod -a</code>" potrebbe
risolverli rigenerando il file "<code class="literal">modules.dep</code>".</p>
</td>
</tr>
</table>
</div>
<p>Il programma <code class="literal">modinfo</code>(8) mostra informazioni su un modulo
del kernel Linux.</p>
<p>Il programma <code class="literal">lsmod</code>(8) formatta in un bel modo i contenuti
di "<code class="literal">/proc/modules</code>", mostrando quali moduli del kernel
siano attualmente caricati.</p>
<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top">
<img alt="[Suggerimento]" src="images/tip.png"/>
</td>
<th align="left">Suggerimento</th>
</tr>
<tr>
<td align="left" valign="top">
<p>Si può identificare l'esatto hardware sul proprio sistema. Vedere <a class="xref" href="ch09.it.html#_hardware_identification" title="9.5.3. Identificazione dell'hardware">Sezione 9.5.3, «Identificazione dell'hardware»</a>.</p>
<p>Si può configurare l'hardware all'avvio per attivare le funzionalità
dell'hardware desiderate. Vedere <a class="xref" href="ch09.it.html#_hardware_configuration" title="9.5.4. Configurazione dell'hardware">Sezione 9.5.4, «Configurazione dell'hardware»</a>.</p>
<p>Si può probabilmente aggiungere il supporto per il proprio speciale
dispositivo ricompilando il kernel. Vedere <a class="xref" href="ch09.it.html#_the_kernel" title="9.10. Il kernel">Sezione 9.10, «Il kernel»</a>.</p>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="navfooter">
<hr/>
<table width="100%" summary="Navigation footer">
<tr>
<td align="left"><a accesskey="p" href="ch02.it.html"><img src="images/prev.png" alt="Indietro"/></a> </td>
<td align="center"> </td>
<td align="right"> <a accesskey="n" href="ch04.it.html"><img src="images/next.png" alt="Avanti"/></a></td>
</tr>
<tr>
<td align="left" valign="top">Capitolo 2. Gestione dei pacchetti in Debian </td>
<td align="center">
<a accesskey="h" href="index.it.html">
<img src="images/home.png" alt="Partenza"/>
</a>
</td>
<td align="right" valign="top"> Capitolo 4. Autenticazione e controllo degli accessi</td>
</tr>
</table>
</div>
</body>
</html>