SlideShare uma empresa Scribd logo
1 de 74
Baixar para ler offline
Sistema Operativo

Il compito principale del sistema operativo è quello di permettere all'utente,
         umano o non, di interagire direttamente con la macchina.
Che cos'è GNU/Linux ?
GNU/Linux è un sistema operativo libero di tipo unix-like costituito
    dall'integrazione del kernel Linux con elementi del sistema GNU e di altro
software sviluppato e distribuito con licenza GNU GPL o con altre licenze libere.
Linux è in realtà il nome del kernel sviluppato da Linus Torvalds a partire dal
    1991 che, integrato con i componenti già realizzati dal progetto GNU
(compilatore gcc, libreria Glibc e altre utility) e da software di altri progetti, è
 stato utilizzato come base per la realizzazione dei sistemi operativi e delle
  distribuzioni che vengono normalmente identificate con lo stesso nome.
- kernel (monolitico)‫‏‬
- multitasking
- multiutente
- free software (quindi a sorgente aperto)‫‏‬
- gratuito
- codice macchina per il proprio processore
- più sicuro perché continuamente aggiornato
  da developers di tutto il mondo (linux community)‫‏‬
- disponibilità per ogni piattaforma
- estrema versatilità
Alcune differenze tra Windows e Linux

             Porte seriali
             Windows         Linux
             COM1            /dev/ttyS0
             COM2            /dev/ttyS1
             COM3            /dev/ttyS2
             COM4            /dev/ttyS3

             Porte parallele
             Windows       Linux
             LPT1:         /dev/lp0
             LPT2:         /dev/lp1

             CD-ROM
             Windows         Linux
             D:              /dev/hdc
             E:              /dev/hdd
Alcune differenze tra Windows e Linux




Windows → Case Insensitive (nessuna differenza)‫‏‬

Linux → Case Sensitive (differenza tra caratteri maiuscoli e minuscoli)‫‏‬
Alcune differenze tra Windows e Linux

  Windows usa le estensioni per sapere di che tipo di file si tratta: tutti i documenti
       Word finiscono con .doc, i fogli di calcolo Excel con .xls e così via.

 Linux riconosce i tipi di file usando il 'magic number', vale a dire una sequenza di
    byte presente all'inizio del file. Così, ad esempio, se all'inizio del file trova la
sequenza '0xffd8', Linux sa che il file in questione è un'immagine in formato jpeg, a
                     prescindere dall'estensione che può avere.

Le uniche estensioni usate da Linux sono: un punto che precede il file e che segnala
 al sistema che si tratta di un file (o directory) nascosto, e la tilde come estensione
                        finale che indica trattarsi di una copia.
Secondo Richard Stallman, fondatore del progetto GNU, e secondo la Free
   Software Foundation, la dicitura Linux (senza prefisso "GNU/") per l'intero
sistema operativo sarebbe erronea in quanto il nome Linux è attribuibile al solo
 kernel e il sistema, strutturato a partire dai componenti dell'originale progetto
             GNU, dovrebbe più propriamente chiamarsi GNU/Linux.
L'espressione "software libero" (free software) si riferisce alla libertà dell'utente di
     eseguire, copiare, distribuire, studiare, cambiare e migliorare il software
quattro tipi di libertà per gli utenti:

        0 Libertà di eseguire il programma, per qualsiasi scopo.

1 Libertà di studiare come funziona il programma e adattarlo alle proprie
                                necessità.

     2 Libertà di ridistribuire copie in modo da aiutare il prossimo.

  3 Libertà di migliorare il programma e distribuirne pubblicamente i
 miglioramenti, in modo tale che tutta la comunità ne tragga beneficio.
Opensource ≠ Software Libero
Software Libero → GPL General Public License (LGPL per le librerie, FDL per
                         la documentazione)‫‏‬
Il gestore grafico standard per i sistemi operativi
                    di tipo Unix
X fornisce l'ambiente e i componenti di base per le interfacce grafiche,
   ovvero il disegno e lo spostamento delle finestre sullo schermo e
                 l'interazione con il mouse e la tastiera
X usa un modello client/server: in altre parole, il server X comunica con gli
    altri programmi (client). Il server accetta richieste per output grafici
 (finestre) e input dall'utente (dalla tastiera, il mouse o dal touchscreen).
Desktop Environment (ambienti desktop)‫‏‬
Il desktop environment è l'interfaccia grafica (GUI) che permette di usare un computer
  tramite l'interazione con oggetti grafici, come le icone e le finestre dei programmi, in
                         quella che è appunto chiamata scrivania.
Gli ambienti desktop di sistemi operativi popolari come Microsoft Windows e Mac OS X
non consentono di cambiare facilmente il proprio ambiente grafico, che per il pubblico
                  tende a rappresentare il sistema operativo stesso.
Nei sistemi basati su X Window System, il DE consiste di un window manager, di alcune
  skin personalizzabili, di programmi e librerie che gestiscono il desktop. Tutti questi
moduli tendono ad essere intercambiabili, modificabili e configurabili individualmente, al
                        fine di ottenere una combinazione unica
Un window manager è un software che gestisce l'aspetto e la posizione di una finestra
                            nel X Window System
Compiz-fusion un compositing window manager con effetti 3D
Compiz può prendere il posto di altri window manager come Metacity in GNOME, KWin in
   KDE e Xfwm4 in Xfce. In tal modo vengono implementati all'interno dei vari ambienti
 desktop una serie di effetti come un uso generalizzato delle trasparenze, un sistema per
   mostrare tutte le applicazioni aperte allo stesso tempo simile all'Exposé di OSX o un
  selettore di applicazione (ALT-TAB) con rappresentazioni live delle finestre. I due effetti
  che hanno riscontrato più notorietà sono stati comunque la mappatura dei vari desktop
    sulle facce di un cubo in 3D e le finestre che si piegano come se fossero di gomma
                                 quando vengono spostate.
Ubuntu Installation
La Shell
In un sistema operativo, una shell o terminale è un programma che permette
     agli utenti di comunicare con il sistema e di avviare altri programmi.
Bash (acronimo per bourne again shell) è una shell testuale del progetto GNU
                usata nei sistemi operativi Unix e Unix-like
Bash è in grado di eseguire i comandi che le vengono passati, utilizzando la
redirezione dell'input e dell'output per eseguire più programmi in cascata in una
 pipeline software, passando l'output del comando precedente come input del
                               comando successivo.
