Introduzione ai sistemi GNU/Linux

Transcript

Introduzione ai sistemi GNU/Linux
Introduzione ai sistemi
GNU/Linux
Davide Albanese
[email protected]
Questa opera è pubblicata sotto una licenza Creative Commons
Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia
1
Il Codice Sorgente


Insieme di istruzioni scritte in
un qualche linguaggio (di
programmazione) humanreadable
Il codice sorgente che
costituisce un programma è
solitamente contenuto in uno
o più file di testo
Esempio di Codice
d Sorgente Python


Il codice sorgente deve essere convertito in un file eseguibile
da un compilatore o eseguito on the fly da un interprete
La decompilazione (tecnica di reverse engineering) può essere
usata per generare il codice sorgente dal file eseguibile
2
Il Codice Sorgente
Codice
Sorgente
Compilatore
Eseguibile
Interprete
(compila on the fly)
Decompilazione (reverse engineering)
Scopi:

Input del processo che produce un programma eseguibile

Studio

Componente vitale nell'attività del porting

Riusabilità delle porzioni di codice
3
Architettura del sistema
GNU/Linux

Nasce come sistema:
multitasking
 multiutente
Significa che è stata pensata per l'uso
contemporaneo da parte di più utenti (da diversi
terminali)



Questo comporta conseguenze non del tutto
intuitive nel caso in cui, come sempre più
spesso oggi accade, esso venga usato come
stazione di lavoro da un utente singolo
4
Architettura del sistema
GNU/Linux

Rigida separazione tra:


Kernel: è il nucleo del sistema. Gestisce le risorse
hardware
Processi: sono le unità di esecuzione dei programmi,
vanno dai comandi base di sistema alle applicazioni
con interfaccia grafica
processo
processo
system call
processo
CPU
Kernel
disco
processo
user space
memoria
kernel space
5
Gerarchia delle Directory

/ : directory root, alla base della gerarchia

/bin : comandi/strumenti essenziali

/lib : librerie essenziali di sistema

/usr : tutte le altre applicazioni/librerie




