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.2 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.2 Comprendere l'Hardware del Computer
  3. 4.2 Lezione 1

4.2 Lezione 1

Certificazione:

Linux Essentials

Versione:

1.6

Argomento:

4 Il Sistema Operativo Linux

Obiettivo:

4.2 Comprendere l’Hardware del Computer

Lezione:

1 di 1

Introduzione

Senza hardware, il software non è altro che una forma di linguaggio. L’hardware elabora i comandi definiti dal software e fornisce meccanismi di archiviazione, input e output. Fondamentalmente, anche la tecnologia cloud è legata all’hardware.

In quanto sistema operativo, una delle responsabilità di Linux è dotare il software di interfacce per accedere all’hardware di sistema. La maggior parte delle specifiche di configurazione esula dallo scopo di questa lezione. Tuttavia, gli utenti devono spesso preoccuparsi delle prestazioni, della capacità e di altri fattori correlati all’hardware di sistema poiché influiscono sulla capacità del sistema stesso di supportare adeguatamente specifiche applicazioni. Questa lezione tratta l’hardware come elementi fisici separati utilizzando connettori e interfacce standard. Gli standard sono relativamente statici, ma la forma, le prestazioni e la capacità dell’hardware sono in continua evoluzione. Indipendentemente da come i cambiamenti possano nascondere le differenze fisiche, gli aspetti concettuali dell’hardware descritti in questa lezione rimangono ancora validi.

Note

In vari punti di questa lezione verranno utilizzati esempi dalla Command Line per dimostrare come accedere alle informazioni sull’hardware. La maggior parte degli esempi proviene da un Raspberry Pi B+, ma vale per la maggior parte dei sistemi. Non è necessario comprendere questi comandi per capire la lezione.

Alimentatori

Tutti i componenti attivi in ​​un computer richiedono elettricità per poter funzionare. Sfortunatamente la maggior parte delle fonti di elettricità non sono adeguate. L’hardware di un computer richiede tensioni specifiche con tolleranze relativamente strette, il che non è proprio quello che è disponibile dalla presa a muro a casa.

Gli alimentatori normalizzano le fonti di energia disponibili. I requisiti di tensione standard consentono ai produttori di creare componenti hardware che possono essere utilizzati nei sistemi in qualsiasi parte del mondo. Gli alimentatori dei computer desktop tendono a utilizzare come fonte di alimentazione l’elettricità delle prese a muro. Gli alimentatori dei server tendono ad avere una maggiore criticità; quindi sono spesso collegati a più fonti di alimentazione per garantire continuità operativa anche in caso di guasto di una fonte.

Il consumo di energia genera calore. Un calore eccessivo può far sì che i componenti del sistema funzionino più lentamente o addirittura si possano guastare. La maggior parte dei sistemi prevede una qualche forma di ventilazione per un raffreddamento più efficiente. Componenti come i processori spesso generano calore che il flusso d’aria da solo non è in grado di dissipare. Questi componenti caldi sono dotati di speciali alette note come dissipatori di calore che aiutano a dissipare il calore che generano. I dissipatori di calore hanno spesso una propria piccola ventola locale per garantire un flusso d’aria adeguato.

Scheda Madre

Tutto l’hardware di un sistema deve essere interconnesso. La scheda madre normalizza tale interconnessione utilizzando connettori e fattori di forma standardizzati. Fornisce inoltre supporto per la configurazione e le esigenze elettriche di tali connettori.

Esistono molte possibili configurazioni per una scheda madre. Prevedono processori e sistemi di memoria diversi e differenti combinazioni di connettori standardizzati. Inoltre hanno diverse dimensioni a seconda di dove sono contenute. La configurazione della scheda madre è del tutto trasparente agli utenti, i quali, forse, sono solo a conoscenza che possono collegare dispositivi esterni specifici. Gli amministratori di sistema di solito hanno a che fare con la configurazione della scheda madre quando devono identificare determinati dispositivi.