L'opzione -- help (talune volte -h) di un comando visualizza la sintassi e l'elenco delle
                                          opzioni
Comando:

man

La maggior parte dei sistemi operativi UNIX e Unix-like dispone di un'ampia
documentazione in linea nota come man pages (abbreviazione di "manual pages"
ovvero pagine di manuale) o pagine man che sono consultabili tramite il comando
man.

Ogni pagina man è un documento esplicativo di un comando, di una funzione o di un
formato di file, o altro ancora, che descrive in maniera sintetica l'argomento e può
contenere riferimenti ad altre pagine.
Comando:

apropos

Verifica la disponibilità delle pagine di manuale, sia nei nomi sia nelle descrizioni
Comando:

who - mostra gli utenti loggati nel sistema

uname - mostra la versione del sistema operativo

cat - stampa in output il contenuto di un file

ls - visualizza il listato dei files e delle cartelle

cd - permette di spostarsi all'interno/esterno delle cartelle

pwd - visualizza il path

mkdir - permette di creare una cartella

mv - permette di spostare files e cartelle

rm - cancella un file o una cartella

ps - visualizza i processi in esecuzione

kill - termina un processo
Comandi Utenti, Gruppi, Permessi:

chown – modifica il proprietario/gruppo di un file

passwd – modifica la password di un utente

adduser – aggiunge un utente al sistema

deluser – rimuove un account dal sistema

addgroup – aggiunge un gruppo al sistema

delgroup – rimuove un gruppo dal sistema

chmod – modifica i permessi di un file
Comandi filesystem:

df – visualizza la quantità di spazio utilizzato e disponibile sul filesystem

du – visualizza la quantità di spazio su disco utilizzato da singoli file e cartelle

fsck – verifica e ripara il filesystem

mkfs – crea il filesystem su un dispositivo

mount – monta un filesystem
Il Filesystem
FHS = Filesystem Hierarchy Standard
     (Definisce i nomi delle cartelle e il loro contenuto)‫‏‬


Ambienti Desktop come Gnome o KDE forniscono shortcuts a
                  cartelle e file particolari
La filosofia alla base dei sistemi operativi unix-like comporta:

             Everything is a file (Ogni cosa è un file)‫‏‬

La componentistica hardware (periferiche) sono rappresentate
                     come file (device)‫‏‬

              Sono presenti 7 tipologie di file base:

0) File “normali” (-)
1) Directory (d)
2) Device a blocchi (b)
3) Device a caratteri (c)
4) Pipe (p)
5) Socket (s)
6) Link (l)
Un file di tipo device può essere di tipo:

b – a blocchi
c – a caratteri

Il device a blocchi utilizza la buffer cache (memorie)‫‏‬
Il device a caratteri non utilizza la buffer cache (periferiche)‫‏‬

La Buffer Cache è un'area della memoria primaria che contiene una copia dei blocchi
del disco usati più recentemente.

Durante la fase di inizializzazione (init) il kernel alloca una porzione della RAM
destinata al buffer cache.

La fase INIT è a posteriori della fase di bootstrap nella quale il kernel avvia programmi
e servizi necessari a portare il sistema in uno stato operativo.
Quando si devono leggere dati dal disco, il kernel ricercherà tali dati
inizialmente nella Buffer Cache (B.C.)‫‏‬

Qualora tali dati non siano presenti nella buffer cache, il kernel
provvederà alla lettura degli stessi dal disco e alla loro copia nella
buffer cache per eventuali futuri accessi.

Il kernel minimizza le scritture su disco cercando di prevedere se i
dati da scrivere sono definitivi o saranno presto sostituiti da altri.
Non esistono le unità logiche (presenti negli OS Microsoft tipo C:)‫‏‬
     il tutto è rappresentato in un unico albero delle cartelle.
Le cartelle sono graficamente separate dal simbolo /
                        (Slash diretto)‫‏‬
                     secondo lo standard.

 Non è un caso che anche in rete la navigazione tra cartelle è
permessa tramite la slash diretto, usare il backslash al contrario
            è una prerogativa dei soli sistemi MS.
Caratteri speciali


“/”       Separatore delle cartelle
“.”       Se a inizio nome, indica un file/cartella nascosto
“~”       Indica la cartella home dell'utente
“.”       è la cartella corrente
“..”      la cartella genitrice
Linux a differenza di windows è totalmente filesystem-related infatti
   accedendo a due terminali (anche da modalità grafica) si può
                  interagire con essi da filesystem
Mentre windows utilizza un sistema per cui ogni programma/
   software ha la sua cartella in cui viene memorizzato tutto
(eseguibili, configurazioni, dati, documentazione, eccetera) linux
       suddivide i files del software in base al loro ruolo
In base al File Hierarchy System :


Directory    Descrizione
/bin/        File binari per tutti gli utenti (es., cat, ls, cp)‫‏‬
/boot/       File del Boot loader (es., kernel, initrd)‫‏‬
/dev/        File di periferica (devices) (es., /dev/null)‫‏‬
/etc/        File di configurazione del sistema (da et cetera)‫‏‬
/opt/        Software statici (non appartenenti alla distro)‫‏‬
/home/       Cartella Home degli utenti
/lib/        Librerie essenziali per i binari in /bin/ e /sbin/
/mnt/        Filesystem montati (mounted) temporaneamente
/proc/       Filesystem virtuale che mostra informazioni sullo stato del kernel e dei
             processi attivi; sono presenti soprattutto file di testo (es, uptime, network)‫‏‬
/root/       Cartella Home dell'utente root (amministratore)‫‏‬
/sbin/       Eseguibili per l'amministrazione del sistema
/tmp/        File temporanei
/srv/        Dati specifici forniti dal sistema (served)‫‏‬
/usr/        Gerarchia secondaria per i dati condivisibili ed in sola lettura (unix system
             resources). Questa directory è nata per essere condivisa tra gli host e
             non deve contenere dati specifici.
/var/        File Variabili come log, database, siti web, e file temporanei delle e-mail.
mount permette di collegare un volume all'albero delle cartelle
              (umount disconnette un volume)‫‏‬

In numerosi ambienti desktop un volume è montabile direttamente
                          tramite click

              esempio del comando da terminale:

       mount -t iso9660 -o ro /dev/cdrom0 /media/cdrom
                     umount /media/cdrom

               /media/ contiene i volumi montati
Nei sistemi operativi GNU/Linux ciascun file ha 9 permessi
                           (espressi nella notazione ottale)‫‏‬

      I campi ottenibili sono in tutto 10 (9 campi permessi (divisi in 3 triplette))‫‏‬
