Linux Professional Institute Learning Logo.
Torna al contenuto principale
  • Home
    • Tutte le Risorse
    • LPI Learning Materials
    • Collabora
    • Publishing Partner
    • Diventa un Publishing Partner
    • FAQ
    • Collaboratori
    • Contatto
  • LPI.org
4.3 Lezione 1
Argomento 1: La Comunità Linux e una Carriera nell'Open Source
1.1 Evoluzione di Linux e Sistemi Operativi più Diffusi
  • 1.1 Lezione 1
1.2 Principali Applicazioni Open Source
  • 1.2 Lezione 1
1.3 Software e Licenze Open Source
  • 1.3 Lezione 1
1.4 Competenze ICT - Lavorare con Linux
  • 1.4 Lezione 1
Argomento 2: Trovare il Proprio Modo di Operare su un Sistema Linux
2.1 Nozioni di Base sulla Command Line
  • 2.1 Lezione 1
  • 2.1 Lezione 2
2.2 Utilizzo della Command Line per Ottenere Aiuto
  • 2.2 Lezione 1
2.3 Utilizzo di Directory e Elenchi di File
  • 2.3 Lezione 1
  • 2.3 Lezione 2
2.4 Creazione, Spostamento ed Eliminazione di File
  • 2.4 Lezione 1
Argomento 3: Il Potere della Command Line
3.1 Archiviazione dei File sulla Command Line
  • 3.1 Lezione 1
3.2 Ricerca ed Estrazione di Dati dai File
  • 3.2 Lezione 1
  • 3.2 Lezione 2
3.3 Trasformare i Comandi in uno Script
  • 3.3 Lezione 1
  • 3.3 Lezione 2
Argomento 4: Il Sistema Operativo Linux
4.1 Scelta di un Sistema Operativo
  • 4.1 Lezione 1
4.2 Comprendere l'Hardware del Computer
  • 4.2 Lezione 1
4.3 Dove Sono Memorizzati i Dati
  • 4.3 Lezione 1
  • 4.3 Lezione 2
4.4 Il Tuo Computer in Rete
  • 4.4 Lezione 1
Argomento 5: Sicurezza e Permessi sui File
5.1 Sicurezza di Base e Identificazione dei Tipi di Utente
  • 5.1 Lezione 1
5.2 Creazione di Utenti e Gruppi
  • 5.2 Lezione 1
5.3 Gestione delle Autorizzazioni e delle Proprietà dei File
  • 5.3 Lezione 1
5.4 Directory e File Speciali
  • 5.4 Lezione 1
How to get certified
  1. Argomento 4: Il Sistema Operativo Linux
  2. 4.3 Dove Sono Memorizzati i Dati
  3. 4.3 Lezione 1

4.3 Lezione 1

Certificazione:

Linux Essentials

Versione:

1.6

Argomento:

4 Il Sistema Operativo Linux

Obiettivo:

4.3 Dove Sono Memorizzati i Dati

Lezione:

1 di 2

Introduzione

Per un sistema operativo ogni cosa è un dato. Per Linux, ogni cosa è un file: programmi, file regolari, directory, dispositivi a blocchi (dischi rigidi, etc.), dispositivi a caratteri (console, etc.), processi del kernel, socket, partizioni, link, etc: la struttura delle directory di Linux , che inizia dalla root /, è un insieme di file contenenti dati. Il fatto che tutto sia considerato un file è una potente funzionalità di Linux in quanto consente di modificare praticamente ogni singolo aspetto del sistema.

In questa lezione discuteremo le diverse posizioni in cui vengono memorizzati i dati importanti, come stabilito dal Linux Filesystem Hierarchy Standard (FHS). Alcune di queste posizioni sono delle directory reali che memorizzano i dati in modo persistente sui dischi, mentre altre rappresentano pseudo-filesystem che vengono caricati in memoria e danno accesso ai dati del sottosistema del kernel come, per esempio, i processi in esecuzione, l’utilizzo della memoria, la configurazione hardware e così via. I dati memorizzati in queste directory virtuali vengono utilizzati da una serie di comandi che ci consentono di monitorarli e gestirli.

