Sei sulla pagina 1di 22

Parte 1

Introduzione a
Linux

Organizzazione a strati del software

Informatica - A.A. 2009/2010 - LInux 0.1

1
Tipi di sistemi operativi

MICROSOFT Windows

Hp/UX
OSF/1

Informatica - A.A. 2009/2010 - LInux 0.2

Origini dell’open source: Unix


• Cronistoria
– Anni ‘60: progetto MULTICS
ƒ Sviluppato ai Bell Labs
ƒ Sistema operativo multiuso interattivo
ƒ Troppo ambizioso, troppo complesso
– 1970: dalle ceneri del progetto MULTICS nasce UNICS
(in seguito UNIX)
♦ sviluppato in Assembly (linguaggio di bassissimo livello) presso
Bell Labs
♦ Nasce dallo sforzo di D. Ritchie e K. Thompson

– 1976: Kernighan & Ritchie usano un nuovo linguaggio


(il C) per riscrivere UNIX

Informatica - A.A. 2009/2010 - LInux 0.3

2
I punti di forza di Linux
• Multiutenza
– Più utenti ciascuno con le sue impostazioni
– Supporto per la sicurezza tra gli utenti
• Multitasking
– Più flussi di esecuzione in parallelo
• Supporto SMP
– Sistemi con più processori per il calcolo spinto
• Grandi capacità di networking
– Il protocollo TCP/IP nasce su una variante di Unix
• Stabile
– Le soluzioni più avanzate nei sistemi operativi sono state
implementate per prime su Unix Æ Anni di sviluppo e di bug fixing

Informatica - A.A. 2009/2010 - LInux 0.4

Concetti base di Unix


• Unix non è un unico sistema operativo ma una intera
famiglia di sistemi operativi
• Negli anni si sono diffusi tanti “dialetti” Unix
– BSD
– System V
– AIX
– HP/UX
– SCO
• Subdole incompatibilità tra i vari Unix
Æ Progetto GNU/Linux

Informatica - A.A. 2009/2010 - LInux 0.5

3
GNU

z Nel 1983 un giovane


ricercatore Richard
ricercatore,
Stallman, decide di scrivere
un nuovo sistema operativo
compatibile con il modello
UNIX
z GNU: GNU is not UNIX

Informatica - A.A. 2009/2010 - LInux 0.6

Il progetto GNU

z Un grande problema del progetto GNU è


l'assenza di un kernel
− Il nucleo del sistema operativo
− Doveva essere basato su microkernel Mach
− Mach non era ancora pronto a quel tempo

z L'ambiente GNU deve appoggiarsi su kernel


preesistenti limitandone di fatto l'adozione
preesistenti,

z Ma forse è giunto il momento di spostarsi in


Finlandia...
Informatica - A.A. 2009/2010 - LInux 0.7

4
Linux
• Nel 1991, un giovane studente universitario di
Helsinki, Linus Torvalds, decide di scrivere il
pezzo mancante (il kernel)
“I’m doing a (free) operating
system (just a hobby, won’t be
big and professional like gnu) “

z Un anno dopo, viene rilasciata la


versione 0.99
z Nasce l'ambiente GNU/Linux
z Dalla prima implementazione si è
fatta molta strada...

Informatica - A.A. 2009/2010 - LInux 0.8

Diffusione di Linux
z Ad oggi Linux è una scelta molto popolare in
molteplici contesti
− Server Web
S
− Sistemi di rete (es. server farm di Second Life)
− Applicazioni scientifiche (vedi Top500)
− Sistemi embedded (es. ebooks)

Informatica - A.A. 2009/2010 - LInux 0.9

5
Il concetto di distribuzione Linux
• Un sistema GNU/Linux si compone di
– Un kernel (Linux)
– Software applicativo
• La quantità di software è impressionante
• Le sorgenti da cui recuperare questo software sono
molteplici
• Tutto il software è disponibile sotto forma di sorgente
• E' impraticabile
i ti bil la
l soluzione
l i di scaricare
i a mano tutto
t tt
il software e compilarlo
• Non ci sono speranze di riuscire e tenere aggiornato il
software seguendo questa strada

Informatica - A.A. 2009/2010 - LInux 0.10

Il concetto di distribuzione Linux (2)