Quando viene accesa per la prima volta, è necessario configurare e inizializzare l’hardware specifico della scheda madre prima che il sistema possa funzionare. Le schede madri utilizzano programmi memorizzati nella memoria non volatile, nota come firmware, per gestire l’hardware specifico della scheda madre. La forma originale del firmware della scheda madre era nota come BIOS (Basic Input/Output System). Oltre alle impostazioni della configurazione di base, il BIOS era principalmente responsabile dell’identificazione, del caricamento e del trasferimento delle operazioni a un sistema operativo come Linux. Con l’evoluzione dell’hardware il firmware si è espanso per supportare dischi più grandi, strumenti di diagnostica, interfacce grafiche, strumenti per la gestione della rete e altre funzionalità avanzate indipendenti da qualsiasi sistema operativo caricato. I primi tentativi di far avanzare il firmware oltre il BIOS di base erano spesso specifici per un produttore di schede madri. Intel ha definito uno standard per il firmware avanzato noto come EFI (Extensible Firmware Interface) e ha contribuito con EFI a un’organizzazione degli standard per creare UEFI (Unified Extensible Firmware Interface). Oggi, la maggior parte delle schede madri utilizza UEFI; è raro trovare BIOS ed EFI sui sistemi più recenti. Indipendentemente da ciò, la maggior parte delle persone si riferisce ancora al firmware della scheda madre utilizzando il termine BIOS.

Ci sono pochissime impostazioni del firmware realmente di interesse per gli utenti generici; quindi, in genere, solo i responsabili della configurazione hardware del sistema devono occuparsi del firmware e delle sue impostazioni. Una delle poche opzioni comunemente modificate è l’abilitazione delle estensioni di virtualizzazione delle moderne CPU.

Memoria

La memoria di sistema contiene i dati e il codice delle applicazioni attualmente in esecuzione. Quando si parla di memoria di un computer, la maggior parte delle persone si riferisce a questa memoria di sistema. Un altro termine comune con cui viene solitamente chiamata è l’acronimo RAM (Random Access Memory) o qualche variazione di tale acronimo. A volte vengono utilizzati anche riferimenti alla confezione fisica della memoria di sistema come, per esempio, DIMM, SIMM o DDR.

Fisicamente la memoria di sistema è solitamente confezionata in singoli moduli di circuiti stampati che si collegano alla scheda madre. I singoli moduli di memoria attualmente variano da 2 GB a 64 GB. Per la maggior parte delle applicazioni, 4 GB è la memoria di sistema minima che le persone dovrebbero tenere in considerazione. Per le singole postazioni di lavoro 16 GB sono in genere più che sufficienti. Tuttavia, anche 16 GB potrebbero essere pochi per gli utenti che eseguono giochi, video o applicazioni audio di fascia alta. I server richiedono spesso 128 GB o addirittura 256 GB di memoria per supportare in modo efficiente i carichi degli utenti.

Nella maggior parte dei casi Linux consente agli utenti di trattare la memoria di sistema come una black box. Viene avviata un’applicazione e Linux si occupa di allocare la memoria di sistema richiesta. Quando un’applicazione viene chiusa, Linux rilascia la memoria affinchè venga utilizzata da altre applicazioni. Ma cosa succede se un’applicazione richiede più memoria di sistema di quella disponibile? In questo caso, Linux sposta le applicazioni inattive dalla memoria di sistema in una speciale area del disco, nota come spazio di swap. Linux sposta le applicazioni inattive dallo spazio di swap del disco alla memoria di sistema quando devono essere eseguite.

I sistemi senza un hardware video dedicato spesso utilizzano una parte della memoria di sistema (in genere 1 GB) come memoria del display video, riducendo la memoria di sistema effettiva. L’hardware video dedicato, in genere, ha una propria memoria separata che non è disponibile come memoria di sistema.