I Programmi e la Loro Configurazione

I dati importanti su un sistema Linux sono, senza dubbio, i programmi e i loro file di configurazione. I primi sono file eseguibili contenenti un’insieme di istruzioni che devono essere eseguite dal processore del computer, mentre i secondi sono solitamente documenti di testo che controllano il funzionamento di un programma. I file eseguibili possono essere file binari o file di testo. I file di testo eseguibili sono chiamati script. Anche i dati di configurazione, in Linux, sono tradizionalmente archiviati in file di testo, sebbene esistano vari stili di rappresentazione di questi dati.

Dove sono Memorizzati i File Binari

Come ogni altro file, i file eseguibili risiedono in directory fondamentalmente collegate a /. Nello specifico, i programmi sono distribuiti su una struttura a tre livelli: il primo livello (/) include i programmi che potrebbero essere necessari in modalità utente singolo; il secondo livello (/usr) contiene la maggior parte dei programmi multiutente; il terzo livello (/usr/local) viene utilizzato per memorizzare il software che non è fornito dalla distribuzione ed è stato compilato localmente.

In genere, i programmi si trovano in queste posizioni:

/sbin

Contiene i binari essenziali per l’amministrazione del sistema, come parted o ip.

/bin

Contiene i binari essenziali per tutti gli utenti come ls, mv, o mkdir.

/usr/sbin

Memorizza i binari per l’amministrazione del sistema, come deluser o groupadd.

/usr/bin

Include la maggior parte dei file eseguibili, come free, pstree, sudo o man, che possono essere utilizzati da tutti gli utenti.

/usr/local/sbin

Viene utilizzato per memorizzare i programmi installati localmente per l’amministrazione del sistema che non sono gestiti dal gestore dei pacchetti del sistema.

/usr/local/bin

Ha lo stesso scopo di /usr/local/sbin, ma per i normali programmi utente.

Recentemente alcune distribuzioni hanno iniziato a sostituire /bin e /sbin con collegamenti simbolici a /usr/bin e /usr/sbin.

Note

La directory /opt è talvolta usata per memorizzare applicativi opzionali di terze parti.

Oltre a queste directory, gli utenti ordinari possono avere i propri programmi in:

  • /home/$USER/bin

  • /home/$USER/.local/bin

Tip

Puoi scoprire da quali directory puoi eseguire i binari facendo riferimento alla variabile PATH con il comando echo $PATH. Per ulteriori informazioni su PATH, rivedi le lezioni sulle variabili e sulla personalizzazione della shell.

Possiamo trovare la posizione dei programmi con il comando which:

$ which git
/usr/bin/git

Dove sono Memorizzati i File di Configurazione

La Directory /etc

Agli albori di Unix c’era una cartella per ogni tipo di dato, come, per esempio, /bin per i binari e /boot per il (i) kernel. Tuttavia, /etc (per et cetera) è stata creata come directory generica per memorizzare tutti i file che non appartenevano alle altre categorie. La maggior parte di questi file erano file di configurazione. Con il passare del tempo sono stati aggiunti sempre più file di configurazione e così /etc è diventata la cartella principale per i file di configurazione dei programmi. Come detto sopra, un file di configurazione di solito è un file locale di testo normale (al contrario di un file binario) che controlla il funzionamento di un programma.

