Montare la partizione... utente root... percorso relativo... aprire il terminale... Chi si avvicina per la prima volta al mondo Linux potrebbe rimanere disorientato da termini che, pur applicabili e presenti anche su Windows, non sono così comuni sul sistema operativo con le finestre quanto su quello con il pinguino. Ecco allora un piccolo glossario per comprendere meglio alcuni termini.

[LINUX] Glossario newbie

Ambiente Desktop (o Desktop Environment):

Termine che indica un insieme di programmi che compongono il complesso dell'interfaccia grafica e che generalmente rispettano tutti uno stesso tema grafico. Tra questi programmi sono presenti almeno un gestore di finestre (vedi sotto), un gestore di file (o file manager) e un terminale (vedi sotto). Gli ambienti Desktop più completi (come Gnome o KDE) comprendono anche altri programmi come gestore di sessione (vedi sotto), programmi di accessibilità, programmi di base (browser, client mail, media player, ...), utilità di sistema, ...

Se non siamo sicuri su quale ambiente Desktop stiamo utilizzando, possiamo toglierci ogni dubbio digitando il seguente comando in un terminale virtuale (vedi sotto): echo $XDG_CURRENT_DESKTOP

[LINUX] Glossario newbie

Bash:

Acronimo di Bourne Again Shell è la shell testuale (vedi sotto) presente di default in moltissime distribuzioni Linux. È stata scelta per la compatibilità con lo standard POSIX e per la presenza di numerose funzioni già integrate e espandibili, per questo è quasi lo standard per la creazione di script (vedi sotto).

[LINUX] Glossario newbie

codice sorgente

È la "ricetta" con cui viene creato un programma, una lista di istruzioni scritte in un linguaggio di programmazione. Si parla di open source quando il codice sorgente di un programma viene fornito dallo sviluppatore con diverse licenze di utilizzo; al contrario si parla di closed source.

» Leggi: Linux e i tar.gz: anatomia di un file "sorgente"

compilazione

Procedimento per cui si produce un file binario da un codice sorgente attraverso un programma apposito chiamato compilatore. Ogni programma nasce come codice sorgente e poi viene compilato per produrre il file che può essere eseguito dal sistema operativo. La compilazione di un programma può richiedere diverse risorse hardware e tempo, motivo per cui le distribuzioni (vedi sotto) rilasciano programmi già compilati.

demone (daemon):

È un programma in esecuzione in background che si occupa di gestire un determinato aspetto del sistema (rete, DHCP, operazioni pianificate, stampante, ...), un po' come i servizi di Windows. Generalmente questi programmi sono contraddistinti dalla lettera d alla fine del nome (cupsd, sshd, crond, udiskd, ...) ed è possibile interagirvi tramite il sistema di init (vedi sotto) o passando determinati comandi direttamente tramite il terminale (vedi sotto).

Non c'è niente di maligno nel suo nome (daemon e non demon) ma, anzi, deriva dall'idea di "angelo custode" dell'antica Grecia, che era appunto un'entità non visibile ma sempre presente e influente.

Per vedere la lista di tutti i processi attivi sul sistema in uso, demoni compresi, possiamo impartire il comando: ps -ef

[LINUX] Glossario newbie

distribuzione (diminutivo distro)

Con questo termine si indica un sistema operativo completo di programmi alla cui base c'è, solitamente, il kernel (vedi sotto) Linux. Caratteristica delle distribuzione è quella di fornire, oltre alla base del sistema, un insieme più o meno grande di programmi, alcuni dei quali possono essere già installati per impostazione predefinita sul sistema, mentre la maggior parte viene distribuita agli utilizzatori attraverso un repository (vedi sotto) e gestita da un package manager (vedi sotto).

Si parla di distro derivata quando si prende come base di partenza un'altra distro piuttosto che svilupparla da zero (in questo caso si parla di distro originale, non basata su nessun altra).

» Leggi: Anatomia di una distro Linux

gestore delle finestre (o windows manager):

