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 |
Esercizi Guidati
-
Descrivi i seguenti termini:
Processore
CPU
GPU
-
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
-
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
-
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 dalsblk -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
-
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.
-
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.
-
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 nonsd3
sdcp3
Non corretto. La partizione 3 dovrebbe essere
3
e nonp3
sdc3
Corretto
Nessuno dei precedenti
Non corretto. Una delle opzioni è la risposta corretta.
Risposte agli Esercizi Esplorativi
-
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 dalsblk -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
emmcblk0p2
. - 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 systemext4
. Viene utilizzata come file system principale ed è montata come/
.