Il sistema operativo GNU Linux Lettura 1

Il sistema operativo GNU Linux e suo utilizzo

Il sistema operativo Linux è l’alternativa open source creato nel 1991 da Linus Torvards effettuando delle modifiche ad un sistema operativo Unix denominato “Mimix”. SI è diffuso prima come sistema operativo in ambito professionale e per l’installazione di macchine server su Internet, fino ad essere poi diffuso con varie modifiche in ambiente PC Desktop e Embedded.
Basti pensare che il sistema Android è un porting fatti da Google di Linux con delle personalizzazioni molto spinte, così come Mac OSX come spiegato in un paragrafo precedente.
Esistono diverse versioni del sistema operativo con varie interfacce grafiche e software personalizzati tutti ovviamente open source.
Alcune caratteristiche del sistema operativo, sono la multi-utenza, il multi-tasking sia virtuale che reale (nel primo caso diverse attività sono eseguite su una singola CPU assegnandola con delle politiche di ai vari programmi che chiedono l’esecuzione, nel secondo caso il sistema di calcolo dispone di più CPU, che si ripartiscono le richieste provenienti da più programmi), e la sicurezza (caratteristica non di poco conto).
Sulla sicurezza possiamo aggiungere che, il sistema Linux è quasi immune dall’essere attaccato da virus (qualche tentativo solo nelle prime versioni si ricordano qualche attacco virale), inoltre dispone di altre funzionalità avanzate nella gestione delle funzionalità di rete fortemente orientate alla sicurezza.
Come per il sistema Windows, Linux dispone di un’interfaccia CLI, oltre che della GUI, e quindi esamineremo i comandi per la gestione dei files e delle cartelle. Per esaminare tali comandi occorre innanzitutto, vedere come sono organizzati i files e le cartelle dal gestore delle informazioni di Linux.
Le caratteristiche principali sono:

  • Ogni unità a disco fisso presente nel computer può essere divisa in varie parti dette partizioni. Linux identifica ogni partizione con un’unità logica diversa. Possono essere presenti più partizioni ad esempio se si ha anche Windows sul computer.
  • Linux a sua volta può avere varie partizioni ma identifica tutte le partizioni mediante una cartella radice detta “root device” identificata da “/”. Se la root device sia fatta da una o più partizioni a Linux non importa esso definisce un unico albero di diramazione delle cartelle.
  • È sempre possibile aggiungere (montare) altre partizioni ma sempre sotto /.

Ogni utente del sistema Linux all’accesso (login), viene posizionato nella sua cartella personale detta “Home”. La cartella Home è indicata con il carattere tilde “ “.
Nel sistema Linux possono essere presenti più utente, in aggiunta all’utente amministratore indicato con il nome root. Per ogni utente non “root” la cartella Home è una sotto cartella del percorso /home.
Quindi ad esempio un utente “pippo” avrà la sua cartella home nel percorso /home/pippo.
Per l’utente “root” la cartella home si trova nel percorso /root. Il sistema Linux non consente l’uso diretto dell’utente amministratore a meno di non eseguire uno specifico comando che vedremo più avanti. Questo metodo è utilizzato dal sistema per responsabilizzare gli utenti nelle azioni che svolte in maniera non corretta possono portare ad azioni irreversibili sui files e le cartelle del sistema.
Nel sistema Linux il percorso assoluto è indicato a partire dalla cartella radice “/”, mentre il percorso relativo come per il sistema Windows a partire dalla carella puntata in quel momento dal sistema operativo.
L’interfaccia CLI del sistema Linux si attiva eseguendo il terminale.
Struttura ad albero rovesciato del filesystem di Linux

Analizziamo in dettaglio la struttura del filesystem di Linux, che partendo dalla cartella radice possiede una struttura come quella rappresentata nello schema:
nel sistema operativo Linux, all’atto dell’installazione, crea la struttura mostrata nello schema, nella cartella home vengono create tante cartelle quanti sono gli utenti creati (nello schema user1 e user2), e la cartella root, dell’utente amministratore.
Descriviamo ora la funzione di ogni cartella:

  • /bin contiene i files eseguibili da parte di utenti anche non amministratore come i comandi per la creazione di cartelle, files di testo, il compilatore c++ se installato ecc.;
  • /boot contiene l’immagine del sistema operativo (kernel o nucleo) che viene caricata subito dopo la fase di accensione e diagnostica del calcolatore. Ogni volta che il sistema operativo Linux effettua un aggiornamento software viene sostituito la vecchia immagine del kernel con la nuova.
  • /dev contiene dei collegamenti a tutti i dis3positivi che sono installati e riconosciuti dal sistema, oppure che possono essere installati in seguito. Ad esempio nei vecchi computer gli hard disk venivano identificati con hda, hdb, hdc, hdd, ecc. così come i lettori di cdrom/dvd. Nei nuovi computer dotati di nuovi hard disk cambia l’interfaccia di connessione alla scheda madre con sda, sdb, sdc, ecc. La CPU viene identificata con cpu, la prima interfaccia seriale ttyS0, la seconda ttyS1, e così via. Un’altra cartella speciale dove si possono ottenere informazioni direttamente nell’interfaccia CLI è la cartella /proc che contiene informazioni sull’hardware in funzione e sul suo stato.
  • /etc è la cartella che contiene tutti i files e sottocartelle che contengono tutte le informazioni di configurazione del sistema operativo e del software applicativo eventualmente presente. Solo l’utente amministratore può modificare la configurazione di tali files.
  • /home contiene tutte le cartelle personali di ogni utente presente nel sistema.
  • /lib contiene tutti i files di sistema Linux fra cui le librerie aggiuntive per il funzionamento dell’hardware eventualmente non riconosciuto dal kernel Linux.
  • /mnt è la vecchia cartella ove il sistema operativo all’atto dell’installazione creava dei punti di mount automatico a dispositivi che non erano “nativi” come il lettore dvd o le partizioni del disco che non erano formattate secondo lo standard del file system di Linux, come ad esempio un disco fisso diviso in due partizioni Linux e Windows.
  • /media è la nuova cartella dove il sistema operativo Linux effettua il montaggio dei dispositivi di memorizzazione aggiuntivi.
  • /opt è una cartella accessibile a tutti gli utenti, possono essere installati i software aggiuntivi,
  • /root è cartella personale home dell’utente amministratore
  • /srv è una cartella che contiene i file di servizio del sistema operativo
  • /sbin contiene come nel caso della cartella bin i files di comando del sistema Linux, consentiti solo agli amministratori del sistema.
  • /tmp contiene i file temporanei che vengono di volta in volta creati dal sistema operativo e dai software aggiuntivi.
  • /usr è una cartella dove sono installati i software di sistema e i software aggiuntivi.
  • /var contiene varie sottocartella fra cui la cartella log che contiene i files registi delle attività del sistema.