• Alcune organizzazioni si occupano di:
– Raccogliere tutto il software
– Compilarlo (o automatizzare la compilazione per
l'utente)
– Metterlo a disposizione in modo che possa essere
scaricato dalla rete da un unico repository o burned
su CD
– Mantenere il software aggiornato (sia per nuove
versioni sia per patch legate alla sicurezza)

Informatica - A.A. 2009/2010 - LInux 0.11

6
Pacchetti software
• Una distribuzione comprende svariati software
– Strumenti di sviluppo
– Editor
– Server di rete
• Ogni software viene racchiuso in un pacchetto che
comprende sia il programma che i dati di cui il
programma necessita (e.g. icone, file di appoggio,
documentazione))
• Alcuni software hanno delle dipendenze
– Non posso installare un editor grafico se non ho prima
installato l'interfaccia grafica
– Gestione di dipendenze (e conflitti) problematica
Informatica - A.A. 2009/2010 - LInux 0.12

Le principali distribuzioni Linux


• Debian Mepis
• Ubuntu
• Knoppix - Gnoppix Nasce nel 2003:
inizialmente derivata dalla
• Red-Hat distribuzione Debian, ora la
sua base di partenza è
• Fedora core Ubuntu (pacchetti sofware
• SUSE Linux con estensione .deb)
• Slackware
Sl k (t )
(.tgz)
• Gentoo
• Elenco completo: http://www.distrowatch.com

Informatica - A.A. 2009/2010 - LInux 0.13

7
Linux

I primi passi…
• Sistema multiutente
• necessità di autenticarsi al sistema
• procedura di login
• Componenti principali del sistema
• Kernel: gestisce le risorse base del sistema
(memoria, dischi, rete, CPU)
• Shell: interfaccia utente testuale Æ notevole
potenza espressiva al prezzo di una curva di
apprendimento piuttosto impegnativa
• GUI: interfaccia utente grafica, semplice da
usare, a cui si appoggia il Desktop
environment
Informatica - A.A. 2009/2010 - LInux 0.15

8
Interfaccia grafica
• GUI (Graphical User Interface) cambia aspetto
a seconda della distribuzione usata
• D
Desktop
kt environment
i t più
iù usati:
ti Gnome
G e
KDE – entrambi altamente personalizzabili

Informatica - A.A. 2009/2010 - LInux 0.16

La riga di comando
• Metodo molto rapido e potente per digitare i
comandi ed eseguire azioni
• Meno intuitiva delle interfacce grafiche
• Più o meno sempre la stessa all’apparenza
• Acceduta da SHELL (o Terminale)
• Shell del progetto GNU: BASH
– Bourne Again Shell (il seguito della shell di
Bourne), 1989-2004
• NOTA: i comandi sono sensibili all'utilizzo
delle maiuscole e delle minuscole (case
sensitive)
Informatica - A.A. 2009/2010 - LInux 0.17

9
Alcuni comandi shell
• Comandi shell di base (per la sopravvivenza)
– ls: mostra contenuto di una directory
– cd dir: entro nella directory dir
– passwd: cambio password
– file filename: stampa il tipo di file di filename
– cat filename: mostra il contenuto di filename
– pwd: stampa la directory corrente
– man command: pagine di manuale su command
• Ciascuno dei comandi di shell va battuto in seguito
al prompt
• Ciascun comando termina con la pressione del
testo Enter
Informatica - A.A. 2009/2010 - LInux 0.18

Opzioni ed argomenti
• I comandi prevedono opzioni ed argomenti
– opzioni: specificano la modalità di operazione
– argomenti: specificano su cosa si opera (spesso
si tratta del nome di un file)
• Formato:
– nome_del_comando opzioni argomenti
• Opzioni:
p
– formato esteso ( ls –all )
– formato breve ( ls -a )
♦ più opzioni con un solo – (ls -al equivalente ad
ls -a -l), se non è richiesto un argomento per l'opzione

Informatica - A.A. 2009/2010 - LInux 0.19

10
Organizzazione gerarchica dei file
z I file sono organizzati in maniera gerarchica
(ad albero)
z File: contenitori di dati
z Directory (cartelle): contenitori di file e di
directory
z Filesystem: un gruppo di directory e file, a
partire da una directory radice (root)
/