In /etc troviamo diversi modelli per i nomi dei file di configurazione:

  • File con una estensione ad hoc o nessuna estensione, come per esempio:

    group

    Database dei gruppi del sistema.

    hostname

    Nome del computer host.

    hosts

    Elenco di indirizzi IP e relative traduzioni in nome host.

    passwd

    Database degli utenti del sistema — composto da sette campi separati da due punti che forniscono informazioni sull’utente.

    profile

    File di configurazione a livello di sistema per Bash.

    shadow

    File crittografato per le password degli utenti.

  • File di inizializzazione che terminano con rc:

    bash.bashrc

    File .bashrc a livello di sistema per shell bash interattive.

    nanorc

    File di inizializzazione di esempio per GNU nano (un semplice editor di testo normalmente incluso in qualsiasi distribuzione).

  • File che terminano con .conf:

    resolv.conf

    File di configurazione per il resolver, che fornisce l’accesso al DNS (Internet Domain Name System).

    sysctl.conf

    File di configurazione per impostare le variabili di sistema per il kernel.

  • Directory con suffisso .d:

    Alcuni programmi con un unico file di configurazione (*.conf o altro) si sono evoluti per avere una directory dedicata *.d che aiuta a costruire configurazioni modulari e più robuste. Per esempio, per configurare logrotate, troverai logrotate.conf, ma anche la directory logrotate.d.

    Questo approccio è utile nei casi in cui applicazioni diverse richiedano configurazioni per lo stesso specifico servizio. Se, per esempio, un pacchetto del server web contiene una configurazione di logrotate, questa configurazione può essere inserita in un file dedicato nella directory logrotate.d. Questo file può essere aggiornato dal pacchetto del server web senza interferire con la restante configurazione di logrotate. Allo stesso modo, i pacchetti possono aggiungere attività specifiche inserendo i file nella directory /etc/cron.d invece di modificare /etc/crontab.

    In Debian e nelle sue derivate tale approccio è stato applicato all’elenco delle fonti attendibili lette dallo strumento di gestione dei pacchetti apt: a parte il classico /etc/apt/sources.list, ora troviamo la directory /etc/apt/sources.list.d:

    $ ls /etc/apt/sources*
    /etc/apt/sources.list
    /etc/apt/sources.list.d:
File di Configurazione nella HOME (Dotfile)

A livello utente i programmi memorizzano le proprie configurazioni e le proprie impostazioni in file nascosti all’interno della directory home dell’utente (rappresentata anche da ~). Ricorda che i file nascosti iniziano con un punto (.) - da qui il loro nome: dotfile.

Alcuni di questi dotfile sono script Bash che personalizzano la sessione di shell dell’utente e vengono letti non appena l’utente accede al sistema:

.bash_history

Memorizza la cronologia della Command Line.

.bash_logout

Contiene i comandi da eseguire quando si esce dalla shell di login.

.bashrc

Script di inizializzazione di Bash per shell non di login.

.profile

Script di inizializzazione di Bash per shell di login.

Note

Fai riferimento alla lezione “Nozioni di Base sulla Command Line” per saperne di più su Bash e sui suoi file di inizializzazione.

Altri file di configurazione relativi a programmi specifici dell’utente vengono letti quando il corrispondente programma viene avviato: .gitconfig, .emacs.d, .ssh, etc.

Il kernel Linux

Prima che qualsiasi processo possa essere eseguito, il kernel deve essere caricato in un’area di memoria protetta. Dopodiché, il processo con PID 1 (oggigiorno il più delle volte systemd) avvia la catena di processi, vale a dire un processo ne avvia un altro (o altri) e così via. Una volta che i processi sono attivi, il kernel Linux è responsabile dell’allocazione delle risorse (tastiera, mouse, dischi, memoria, interfacce di rete, etc.).

Note

Prima dell’avvento di systemd, /sbin/init era sempre il primo processo in un sistema Linux come parte del gestore di sistema System V Init. Infatti, al momento puoi ancora trovare /sbin/init, ma come collegamento a /lib/systemd/systemd.

Dove sono Memorizzati i File del Kernel: /boot

Il kernel risiede in /boot assieme ad altri file relativi all’avvio del sistema. La maggior parte di questi file include nel nome ciò che compone il numero di versione del kernel (kernel version, major revision, minor revision e patch number).

La directory /boot include i seguenti tipi di file, i cui nomi corrispondono alla relativa versione del kernel:

config-4.9.0-9-amd64

Impostazioni di configurazione del kernel come, per esempio, opzioni e moduli che sono stati compilati assieme al kernel.

initrd.img-4.9.0-9-amd64

Immagine del disco RAM iniziale (Initial RAM disk) che aiuta il processo di avvio caricando un filesystem di root temporaneo in memoria.

System-map-4.9.0-9-amd64