È il programma responsabile della creazione e della gestione delle finestre che "incorniciano" tutti i programmi con interfaccia grafica. Si pone poco sopra il server grafico Xorg (vedi sotto) o, nelle versioni più moderne, gestiscono il protocollo Wayland (vedi sotto). Si dividono in vari tipi: compositori, "impilatori", "piastrellatori" e dinamici. I primi (compositori) sono gestori completi in quanto gestiscono non solo finestre sovrapponibili ma anche decorazioni complesse e effetti di transizione; appartengono a questa categoria Mutter, KWin, xfwm, Enlightenment, ... . Gli "impilatori" (stacking) gestiscono anch'essi finestre sovrapponibili ma senza effetti e con decorazioni semplici; sono esempi Blackbox, Openbox, Fluxbox, ... I "piastrellatori" sono gestori di finestre che riservano porzioni di schermo a determinati programmi, le finestre non sono sovrapponibili e in molti casi nemmeno spostabili, al limite possono essere raggruppate in tab; alcuni esempi sono Ion, Ratpoison, StumpWM, ... Ultimi ma non ultimi i gestori di finestre dinamici che sono un sottoinsieme dei piastrellatori, gestiscono finestre non sovrapponibili ma la cui dimensione e disposizione può variare in base al numero e all'importanza data ai programmi aperti; sono esempi awesome, dwm, i3, ...

Se siamo curiosi di sapere quale gestore delle finestre stiamo utilizzando: wmctrl -m

gestore di pacchetti (o package manager)

Programma che si occupa di installare un pacchetto software (vedi sotto) sul sistema in uso, tenendo traccia di tutti i file copiati nelle vari path (vedi sotto). Molti gestori pacchetti moderni consentono anche la ricerca e lo scaricamento dei pacchetti da un repository (vedi sotto).

» Leggi: Come si installa un programma su Linux?

gestore di sessione (o display manager):

È il programma che si presenta poco dopo l'avvio, dove possiamo inserire il nostro nome utente e la password per accedere al nostro Desktop. Può fare parte di un Ambiente Desktop e si occupa di caricare il server grafico e/o il gestore di finestre. Generalmente gestisce anche il blocco schermo, il salvataggio della sessione e il logout di uno o più utenti. Possono essere grafici come GDM, SDDM, LightDM, ... o solo testuali come getty, systemd-logind, ...

Se la nostra distro ha systemd come init (vedi sotto) il comando systemctl status display-manager ci permette di vedere il gestore di sessione in uso; altrimenti possiamo controllare l'output di pstree (eseguito come root (vedi sotto)) per trovarlo.

GNU:

Acronimo ricorsivo di GNU's Not Unix, indica una grande raccolta di vari programmi ed utilità (tra i quali Bash) che, poiché sono rilasciate con licenza GPL, possono essere utilizzati con qualunque sistema. Moltissime distro Linux integrano questi programmi ed ecco perché sarebbe più corrette riferirsi a questi sistemi operativi come GNU/Linux piuttosto che solo Linux; faremo così contento il fondatore di GNU e autore di moltissimi programmi, Richard Stallman.

» Leggi: Il dizionario dei tipi di licenze utilizzate per distribuire i programmi

[LINUX] Glossario newbie

kernel:

È il nucleo principale di un sistema operativo che si occupa di dialogare direttamente con l'hardware e fa da mediatore tra questo e i vari programmi; in questo caso è Linux!

Per conoscere la release e la versione del kernel in uso possiamo dare il comando uname -rv

init:

Termine con il quale si indica il primo programma che si avvia ed è caricato direttamente dal kernel. È il demone "padre", responsabile dell'esecuzione di tutti gli altri demoni e come tale può controllarli. Esistono molti sistemi init dal classico Unix composto da shell script (vedi sotto) da eseguire secondo un ordine preciso al più completo e complesso systemd in grado di avviare più processi contemporaneamente, passando per vie di mezzo come OpenRC o Upstart.