Esistono diversi modi per ottenere informazioni sulla memoria di sistema. Per un utente, i valori in genere più interessanti sono la quantità totale di memoria disponibile e in uso. Puoi ottenere delle informazioni eseguendo il comando free con il parametro -m, che visualizza l’output in megabyte:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:            748          37          51          14         660         645
Swap:            99           0          99

La prima riga specifica la memoria totale disponibile per il sistema (total), la memoria in uso (used) e la memoria libera (free); la seconda riga mostra le stesse informazioni per lo spazio di swap. La memoria indicata come shared e buff/cache è attualmente usata per altre funzioni di sistema, sebbene la quantità indicata in available possa essere usata per le applicazioni.

Processori

La parola “processore” implica che qualcosa venga appunto processato. Nei computer la maggior parte di tale elaborazione si riferisce ai segnali elettrici. Tipicamente questi segnali vengono trattati come aventi uno dei valori binari, 1 o 0.

Quando le persone parlano di computer usano spesso la parola processore come sinonimo dell’acronimo CPU (Central Processing Unit), cosa non tecnicamente corretta. Ogni computer a uso generico ha una CPU che elabora i comandi binari specificati dal software. Quindi è comprensibile che le persone usino processore e CPU come sinonimi. Tuttavia, oltre a una CPU, i computer moderni spesso includono altri processori specifici per certe attività. Forse il processore aggiuntivo più noto è la GPU (Graphical Processing Unit). Pertanto, mentre una CPU è un processore, non tutti i processori sono CPU.

Per la maggior parte delle persone l’architettura della CPU fa riferimento alle istruzioni supportate dal processore. Sebbene Intel e AMD realizzino processori che supportano le stesse istruzioni, ha senso fare distinzione tra i fornitori poichè hanno differenze in termine di confezionamento, prestazioni e consumo energetico. Le distribuzioni software usano di solito questi termini per specificare il set minimo di istruzioni richieste per il funzionamento:

i386

Fa riferimento al set di istruzioni a 32 bit associato a Intel 80386.

x86

In genere fa riferimento ai set di istruzioni a 32 bit associati ai successori del 80386 come 80486, 80586 e Pentium.

x64 / x86-64

Fa riferimento a processori che supportano sia le istruzioni a 32 bit che a 64 bit della famiglia x86.

AMD

Fa riferimento al supporto x86 dei processori AMD.

AMD64

Fa riferimento al supporto x64 dei processori AMD.

ARM

Fa riferimento a una CPU RISC (Reduced Instruction Set Computer ) che non è basata sul set di istruzioni x86. È comunemente utilizzato da dispositivi integrati, mobili, tablet e a batteria. Una versione di Linux per ARM viene utilizzata dal Raspberry Pi.

Il file /proc/cpuinfo contiene informazioni dettagliate sul processore di un sistema. Purtroppo i dettagli non sono facilmente comprensibili dagli utenti comuni. Un risultato più generico può essere ottenuto con il comando lscpu. Ecco l’output di un Raspberry Pi B +:

$ lscpu
Architecture:          armv7l
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
Model:                 4
Model name:            ARMv7 Processor rev 4 (v7l)
CPU max MHz:           1400.0000
CPU min MHz:           600.0000
BogoMIPS:              38.40
Flags:                 half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32

Per la maggior parte delle persone, la miriade di fornitori, le famiglie di processori e i fattori di specifica rappresentano un’incredibile varietà di opzioni. Nonostante questo, ci sono diversi fattori associati a CPU e processori che anche gli utenti generici e gli amministratori spesso devono tenere in considerazione quando definiscono gli ambienti operativi:

Bit size

Per le CPU questo numero si riferisce sia alla dimensione nativa dei dati che gestisce, sia alla quantità di memoria cui può accedere. La maggior parte dei sistemi moderni è a 32 o 64 bit. Se un’applicazione deve accedere a più di 4 gigabyte di memoria, deve essere eseguita su un sistema a 64 bit, poiché 4 gigabyte è il numero massimo di indirizzi che può essere rappresentato utilizzando 32 bit. Inoltre, mentre le applicazioni a 32 bit possono in genere essere eseguite su sistemi a 64 bit, le applicazioni a 64 bit non possono essere eseguite su sistemi a 32 bit.