bin/ usr/

local/
Informatica - A.A. 2009/2010 - LInux 0.20

Percorsi relativi/assoluti
z Ciascun file può essere acceduto seguendo il
percorso (path) dalla directory radice al file
z P th assoluto:
Path l t sii parte
t dalla
d ll roott
z /usr/local è il path assoluto
z Path relativo: si parte da un'altra directory
z local è il path relativo di terminal rispetto alla directory /usr

bin/ usr/

local/
Informatica - A.A. 2009/2010 - LInux 0.21

11
Accesso ai file
z Simboli speciali utilizzati nei percorsi:
z “/”: indica la directory radice ed è un separatore
nel percorso
z “.”: indica la directory in cui l'utente si trova

attualmente
z “..”: indica la directory immediatamente

superiore a quella attuale


z Un percorso relativo di solito si indica riferendosi alla
directory attuale:
z ./sottodir1/sottodir2/file

z ./local

Informatica - A.A. 2009/2010 - LInux 0.22

Visione delle directory


z Come stampiamo a video la directory corrente?
z pwd

z Come visualizziamo il contenuto di una directory dir


qualsiasi?
z ls dir

z Alcune opzioni comuni di ls:


z -a: visualizza tutti i file, anche quelli nascosti (il

cui nome comincia con il carattere .)


z -r: visualizza ricorsivamente tutto l'albero di

sottodirectory
z -l: formato lungo (tutte le informazioni di un file)

Informatica - A.A. 2009/2010 - LInux 0.23

12
Utenti e gruppi
z Gli utenti dei sistemi UNIX sono classificati in user e
group
z user: nome identificativo ((di solito <= 8 caratteri)) che
caratterizza l'utente
z memorizzati nel file /etc/passwd insieme a tutte le loro
altre proprietà
z group: è un insieme di utenti
z memorizzati nel file /etc/group
z Ciascun file ha associati:
z un utente creatore del file (owner)
z un gruppo di utenti che lavorano sul file (group)
z Utenti e gruppi permettono di garantire permessi di
accessi ai file a gruppi di utenti distinti
Informatica - A.A. 2009/2010 - LInux 0.24

Permessi sui file


z Schema linux di permessi: rwx
z Read: permesso di lettura sul file
z Write: permesso di scrittura sul file
z eXecute: permesso di esecuzione del file

z Tre insiemi di permessi associati ad un file:


z owner: permessi rwx dell'owner
z group: permessi rwx del gruppo
z other: permessi rwx per tutti gli altri

Informatica - A.A. 2009/2010 - LInux 0.25

13
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Informatica - A.A. 2009/2010 - LInux 0.26

Proprietà dei file


• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

z Tipo di file e permessi particolari


z -: file regolare (eseguibile, file testo)
z b: dispositivo a blocchi
z c: dispositivo a caratteri
z d: directory
z l: link
z s: socket
Informatica - A.A. 2009/2010 - LInux 0.27

14
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

z Permessi dell'owner
z r: l'owner (root) può leggere il file
z w: l'owner (root) può scrivere il file
z x: l'owner (root) può eseguire il file
z NOTA: il bit x può anche essere impostato ad
z s: setuid bit (esecuzione con i privilegi

dell'owner)
z accesso diretto risorse HW da parte di utenti

Informatica - A.A. 2009/2010 - LInux 0.28

Proprietà dei file


• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

z Permessi del gruppo


z r: tutti gli utenti del gruppo root possono leggere
il file
z -: tutti gli utenti del gruppo root non possono
scrivere il file
z x: tutti gli utenti del gruppo root possono
eseguire il file
Informatica - A.A. 2009/2010 - LInux 0.29

15
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

z Permessi di tutti gli altri


z r: tutti gli altri possono leggere il file
z -: tutti gli altri non possono scrivere il file
z x: tutti gli altri possono eseguire il file

Informatica - A.A. 2009/2010 - LInux 0.30

Proprietà dei file


• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Numero di hard
link al file

Informatica - A.A. 2009/2010 - LInux 0.31

16
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Owner del file Gruppo del file


l'utente root il gruppo root

Informatica - A.A. 2009/2010 - LInux 0.32

Proprietà dei file


• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Dimensione del
file in byte

Informatica - A.A. 2009/2010 - LInux 0.33

17
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Data ed ora di
creazione

Informatica - A.A. 2009/2010 - LInux 0.34

Proprietà dei file


• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Path assoluto
del file

Informatica - A.A. 2009/2010 - LInux 0.35

18
Creazione di file e directory
• mkdir: creazione di directory
• rmdir: rimozione di directory
• to ch creazione
touch: i di file
fil vuotiti
• rm: rimozione di file e directory
– -r: cancella in maniera ricorsiva le sottodirectory
– -f: forza la cancellazione senza chiedere
• NOTA: in Linux NON esiste un meccanismo
semplice per l'operazione di undelete (annullamento
cancellazione file)
– se per sbaglio cancellate un file, l'avete perso
per sempre
– a meno che non siate dei bravi hacker...
Informatica - A.A. 2009/2010 - LInux 0.36