1 campo informazione (permette di distinguere la tipologia dell'elemento (file, directory,
                                          etc..)‫‏‬
I dati relativi ai permessi e alla tipologia di file nel sistema Linux sono archiviati in una
struttura del filesystem detta: inode

in totale inode archivia informazioni relativi a:

Dimensione del file e la sua locazione fisica
Il proprietario e il gruppo di appartenenza
Le informazioni a carattere temporale sulla creazione, modifica e sull'ultimo accesso
Il numero di collegamenti fisici
I permessi di accesso

Ogni file ha un ID che lo associa univocamente al proprio inode. Quando un programma
cerca di accedere ad un file tramite un nome (pippo.txt) Linux cerca l'inode corrispondente
e recupera tutte le informazioni per operare sul file.
Alcune differenze tra Windows e Linux
Su windows i collegamenti sono dei file che contengono sotto forma
testuale il path del file di destinazione.

Su linux invece i "link" sono più avanzati nel senso che il comando ad
esempio:

ln /nome/file/target /nome/collegamento

crea sul disco un collegamento forte a quel file ("hard link") che fa
riferimento direttamente all'inode di quel file. Cancellando /nome/
collegamento si cancellerà di conseguenza anche /nome/file/target. Se
invece si utilizza la sintassi:

ln -s /nome/file/target /nome/collegamento

si creerà un collegamento simbolico ("symbolic link") che fa riferimento a
quel file. Cancellando il collegamento, ossia /nome/collegamento il file
/nome/file/target rimarrà intatto, allo stesso modo cancellando /nome/file/
target il collegamento /nome/collegamento rimarrà intatto ma non
funzionante (come su windows).
Esercizio 0:

Aprire due terminali, sul primo digitare il comando who
sul secondo digitare il comando ls -l /dev/pts

digitare ora sul primo terminale echo Ciao > /dev/pts/1

Vedremo comparire la stringa sul secondo terminale.
Questo perchè il contenuto viene passato tramite device a caratteri (c)
(si noti la c che precede i permessi)
Caratteri per la redirezione dell’output:

“>” redirige l’output in un file, se il file non esiste lo crea, se esiste lo svuota e lo riempie
con l’output.
“>>” redirige l’output in un file, se il file non esiste lo crea, se esiste accoda il nuovo output
al contenuto presente (append) invece di svuotare il file.

“2>” redirige lo standard di errore in un file, se il file non esiste lo crea, se esiste lo svuota
e lo riempie.
“2>>” redirige lo standard di errore in un file, se il file non esiste lo crea, se esiste accoda

“|” redirige lo standard di output al comando successivo
Installare software
I software per linux si presentano come:

Sorgenti (file sorgenti opportunamente archiviati con TAR e zippati)‫‏‬
Binari (file .bin o Bundle)‫‏‬
Packages (.deb o .rpm)‫‏‬
E' possibile via shell testuale (terminale) scaricare file dalla rete
tramite protocollo http o ftp.

Tra gli applicativi del progetto GNU, software wget si occupa del
download di file sul path impartito.
I comandi :

tar – permette l'archiviazione/estrazione di file
gunzip (in ubuntu anche Unzip) – permette l'estrazione dei dati
da un file compresso