Clock speed

Spesso espressa in megahertz (MHz) o gigahertz (GHz), si riferisce alla velocità con cui un processore elabora le istruzioni. Ma la velocità del processore è solo uno dei fattori che influiscono sui tempi di risposta del sistema, sui tempi di attesa e sul throughput. Anche un utente multi-tasking molto impegnato raramente mantiene attiva la CPU di un comune PC desktop per più del due o tre per cento del tempo. Indipendentemente da questo, se si utilizzano frequentemente applicazioni ad alta intensità di calcolo che coinvolgono attività come la crittografia o il rendering video, la velocità della CPU potrebbe avere un impatto significativo sul throughput e sui tempi di attesa.

Cache

Le CPU richiedono un flusso costante di istruzioni e dati per funzionare. Il costo e il consumo energetico di una memoria di sistema multi-gigabyte, a cui si potrebbe accedere alla velocità di clock della CPU, sarebbero però proibitivi. La memoria cache della CPU è integrata nel chip della CPU per fornire un buffer ad alta velocità tra le CPU e la memoria di sistema. La cache è suddivisa in diversi livelli, comunemente indicati come L1, L2, L3 e persino L4. In generale, nel caso della cache, più ce ne sono meglio è.

Core

Un core si riferisce a una singola CPU. Oltre al core che rappresenta una CPU fisica, la tecnologia Hyper-Threading (HTT - Hyper-Threading Technology) consente a una singola CPU fisica di elaborare contemporaneamente più istruzioni agendo così virtualmente come più CPU fisiche. In genere, più core fisici vengono integrati in un singolo chip del processore fisico. Tuttavia, esistono schede madri che supportano più chip di processori fisici. In teoria, avere più core per le attività di elaborazione potrebbe sembrare che porti sempre un migliore throughput del sistema. Sfortunatamente, le applicazioni desktop, in genere, mantengono le CPU occupate solo il due o tre per cento del tempo; quindi l’aggiunta di più CPU per lo più inattive è probabile che si traduca in un miglioramento minimo del throughput. L’uso di più core è più adatto per l’esecuzione di applicazioni scritte per avere più thread operativi indipendenti come il rendering di frame video, il rendering di pagine Web o ambienti con macchine virtuali multiutente.

Archiviazione

I dispositivi di archiviazione rappresentano un metodo per conservare programmi e dati. Le unità a disco rigido (HDD - Hard Disk Drives) e le unità a stato solido (SSD - Solid State Drives) sono i dispositivi di archiviazione più comuni per server e desktop. Vengono utilizzate anche pennette USB e dispositivi ottici come DVD, ma raramente come dispositivo principale.

Come suggerisce il nome, un’unità a disco rigido memorizza le informazioni su uno o più dischi rigidi fisici. I dischi fisici sono ricoperti da supporti magnetici per rendere possibile l’archiviazione. I dischi sono contenuti in una confezione sigillata poiché polvere, piccole particelle e persino impronte digitali potrebbero interferire con la capacità dell’HDD di leggere e scrivere sui supporti magnetici.

Gli SSD sono di fatto varianti più sofisticate di pennette USB con una capacità notevolmente maggiore. Gli SSD memorizzano le informazioni in microchip: quindi, non ci sono parti in movimento.

Sebbene le tecnologie alla base degli HDD e degli SSD siano diverse, esistono dei fattori di confronto molto importanti. La capacità degli HDD si basa sul ridimensionamento dei componenti fisici, mentre la capacità degli SSD dipende dal numero di microchip. Gli SSD costano per gigabyte da 3 a 10 volte di più di un HDD. Per la lettura o la scrittura, un HDD deve attendere che un punto su un disco ruoti in una posizione nota, mentre gli SSD sono ad accesso casuale. Le velocità di accesso degli SSD sono in genere da 3 a 5 volte superiori rispetto ai dispositivi HDD. Dal momento che non hanno parti mobili, gli SSD consumano meno energia e sono più affidabili degli HDD.