Conoscere il sistema di init utilizzato sul nostro sistema è facilissimo: ps 1

modulo:

Generalmente per modulo si intende un'estensione del kernel che può essere inclusa (o esclusa) per gestire (o rendere non operative) alcune particolari funzioni o periferiche hardware.

Possiamo vedere la lista dei moduli caricati con il comando lsmod. Alcuni moduli dipendono da altri e sempre dall'output di lsmod possiamo vedere questa relazione di dipendenza.

montare (mount):

Azione riferita generalmente ad un disco interno o esterno, una penna USB, un CD/DVD ma anche un immagine di un disco in vari formati (ad esempio ISO). Quando viene collegata una delle suddette periferiche queste sono raggiungibili ad un percorso (vedi sotto) simile a /dev/sdX, mentre un CD/DVD può essere raggiungibile /dev/srX o /dev/cdrom; ma in questi percorsi si può leggere solo i dati grezzi (i bit, 0 e 1). Questi dati grezzi possono acquistare un significato e diventano immagine, file di testo, programmi, musica, .... solo se interpretati secondo l'ordine del filesystem proprio della partizione dove sono salvati. Per questo occorre montare il disco, o meglio, la partizione del disco, cioè indicare al sistema come interpretare i dati contenuti in questi supporti. Nella pratica, oltre all'origine (i su menzionati /dev/sdX o /dev/cdrom) occorre un percorso (vedi sotto) vuoto da indicare come destinazione dell'operazione di mount (qui saranno poi raggiungibili i dati interpretati, quindi immagini, musica, testo, ...). In alcuni casi si deve indicare anche il tipo di filesystem con l'opzione -t. Nei moderni sistemi, un particolare demone (di solito, udiskd) si occupa di eseguire l'operazione di mount direttamente alla rilevazione della periferica, non appena questa viene collegata al computer.

É possibile vedere quanti, quali e dove sono tutti dispositivi montati in un sistema, semplicemente con mount | column -t

pacchetto software (o pacchetto)

Con questo termine si indica un archivio compresso, con estensione che varia in base al gestore pacchetti in uso, che contiene un programma o una libreria compilata e pronta per essere installata sul sistema.

parametro:

È una particolare variabile di Bash può essere posizionale (riferita alla posizione che segue il comando) o speciale (che può includere più parametri).

È riferito anche a delle opzioni da passare al kernel per modificare quelle che con la compilazione sono state rese predefinite. Possiamo modificare questi parametri direttamente al boot, inserendoli ad esempio in fondo alla stringa di GRUB_CMDLINE_LINUX_DEFAULT="" nel file /etc/default/grub, oppure in maniera temporanea tramite sysctl o in maniera permanente editando il file /etc/sysctl.conf o ancora aggiungendo un file contenente la modifica in /etc/sysctl.d/.

Lanciando sysctl -a, restituisce la lista dei parametri e dei loro valori del kernel in uso.

percorso (path):

È l'indirizzo dove si trova una risorsa (ad esempio, un file) nel sistema; può essere assoluto, in questo caso si parte sempre dalla root (vedi sotto) (ad esempio, /home/utente/Scrivania/file.txt) oppure relativo e in questo caso si parte dalla posizione da cui stiamo lavorando, iniziando il percorso con un punto (.) che indica proprio la posizione corrente (ponendo il caso di trovarsi già in /home/utente, il percorso relativo a file.txt sarà ./Scrivania/file.txt).

Per verificare la posizione corrente, semplicemente: pwd

POSIX

Insieme di standard che deve essere rispettato per mantenere la compatibilità di applicazioni e sistema operativo.

repository (diminutivo repo)

Sistema per la distribuzione di pacchetti software appositamente creati per la distribuzione in uso o comunque per uno stesso gestore di pacchetti.

root:

È l'utente amministratore che ha poteri assoluti sul sistema (root è Dio!).

Se espresso al femminile (la root) indica la posizione iniziale dalla quale si diramano poi tutti i percorsi del sistema e che è rappresentata dallo slash (/).