(usare la sintassi --help (o -h) o leggere le pagine di manuale
(man tar ; man gunzip)
Numerosi software distribuiti in formato sorgente presentano nella maggior parte dei
casi un file di testo con le istruzioni necessarie per la configurazione e la compilazione
del programma.

Una volta estratto l'archivio è necessario agire nella directory dove sono presenti i file
sorgenti.

Leggere il file che spiega la procedura di installazione.

Lanciare lo script:

./configure

Quindi lanciare il comando make (che automatizza la conversione tra codice sorgente
e codice oggetto) risolvendo le dipendenze.

make ricerca un file denominato “makefile” (il nome standard è appunto makefile ma
può essere chiamato in qualsiasi modo, sarà però necessario specificare il nome file
del makefile nella sintassi di make).

make install permette di installare ogni “parte del programma” (file di configurazione...
etc) nelle giuste directory.
Per disinstallare software installato a partire dai sorgenti generalmente
basterà posizionarsi nella directory del software compilato e lanciare

make uninstall
Ubuntu in quanto debian-based utilizza il sistema packages detto DEB.

I file presenti “pacchetti deb” sono generalmente presenti nel repository (una sorta di
database).

E' possibile verificare l'elenco degli host dei repository all'interno del file di
configurazione:

/etc/apt/sources.list

Sarà quindi possibile installare software conoscendo il nome del programma
desiderato, utilizzando l'utility apt-get

Per installare un software a partire da un file .deb scaricato invece utilizzare il comando
dpkg.

Allo stesso modo funzionano i pacchetti RPM (standard delle distribuzioni Red Hat)‫‏‬

L'utility alien permette la conversione dei pacchetti da RPM a DEB
Synaptic è un front-end grafico per l'installazione di pacchetti deb
Network
Ubuntu riconosce automaticamente la scheda di rete e le connessioni.

Il front-end grafico per la configurazione della connessione di rete è:

nm-connection-editor

Tuttavia sono presenti comandi da terminale per la configurazione e la diagnostica di
rete:

ifconfig – (interface configurator) permette di controllare l'interfaccia di rete TCP/IP

esso permette di impostare l'indirizzo ip, netmask etc...
di attivare o disattivare la connessione.

Durante il bootstrap il kernel intenta l'attivazione dell'interfaccia di rete via script da
shell che utilizzano ifconfig.

ifconfig permette inoltre di modificare l'indirizzo fisico (MAC) di una interfaccia di rete.
Le Tabelle di routing e il firewall sono gestibili tramite i comandi:

ip
iptables

Il primo permette di visualizzare/configurare la tabella di routing

iptables consente di configurare netfilter (un modulo kernel che gestisce
l'intercettazione e la manipolazione dei pacchetti).
Netfilter ha funzionalità di rete avanzate come firewalling ma anche la configurazione di
NAT (un sistema di traduzione degli indirizzi ip che consente la condivisione di una
connessione internet tra diversi computer)‫‏‬

Netfilter utilizza un sistema di policy (ACL) basato su tabelle/catene tale da permettere
di individuare le “regole” da utilizzare per ogni pacchetto.
La versione di ifconfig per interfacce di rete WiFi (802.11x family) è

iwconfig

Nonostante in ubuntu la configurazione di un accesso alla rete wifi
è ottenibile tramite GUI; iwconfig permette via terminale di
impostare l'access point, essid, canale, chiave di accesso (wep,wpa
etc..)‫‏‬
Alcuni comandi comandi di rete:

ping – invia un pacchetto ICMP
traceroute – ricava il percorso dei pacchetti ICMP all'interno di
una rete

host – utility dns
nslookup – utility dns
dig – utility dns
arp – gestione della ARP cache
netstat – identifica i socket aperti sulla propria macchina e le
eventuali connessioni

tcpdump – analisi del traffico tramite intercettazione (sniffing)
dei pacchetti
Le condivisioni Microsoft (NetBios/NetBeui) sono gestibili anche dai
sistemi unix-like attraverso SAMBA (SMB protocol)‫‏‬

Samba configura share (condivisioni) includendo le subdirectories.
Le condivisioni sono accessibili tramite protocollo TCP/IP

Un client Linux può effettuare il mount di una condivisione Samba
direttamente nell'albero del filesystem

Ubuntu gestisce in modalità grafica la condivisione delle cartelle
(esattamente come in Microsoft Windows)‫‏‬

Il file di configurazione di Samba si trova generalmente sotto

/etc/smb.conf
oppure
/etc/samba/smb.conf

Mais conteúdo relacionado

Mais procurados

Sistemi operativi: confronto tra linux, windows e mac
Sistemi operativi: confronto tra linux, windows e macSistemi operativi: confronto tra linux, windows e mac
Sistemi operativi: confronto tra linux, windows e macGiovanni Mennea
 
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Janhu Silvio Crispiatico
 
Osiris Operating system
Osiris Operating systemOsiris Operating system
Osiris Operating systemDiego
 
Presentazione Sistemi Operativi
Presentazione Sistemi OperativiPresentazione Sistemi Operativi
Presentazione Sistemi OperativiMichele Simonetti
 
Lezione 6 sound design 1
Lezione 6   sound design 1Lezione 6   sound design 1
Lezione 6 sound design 1Lorenzo Cassulo
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativiPaola Bez
 
La storia dei sistemi operativi
La storia dei sistemi operativiLa storia dei sistemi operativi
La storia dei sistemi operativizsimo23
 
Sistemi Operativi SO
Sistemi Operativi SOSistemi Operativi SO
Sistemi Operativi SOJumi27
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesMaurizio Antonelli
 
Presentazione scuola!
Presentazione scuola!Presentazione scuola!
Presentazione scuola!Zanny000
 
Accesso remoto al proprio computer in una rete eterogenea
Accesso remoto al proprio computer in una rete eterogeneaAccesso remoto al proprio computer in una rete eterogenea
Accesso remoto al proprio computer in una rete eterogeneaGiacomo Antonino Fazio
 
Sicurezza e protezione dati su raspberry
Sicurezza e protezione dati su raspberrySicurezza e protezione dati su raspberry
Sicurezza e protezione dati su raspberryOrazio Sarno
 
Windows 7 travestito da windows 9
Windows 7 travestito da windows 9Windows 7 travestito da windows 9
Windows 7 travestito da windows 9BLOGGER
 
Installazione ambientepython ubuntumate
Installazione ambientepython ubuntumateInstallazione ambientepython ubuntumate
Installazione ambientepython ubuntumateMarco Buttolo
 
Post gresql su_raspberry
Post gresql su_raspberryPost gresql su_raspberry
Post gresql su_raspberryMarco Buttolo
 

Mais procurados (20)

Sistemi operativi: confronto tra linux, windows e mac
Sistemi operativi: confronto tra linux, windows e macSistemi operativi: confronto tra linux, windows e mac
Sistemi operativi: confronto tra linux, windows e mac
 
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
 
Lezione tre
Lezione treLezione tre
Lezione tre
 
Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1
 
Osiris Operating system
Osiris Operating systemOsiris Operating system
Osiris Operating system
 
Presentazione Sistemi Operativi
Presentazione Sistemi OperativiPresentazione Sistemi Operativi
Presentazione Sistemi Operativi
 
Compilazione Kernel
Compilazione KernelCompilazione Kernel
Compilazione Kernel
 
Lezione 6 sound design 1
Lezione 6   sound design 1Lezione 6   sound design 1
Lezione 6 sound design 1
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
 
La storia dei sistemi operativi
La storia dei sistemi operativiLa storia dei sistemi operativi
La storia dei sistemi operativi
 
Sistemi Operativi SO
Sistemi Operativi SOSistemi Operativi SO
Sistemi Operativi SO
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
 
Presentazione scuola!
Presentazione scuola!Presentazione scuola!
Presentazione scuola!
 
Accesso remoto al proprio computer in una rete eterogenea
Accesso remoto al proprio computer in una rete eterogeneaAccesso remoto al proprio computer in una rete eterogenea
Accesso remoto al proprio computer in una rete eterogenea
 
Sicurezza e protezione dati su raspberry
Sicurezza e protezione dati su raspberrySicurezza e protezione dati su raspberry
Sicurezza e protezione dati su raspberry
 
Socket python
Socket pythonSocket python
Socket python
 
Windows 7 travestito da windows 9
Windows 7 travestito da windows 9Windows 7 travestito da windows 9
Windows 7 travestito da windows 9
 
Installazione ambientepython ubuntumate
Installazione ambientepython ubuntumateInstallazione ambientepython ubuntumate
Installazione ambientepython ubuntumate
 
Post gresql su_raspberry
Post gresql su_raspberryPost gresql su_raspberry
Post gresql su_raspberry
 
Sistema operativo unix
Sistema operativo unixSistema operativo unix
Sistema operativo unix
 

Destaque

Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxPaolo Campegiani
 
Progetti_Linux Day 2015_ISF-CA_LinuxDay2015_isf
Progetti_Linux Day 2015_ISF-CA_LinuxDay2015_isfProgetti_Linux Day 2015_ISF-CA_LinuxDay2015_isf
Progetti_Linux Day 2015_ISF-CA_LinuxDay2015_isfMarco Frau
 
InfiniFlux Time Series DBMS FAQ
InfiniFlux Time Series DBMS FAQInfiniFlux Time Series DBMS FAQ
InfiniFlux Time Series DBMS FAQInfiniFlux
 
Ubuntu Linux ed il Software Libero
Ubuntu Linux ed il Software LiberoUbuntu Linux ed il Software Libero
Ubuntu Linux ed il Software LiberoMarco Lombardo
 
Tre lingue e un MOOC per imparare Linux
Tre lingue e un MOOC per imparare LinuxTre lingue e un MOOC per imparare Linux
Tre lingue e un MOOC per imparare LinuxGabriella Dodero
 
Big data e pubblica amministrazione
Big data e pubblica amministrazioneBig data e pubblica amministrazione
Big data e pubblica amministrazioneGianfranco Andriola
 
Nuovi scenari sociali, reti digitali e accumulo di big data. Un approccio sis...
Nuovi scenari sociali, reti digitali e accumulo di big data. Un approccio sis...Nuovi scenari sociali, reti digitali e accumulo di big data. Un approccio sis...
Nuovi scenari sociali, reti digitali e accumulo di big data. Un approccio sis...Valerio Eletti
 
Introduzione ai Big Data e alla scienza dei dati
Introduzione ai Big Data e alla scienza dei datiIntroduzione ai Big Data e alla scienza dei dati
Introduzione ai Big Data e alla scienza dei datiVincenzo Manzoni
 

Destaque (9)

Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi Linux
 
Progetti_Linux Day 2015_ISF-CA_LinuxDay2015_isf
Progetti_Linux Day 2015_ISF-CA_LinuxDay2015_isfProgetti_Linux Day 2015_ISF-CA_LinuxDay2015_isf
Progetti_Linux Day 2015_ISF-CA_LinuxDay2015_isf
 
InfiniFlux Time Series DBMS FAQ
InfiniFlux Time Series DBMS FAQInfiniFlux Time Series DBMS FAQ
InfiniFlux Time Series DBMS FAQ
 
Ubuntu Linux ed il Software Libero
Ubuntu Linux ed il Software LiberoUbuntu Linux ed il Software Libero
Ubuntu Linux ed il Software Libero
 
Tre lingue e un MOOC per imparare Linux
Tre lingue e un MOOC per imparare LinuxTre lingue e un MOOC per imparare Linux
Tre lingue e un MOOC per imparare Linux
 
Big data e pubblica amministrazione
Big data e pubblica amministrazioneBig data e pubblica amministrazione
Big data e pubblica amministrazione
 
Nuovi scenari sociali, reti digitali e accumulo di big data. Un approccio sis...
Nuovi scenari sociali, reti digitali e accumulo di big data. Un approccio sis...Nuovi scenari sociali, reti digitali e accumulo di big data. Un approccio sis...
Nuovi scenari sociali, reti digitali e accumulo di big data. Un approccio sis...
 
FANTIN BIG DATA (1)
FANTIN BIG DATA (1)FANTIN BIG DATA (1)
FANTIN BIG DATA (1)
 
Introduzione ai Big Data e alla scienza dei dati
Introduzione ai Big Data e alla scienza dei datiIntroduzione ai Big Data e alla scienza dei dati
Introduzione ai Big Data e alla scienza dei dati
 

Semelhante a GNU Linux introduction

Linux & Open Source : Lezione Tre
Linux & Open Source : Lezione TreLinux & Open Source : Lezione Tre
Linux & Open Source : Lezione TreDario Mazza
 
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsMirko Mancin
 
Lezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxLezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxAlex Palesandro
 
Linux & Open Source : Lezione Due
Linux & Open Source : Lezione DueLinux & Open Source : Lezione Due
Linux & Open Source : Lezione DueDario Mazza
 
Relazione Sistemi
Relazione SistemiRelazione Sistemi
Relazione Sistemisebym94
 
Sistema operativo Unix e Linux
Sistema operativo Unix e LinuxSistema operativo Unix e Linux
Sistema operativo Unix e LinuxGiulia Shkreli
 
Introduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazioneIntroduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazioneValerio Bruno
 
Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixDa Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixFelice Pescatore
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Basefosk
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaBetter Software
 
E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?Daniele Albrizio
 
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
 Cosa è Gnu/Linux - Breve storia - Concetti fondamentali Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Cosa è Gnu/Linux - Breve storia - Concetti fondamentaliFulvio Corno
 
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...Maurizio Antonelli
 

Semelhante a GNU Linux introduction (20)

Linux & Open Source : Lezione Tre
Linux & Open Source : Lezione TreLinux & Open Source : Lezione Tre
Linux & Open Source : Lezione Tre
 
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
 
Linux & Open Source - Lezione 2
Linux & Open Source - Lezione 2Linux & Open Source - Lezione 2
Linux & Open Source - Lezione 2
 
Lezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxLezione corso Base GNU/Linux
Lezione corso Base GNU/Linux
 
Linux & Open Source : Lezione Due
Linux & Open Source : Lezione DueLinux & Open Source : Lezione Due
Linux & Open Source : Lezione Due
 
Lezione due
Lezione dueLezione due
Lezione due
 
Relazione Sistemi
Relazione SistemiRelazione Sistemi
Relazione Sistemi
 
Sistema operativo Unix e Linux
Sistema operativo Unix e LinuxSistema operativo Unix e Linux
Sistema operativo Unix e Linux
 
debian gnu linux
debian gnu linuxdebian gnu linux
debian gnu linux
 
Introduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazioneIntroduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazione
 
Linux shell
Linux shellLinux shell
Linux shell
 
Linux shell
Linux shellLinux shell
Linux shell
 
Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixDa Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Base
 
GNU Linux Programming introduction
GNU Linux Programming introductionGNU Linux Programming introduction
GNU Linux Programming introduction
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
 
E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?
 
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
 Cosa è Gnu/Linux - Breve storia - Concetti fondamentali Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
 
Distro linux
Distro linuxDistro linux
Distro linux
 
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
 

GNU Linux introduction

  • 1.
  • 2. Sistema Operativo Il compito principale del sistema operativo è quello di permettere all'utente, umano o non, di interagire direttamente con la macchina.
  • 4. GNU/Linux è un sistema operativo libero di tipo unix-like costituito dall'integrazione del kernel Linux con elementi del sistema GNU e di altro software sviluppato e distribuito con licenza GNU GPL o con altre licenze libere.
  • 5. Linux è in realtà il nome del kernel sviluppato da Linus Torvalds a partire dal 1991 che, integrato con i componenti già realizzati dal progetto GNU (compilatore gcc, libreria Glibc e altre utility) e da software di altri progetti, è stato utilizzato come base per la realizzazione dei sistemi operativi e delle distribuzioni che vengono normalmente identificate con lo stesso nome.
  • 6. - kernel (monolitico)‫‏‬ - multitasking - multiutente - free software (quindi a sorgente aperto)‫‏‬ - gratuito - codice macchina per il proprio processore - più sicuro perché continuamente aggiornato da developers di tutto il mondo (linux community)‫‏‬ - disponibilità per ogni piattaforma - estrema versatilità
  • 7.
  • 8. Alcune differenze tra Windows e Linux Porte seriali Windows Linux COM1 /dev/ttyS0 COM2 /dev/ttyS1 COM3 /dev/ttyS2 COM4 /dev/ttyS3 Porte parallele Windows Linux LPT1: /dev/lp0 LPT2: /dev/lp1 CD-ROM Windows Linux D: /dev/hdc E: /dev/hdd
  • 9. Alcune differenze tra Windows e Linux Windows → Case Insensitive (nessuna differenza)‫‏‬ Linux → Case Sensitive (differenza tra caratteri maiuscoli e minuscoli)‫‏‬
  • 10. Alcune differenze tra Windows e Linux Windows usa le estensioni per sapere di che tipo di file si tratta: tutti i documenti Word finiscono con .doc, i fogli di calcolo Excel con .xls e così via. Linux riconosce i tipi di file usando il 'magic number', vale a dire una sequenza di byte presente all'inizio del file. Così, ad esempio, se all'inizio del file trova la sequenza '0xffd8', Linux sa che il file in questione è un'immagine in formato jpeg, a prescindere dall'estensione che può avere. Le uniche estensioni usate da Linux sono: un punto che precede il file e che segnala al sistema che si tratta di un file (o directory) nascosto, e la tilde come estensione finale che indica trattarsi di una copia.
  • 11.
  • 12. Secondo Richard Stallman, fondatore del progetto GNU, e secondo la Free Software Foundation, la dicitura Linux (senza prefisso "GNU/") per l'intero sistema operativo sarebbe erronea in quanto il nome Linux è attribuibile al solo kernel e il sistema, strutturato a partire dai componenti dell'originale progetto GNU, dovrebbe più propriamente chiamarsi GNU/Linux.
  • 13. L'espressione "software libero" (free software) si riferisce alla libertà dell'utente di eseguire, copiare, distribuire, studiare, cambiare e migliorare il software
  • 14. quattro tipi di libertà per gli utenti: 0 Libertà di eseguire il programma, per qualsiasi scopo. 1 Libertà di studiare come funziona il programma e adattarlo alle proprie necessità. 2 Libertà di ridistribuire copie in modo da aiutare il prossimo. 3 Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio.
  • 15. Opensource ≠ Software Libero Software Libero → GPL General Public License (LGPL per le librerie, FDL per la documentazione)‫‏‬
  • 16.
  • 17. Il gestore grafico standard per i sistemi operativi di tipo Unix
  • 18. X fornisce l'ambiente e i componenti di base per le interfacce grafiche, ovvero il disegno e lo spostamento delle finestre sullo schermo e l'interazione con il mouse e la tastiera
  • 19. X usa un modello client/server: in altre parole, il server X comunica con gli altri programmi (client). Il server accetta richieste per output grafici (finestre) e input dall'utente (dalla tastiera, il mouse o dal touchscreen).
  • 20.
  • 21. Desktop Environment (ambienti desktop)‫‏‬
  • 22. Il desktop environment è l'interfaccia grafica (GUI) che permette di usare un computer tramite l'interazione con oggetti grafici, come le icone e le finestre dei programmi, in quella che è appunto chiamata scrivania.
  • 23. Gli ambienti desktop di sistemi operativi popolari come Microsoft Windows e Mac OS X non consentono di cambiare facilmente il proprio ambiente grafico, che per il pubblico tende a rappresentare il sistema operativo stesso.
  • 24. Nei sistemi basati su X Window System, il DE consiste di un window manager, di alcune skin personalizzabili, di programmi e librerie che gestiscono il desktop. Tutti questi moduli tendono ad essere intercambiabili, modificabili e configurabili individualmente, al fine di ottenere una combinazione unica
  • 25. Un window manager è un software che gestisce l'aspetto e la posizione di una finestra nel X Window System
  • 26. Compiz-fusion un compositing window manager con effetti 3D
  • 27. Compiz può prendere il posto di altri window manager come Metacity in GNOME, KWin in KDE e Xfwm4 in Xfce. In tal modo vengono implementati all'interno dei vari ambienti desktop una serie di effetti come un uso generalizzato delle trasparenze, un sistema per mostrare tutte le applicazioni aperte allo stesso tempo simile all'Exposé di OSX o un selettore di applicazione (ALT-TAB) con rappresentazioni live delle finestre. I due effetti che hanno riscontrato più notorietà sono stati comunque la mappatura dei vari desktop sulle facce di un cubo in 3D e le finestre che si piegano come se fossero di gomma quando vengono spostate.
  • 30. In un sistema operativo, una shell o terminale è un programma che permette agli utenti di comunicare con il sistema e di avviare altri programmi.
  • 31. Bash (acronimo per bourne again shell) è una shell testuale del progetto GNU usata nei sistemi operativi Unix e Unix-like
  • 32. Bash è in grado di eseguire i comandi che le vengono passati, utilizzando la redirezione dell'input e dell'output per eseguire più programmi in cascata in una pipeline software, passando l'output del comando precedente come input del comando successivo.
  • 33. L'opzione -- help (talune volte -h) di un comando visualizza la sintassi e l'elenco delle opzioni
  • 34. Comando: man La maggior parte dei sistemi operativi UNIX e Unix-like dispone di un'ampia documentazione in linea nota come man pages (abbreviazione di "manual pages" ovvero pagine di manuale) o pagine man che sono consultabili tramite il comando man. Ogni pagina man è un documento esplicativo di un comando, di una funzione o di un formato di file, o altro ancora, che descrive in maniera sintetica l'argomento e può contenere riferimenti ad altre pagine.
  • 35. Comando: apropos Verifica la disponibilità delle pagine di manuale, sia nei nomi sia nelle descrizioni
  • 36. Comando: who - mostra gli utenti loggati nel sistema uname - mostra la versione del sistema operativo cat - stampa in output il contenuto di un file ls - visualizza il listato dei files e delle cartelle cd - permette di spostarsi all'interno/esterno delle cartelle pwd - visualizza il path mkdir - permette di creare una cartella mv - permette di spostare files e cartelle rm - cancella un file o una cartella ps - visualizza i processi in esecuzione kill - termina un processo
  • 37. Comandi Utenti, Gruppi, Permessi: chown – modifica il proprietario/gruppo di un file passwd – modifica la password di un utente adduser – aggiunge un utente al sistema deluser – rimuove un account dal sistema addgroup – aggiunge un gruppo al sistema delgroup – rimuove un gruppo dal sistema chmod – modifica i permessi di un file
  • 38. Comandi filesystem: df – visualizza la quantità di spazio utilizzato e disponibile sul filesystem du – visualizza la quantità di spazio su disco utilizzato da singoli file e cartelle fsck – verifica e ripara il filesystem mkfs – crea il filesystem su un dispositivo mount – monta un filesystem
  • 40. FHS = Filesystem Hierarchy Standard (Definisce i nomi delle cartelle e il loro contenuto)‫‏‬ Ambienti Desktop come Gnome o KDE forniscono shortcuts a cartelle e file particolari
  • 41. La filosofia alla base dei sistemi operativi unix-like comporta: Everything is a file (Ogni cosa è un file)‫‏‬ La componentistica hardware (periferiche) sono rappresentate come file (device)‫‏‬ Sono presenti 7 tipologie di file base: 0) File “normali” (-) 1) Directory (d) 2) Device a blocchi (b) 3) Device a caratteri (c) 4) Pipe (p) 5) Socket (s) 6) Link (l)
  • 42. Un file di tipo device può essere di tipo: b – a blocchi c – a caratteri Il device a blocchi utilizza la buffer cache (memorie)‫‏‬ Il device a caratteri non utilizza la buffer cache (periferiche)‫‏‬ La Buffer Cache è un'area della memoria primaria che contiene una copia dei blocchi del disco usati più recentemente. Durante la fase di inizializzazione (init) il kernel alloca una porzione della RAM destinata al buffer cache. La fase INIT è a posteriori della fase di bootstrap nella quale il kernel avvia programmi e servizi necessari a portare il sistema in uno stato operativo.
  • 43. Quando si devono leggere dati dal disco, il kernel ricercherà tali dati inizialmente nella Buffer Cache (B.C.)‫‏‬ Qualora tali dati non siano presenti nella buffer cache, il kernel provvederà alla lettura degli stessi dal disco e alla loro copia nella buffer cache per eventuali futuri accessi. Il kernel minimizza le scritture su disco cercando di prevedere se i dati da scrivere sono definitivi o saranno presto sostituiti da altri.
  • 44. Non esistono le unità logiche (presenti negli OS Microsoft tipo C:)‫‏‬ il tutto è rappresentato in un unico albero delle cartelle.
  • 45. Le cartelle sono graficamente separate dal simbolo / (Slash diretto)‫‏‬ secondo lo standard. Non è un caso che anche in rete la navigazione tra cartelle è permessa tramite la slash diretto, usare il backslash al contrario è una prerogativa dei soli sistemi MS.
  • 46. Caratteri speciali “/” Separatore delle cartelle “.” Se a inizio nome, indica un file/cartella nascosto “~” Indica la cartella home dell'utente “.” è la cartella corrente “..” la cartella genitrice
  • 47. Linux a differenza di windows è totalmente filesystem-related infatti accedendo a due terminali (anche da modalità grafica) si può interagire con essi da filesystem
  • 48. Mentre windows utilizza un sistema per cui ogni programma/ software ha la sua cartella in cui viene memorizzato tutto (eseguibili, configurazioni, dati, documentazione, eccetera) linux suddivide i files del software in base al loro ruolo
  • 49.
  • 50. In base al File Hierarchy System : Directory Descrizione /bin/ File binari per tutti gli utenti (es., cat, ls, cp)‫‏‬ /boot/ File del Boot loader (es., kernel, initrd)‫‏‬ /dev/ File di periferica (devices) (es., /dev/null)‫‏‬ /etc/ File di configurazione del sistema (da et cetera)‫‏‬ /opt/ Software statici (non appartenenti alla distro)‫‏‬ /home/ Cartella Home degli utenti /lib/ Librerie essenziali per i binari in /bin/ e /sbin/ /mnt/ Filesystem montati (mounted) temporaneamente /proc/ Filesystem virtuale che mostra informazioni sullo stato del kernel e dei processi attivi; sono presenti soprattutto file di testo (es, uptime, network)‫‏‬ /root/ Cartella Home dell'utente root (amministratore)‫‏‬ /sbin/ Eseguibili per l'amministrazione del sistema /tmp/ File temporanei /srv/ Dati specifici forniti dal sistema (served)‫‏‬ /usr/ Gerarchia secondaria per i dati condivisibili ed in sola lettura (unix system resources). Questa directory è nata per essere condivisa tra gli host e non deve contenere dati specifici. /var/ File Variabili come log, database, siti web, e file temporanei delle e-mail.
  • 51. mount permette di collegare un volume all'albero delle cartelle (umount disconnette un volume)‫‏‬ In numerosi ambienti desktop un volume è montabile direttamente tramite click esempio del comando da terminale: mount -t iso9660 -o ro /dev/cdrom0 /media/cdrom umount /media/cdrom /media/ contiene i volumi montati
  • 52.
  • 53. Nei sistemi operativi GNU/Linux ciascun file ha 9 permessi (espressi nella notazione ottale)‫‏‬ I campi ottenibili sono in tutto 10 (9 campi permessi (divisi in 3 triplette))‫‏‬ 1 campo informazione (permette di distinguere la tipologia dell'elemento (file, directory, etc..)‫‏‬
  • 54.
  • 55.
  • 56.
  • 57. I dati relativi ai permessi e alla tipologia di file nel sistema Linux sono archiviati in una struttura del filesystem detta: inode in totale inode archivia informazioni relativi a: Dimensione del file e la sua locazione fisica Il proprietario e il gruppo di appartenenza Le informazioni a carattere temporale sulla creazione, modifica e sull'ultimo accesso Il numero di collegamenti fisici I permessi di accesso Ogni file ha un ID che lo associa univocamente al proprio inode. Quando un programma cerca di accedere ad un file tramite un nome (pippo.txt) Linux cerca l'inode corrispondente e recupera tutte le informazioni per operare sul file.
  • 58. Alcune differenze tra Windows e Linux Su windows i collegamenti sono dei file che contengono sotto forma testuale il path del file di destinazione. Su linux invece i "link" sono più avanzati nel senso che il comando ad esempio: ln /nome/file/target /nome/collegamento crea sul disco un collegamento forte a quel file ("hard link") che fa riferimento direttamente all'inode di quel file. Cancellando /nome/ collegamento si cancellerà di conseguenza anche /nome/file/target. Se invece si utilizza la sintassi: ln -s /nome/file/target /nome/collegamento si creerà un collegamento simbolico ("symbolic link") che fa riferimento a quel file. Cancellando il collegamento, ossia /nome/collegamento il file /nome/file/target rimarrà intatto, allo stesso modo cancellando /nome/file/ target il collegamento /nome/collegamento rimarrà intatto ma non funzionante (come su windows).
  • 59. Esercizio 0: Aprire due terminali, sul primo digitare il comando who sul secondo digitare il comando ls -l /dev/pts digitare ora sul primo terminale echo Ciao > /dev/pts/1 Vedremo comparire la stringa sul secondo terminale. Questo perchè il contenuto viene passato tramite device a caratteri (c) (si noti la c che precede i permessi)
  • 60. Caratteri per la redirezione dell’output: “>” redirige l’output in un file, se il file non esiste lo crea, se esiste lo svuota e lo riempie con l’output. “>>” redirige l’output in un file, se il file non esiste lo crea, se esiste accoda il nuovo output al contenuto presente (append) invece di svuotare il file. “2>” redirige lo standard di errore in un file, se il file non esiste lo crea, se esiste lo svuota e lo riempie. “2>>” redirige lo standard di errore in un file, se il file non esiste lo crea, se esiste accoda “|” redirige lo standard di output al comando successivo
  • 62. I software per linux si presentano come: Sorgenti (file sorgenti opportunamente archiviati con TAR e zippati)‫‏‬ Binari (file .bin o Bundle)‫‏‬ Packages (.deb o .rpm)‫‏‬
  • 63. E' possibile via shell testuale (terminale) scaricare file dalla rete tramite protocollo http o ftp. Tra gli applicativi del progetto GNU, software wget si occupa del download di file sul path impartito.
  • 64. I comandi : tar – permette l'archiviazione/estrazione di file gunzip (in ubuntu anche Unzip) – permette l'estrazione dei dati da un file compresso (usare la sintassi --help (o -h) o leggere le pagine di manuale (man tar ; man gunzip)
  • 65. Numerosi software distribuiti in formato sorgente presentano nella maggior parte dei casi un file di testo con le istruzioni necessarie per la configurazione e la compilazione del programma. Una volta estratto l'archivio è necessario agire nella directory dove sono presenti i file sorgenti. Leggere il file che spiega la procedura di installazione. Lanciare lo script: ./configure Quindi lanciare il comando make (che automatizza la conversione tra codice sorgente e codice oggetto) risolvendo le dipendenze. make ricerca un file denominato “makefile” (il nome standard è appunto makefile ma può essere chiamato in qualsiasi modo, sarà però necessario specificare il nome file del makefile nella sintassi di make). make install permette di installare ogni “parte del programma” (file di configurazione... etc) nelle giuste directory.
  • 66. Per disinstallare software installato a partire dai sorgenti generalmente basterà posizionarsi nella directory del software compilato e lanciare make uninstall
  • 67. Ubuntu in quanto debian-based utilizza il sistema packages detto DEB. I file presenti “pacchetti deb” sono generalmente presenti nel repository (una sorta di database). E' possibile verificare l'elenco degli host dei repository all'interno del file di configurazione: /etc/apt/sources.list Sarà quindi possibile installare software conoscendo il nome del programma desiderato, utilizzando l'utility apt-get Per installare un software a partire da un file .deb scaricato invece utilizzare il comando dpkg. Allo stesso modo funzionano i pacchetti RPM (standard delle distribuzioni Red Hat)‫‏‬ L'utility alien permette la conversione dei pacchetti da RPM a DEB
  • 68. Synaptic è un front-end grafico per l'installazione di pacchetti deb
  • 70. Ubuntu riconosce automaticamente la scheda di rete e le connessioni. Il front-end grafico per la configurazione della connessione di rete è: nm-connection-editor Tuttavia sono presenti comandi da terminale per la configurazione e la diagnostica di rete: ifconfig – (interface configurator) permette di controllare l'interfaccia di rete TCP/IP esso permette di impostare l'indirizzo ip, netmask etc... di attivare o disattivare la connessione. Durante il bootstrap il kernel intenta l'attivazione dell'interfaccia di rete via script da shell che utilizzano ifconfig. ifconfig permette inoltre di modificare l'indirizzo fisico (MAC) di una interfaccia di rete.
  • 71. Le Tabelle di routing e il firewall sono gestibili tramite i comandi: ip iptables Il primo permette di visualizzare/configurare la tabella di routing iptables consente di configurare netfilter (un modulo kernel che gestisce l'intercettazione e la manipolazione dei pacchetti). Netfilter ha funzionalità di rete avanzate come firewalling ma anche la configurazione di NAT (un sistema di traduzione degli indirizzi ip che consente la condivisione di una connessione internet tra diversi computer)‫‏‬ Netfilter utilizza un sistema di policy (ACL) basato su tabelle/catene tale da permettere di individuare le “regole” da utilizzare per ogni pacchetto.
  • 72. La versione di ifconfig per interfacce di rete WiFi (802.11x family) è iwconfig Nonostante in ubuntu la configurazione di un accesso alla rete wifi è ottenibile tramite GUI; iwconfig permette via terminale di impostare l'access point, essid, canale, chiave di accesso (wep,wpa etc..)‫‏‬
  • 73. Alcuni comandi comandi di rete: ping – invia un pacchetto ICMP traceroute – ricava il percorso dei pacchetti ICMP all'interno di una rete host – utility dns nslookup – utility dns dig – utility dns arp – gestione della ARP cache netstat – identifica i socket aperti sulla propria macchina e le eventuali connessioni tcpdump – analisi del traffico tramite intercettazione (sniffing) dei pacchetti
  • 74. Le condivisioni Microsoft (NetBios/NetBeui) sono gestibili anche dai sistemi unix-like attraverso SAMBA (SMB protocol)‫‏‬ Samba configura share (condivisioni) includendo le subdirectories. Le condivisioni sono accessibili tramite protocollo TCP/IP Un client Linux può effettuare il mount di una condivisione Samba direttamente nell'albero del filesystem Ubuntu gestisce in modalità grafica la condivisione delle cartelle (esattamente come in Microsoft Windows)‫‏‬ Il file di configurazione di Samba si trova generalmente sotto /etc/smb.conf oppure /etc/samba/smb.conf