La capacità di archiviazione è in costante aumento per HDD e SSD. Oggigiorno sono in genere disponibili HDD da 5 terabyte e SSD da 1 terabyte. In ogni caso, una grande capacità di archiviazione non è sempre la cosa migliore. Quando un dispositivo di archiviazione si guasta, le informazioni in esso contenute non sono più disponibili. E, naturalmente, il backup richiede più tempo quando ci sono molte informazioni di cui fare il backup. Per le applicazioni che leggono e scrivono molti dati, la latenza e le prestazioni possono essere più importanti della capacità.

I sistemi moderni utilizzano interfacce SCSI (Small Computer System Interface) o SATA (Serial AT Attachment) per connettersi ai dispositivi di archiviazione. Queste interfacce sono in genere supportate dai corrispondenti connettori sulla scheda madre. Il caricamento iniziale avviene da un dispositivo di archiviazione collegato alla scheda madre. Le impostazioni del firmware definiscono l’ordine in cui accedere ai dispositivi per questo caricamento iniziale.

I sistemi di archiviazione noti come RAID (Redundant Array of Independent Disks) sono una tipica implementazione per evitare la perdita di informazioni. Un array RAID è costituito da più dispositivi fisici che contengono copie duplicate di informazioni. Se un dispositivo si guasta, tutte le informazioni rimangono ancora disponibili. Ci si riferisce alle diverse configurazioni RAID fisiche con i numeri: 0, 1, 5, 6 e 10. Ogni definizione implica differenti dimensioni di archiviazione, caratteristiche di prestazione e modi per memorizzare dati ridondanti o checksum per il ripristino dei dati. Al di là di un piccolo overhead di configurazione a livello di amministratore, l’esistenza di un RAID è effettivamente trasparente agli utenti.

I dispositivi di archiviazione in genere leggono e scrivono i dati come blocchi di byte. Il comando lsblk può essere utilizzato per elencare i dispositivi a blocchi disponibili su un sistema. Il seguente esempio è stato eseguito su un Raspberry Pi utilizzando una scheda SD come dispositivo di archiviazione. I dettagli dell’output saranno trattati nelle sezioni Partizioni e Driver e File di Dispositivo:

$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0 29.7G  0 disk
+-mmcblk0p1 179:1    0 43.9M  0 part /boot
+-mmcblk0p2 179:2    0 29.7G  0 part /

Partitizioni

Un dispositivo di archiviazione è in realtà una lunga sequenza di posizioni di archiviazione. Il partizionamento è il meccanismo che indica a Linux se deve vedere queste posizioni di archiviazione come un’unica sequenza o più sequenze indipendenti. Ogni partizione viene trattata come se fosse un singolo dispositivo. Nella maggior parte dei casi le partizioni vengono create quando un sistema viene configurato per la prima volta. In caso fosse necessario apportare una modifica sono disponibili strumenti di amministrazione che gestiscono il partizionamento dei dispositivi.

Allora perchè è preferibile avere più partizioni? Alcuni esempi di utilizzo delle partizioni potrebbero essere la gestione dello spazio di archiviazione disponibile, l’isolamento dell'overhead di crittografia o il supporto di più file system. Le partizioni consentono di avere un singolo dispositivo di archiviazione che può essere avviato con diversi sistemi operativi.

Sebbene Linux possa riconoscere la sequenza di archiviazione di un dispositivo raw, questo non può essere utilizzato così com’è. Per utilizzare un dispositivo raw, è necessario formattarlo. La formattazione scrive un file system su un dispositivo e lo prepara per le operazioni sui file. Senza un file system non è possibile utilizzare un dispositivo per compiere operazioni sui file.