Il file System-map (su alcuni sistemi presente come System.map) contiene le posizioni degli indirizzi di memoria per i nomi dei simboli del kernel. Ogni volta che un kernel viene ricostruito, il contenuto del file cambia poiché le posizioni di memoria potrebbero essere diverse. Il kernel utilizza questo file per cercare le posizioni degli indirizzi di memoria per un particolare simbolo del kernel, o viceversa.

vmlinuz-4.9.0-9-amd64

Il kernel vero e proprio in un formato compresso autoestraente che consente di risparmiare spazio (da qui la z in vmlinuz; vm sta per memoria virtuale - ha iniziato a essere utilizzato quando il kernel ha iniziato a supportare la memoria virtuale).

grub

Directory di configurazione per il bootloader grub2.

Tip

Poiché è una criticità del sistema operativo, vengono conservati in /boot più di un kernel con i relativi file associati nel caso in cui quello predefinito dia errore e si debba ripiegare su una versione precedente così da essere almeno in grado di avviare e riparare il sistema.

La Directory /proc

La directory /proc è uno dei così detti filesystem virtuali o pseudo-filesystem dal momento che il suo contenuto non è scritto sul disco, ma caricato in memoria. Viene popolato dinamicamente ogni volta che il computer si avvia e riflette costantemente lo stato corrente del sistema. /proc contiene informazioni su:

  • Processi in esecuzione

  • Configurazione del kernel

  • Hardware di sistema

Oltre a tutti i dati relativi ai processi che vedremo nella prossima lezione, questa directory memorizza anche file con informazioni sull’hardware di sistema e le impostazioni di configurazione del kernel. Alcuni di questi file sono:

/proc/cpuinfo

Memorizza informazioni sulla CPU del sistema:

$ cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 158
model name	: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
stepping	: 10
cpu MHz		: 3696.000
cache size	: 12288 KB
(...)
/proc/cmdline

Memorizza le stringhe passate al kernel all’avvio del sistema:

$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.9.0-9-amd64 root=UUID=5216e1e4-ae0e-441f-b8f5-8061c0034c74 ro quiet
/proc/modules

Mostra l’elenco dei moduli caricati nel kernel:

$ cat /proc/modules
nls_utf8 16384 1 - Live 0xffffffffc0644000
isofs 40960 1 - Live 0xffffffffc0635000
udf 90112 0 - Live 0xffffffffc061e000
crc_itu_t 16384 1 udf, Live 0xffffffffc04be000
fuse 98304 3 - Live 0xffffffffc0605000
vboxsf 45056 0 - Live 0xffffffffc05f9000 (O)
joydev 20480 0 - Live 0xffffffffc056e000
vboxguest 327680 5 vboxsf, Live 0xffffffffc05a8000 (O)
hid_generic 16384 0 - Live 0xffffffffc0569000
(...)

La Directory /proc/sys

Questa directory contiene le impostazioni di configurazione del kernel sotto forma di file classificati in categorie rappresentate dalle diverse sottodirectory:

$ ls /proc/sys
abi  debug  dev  fs  kernel  net  user  vm

La maggior parte di questi file funziona come un interruttore e, quindi, contiene solamente uno dei due possibili valori: 0 o 1 (“acceso” o “spento”). Per esempio:

/proc/sys/net/ipv4/ip_forward

Il valore che abilita o disabilita la nostra macchina a funzionare da router (e quindi a essere in grado di inoltrare pacchetti):

$ cat /proc/sys/net/ipv4/ip_forward
0

Esistono tuttavia alcune eccezioni:

/proc/sys/kernel/pid_max

Il PID massimo consentito:

$ cat /proc/sys/kernel/pid_max
32768
Warning

Presta particolare attenzione quando modifichi le impostazioni del kernel poiché un valore errato potrebbe causare instabilità di sistema.

Dispositivi Hardware

Ricorda, in Linux “ogni cosa è un file”. Questo implica che le informazioni sul dispositivo hardware e le impostazioni di configurazione del kernel siano tutte memorizzate in file speciali che risiedono in directory virtuali.

La Directory /dev

La directory /dev, che sta per device, contiene i file di dispositivo (o nodi) per tutti i dispositivi hardware collegati. Questi file di dispositivo vengono utilizzati come interfaccia tra i dispositivi e i processi che li utilizzano. Ogni file di dispositivo rientra in una delle due seguenti categorie:

Dispositivi a blocchi

Sono quelli in cui i dati vengono letti e scritti in blocchi che possono essere indirizzati individualmente. Alcuni esempi sono: i dischi rigidi (e le loro partizioni, come /dev/sda1), le unità flash USB, CD, DVD, etc.

Dispositivi a caratteri

Sono quelli in cui i dati vengono letti e scritti in modo sequenziale, un carattere alla volta. Alcuni esempi sono: le tastiere, la console di testo (/dev/console), le porte seriali (come /dev/ttyS0 e così via), etc.

Quando si elencano i file di dispositivo è necessario assicurarsi di utilizzare ls con l’opzione -l per fare distinzione tra le due categorie. Possiamo, per esempio, controllare i dischi rigidi e le partizioni:

# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 may 25 17:02 /dev/sda
brw-rw---- 1 root disk 8, 1 may 25 17:02 /dev/sda1
brw-rw---- 1 root disk 8, 2 may 25 17:02 /dev/sda2
(...)

O i terminali seriali (TeleTYpewriter):

# ls -l /dev/tty*
crw-rw-rw- 1 root tty     5,  0 may 25 17:26 /dev/tty
crw--w---- 1 root tty     4,  0 may 25 17:26 /dev/tty0
crw--w---- 1 root tty     4,  1 may 25 17:26 /dev/tty1
(...)

Nota che il primo carattere è b per i dispositivi a blocchi e c per i dispositivi a caratteri.

Tip

L’asterisco ("*") è un carattere di globbing che significa 0 o più caratteri. Pertanto, è estremamente importante nei comandi ls -l /dev/sd* e ls -l /dev/tty* sopra riportati. Per saperne di più su questi caratteri speciali, fai riferimento alla lezione sul globbing.

Inoltre, /dev include alcuni file speciali che sono abbastanza utili per diversi scopi di programmazione:

/dev/zero

Fornisce tanti caratteri null quanti sono quelli richiesti.

/dev/null

Chiamato anche cestino per i bit, o in inglese ​​bit bucket. Elimina tutte le informazioni che gli vengono inviate.

/dev/urandom

Genera numeri pseudo-casuali.

La Directory /sys

Il filesystem sys (sysfs) è montato su /sys. È stato introdotto con il kernel 2.6 e ha apportato un grande miglioramento per /proc/sys.

I processi devono interagire con i dispositivi in ​​/dev e quindi il kernel ha bisogno di una directory che contenga informazioni su questi dispositivi hardware. Questa directory è /sys e i suoi dati sono organizzati in categorie. Per esempio, per controllare l’indirizzo MAC della scheda di rete (enp0s3), è necessario eseguire il comando cat sul seguente file:

$ cat /sys/class/net/enp0s3/address
08:00:27:02:b2:74

Memoria e Tipi di Memoria

Affinché un programma inizi a funzionare, deve essere caricato in memoria. In generale, quando parliamo di memoria ci riferiamo alla Random Access Memory (RAM) che, rispetto ai dischi rigidi meccanici, ha il vantaggio di essere molto più veloce. Di contro, è volatile (cioè, una volta spento il computer, i dati scompaiono).

Fermo restando quanto detto sopra, quando si tratta di memoria possiamo distinguerne in un sistema Linux due tipi principali:

Memoria fisica

Conosciuta anche come RAM, si presenta sotto forma di chip costituiti da circuiti integrati contenenti milioni di transistor e condensatori che, a loro volta, formano celle di memoria (il componente base della memoria del computer). Ciascuna di queste celle ha un codice esadecimale associato, un indirizzo di memoria, a cui è possibile fare riferimento quando necessario.

Swap

Conosciuta anche come spazio di swap, è la porzione di memoria virtuale che si trova sul disco rigido e viene utilizzata quando non c’è più RAM disponibile.

D’altra parte, esiste il concetto di memoria virtuale che è un’astrazione della quantità totale di memoria di indirizzamento utilizzabile (RAM, ma anche spazio su disco) come viene vista dalle applicazioni.