Server grafico Xorg:

È il programma che si pone alla base dell'interfaccia grafica, sopra il quale troviamo il gestore finestre e l'ambiente Desktop. Era l'unico programma di questo tipo presente fino alla nascita di Wayland (vedi sotto) ma è tuttora largamente utilizzato.

[LINUX] Glossario newbie

script:

Serie di istruzioni che possono essere scritte in diversi linguaggi (Shell, Perl, Python, ...), collegate tra loro a formare veri e propri programmi.

shell:

Termine con il quale si indica un'interfaccia per interazione tra utente e computer che fa da interprete di comandi. Può riferirsi ad un interfaccia grafica o, più comunemente, ad un interfaccia testuale (riga di comando). In questo secondo caso, come detto, su quasi ogni distro Linux, è Bash ma ne esistono altri tipi (come Korn, Fish, Zsh, ...).

Per verificare la shell testuale in esecuzione possiamo digitare echo $SHELL

swap

Partizione dedicata al salvataggio di dati poco utilizzati ma comunque utili al sistema che si trovano sulla memoria RAM, quando questa è quasi del tutto occupata. Può essere utilizzata anche per la funzione di ibernazione, in questo caso, copiando l'intero contenuto della RAM. Negli ultimi anni sono nate alcune alternative che hanno più o meno la stessa funzione: la partizione può essere sostituita da un file (e in questo caso si parla di Swapfile) oppure da una porzione di dati che viene compressa per occupare meno spazio ma conservata sempre in RAM (in questo caso si parla di ZRAM) oppure da una porzione di dati che viene compressa e viene salvata sempre su una partizione dedicata o su un file (ZSwap).

Con il seguente comando si possono avere indicazioni sul tipo di swap utilizzata:

cat /proc/swaps

systemd

Insieme di programmi per la gestione snella ed efficiente delle varie funzioni di una distro. Nato come sistema init si è evoluto per gestire molti altri aspetti come, ad esempio: rete, DNS, "montaggio" di dischi o partizioni, attività programmate, log di sistema, gestione utenti, sincronizzazione orario, creazione container,...

Criticato da alcuni che lo accusano di non rispettare la Filosofia Unix.

terminale:

Ambiente che gestisce l'immissione di comandi e la ricezione dei risultati per e da vari programmi eseguiti su un computer, molto spesso, attraverso una shell. Spesso usato come sinonimo di tty (teletype o teleprinter); qui potete trovare maggiori informazioni sulla storia di questi nomi.

Si parla di terminale virtuale quando si utilizza attraverso l'interfaccia grafica, aprendo una finestra che contiene il terminale.

[LINUX] Glossario newbie

Tux

È la mascotte di Linux, identificata come un pinguino (che però ha zampe e becco interamente di colore giallo). Ideata da Lerry Ewing nel 1996 per un concorso indetto apposta per trovare una mascotte, seguendo l'idea del pinguino proposta del creatore di Linux, Linus Torvalds, che adora questo animale. In seguito è stato "battezzato" come Tux che, in puro stile Unix, è l'acronimo di Torvalds UniX (vedi sotto).

[LINUX] Glossario newbie

Unix

Sistema operativo proprietario sviluppato negli anni '70 da Ken Thompson, Dennis Ritchie e altri che ha determinate caratteristiche come portabilità, multiutente, multitasking,... Le convenzioni adottate nello sviluppo si sono tradotte in seguito nello standard POSIX. Si parla di sistema Unix-like (come Linux) se questo ha le stesse caratteristiche senza per forza ricalcarle completamente.

Wayland:

Protocollo di comunicazione per gestori di finestre, sviluppato per superare i limiti del server grafico Xorg. Attualmente supportato da pochi ambienti Desktop è, anche per questo, ancora scarsamente diffuso.

[LINUX] Glossario newbie

Ci sono altri termini il cui significato vi è ignoto o che volete approfondire?

» Leggi: Da Windows a Linux: guida per un passaggio indolore