Gli utenti vedono le partizioni come se fossero dispositivi diversi: per questo è facile dimenticare che esiste un unico dispositivo fisico. In particolare, le operazioni da dispositivo a dispositivo, che sono in realtà operazioni da partizione a partizione, non avranno le prestazioni che ci si aspetta. Un singolo dispositivo è un meccanismo fisico con un un insieme di hardware per lettura/scrittura. Ma la cosa più importante è che non è possibile utilizzare le partizioni di un singolo dispositivo fisico per una progettazione a tolleranza di errore. Se il dispositivo si guasta, tutte le partizioni daranno errore; quindi non c’è tolleranza agli errori.

Note

LVM (Logical Volume Manager) è una funzione software che consente agli amministratori di combinare singoli dischi e partizioni del disco e trattarli come se fossero un’unica unità.

Periferiche

I server e le workstation necessitano di una combinazione di CPU, memoria di sistema e dispositivi di archiviazione per poter funzionare. Ma questi componenti fondamentali non si interfacciano direttamente con il mondo esterno. Le periferiche sono i dispositivi che forniscono ai sistemi input, output e accesso al resto del mondo reale.

La maggior parte delle schede madri dispone di connettori esterni integrati e supporto firmware per interfacce periferiche legacy comuni per dispositivi come tastiera, mouse, audio, video e rete. Le schede madri più recenti in genere includono un connettore Ethernet per le reti, un connettore HDMI per le esigenze grafiche di base e uno o più connettori USB (Universal Serial Bus) per quasi tutto il resto. Esistono diverse versioni di USB con differenti velocità e caratteristiche fisiche. È comune avere più versioni di porte USB su una singola scheda madre.

Le schede madri possono anche avere uno o più slot di espansione che consentono agli utenti di aggiungere circuiti stampati speciali noti come schede di espansione per periferiche personalizzate, legacy e non standard. Le interfacce grafiche, audio e di rete sono schede di espansione molto comuni. Le schede di espansione supportano anche il RAID e interfacce legacy di formato speciale per connessioni seriali e parallele.

Le configurazioni System on a Chip (SoC) portano vantaggi in termini di consumo energetico, prestazioni, spazio e affidabilità rispetto alle configurazioni della scheda madre, poichè combinano processori, memoria di sistema, SSD e hardware di controllo delle periferiche in un unico pacchetto di circuiti integrati. Le periferiche supportate dalle configurazioni SoC sono limitate dai componenti inclusi. Pertanto, le configurazioni SoC tendono a essere progettate per usi specifici. Telefoni, tablet e altri dispositivi portatili sono spesso basati sulla tecnologia SoC.

Alcuni sistemi sono già dotati di periferiche integrate. I laptop sono simili alle workstation, ma con periferiche integrate come schermo, tastiera e mouse predefiniti. I sistemi all-in-one sono simili ai laptop, ma richiedono mouse e tastiera. I controller di una scheda madre o un SoC sono spesso dotati di periferiche integrate appropriate progettate per un uso specifico.

Driver e File di Dispositivo

Finora, questa lezione ha presentato informazioni su processori, memoria, dischi, partizionamento, formattazione e periferiche. Ma chiedere a utenti generici di occuparsi dei dettagli specifici di ciascuno dei dispositivi nel loro sistema renderebbe questi sistemi praticamente inutilizzabili. Allo stesso modo, gli sviluppatori software dovrebbero modificare il loro codice per ogni dispositivo nuovo o modificato che devono supportare.

La soluzione a questo problema di “gestione dei dettagli” ci è data dai driver di un dispositivo. Questi accettano un insieme standard di richieste che poi traducono in attività di controllo appropriate per il dispositivo. I driver di un dispositivo consentono a te e alle applicazioni che esegui di leggere dal file /home/carol/stuff senza preoccuparti se quel file è su un disco rigido, un’unità a stato solido, una chiavetta di memoria, una memoria crittografata o su un qualche altro dispositivo.