Il comando free analizza /proc/meminfo e mostra la quantità di memoria libera e utilizzata nel sistema in modo molto chiaro:

$ free
              total        used        free      shared  buff/cache   available
Mem:        4050960     1474960     1482260       96900     1093740     2246372
Swap:       4192252           0     4192252

Spieghiamo le diverse colonne:

total

Quantità totale di memoria fisica e di swap installata.

used

Quantità di memoria fisica e di swap attualmente in uso.

free

Quantità di memoria fisica e di swap attualmente non in uso.

shared

Quantità di memoria fisica usata — principalmente — da tmpfs.

buff/cache

Quantità di memoria fisica attualmente utilizzata dai buffer del kernel, dalla cache e dagli slab.

available

Stima della quantità di memoria fisica disponibile per i nuovi processi.

Per impostazione predefinita, free mostra i valori in kibibyte, ma consente, grazie a una varietà di opzioni, di visualizzare i risultati in diverse unità di misura. Alcune di queste opzioni sono:

-b

Bytes.

-m

Mebibytes.

-g

Gibibytes.

-h

Formato leggibile dall’uomo.

Il formato mostrato tramite l’opzione -h è sempre comodo da leggere:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3,9G        1,4G        1,5G         75M        1,0G        2,2G
Swap:          4,0G          0B        4,0G
Note

Un kibibyte (KiB) equivale a 1024 byte, mentre un kilobyte (KB) equivale a 1000 byte. Lo stesso vale, rispettivamente, per mebibyte, gibibyte, etc.

Esercizi Guidati

  1. Usa il comando which per scoprire la posizione dei seguenti programmi e completare la tabella:

    Programma Comando which Percorso dell’eseguibile (output) L’utente ha bisogno dei privilegi di root?

    swapon

    kill

    cut

    usermod

    cron

    ps

  2. Dove si trovano i seguenti file?

    File /etc ~

    .bashrc

    bash.bashrc

    passwd

    .profile

    resolv.conf

    sysctl.conf

  3. Spiega il significato degli elementi numerici del file del kernel vmlinuz-4.15.0-50-generic che si trova in /boot:

    Elemento numerico Significato

    4

    15

    0

    50

  4. Quale comando puoi usare per elencare tutti i dischi rigidi e le partizioni in /dev?

Esercizi Esplorativi

  1. I file di dispositivo per i dischi rigidi sono rappresentati in base ai controller che usano: abbiamo visto /dev/sd* per i dischi che utilizzano SCSI (Small Computer System Interface) e SATA (Serial Advanced Technology Attachment), ma

    • Come erano rappresentati i vecchi dischi IDE (Integrated Drive Electronics)?

    • E i moderni dischi NVMe (Non-Volatile Memory Express)?

  2. Dai un’occhiata al file /proc/meminfo. Confronta il contenuto di questo file con l’output del comando free e identifica quale voce di /proc/meminfo corrisponde ai seguenti campi nell’output di free:

    Output di free Campo di /proc/meminfo

    total

    free

    shared

    buff/cache

    available

Sommario

In questa lezione hai imparato la posizione dei programmi e dei loro file di configurazione in un sistema Linux. Le cose più importanti da ricordare sono:

  • Fondamentalmente, i programmi si trovano in una struttura di directory a tre livelli: /, /usr e /usr/local. Ciascuno di questi livelli può contenere le directory bin e sbin;

  • I file di configurazione sono memorizzati in /etc e ~;

  • I dotfile sono file nascosti che iniziano con un punto (.).

Abbiamo anche discusso del kernel Linux. Le cose più importanti sono:

  • Per Linux, ogni cosa è un file;

  • Il kernel Linux si trova in /boot assieme agli altri file relativi all’avvio;

  • Affinchè i processi possano essere eseguiti, il kernel deve prima essere caricato in un’area di memoria protetta;

  • Il compito del kernel è allocare le risorse di sistema per i processi;

  • Il filesystem virtuale (o pseudo filesystem) /proc memorizza, in modo volatile, importanti dati del kernel e del sistema.