/sbin : strumenti essenziali per l'amministrazione di
sistema
/etc : contiene file di configurazione del sistema
/dev : contiene file che rappresentano le varie periferiche
hardware
/tmp : file temporanei (il contenuto viene cancellato
all'avvio)
6
Gerarchia delle Directory


/var : file variabili (dove i programmi registrano
informazioni)
/proc : file che forniscono informazioni sui processi
correnti

/home : contiene le directory personali per gli utenti

/root : directory home del superutente


/mnt : contiene i punti di mount per i filesystem
temporanei ad uso dell'amministratore
/media : contiene i punti di mount per i media rimovibili
(CD-ROMS, DVD's, Drive USB)
7
Il File System e il montaggio del
disco




Un filesystem è, informalmente, un meccanismo con il
quale i file sono immagazzinati e organizzati su un
dispositivo di archiviazione
Nei sistemi GNU/Linux non esiste il concetto di volume
o disco come entità separata
I nuovi dispositivi di archiviazione che contengono un
filesystem devono essere inseriti in maniera opportuna
all'interno dell'albero delle directory (per esempio
in /media)
Questa operazione si chiama montaggio del disco,
che generalmente avviene in modo automatico
8
Utenti e Gruppi
GNU/Linux è un sistema multiutente:


fornisce dei meccanismi di identificazione dei
vari utenti sulla base dei quali possa venire
imposto un adeguato controllo degli accessi e
delle operazioni che si possono fare
gli utenti possono venire raggruppati in gruppi.
Ogni utente è sempre associato almeno un
gruppo (di default)
9
File e Directory
Esistono 3 livelli di privilegi:

privilegi dell'utente (u)

privilegi del gruppo (g)

privilegi di tutti gli altri (o)
e 3 permessi di base:

permesso di lettura (r)

permesso di scrittura (w)

permesso di esecuzione (x)
10
I Permessi dei File


A ogni file è associato un utente (proprietario) e ad un
gruppo
Per ciascuno dei 3 livelli di privilegi è possibile
specificare i permessi
tipo di
file
r
w
x
utente
- : file regolare
d : directory
l : link simbolico
r
gruppo
x
-
-
-
altri
11
Il superutente (root)




La maggior parte delle mansioni amministrative sul
sistema operativo, come l'aggiunta degli utenti o
l'installazione di software, richiede i privilegi di
accesso del superutente (amministratore di sistema,
root)
Se così non fosse gli utenti normali potrebbero
compromettere, danneggiare intenzionalmente o
casualmente il sistema
Il superutente è un utente speciale che ha accesso
illimitato al sistema
In Ubuntu il primo account utente che viene creato
durante l'installazione è in grado, in modo predefinito, 12
di eseguire compiti amministrativi
L'ambiente grafico



Il desktop è ciò che si vede dopo l'accesso al computer ed è ciò
che si utilizza per la gestione e l'avvio delle applicazioni
L'ambiente grafico predefinito di Ubuntu è GNOME
Altri ambienti grafici popolari sono KDE e Xfce con il loro
aspetto particolare
13
Ubuntu e GNOME


Un pannello è un'area del Desktop GNOME dove si ha accesso ad
azioni e informazioni
Pannello superiore:



Barra dei menù: Applicazioni, Risorse, Sistema
Icone varie e Applet (piccole applicazioni la cui interfaccia utente risiede in un
pannello)
Area di notifica visualizza le icone di diverse applicazioni per indicare la loro
attività

Volume

Orologio
Pannello inferiore:
Mostra scrivania
Icone varie
Elenco finestre
Selettore area di lavoro
14
Il File Manager Nautilus




Il file manager Nautilus offre un modo semplice e integrato
di gestione dei propri file
Anche la scrivania viene gestita da Nautilus. La scrivania è
posta al di sotto di tutti gli altri elementi visibili sullo
schermo
La scrivania a sua volta è una cartella all'interno della
propria home (/home/utente/Scrivania)
Per aprire una nuova finestra di Nautilus, fare doppio clic
su un'icona opportuna sulla scrivainia, come ad esempio
Home o Computer, oppure scegliere una voce dal menù
Risorse sul pannello superiore
15
Utility di base

Gedit: Applicazioni -> Accessori -> Editor di testo

Monitor di sistema: Sistema -> Amministrazione ->
Monitor di Sistema

Aspetto: Sistema -> Preferenze -> Aspetto
16
Installare e Rimuovere il Software




Le distribuzioni GNU/Linux vengono fornite un'ampia
selezione delle applicazioni più utilizzate, installate in
modo predefinito
Tuttavia, c'è il bisogno di installare/aggiornare il
software per soddisfare le proprie esigenze
Un gestore di pacchetti è un programma che installa e
rimuove il software, tenendo traccia di tutti i
componenti di cui necessitano i singoli programmi
In Ubuntu i pacchetti software hanno estensione .deb
dovuta alla sua relazione con la distribuzione
GNU/Linux Debian
17
Installare e Rimuovere il Software

Con Ubuntu è possibile utilizzare tre gestori di
pacchetti differenti:




Aggiungi/Rimuovi applicazioni: il metodo più
semplice per installare e rimuovere programmi.
Synaptic: controllo avanzato del software e di altri
componenti del sistema.
Apt: se si preferisce usare il terminale.
Per utilizzare questi programmi sono necessari
privilegi di amministratore
18
Repository Software di Ubuntu


Un repository software è un archivio da cui è possibile
scaricare e installare software
Per organizzare il software, i repository di Ubuntu sono
suddivisi in quattro componenti:




main: contiene applicazioni libere che sono supportate
pienamente dal team di Ubuntu
restricted: software comuni mantenuti dal team di Ubuntu
che non sono disponibili con una licenza pienamente libera
universe : insieme di software del mondo libero non
supportato dal team di Ubuntu
multiverse: contiene software non libero non supportato dal
team di Ubuntu
19
Esempio: installare Inkscape dal
repository di Ubuntu
Inkscape è un editor di grafica vettoriale open
source, simile ad Adobe Illustrator,
Corel Draw, Freehand. E' presente nel
repository di Ubuntu
1. Applicazioni → Aggiungi/Rimuovi applicazioni →
Grafica
2. Selezionare inkscape
3. Applica modifiche
20
Esempio: aggiungere il repository
Medibuntu
E' un repository di pacchetti che non possono essere inclusi
nella distribuzione di Ubuntu per ragioni legali (copyright,
licenze, ecc...)
https://help.ubuntu.com/community/Medibuntu
1. Sistema → Amministrazione → Sorgenti software e quindi
Software di terze parti
2. Inserire la riga APT per il repository
•
deb http://packages.medibuntu.org/ hardy free non­free
3. Firma digitale dei file forniti, rendendo facile la verifica
dell'originalità e dell'integrità dei file
•
Sistema → Amministrazione → Synaptic → Ricarica →
Cerca → medibuntu-keyring → Applica
21