I file dei dispositivi si trovano nella directory /dev e individuano i dispositivi fisici, le modalità di accesso ai dispositivi e i driver supportati. Per convenzione, nei sistemi moderni che utilizzano dispositivi di archiviazione basati su SCSI o SATA, il nome del file del relativo dispositivo inizia con il prefisso sd. Tale prefisso è seguito poi da una lettera come a o b che indica un dispositivo fisico. Dopo il prefisso e l’identificativo del dispositivo c’è un numero che indica una partizione all’interno del dispositivo fisico. Quindi, /dev/sda fa riferimento al primo dispositivo di archiviazione nella sua interezza, mentre /dev/sda3 fa riferimento alla partizione 3 del primo dispositivo di archiviazione. Esiste una convenzione di nomenclatura per ogni tipo di dispositivo. Sebbene coprire tutte le possibili convenzioni di nomenclatura esuli dallo scopo di questa lezione, è importante ricordare che queste convenzioni sono fondamentali per l’amministrazione del sistema.

Sebbene trattare il contenuto della directory /dev esuli dallo scopo di questa lezione, può comunque essere istruttivo dare un’occhiata a una voce di un dispositivo di archiviazione. I file di dispositivo per le schede SD, in genere, utilizzano mmcblk come prefisso:

$ ls -l mmcblk*
brw-rw---- 1 root disk 179, 0 Jun 30 01:17 mmcblk0
brw-rw---- 1 root disk 179, 1 Jun 30 01:17 mmcblk0p1
brw-rw---- 1 root disk 179, 2 Jun 30 01:17 mmcblk0p2

I dettagli dell’elenco di un file di dispositivo sono diversi da quelli tipici dei file:

  • A differenza di un file o di una directory, la prima lettera del campo dei permessi è b. Questo indica che i dati vengono letti e scritti nel dispositivo in blocchi anziché in singoli caratteri.

  • Il campo della dimensione è costituito da due valori separati da una virgola anziché da un singolo valore. Il primo valore generalmente indica un driver particolare all’interno del kernel, mentre il secondo valore definisce uno specifico dispositivo gestito dal driver.

  • Il nome del file utilizza un numero per il dispositivo fisico; quindi la convenzione di nomenclatura si adatta specificando il suffisso della partizione con una p seguita da un numero.

Note

Ogni dispositivo di sistema dovrebbe avere una voce in /dev. Poiché il contenuto della directory /dev viene creato durante l’installazione, spesso ci sono voci per tutti i driver e dispositivi possibili, anche se non esiste alcun dispositivo fisico.

Esercizi Guidati

  1. Descrivi i seguenti termini:

    Processore

    CPU

    GPU

  2. Se esegui principalmente applicazioni di editing video (un’attività ad alta intensità di calcolo), quali componenti e caratteristiche ti aspetti che abbiano il maggiore impatto sull’usabilità del sistema?

    Core della CPU

    Velocità della CPU

    Memoria di sistema disponibile

    Sistema di archiviazione

    GPU

    Display video

    Nessuno dei precedenti

  3. Quale dovrebbe essere il nome del dispositivo in /dev per la partizione 3 della terza unità SATA in un sistema?

    sd3p3

    sdcp3

    sdc3

    Nessuno dei precedenti

Esercizi Esplorativi

  1. Esegui il comando lsblk sul tuo sistema e trova le informazioni richieste qui sotto. Se non hai a disposizione un sistema, considera l’elenco riportato da lsblk -f per il sistema Raspberry Pi menzionato precedentemente nella sezione “Archiviazione”:

    $ lsblk -f
    NAME        FSTYPE LABEL  UUID                                 MOUNTPOINT
    mmcblk0
    +-mmcblk0p1 vfat   boot   9304-D9FD                            /boot
    +-mmcblk0p2 ext4   rootfs 29075e46-f0d4-44e2-a9e7-55ac02d6e6cc /
    • Tipo e numero dei dispositivi

    • Struttura delle partizioni di ogni dispositivo

    • Tipo di file system e punto di montaggio per ogni partizione

Sommario