Allo stesso modo, abbiamo esplorato i dispositivi hardware e appreso quanto segue:

  • La directory /dev memorizza file speciali (o nodi) per tutti i dispositivi hardware collegati: dispositivi a blocchi o dispositivi a caratteri. I primi trasferiscono i dati in blocchi; i secondi, un carattere alla volta;

  • La directory /dev contiene anche altri file speciali come /dev/zero, /dev/null o /dev/urandom;

  • La directory /sys memorizza le informazioni sui dispositivi hardware in base a una suddivisione per categorie.

Infine, abbiamo affrontato la memoria. Ecco ciò che abbiamo imparato:

  • Un programma viene eseguito quando viene caricato in memoria;

  • Cos’è la RAM (Random Access Memory);

  • Cos’è lo Swap;

  • Come visualizzare l’utilizzo della memoria.

Comandi utilizzati in questa lezione:

cat

Concatena/stampa il contenuto di un file.

free

Visualizza la quantità di memoria libera e utilizzata nel sistema.

ls

Elenca il contenuto di una directory.

which

Mostra la posizione di un programma.

Risposte agli Esercizi Guidati

  1. Usa il comando which per scoprire la posizione dei seguenti programmi e completare la tabella:

    Programma Comando which Percorso dell’eseguibile (output) L’utente ha bisogno dei privilegi di root?

    swapon

    which swapon

    /sbin/swapon

    Si

    kill

    which kill

    /bin/kill

    No

    cut

    which cut

    /usr/bin/cut

    No

    usermod

    which usermod

    /usr/sbin/usermod

    Si

    cron

    which cron

    /usr/sbin/cron

    Si

    ps

    which ps

    /bin/ps

    No

  2. Dove si trovano i seguenti file?

    File /etc ~

    .bashrc

    No

    Si

    bash.bashrc

    Si

    No

    passwd

    Si

    No

    .profile

    No

    Si

    resolv.conf

    Si

    No

    sysctl.conf

    Si

    No

  3. Spiega il significato degli elementi numerici del file del kernel vmlinuz-4.15.0-50-generic che si trova in /boot:

    Elemento numerico Significato

    4

    Kernel version

    15

    Major revision

    0

    Minor revision

    50

    Patch number

  4. Quale comando puoi usare per elencare tutti i dischi rigidi e le partizioni in /dev?

    ls /dev/sd*

Risposte agli Esercizi Esplorativi

  1. I file di dispositivo per i dischi rigidi sono rappresentati in base ai controller che usano: abbiamo visto /dev/sd* per i dischi che utilizzano SCSI (Small Computer System Interface) e SATA (Serial Advanced Technology Attachment), ma

    • Come erano rappresentati i vecchi dischi IDE (Integrated Drive Electronics)?

      /dev/hd*

    • E i moderni dischi NVMe (Non-Volatile Memory Express)?

      /dev/nvme*

  2. Dai un’occhiata al file /proc/meminfo. Confronta il contenuto di questo file con l’output del comando free e identifica quale voce di /proc/meminfo corrisponde ai seguenti campi nell’output di free:

    Output di free Campo di /proc/meminfo

    total

    MemTotal / SwapTotal

    free

    MemFree / SwapFree

    shared

    Shmem

    buff/cache

    Buffers, Cached e SReclaimable

    available

    MemAvailable

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

Prossima Lezione

4.3 Dove Sono Memorizzati i Dati (4.3 Lezione 2)

Leggi la prossima Lezione

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

LPI è una organizzazione non-profit.

© 2023 Linux Professional Institute (LPI) è lo standard di certificazione globale e l'organizzazione di supporto alla carriera per i Professionisti Open Source. Con più di 200,000 titolari di Certificazione, è il primo e il più grande ente di Certificazione Open Source e Linux vendor-neutral. LPI ha professionisti certificati in oltre 180 Paesi, offre i suoi Esami in più lingue e ha centinaia di Partner di formazione in tutto il mondo.

La nostra missione è promuovere l'uso dell'Open Source supportando le persone che vi lavorano.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contattaci
  • Privacy & Cookie Policy

Trovato un errore? Per favore scrivi a contattaci.

© 1999–2023 The Linux Professional Institute Inc. Tutti i diritti riservati.