I comandi per la gestione delle cartelle nel sistema Linux

In stretta analogia con il sistema Windows il sistema Linux dispone di vari comandi per la gestione delle cartelle. In generale la struttura dei comandi Linux è:

comando [opzioni] [percorso] [files]

come già visto in precedenza, gli argomenti fra parentesi quadre sono opzionali.
Il comando per visualizzare l’elenco dei files e delle sottocartelle di un percorso è:

ls [opzioni] [percorso] [files]

ad esempio il comando

ls /home/user1

visualizza i files e le sottocartelle della cartella Home dell’utente user1.

Invece il comando

ls /opt/*.odt

visualizza i files presenti con estensione odt nella cartella opt.

Alcune opzioni del comando ls sono riportate nella tabella:

OpzioneDescrizione effetto
-CElenca i files ordinati verticalmente per colonna
-RElenca anche il contenuto delle eventuali sottocartelle presenti nel percorso interrogato dal comando ls
-aElenca tutti i files anche quelli che cominciano con il carattere “.” (nel sistema Linux sono i files nascosti).
-hElenca i files e le cartelle, per i files visualizza la loro dimensione non in blocchi ma in Megabyte se si indica il suffisso M.

Per cambiare la cartella il comando nel sistema Linux è.

cd [opzioni ][percorso]

in particolare Linux come sistema operativo indica con “/” la cartella “~” che indica la cartella personale dell’utente. Inoltre è disponibile il comando pwd per ottenere il percorso corrente puntato dal sistema operativo Linux.

In base a quanto esposto si definisce il Punto di Mount:
Rappresenta la cartella o il percorso da cui si accede ad un’altra partizione o ad altro supporto di memorizzazione. Non tutte le partizioni e supporti sono montati all’avvio di Linux.
Ogni supporto di memorizzazione in linux viene identificato da una device o da un file nella cartella /dev.
Le unità di memorizzazione devono quindi essere montate, il S.O., per il montaggio automatico esegue i seguenti passi:

  • All’installazione Linux rileva tutti i supporti presenti sul sistema;
  • Mette in genere in esecuzione il programma automounter per montare i supporti in modo automatico.
  • Riesce a montare diversi tipi di supporti e partizioni comprese quelle Windows,

Il sistema operativo mette a disposizione un comando amministrativo, per montare al volo eventuali dispositivi aggiuntivi.

Gestione di Cartelle in Linux

Comandi per la gestione di file e cartelle in dettaglio

Il comando per la creazione delle cartelle in Linux è:

mkdir [opzioni] nome cartella,

ad esempio

mkdir /home/usser1/prova

il comando

mkdir –p /home/user1/prova/prova2/prova3

crea la cartella prova3 e crea anche le sottocartelle necessarie se non presenti. Ad esempio se nella cartella dell’utente user1 non esistono le cartelle di livello superiore esse sono create.

crea una cartella di nome “prova” nella cartella home dell’utente user1.

Comando per la cancellazione delle cartelle

Il comando per la cancellazione delle cartelle solo se vuote è:

rmdir [opzioni] [percorso]

l’opzione –r rimuove in modo ricorsivo, quindi se all’interno della cartella sono presenti delle sottocartelle esse sono rimosse dietro conferma dell’utente; l’opzione –f omette la conferma della rimozione ad ogni operazione di cancellazione.
Per la copia di files il comando è:

cp [opzioni] [percorso_sorgente][files_sorgenti] [percorso_destinazione][files_destinazione]

anche qui le opzioni sono –r per copia ricorsiva e –f per evitare la richiesta di conferma di scrittura, nel caso in cui nel percorso destinazione siano presenti files con lo stesso nome.
Il comando per la rinomina e/o lo spostamento di un intero percorso è il comando:

mv [opzioni] [percoso_srogente][file_origine] [percoso_destinazione][file_destinazione]. Per la cancellazione dei files il comando è:

rm [opzioni] [percorso][files]

le opzioni del comando rm sono –r e –f come nei comandi precedenti hanno lo stesso significato. E’ utile notare che il comando rm è potenzialmente pericoloso e può danneggiare irrimediabilmente il file system di Linux, a titolo di esempio da non provare da amministratore “rm –fr * /” attiva la cancellazione di tutti i files del sistema Linux rendendolo presto inutilizzabile.
L’opzione ricorsiva deve essere usata con molta cautela, perché anche da utente non amministratore può cancellare in modo permanente dei files personali importanti.

Video sull’Uso di Linux secondo la certificazione ICDL/ECDL