Un sistema è la somma dei suoi componenti. I diversi componenti influenzano costi, prestazioni e usabilità in modi diversi. Sebbene esistano configurazioni comuni per workstation e server, non esiste una configurazione migliore delle altre.

Risposte agli Esercizi Guidati

  1. Descrivi i seguenti termini:

    Processore

    Un termine generale per qualsiasi tipo di processore. Viene spesso utilizzato in modo errato come sinonimo di CPU.

    CPU

    Un’unità centrale di elaborazione (è l’acronimo di Central Processing Unit). È un’unità di elaborazione che fornisce supporto per attività computazionali generiche.

    GPU

    Un’unità di elaborazione grafica (è l’acronimo di Graphical Processing Unit). È un’unità di elaborazione ottimizzata per supportare le attività che coinvolgono aspetti grafici.

  2. Se esegui principalmente applicazioni di editing video (un’attività ad alta intensità di calcolo), quali componenti e caratteristiche ti aspetti che abbiano il maggiore impatto sull’usabilità del sistema?

    Core della CPU

    Sì. Più core supportano le attività contemporeanee di presentazione e rendering richieste dall’editing video.

    Velocità della CPU

    Sì. Il rendering video richiede una notevole quantità di attività di calcolo.

    Memoria di sistema disponibile

    Probabilmente. Il video non compresso utilizzato nell’editing è grande. I sistemi a uso generico spesso sono dotati di 8 gigabyte di memoria; 16 o addirittura 32 gigabyte di memoria consentirebbero a un sistema di gestire più fotogrammi di video non compresso, rendendo le attività di editing più efficienti.

    Sistema di archiviazione

    Sì. I file video sono grandi. L'overhead delle unità SSD locali contribuisce a un trasferimento più efficiente; unità di rete più lente sarebbero controproducenti.

    GPU

    No. La GPU influisce principalmente sulla presentazione del video renderizzato.

    Display video

    No. Il display video influisce principalmente sulla presentazione del video renderizzato.

    Nessuno dei precedenti

    No. Alcuni di questi elementi hanno evidenti impatti sull’usabilità del sistema nel contesto presentato.

  3. Quale dovrebbe essere il nome del dispositivo in /dev per la partizione 3 della terza unità SATA in un sistema?

    sd3p3

    Non corretto. L’unità 3 dovrebbe essere sdc e non sd3

    sdcp3

    Non corretto. La partizione 3 dovrebbe essere 3 e non p3

    sdc3

    Corretto

    Nessuno dei precedenti

    Non corretto. Una delle opzioni è la risposta corretta.

Risposte agli Esercizi Esplorativi

  1. Esegui il comando lsblk sul tuo sistema e trova le informazioni richieste qui sotto. Se non hai a disposizione un sistema, considera l’elenco riportato da lsblk -f per il sistema Raspberry Pi menzionato precedentemente nella sezione “Archiviazione”:

    $ lsblk -f
    NAME        FSTYPE LABEL  UUID                                 MOUNTPOINT
    mmcblk0
    +-mmcblk0p1 vfat   boot   9304-D9FD                            /boot
    +-mmcblk0p2 ext4   rootfs 29075e46-f0d4-44e2-a9e7-55ac02d6e6cc /

    Le risposte che seguono si basano sull’elenco riportato da lsblk -f per il sistema Raspberry Pi menzionato in precedenza . Le tue risposte potrebbero essere diverse:

    Tipo e numero dei dispositivi

    C’è un dispositivo: mmcblk0. Sappiamo che, per convenzione, mmcblk è una scheda di memoria SD.

    Struttura delle partizioni di ogni dispositivo

    Ci sono due partizioni: mmcblk0p1 e mmcblk0p2.

    Tipo di file system e punto di montaggio per ogni partizione

    La partizione 1 utilizza il file system vfat. Viene utilizzata per avviare il sistema ed è montata come /boot. La partizione 2 utilizza il file system ext4. Viene utilizzata come file system principale ed è montata come /.

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 1)

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.