Modifica utente owner e gruppo


z chown: permette di modificare owner e gruppo
iniziale di un file
z chown <opzioni> <owner>:<gruppo> <file>
z chgrp <opzioni> <gruppo> <directory>
z -R: opera ricorsivamente sulle sottodirectory

Informatica - A.A. 2009/2010 - LInux 0.37

19
Modifica permessi su un file
z chmod: permette di modificare i permessi
associati ad un file
z Due modalità:

z Ottale - rappresentazione ottale dei permessi


z Simbolica

z Il primo set di caratteri rappresenta il tipo di


permesso: u=user, g=group, o=other, a=all (ugo)
z Il secondo set di caratteri rappresenta una maschera
dei permessi: r=read, w=write, x=execute
z fra i due set di caratteri viene messo un + per
abilitare i permessi oppure un – per disabilitarli
z ES: chmod g+x nome_file
chmod ugo+w
Informatica - A.A. 2009/2010 - LInux 0.38

Copia e spostamento di file


• cp: copia file/directory
– cp <opzioni> <sorgente> <destinazione>
– -r: copia ricorsivamente sorgente in destinazione
(con tutte le sottodirectory)
– -p: preserva (quando possibile) utenze e permessi
originali dei file
– -a: modalità archivio (equivalente a -r -p, ed altro)
• mv: sposta file/directory
– mv <opzioni> <sorgente> <destinazione>

Informatica - A.A. 2009/2010 - LInux 0.39

20
Ricerca di file
• find: cerca il file richiesto in un albero di directory
– find <directory> -name <nome file>
– find <directory> -iname <nome file>
– Permette anche di eseguire comandi sui file
trovati
– E’ lento (si scorre tutte le sottodirectory)
• locate: interroga un database di locazioni dei
file
fil
– aggiornato tramite il comando updatedb
– veloce
– non permette di eseguire comandi sui risultati
Informatica - A.A. 2009/2010 - LInux 0.40

Ricerca di contenuti nei file


• grep: cerca la stringa richiesta nell'albero di directory
specificato, e stampa le corrispondenze (match)
– grep <opzioni> <stringa> <directory/file>
– -r: opera ricorsivamente nelle sottodirectory
– -i: trascura maiuscole/minuscole (case
insensitive)
– -H: stampa il file contenente la stringa
– -n:
n: stampa il numero di riga del file contenente
la stringa

Informatica - A.A. 2009/2010 - LInux 0.41

21
Visione contenuto file
• cat: stampa il contenuto del file su terminale
• more: visione di un file non bufferizzata (solo in avanti)
• less: visione di un file bufferizzata (avanti e indietro)
– less -Mr presenta un indicatore di progresso di
lettura
• head: stampa le prime n righe di un file
– head -n 10 file
• tail: stampa le ultime n righe di un file
– tail -n 10 file
– tail -f file output bufferizzato
• echo: stampa una stringa su terminale

Informatica - A.A. 2009/2010 - LInux 0.42

Redirezione
• Deviazione dei canali standard (standard input,
standard output e standard error) da/verso altre
destinazioni
• Usa appositi comandi di redirezione
– comando > nome_file Redirezione output
– comando < nome_file Redirezione input
– comando >> nome_file
– comando1 | comando2 Redirezione
R di i output
t t con
funzione “appendi”

Pipeline

Informatica - A.A. 2009/2010 - LInux 0.43

22

Potrebbero piacerti anche