SlideShare a Scribd company logo
Sistema operativo unix
Il primo sistema «Unix» è stato messo a punto
da Ken Thompson nei laboratori Bell AT&T a
Murray nel New Jersey negli USA a partire dal
1965.
Lo scopo di Ken Thompson era di mettere a
punto un sistema operativo interattivo
semplice, detto "Multics" (Multiplexed
Information and Computing System) per far
girare un gioco che aveva creato (space travel,
una simulazione del sistema solare).
Intorno a Multics si formerà un consorzio composto da
MIT (Massassuchetts Institue of Technology), da General
Electric Co. e da Bell Lab se forma ainsi autour de
Multics.
Nell'aprile del 1969 i laboratori AT&T decidono di usare
il sistema GECOS (General Electric Comprehensive
Operating System ) al posto di Multics.
A questo punto Ken Thompson e Dennis Ritchie che si
erano uniti alla squadra ebbero bisogno di far funzionare
il gioco space travel su un terminale più piccolo (un DEC
PDP-7, Programmed Data Processor che aveva
unicamente 4K di memoria per far funzionare i
programmi degli utenti), ragione per cui riscrissero il
sistema per creare una versione ridotta di Multics detta
UNICS (UNiplexed Information and Computing Service),
rapidamente abbreviata in UNIX.
Il primo gennaio 1970 è considerata come data
di nascita del sistema Unix, ciò spiega perché
tutti gli orologi di sistema dei sistemi operativi
Unix cominciano partendo da questa data.
Parallelamente a queste attività, D.Ritchie parteciperà
ampiamente alla definizione del linguaggio C (viene
considerato come uno dei suoi fondatori insieme a
B.W.Kernighan), così tutto il sistema fu interamente
riscritto in linguaggio C nel 1973 e battezzato Unix
Time-Sharing System (TSS).
Quando il sistema passò alla versione 7 nel 1979,
l'evoluzione sarà accompagnata da modifiche
importanti come :
 l'eliminazione dell'impedimento legato alla dimensione
dei file;
 una portabilità migliore del sistema (funzionamento su
numerose piattaforme hardware);
 l'aggiunta di numerose utilities.
Nel 1973 si iniziarono a distribuire i codici
sorgente di UNIX nelle università per fini
educativi.
Dal 1977 i ricercatori dell'Università della
California risvilupparono una versione di Unix
partendo dai codici sorgente forniti da AT&T
per far funzionare il sistema sulle proprie
piattaforme VAX e lo battezzarono BSD per
Berkeley Software Developpement.
Da qui in poi verranno sviluppate moltiplici
nuove versioni di Unix.
Il progetto GNU (GNU is Not Unix) nacque nel
1984 con l’obiettivo di sviluppare un sistema
operativo Unix-like che fosse software libero
(free software). Infatti UNIX è OPEN
SOURCE.
Il concetto di software libero sta dunque alla base di
questo progetto e “si riferisce alla libertà dell’utente di
eseguire, copiare, distribuire, studiare, cambiare e
migliorare il software”, secondo QUATTRO tipi di
LIBERTA’ riportati nel manifesto di GNU ufficiale:
 Libertà(0) di eseguire il programma, per qualsiasi scopo;
 Libertà(1)di studiare come funziona il programma, e
adattarlo alle proprie necessità;
 Libertà(2)di ridistribuire copie in modo da aiutare il
prossimo;
 Libertà(3) di migliorare il programma, e distribuirne
pubblicamente i miglioramenti, in modo tale che tutta la
comunità ne tragga beneficio.
Quindi, un’applicazione software, può essere ritenuta
libera se aderisce contemporaneamente ai quattro punti
di libertà.
La Licenza di distribuzione attraverso la quale
viene distribuito il software libero prende il
nome di GNU GPL.
Esistono due categorie fondamentali che
identificano il software libero in GNU GPL:
1. Software libero CON PERMESSO
D’AUTORE;
2. Software libero SENZA PERMESSO
D’AUTORE.
Il software con permesso d’autore è software libero le
cui condizioni di distribuzione non permettono ai
ridistributori di porre alcuna restrizione addizionale
all’atto di ridistribuire o modificare il software.
Questo significa che ogni copia del software, anche se
modificata, deve essere software libero.
Un software libero con permesso d’autore può quindi
essere utilizzato da chiunque, per qualsiasi scopo e
deve essere corredato di codice sorgente completo.
Queste precondizioni, unite alla possibilità di
ridistribuzione del programma stesso, permettono un
ampio grado di libertà e modifica del software.
Chiunque ha la possibilità di modificare,
migliorando, il programma e distribuirne
pubblicamente i miglioramenti
L’autore di software libero senza permesso
d’autore concede il permesso di ridistribuire e
modificare il programma, e anche di
aggiungervi ulteriori restrizioni.
Se un programma è software libero ma non ha
permesso d’autore, è possibile che alcune
copie, con o senza modifiche, non siano
libere.
UNIX è un sistema a strati (OGNI STRATO E’
BASATO SUGLI STRATI INFERIORI e OFFRE
SERVIZI AGLI STRATI SUPERIORI).
Il sistema operativo(kernel) comunica
direttamente con l’hardware e fornisce servizi di
livello basso alla shell che viene usata dall’utente.
Molti programmi utente corretti sono
indipendenti dall'hardware sottostante, e ciò li
rende facilmente trasportabili su nuovi sistemi.
FILE SYSTEM
INTEFARCCIA
KERNEL
(Hardware)
(System call)
Il kernel ha il compito di mantenere ogni
processo ed ogni utente separato e regolare
l’accesso alle risorse del sistema senza conflitti.
Quindi la sua funzione principale è la
gestione della memoria, il controllo
dell’accesso al computer, la gestione di errori
ed interrupt..
I programmi utente interagiscono con il kernel
tramite “system call”(chiamate di sistema)
standard.
Queste system call chiedono dei servizi, servizi
che saranno forniti dal kernel.
Così i servizi possono:
1. aprire, chiudere, leggere, scrivere un file, creare
un link o eseguire un file;
2. creare o aggiornare degli account (informazioni
relative ad un utente come nome, password, ecc.);
3. cambiare il proprietario di un file o di una
directory;
4. spostarsi in una nuova directory;
5. creare, sospendere o terminare un processo.
La SHELL è un’interprete di comandi ed al
tempo stesso può diventare un potente
linguaggio di programmazione.
I comandi che richiama la shell (strumenti)
possono essere utilizzati separatamente oppure
combinati tra di loro nello svolgimento di
operazioni anche complesse.
UNIX è un sistema operativo multi-user
(multi-utente) e multi-tasking (multi-
processo).
Si possono avere molti utenti «loggati»
simultaneamente nel sistema (multi-user),
ognuno dei quali esegue alcuni programmi
(multi-tasking).
È compito del kernel mantenere ogni processo
e ogni utente separato e regolare l'accesso
all'hardware di sistema, inclusa la cpu, la
memoria, il disco e altri dispositivi di I/O.
Su un sistema UNIX lavorano
contemporaneamente più processi
(multitasking), che condividono la CPU,
utilizzandola a turno per brevi periodi
(timesharing).
Lo scheduling della CPU, ovvero l'attività che
organizza e garantisce l'accesso alla CPU ed
alle risorse del sistema, è uno dei compiti più
importanti del sistema operativo ed è
fondamentale per un efficiente funzionamento
del computer.
Un sistema UNIX, inoltre, essendo realizzato in
C, garantisce un ALTO GRADO DI
PORTABILITA' ed è quindi disponibile su un
gran numero di piattaforme hardware, anche
molto diverse l'una dall'altra.
Proprio per questo stretto legame sussistente
tra il sistema operativo UNIX e il linguaggio di
programmazione C è possibile trovare un
ambiente di sviluppo per programmi scritti in
C in ogni sistema UNIX-like.
Inoltre in UNIX, i dispositivi fisici del sistema
come il monitor, la tastiera, la stampante…
vengono trattati come comuni file: si può
infatti leggere o scrivere su di essi come se
fossero un qualsiasi altro file.
Su un sistema Unix i FILE sono suddivisi in
DIRECTORY (cartelle).
Le directory sono organizzate gerarchicamente in una
struttura ad albero che prende il nome di filesystem.
La directory radice è indicata con il simbolo / e prende
il nome di root directory (da non confondere con
l'utente root, amministratore del sistema).
Ad ogni utente viene assegnata una directory personale
(HOME DIRECTORY).
A differenza dei sistemi Windows, UNIX non utilizza
il concetto di unità (C:,D: …) per stabilire la
propria radice. La directory radice è assoluta in un
sistema UNIX e comprende di dischi o dispositivi
diversi.
Un file o una directory vengono specificate
tramite il loro “path-name” ( percorso del
nome del file): i pathname possono essere
assoluti o relativi alla posizione corrente.
Un percorso assoluto per un qualsiasi file inizia
con una directory root “/”.
Sistema operativo unix
In Unix ogni file system viene gestito in modo separato per
mezzo di un super-block e di una serie di i-node (nodi
indice).
Ad ogni file è associato un i-node (Un inode viene letto dal
kernel e specifica i permessi del file, il proprietario, la data di
creazione e di ultimo accesso e naturalmente la posizione
fisica dei blocchi di dati sul disco).
Gli i-node vengono identificati tramite un numero chiamato
i-number con il quale è possibile identificare univocamente un
file all’interno del file system.
Allo stesso i-number possono poi essere associati diversi
nomi di file, attraverso il meccanismo di link: in questo
modo più pathname corrispondono al contenuto di un solo
file registrato su disco.
In Unix tutto si può definire un file.
I tipi di file sono:
1. file ORDINARI: sono un insieme di byte e
possono essere documenti, archivi di dati, codice
sorgente di programmi, file binari eseguibili e
programmi;
2. DIRECTORY: che servono a raggruppare in
modo logico i file.
Una directory è un file contenente una tabella che
elenca i file in essa contenuti. Ciascun file in lista
ha i suoi numeri di inode;
1. file SPECIALI: per la rappresentazione delle
periferiche quali hardisk , floppy, stampanti,
dispositivi multimediali.
Una volta che l'utente si è collegato a un sistema
Unix, gli viene chiesto di inserire un login
username (nome utente) e una password (codice
segreto).
Il login username è il nome univoco dell'utente
sul sistema. La password è un codice
modificabile conosciuto solo dall'utente.
Unix è un sistema case sensitive (fa distinzione tra
caratteri minuscoli e maiuscoli). Quindi sia il login
username che la password devono essere inseriti
esattamente come sono stati creati.
Quando viene assegnato il proprio account, si riceve una
password iniziale.
Questa password è importate sia per la sicurezza del
sistema sia per una sicurezza personale, perciò la password
per il proprio account può essere cambiata a propria scelta.
Il comando per cambiare una password è passwd(1). Verrà
chiesto di inserire sia la propria vecchia password, sia la
nuova password desiderata, quest'ultima due volte.
Alcuni amministratori di sistema hanno programmi che
verificano l'accuratezza di una password (che deve essere
sufficientemente criptica per assicurare una certa sicurezza
al sistema). Un cambiamento di password può essere
rifiutato da questi programmi.
 Ctrl+D - indica la fine di un flusso di dati, può
fa uscire dal sistema un utente.
 Ctrl+C - interruzione.
 logout(1) - rilascia il sistema.
 exit(1) - rilascia la shell.
L’accesso alle periferiche è gestito tramite file
speciali (special device file), che sono i nomi
simbolici utilizzati nelle operazioni di I/O sulle
periferiche (device) del sistema di elaborazione.
I file speciali, risiedono nella directory, hanno
nomi prefissati per le periferiche standard, e
possono essere:
 A BLOCCHI (caratterizzati dalla lettera b iniziale
nella lista)
 A CARATTERI (indicati con la lettera c iniziale
nella lista).
 In quelle a BLOCCHI, le operazioni di I/O utilizzano i
buffer del sistema per i trasferimenti di dati tra le unità
del sistema;
 In quelle a CARATTERI,non vengono usati buffer di
I/O.
Tipici file speciali a caratteri sono i file associati alle
stampanti e ai terminali, mentre per i dischi sono
disponibili entrambi i tipi di file speciali.
Gli altri tipi di file speciali riguardano la gestione di
lettori e masterizzatori di CD, memorie stick, unità a
nastro (streamer o cartridge), schede di rete e modem.
La gestione dello spool sulla stampante è
affidata al sottosistema lp , che crea e gestisce le
code delle richieste di output sulla stampante.
Lo smaltimento delle stampe in coda (coda di
spool) viene realizzata dal programma di
schedulazione IPSCHED (scheduler dello
spool), che è uno dei processi attivati dal
processo init in fase di bootstrap e che resta
attivo fino allo spegnimento del sistema.
I file e le directory sono protetti da operazioni
non autorizzate di altri utenti fissando gli
attributi di protezione, che possono riguardare
la lettura, la scrittura e l’esecuzione dei file. I
valori dei permessi possono essere visualizzati
con il comando ls-l.
I permessi del file system di sistemi Unix sono
definiti e influenzano tre categorie di utenti.
1. L'utente che è il proprietario del file (u).
2. Gli altri utenti del gruppo a cui appartiene il
file (g).
3. Tutti gli altriutenti (o) a cui ci si riferisce anche
con i termini "mondo" e "tutti".
Per un FILE, a ciascun permesso corrispondono
le seguenti azioni.
• Il permesso di lettura (r) permette al
proprietario di esaminare il contenuto del file.
• Il permesso di scrittura (w) permette al
proprietario di modificare il file.
• Il permesso di esecuzione (x) permette al
proprietario di eseguire il file come comando.
Per una directory, a ciascun permesso corrispondono le
seguenti azioni.
• Il permesso di lettura (r) permette al proprietario di
elencare il contenuto della directory.
• Il permesso di scrittura (w) permette al proprietario di
aggiungere o rimuovere file dalla directory.
• Il permesso di esecuzione (x) permette al proprietario
di accedere ai file nella directory.
In questo caso il permesso di esecuzione su una
directory non solo significa poter leggere i file in quella
directory ma anche poterne vedere gli attributi, come la
dimensione e la data di modifica.
I comandi piu importanti per gestire i permessi
sui file sono CHMOD e UMASK
Il comando CHMOD modifica gli attributi di
un file o di una directory per i permessi in
lettura, scrittura ed esecuzione (rwx).
Chmod ha una duplice sintassi:
1) SINTASSI SIMBOLICA;
2)SINTASSI OTTALE.
Consente di assegnare diversi permessi al proprietario, al
gruppo ed agli altri utenti.
La sintassi è la seguente:
chmod a=rwx nomefile
A sinistra del simbolo uguale (=) abbiamo l'assegnatario del
permessi, a destra i permessi assegnati.
L'assegnatario viene identificato attraverso una lettera:
 a (tutti);
 u (utente proprietario) ;
 g (gruppo) ;
 o (altri utenti).
I permessi, invece, sono identificati dalle tre lettere r, w e x
che abbiamo già visto in precedenza.
Con questa sintassi i permessi vengono assegnati a tutti i livelli
simultaneamente.
Al posto delle lettere rwx si utilizzano 3 numeri.
In questa sintassi i tre numeri definiscono i permessi dei tre livelli:
il primo numero riguarda l'utente proprietario, il secondo il
gruppo, il terzo gli altri utenti.
Di seguito una tabella dei valori numerici e del loro significato:
 7 corrisponde a rwx ;
 6 corrisponde a rw;
 5 corrisponde a rx;
 4 corrisponde a r;
 3 corrisponde a wx;
 2 corrisponde a w;
 1 corrisponde a x;
 0 negato ogni accesso.
Stabilisce o modifica la maschera predefinita dei permessi per i file.
Quando si crea un nuovo file, esso appartiene all’utente
proprietario e al gruppo dell’utente stesso. Esso inoltre acquista i
permessi in base a una maschera predefinita (umask).
Per i file, di solito, la maschera predefinita è 666 che corrisponde
ai permessi: rw-rw-rw- ;
Per le directory, è 777 che corrisponde ai permessi: rwxrwxrwx.
Umask (user mask) è un comando e una funzione in ambienti
POSIX che imposta la modalità della maschera di creazione del
file del processo in corso che limita le modalità di autorizzazione
per i file e le directory create dal processo.
Un processo può cambiare la modalità di creazione del file con la
maschera umask e il nuovo valore viene ereditato dai processi
figli.
La shell è il programma che interpreta i
comandi inviati al sistema, fornendo
l'interfaccia fra l'utente ed il sistema operativo
Gli SHELL SCRIPT, cioè testi contenenti comandi della
shell che diventano a loro volta comandi eseguibili,
vengono scritti con diverse modalità.
In particolare si fa riferimento alla programmazione
nella shell standard, la Bash shell.
Bash sta a indicare che questa shell deriva
direttamente, con qualche variante, dalla shell di
Bourne che è sempre stata, fin dalle prime versioni di
Unix, la shell standard del sistema operativo.
La Bash shell è un interprete di linguaggio di
comandi rappresentato con il nome bash, che si trova
nella directory /bin.
Il suo pathname è quindi /bin/bash
Le variabili sono usate dalla shell per
memorizzare e modificare stringhe di
caratteri o numeri.
Una variabile della shell inizia con una lettera e
può contenere lettere, cifre e carattere _
(underscore).
Le variabili possono essere quelle definite
dall’utente oppure le variabili predefinite (o di
sistema).
L'evoluzione grafica delle shell a caratteri è
costituita dalle GUI (Graphical User Interface.
Le GUI consentono anche ad utenti
decisamente inesperti di utilizzare il computer.
La comunicazione fra l'utente ed il sistema
operativo avviene tramite un sistema di
finestre, icone e menù che consente di
effettuare operazioni complesse con un
semplice click del mouse.
Le GUI inoltre, presentano la possibilità di
sfruttare in maniera immediata le potenzialità
del multitasking.
Sistema operativo unix
Quando alcuni file contengono informazioni riservate
e’ possibile utilizzare algoritmi di crittografazione
che alterano il contenuto dei file in modo da renderli
non comprensibili.
In tal modo un eventuale accesso non autorizzato al
sistema non consente comunque la lettura dei dati.
L’utilizzo della crittografia dei dati e’ di particolare
importanza per quei file che debbono essere trasferiti
su canali di comunicazione non sicuri; se i dati sono
crittografati, ad un utente che "ascolta" i messaggi in
rete non sara’ possibile accedere ai dati.
Unix fornisce alcuni semplici comandi per effettuare la
crittografazione: crypt e decrypt.
Unix utilizza lo spazio cloud.
Il cloud computing è un nuovo modo di erogare servizi alle
aziende, che permette di archiviare, memorizzare ed elaborare
informazioni, sfruttando risorse software ed hardware
distribuite geograficamente o centralizzate in un un'unica
struttura, e virtualizzate in remoto secondo l'architettura client-
server.
Le infrastrutture di cloud computing sono grandi data center che
consentono all'utilizzatore di poter disporre delle risorse (storage,
applicativi, programmi, servizi) di cui necessita, con la formula
del pagamento a consumo;
Si dà vita così ad un nuovo modello aziendale che permette alle
aziende di ridurre considerevolmente il proprio potere
informatico interno per acquisirlo, esternamente, in base alle
esigenze del momento.
Quindi, da una parte il fornitore che offre servizi di hardware-
software fruibili, in qualsiasi momento, da ogni luogo e con
qualsiasi dispositivo;
dall'altra il cliente che può, on demand e pagamento secondo
utilizzo, accedere, in remoto, ai servizi senza l'assillo
dell'installazione, aggiornamento e backup o della manutenzione
dell'infrastruttura.
Nel caso di computer collegati in rete locale (LAN) o
geografica(WAN) la possibilità di
elaborazione/archiviazione/recupero può essere estesa
ad altri computer e dispositivi remoti dislocati sulla
rete stessa.
Sfruttando la tecnologia del cloud computing gli
utenti collegati ad un cloud provider possono
svolgere tutte queste mansioni,anche tramite un
semplice internet browser.
Possono, ad esempio,utilizzare software remoti non
direttamente installati sul proprio computer e salvare
dati su memorie di massa on-line predisposte dal
provider stesso (sfruttando sia reti via cavo che senza
fili).
Le utenze Unix corrispondono alle autorizzazioni
presenti sul sistema. Ogni utente viene assegnato
ad uno o piu’ gruppi, in tal modo e’ possibile la
condivisione di dati altrimenti riservati, tra utenti
dello stesso gruppo.
Generalmente la presenza di una utenza consente il
collegamento al sistema mediante una shell (un
interprete di comandi) che e’ configurabile
dall’Amministratore.
Ad ogni utente e’ associata una home-directory su
cui ha i necessari diritti e su cui l’utente viene
posto al momento del collegamento.
Sul sistema Unix vengono mantenuti diversi file di log.
Tali file possono essere utilizzati per DEBUGGIN, per
ACCOUNTING e per effettuare verifiche sulla sicurezza del
sistema.
 Il file utmp riporta gli estremi degli utenti connessi al sistema.
 Il file wtmp riporta i dati storici di tutte le connessioni
avvenute.
Il contenuto dei due file puo’ essere analizzato con i
comandi finger, who, e con programmi realizzati ad hoc.
 Il file lastlog riporta le date delle ultime connessioni dei vari
utenti.
Il contenuto viene generalmente utilizzato dal comando
finger.
Su Unix e’ disponibile un servizio di accounting che
consente la raccolta di dati sull’utilizzo del sistema.
L’accounting registra su log ogni comando Unix
attivato, l’utente che lo ha attivato, la quantita’ di CPU
e memoria utilizzati, ... e le loro aggregazioni per
utente/periodo. Oltre che per ragioni di accounting tali
log possono essere utilmente sfruttati per analizzare
eventuali attivita’ anomale presenti sul sistema (ad
esempio un numero elevato di processi login indica
una serie di tentativi di accesso falliti).
La presenza di piu’ meccanismi di accounting/raccolta
dati di sistema consente eventuali controlli incrociati
utili per analizzare le situazione piu’ complesse.
Le attivita’ di backup del sistema, dei
programmi e dei dati svolgono un ruolo
fondamentale per la sicurezza del sistema.
Oltre a proteggere i dati/programmi da
malfunzionamenti, consentono di ripristinare
in modo "sicuro" un sistema dopo che e’ stato
oggetto di un "attacco".

More Related Content

ODP
Corso linux base
PPTX
Relazione Sistemi
ODP
Presentazione sulle caratteristiche di Windows
PDF
Corso Linux
PDF
Introduzione a Linux: differenze con windows e strumenti per la programmazione
PDF
Linux & Open Source - Lezione 2
PDF
PPT
Presentazione Linux
Corso linux base
Relazione Sistemi
Presentazione sulle caratteristiche di Windows
Corso Linux
Introduzione a Linux: differenze con windows e strumenti per la programmazione
Linux & Open Source - Lezione 2
Presentazione Linux

What's hot (19)

PPTX
Osiris Operating system
PDF
Corso formazione Linux
PDF
Sistemi operativi: confronto tra linux, windows e mac
PDF
PPTX
Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
PPT
Sistema operativo Unix e Linux
PPTX
Sistema Operativo - LInux - Modulo 2.1
PPTX
Presentazione Sistemi Operativi
PDF
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
ODP
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
PPTX
La storia dei sistemi operativi
DOC
Ubuntu 11.04
PDF
Installazione Linux
PDF
GNU Linux introduction
PDF
Libro windows 7 reti sicurezza tecniche avanzate
ODP
Open@BNCF
PDF
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Osiris Operating system
Corso formazione Linux
Sistemi operativi: confronto tra linux, windows e mac
Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
Sistema operativo Unix e Linux
Sistema Operativo - LInux - Modulo 2.1
Presentazione Sistemi Operativi
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
La storia dei sistemi operativi
Ubuntu 11.04
Installazione Linux
GNU Linux introduction
Libro windows 7 reti sicurezza tecniche avanzate
Open@BNCF
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Ad

Viewers also liked (20)

PDF
KCF July 2015 Brochure
TXT
PPTX
Building your dreams rev e 07 19-2016
DOCX
Marialionza. síncresis o moralidad de urgencia
PPTX
Razones Para Los Apagones
PPTX
Microsoft Windows 8.1
PPS
de coquimbo soy
PDF
160825_ER_Using Tech to Tell Stories
PPS
Apartamentos na Barra da Tijuca Villa Borghese Rio de Janeiro rj
PPS
PPT
Kranten in de klas
PPSX
Expo 2015
PPTX
Como construir tus suenos
DOC
Imran Khan
PDF
engineering n mba students assessment
PDF
8th pre alg -jan23
PDF
CrocoTime презентация
PDF
Ancient Egypt
PPTX
Music Video Analysis
PPTX
Talking Angela - Cool for School
KCF July 2015 Brochure
Building your dreams rev e 07 19-2016
Marialionza. síncresis o moralidad de urgencia
Razones Para Los Apagones
Microsoft Windows 8.1
de coquimbo soy
160825_ER_Using Tech to Tell Stories
Apartamentos na Barra da Tijuca Villa Borghese Rio de Janeiro rj
Kranten in de klas
Expo 2015
Como construir tus suenos
Imran Khan
engineering n mba students assessment
8th pre alg -jan23
CrocoTime презентация
Ancient Egypt
Music Video Analysis
Talking Angela - Cool for School
Ad

Similar to Sistema operativo unix (20)

ODP
Power point sistemi operativi , luca marcella 3° e
PDF
Amministrazione base dei sistemi Linux
PDF
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
PDF
Lug Roma3 Corso Linux Base
PDF
Open-source: storia di una rivoluzione silenziosa
PDF
Linux & Open Source : Lezione Due
PPTX
Sistemi operativi
PDF
Linux day
PPTX
Sistemi operativi
PDF
Understanding Linux: 20 anni di kernel tra storia e tecnica
PDF
La Unix Way vista da un DevOps
PDF
Venti anni di GNU/Linux
PDF
Understanding Linux
PDF
Elio Tondo - Linux In Azienda
PDF
OSS appunti Ottobre 2009
PDF
Bash intro
PDF
Slide trentin
PDF
2013 pillole 02
PDF
Un Sistema Aperto Per Menti Aperte
PDF
Open non è free
Power point sistemi operativi , luca marcella 3° e
Amministrazione base dei sistemi Linux
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
Lug Roma3 Corso Linux Base
Open-source: storia di una rivoluzione silenziosa
Linux & Open Source : Lezione Due
Sistemi operativi
Linux day
Sistemi operativi
Understanding Linux: 20 anni di kernel tra storia e tecnica
La Unix Way vista da un DevOps
Venti anni di GNU/Linux
Understanding Linux
Elio Tondo - Linux In Azienda
OSS appunti Ottobre 2009
Bash intro
Slide trentin
2013 pillole 02
Un Sistema Aperto Per Menti Aperte
Open non è free

Sistema operativo unix

  • 2. Il primo sistema «Unix» è stato messo a punto da Ken Thompson nei laboratori Bell AT&T a Murray nel New Jersey negli USA a partire dal 1965. Lo scopo di Ken Thompson era di mettere a punto un sistema operativo interattivo semplice, detto "Multics" (Multiplexed Information and Computing System) per far girare un gioco che aveva creato (space travel, una simulazione del sistema solare).
  • 3. Intorno a Multics si formerà un consorzio composto da MIT (Massassuchetts Institue of Technology), da General Electric Co. e da Bell Lab se forma ainsi autour de Multics. Nell'aprile del 1969 i laboratori AT&T decidono di usare il sistema GECOS (General Electric Comprehensive Operating System ) al posto di Multics. A questo punto Ken Thompson e Dennis Ritchie che si erano uniti alla squadra ebbero bisogno di far funzionare il gioco space travel su un terminale più piccolo (un DEC PDP-7, Programmed Data Processor che aveva unicamente 4K di memoria per far funzionare i programmi degli utenti), ragione per cui riscrissero il sistema per creare una versione ridotta di Multics detta UNICS (UNiplexed Information and Computing Service), rapidamente abbreviata in UNIX.
  • 4. Il primo gennaio 1970 è considerata come data di nascita del sistema Unix, ciò spiega perché tutti gli orologi di sistema dei sistemi operativi Unix cominciano partendo da questa data.
  • 5. Parallelamente a queste attività, D.Ritchie parteciperà ampiamente alla definizione del linguaggio C (viene considerato come uno dei suoi fondatori insieme a B.W.Kernighan), così tutto il sistema fu interamente riscritto in linguaggio C nel 1973 e battezzato Unix Time-Sharing System (TSS). Quando il sistema passò alla versione 7 nel 1979, l'evoluzione sarà accompagnata da modifiche importanti come :  l'eliminazione dell'impedimento legato alla dimensione dei file;  una portabilità migliore del sistema (funzionamento su numerose piattaforme hardware);  l'aggiunta di numerose utilities.
  • 6. Nel 1973 si iniziarono a distribuire i codici sorgente di UNIX nelle università per fini educativi. Dal 1977 i ricercatori dell'Università della California risvilupparono una versione di Unix partendo dai codici sorgente forniti da AT&T per far funzionare il sistema sulle proprie piattaforme VAX e lo battezzarono BSD per Berkeley Software Developpement. Da qui in poi verranno sviluppate moltiplici nuove versioni di Unix.
  • 7. Il progetto GNU (GNU is Not Unix) nacque nel 1984 con l’obiettivo di sviluppare un sistema operativo Unix-like che fosse software libero (free software). Infatti UNIX è OPEN SOURCE.
  • 8. Il concetto di software libero sta dunque alla base di questo progetto e “si riferisce alla libertà dell’utente di eseguire, copiare, distribuire, studiare, cambiare e migliorare il software”, secondo QUATTRO tipi di LIBERTA’ riportati nel manifesto di GNU ufficiale:  Libertà(0) di eseguire il programma, per qualsiasi scopo;  Libertà(1)di studiare come funziona il programma, e adattarlo alle proprie necessità;  Libertà(2)di ridistribuire copie in modo da aiutare il prossimo;  Libertà(3) di migliorare il programma, e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio. Quindi, un’applicazione software, può essere ritenuta libera se aderisce contemporaneamente ai quattro punti di libertà.
  • 9. La Licenza di distribuzione attraverso la quale viene distribuito il software libero prende il nome di GNU GPL. Esistono due categorie fondamentali che identificano il software libero in GNU GPL: 1. Software libero CON PERMESSO D’AUTORE; 2. Software libero SENZA PERMESSO D’AUTORE.
  • 10. Il software con permesso d’autore è software libero le cui condizioni di distribuzione non permettono ai ridistributori di porre alcuna restrizione addizionale all’atto di ridistribuire o modificare il software. Questo significa che ogni copia del software, anche se modificata, deve essere software libero. Un software libero con permesso d’autore può quindi essere utilizzato da chiunque, per qualsiasi scopo e deve essere corredato di codice sorgente completo. Queste precondizioni, unite alla possibilità di ridistribuzione del programma stesso, permettono un ampio grado di libertà e modifica del software. Chiunque ha la possibilità di modificare, migliorando, il programma e distribuirne pubblicamente i miglioramenti
  • 11. L’autore di software libero senza permesso d’autore concede il permesso di ridistribuire e modificare il programma, e anche di aggiungervi ulteriori restrizioni. Se un programma è software libero ma non ha permesso d’autore, è possibile che alcune copie, con o senza modifiche, non siano libere.
  • 12. UNIX è un sistema a strati (OGNI STRATO E’ BASATO SUGLI STRATI INFERIORI e OFFRE SERVIZI AGLI STRATI SUPERIORI). Il sistema operativo(kernel) comunica direttamente con l’hardware e fornisce servizi di livello basso alla shell che viene usata dall’utente. Molti programmi utente corretti sono indipendenti dall'hardware sottostante, e ciò li rende facilmente trasportabili su nuovi sistemi.
  • 14. Il kernel ha il compito di mantenere ogni processo ed ogni utente separato e regolare l’accesso alle risorse del sistema senza conflitti. Quindi la sua funzione principale è la gestione della memoria, il controllo dell’accesso al computer, la gestione di errori ed interrupt..
  • 15. I programmi utente interagiscono con il kernel tramite “system call”(chiamate di sistema) standard. Queste system call chiedono dei servizi, servizi che saranno forniti dal kernel. Così i servizi possono: 1. aprire, chiudere, leggere, scrivere un file, creare un link o eseguire un file; 2. creare o aggiornare degli account (informazioni relative ad un utente come nome, password, ecc.); 3. cambiare il proprietario di un file o di una directory; 4. spostarsi in una nuova directory; 5. creare, sospendere o terminare un processo.
  • 16. La SHELL è un’interprete di comandi ed al tempo stesso può diventare un potente linguaggio di programmazione. I comandi che richiama la shell (strumenti) possono essere utilizzati separatamente oppure combinati tra di loro nello svolgimento di operazioni anche complesse.
  • 17. UNIX è un sistema operativo multi-user (multi-utente) e multi-tasking (multi- processo). Si possono avere molti utenti «loggati» simultaneamente nel sistema (multi-user), ognuno dei quali esegue alcuni programmi (multi-tasking). È compito del kernel mantenere ogni processo e ogni utente separato e regolare l'accesso all'hardware di sistema, inclusa la cpu, la memoria, il disco e altri dispositivi di I/O.
  • 18. Su un sistema UNIX lavorano contemporaneamente più processi (multitasking), che condividono la CPU, utilizzandola a turno per brevi periodi (timesharing). Lo scheduling della CPU, ovvero l'attività che organizza e garantisce l'accesso alla CPU ed alle risorse del sistema, è uno dei compiti più importanti del sistema operativo ed è fondamentale per un efficiente funzionamento del computer.
  • 19. Un sistema UNIX, inoltre, essendo realizzato in C, garantisce un ALTO GRADO DI PORTABILITA' ed è quindi disponibile su un gran numero di piattaforme hardware, anche molto diverse l'una dall'altra. Proprio per questo stretto legame sussistente tra il sistema operativo UNIX e il linguaggio di programmazione C è possibile trovare un ambiente di sviluppo per programmi scritti in C in ogni sistema UNIX-like.
  • 20. Inoltre in UNIX, i dispositivi fisici del sistema come il monitor, la tastiera, la stampante… vengono trattati come comuni file: si può infatti leggere o scrivere su di essi come se fossero un qualsiasi altro file.
  • 21. Su un sistema Unix i FILE sono suddivisi in DIRECTORY (cartelle). Le directory sono organizzate gerarchicamente in una struttura ad albero che prende il nome di filesystem. La directory radice è indicata con il simbolo / e prende il nome di root directory (da non confondere con l'utente root, amministratore del sistema). Ad ogni utente viene assegnata una directory personale (HOME DIRECTORY). A differenza dei sistemi Windows, UNIX non utilizza il concetto di unità (C:,D: …) per stabilire la propria radice. La directory radice è assoluta in un sistema UNIX e comprende di dischi o dispositivi diversi.
  • 22. Un file o una directory vengono specificate tramite il loro “path-name” ( percorso del nome del file): i pathname possono essere assoluti o relativi alla posizione corrente. Un percorso assoluto per un qualsiasi file inizia con una directory root “/”.
  • 24. In Unix ogni file system viene gestito in modo separato per mezzo di un super-block e di una serie di i-node (nodi indice). Ad ogni file è associato un i-node (Un inode viene letto dal kernel e specifica i permessi del file, il proprietario, la data di creazione e di ultimo accesso e naturalmente la posizione fisica dei blocchi di dati sul disco). Gli i-node vengono identificati tramite un numero chiamato i-number con il quale è possibile identificare univocamente un file all’interno del file system. Allo stesso i-number possono poi essere associati diversi nomi di file, attraverso il meccanismo di link: in questo modo più pathname corrispondono al contenuto di un solo file registrato su disco.
  • 25. In Unix tutto si può definire un file. I tipi di file sono: 1. file ORDINARI: sono un insieme di byte e possono essere documenti, archivi di dati, codice sorgente di programmi, file binari eseguibili e programmi; 2. DIRECTORY: che servono a raggruppare in modo logico i file. Una directory è un file contenente una tabella che elenca i file in essa contenuti. Ciascun file in lista ha i suoi numeri di inode; 1. file SPECIALI: per la rappresentazione delle periferiche quali hardisk , floppy, stampanti, dispositivi multimediali.
  • 26. Una volta che l'utente si è collegato a un sistema Unix, gli viene chiesto di inserire un login username (nome utente) e una password (codice segreto). Il login username è il nome univoco dell'utente sul sistema. La password è un codice modificabile conosciuto solo dall'utente. Unix è un sistema case sensitive (fa distinzione tra caratteri minuscoli e maiuscoli). Quindi sia il login username che la password devono essere inseriti esattamente come sono stati creati.
  • 27. Quando viene assegnato il proprio account, si riceve una password iniziale. Questa password è importate sia per la sicurezza del sistema sia per una sicurezza personale, perciò la password per il proprio account può essere cambiata a propria scelta. Il comando per cambiare una password è passwd(1). Verrà chiesto di inserire sia la propria vecchia password, sia la nuova password desiderata, quest'ultima due volte. Alcuni amministratori di sistema hanno programmi che verificano l'accuratezza di una password (che deve essere sufficientemente criptica per assicurare una certa sicurezza al sistema). Un cambiamento di password può essere rifiutato da questi programmi.
  • 28.  Ctrl+D - indica la fine di un flusso di dati, può fa uscire dal sistema un utente.  Ctrl+C - interruzione.  logout(1) - rilascia il sistema.  exit(1) - rilascia la shell.
  • 29. L’accesso alle periferiche è gestito tramite file speciali (special device file), che sono i nomi simbolici utilizzati nelle operazioni di I/O sulle periferiche (device) del sistema di elaborazione. I file speciali, risiedono nella directory, hanno nomi prefissati per le periferiche standard, e possono essere:  A BLOCCHI (caratterizzati dalla lettera b iniziale nella lista)  A CARATTERI (indicati con la lettera c iniziale nella lista).
  • 30.  In quelle a BLOCCHI, le operazioni di I/O utilizzano i buffer del sistema per i trasferimenti di dati tra le unità del sistema;  In quelle a CARATTERI,non vengono usati buffer di I/O. Tipici file speciali a caratteri sono i file associati alle stampanti e ai terminali, mentre per i dischi sono disponibili entrambi i tipi di file speciali. Gli altri tipi di file speciali riguardano la gestione di lettori e masterizzatori di CD, memorie stick, unità a nastro (streamer o cartridge), schede di rete e modem.
  • 31. La gestione dello spool sulla stampante è affidata al sottosistema lp , che crea e gestisce le code delle richieste di output sulla stampante. Lo smaltimento delle stampe in coda (coda di spool) viene realizzata dal programma di schedulazione IPSCHED (scheduler dello spool), che è uno dei processi attivati dal processo init in fase di bootstrap e che resta attivo fino allo spegnimento del sistema.
  • 32. I file e le directory sono protetti da operazioni non autorizzate di altri utenti fissando gli attributi di protezione, che possono riguardare la lettura, la scrittura e l’esecuzione dei file. I valori dei permessi possono essere visualizzati con il comando ls-l.
  • 33. I permessi del file system di sistemi Unix sono definiti e influenzano tre categorie di utenti. 1. L'utente che è il proprietario del file (u). 2. Gli altri utenti del gruppo a cui appartiene il file (g). 3. Tutti gli altriutenti (o) a cui ci si riferisce anche con i termini "mondo" e "tutti".
  • 34. Per un FILE, a ciascun permesso corrispondono le seguenti azioni. • Il permesso di lettura (r) permette al proprietario di esaminare il contenuto del file. • Il permesso di scrittura (w) permette al proprietario di modificare il file. • Il permesso di esecuzione (x) permette al proprietario di eseguire il file come comando.
  • 35. Per una directory, a ciascun permesso corrispondono le seguenti azioni. • Il permesso di lettura (r) permette al proprietario di elencare il contenuto della directory. • Il permesso di scrittura (w) permette al proprietario di aggiungere o rimuovere file dalla directory. • Il permesso di esecuzione (x) permette al proprietario di accedere ai file nella directory. In questo caso il permesso di esecuzione su una directory non solo significa poter leggere i file in quella directory ma anche poterne vedere gli attributi, come la dimensione e la data di modifica.
  • 36. I comandi piu importanti per gestire i permessi sui file sono CHMOD e UMASK
  • 37. Il comando CHMOD modifica gli attributi di un file o di una directory per i permessi in lettura, scrittura ed esecuzione (rwx). Chmod ha una duplice sintassi: 1) SINTASSI SIMBOLICA; 2)SINTASSI OTTALE.
  • 38. Consente di assegnare diversi permessi al proprietario, al gruppo ed agli altri utenti. La sintassi è la seguente: chmod a=rwx nomefile A sinistra del simbolo uguale (=) abbiamo l'assegnatario del permessi, a destra i permessi assegnati. L'assegnatario viene identificato attraverso una lettera:  a (tutti);  u (utente proprietario) ;  g (gruppo) ;  o (altri utenti). I permessi, invece, sono identificati dalle tre lettere r, w e x che abbiamo già visto in precedenza.
  • 39. Con questa sintassi i permessi vengono assegnati a tutti i livelli simultaneamente. Al posto delle lettere rwx si utilizzano 3 numeri. In questa sintassi i tre numeri definiscono i permessi dei tre livelli: il primo numero riguarda l'utente proprietario, il secondo il gruppo, il terzo gli altri utenti. Di seguito una tabella dei valori numerici e del loro significato:  7 corrisponde a rwx ;  6 corrisponde a rw;  5 corrisponde a rx;  4 corrisponde a r;  3 corrisponde a wx;  2 corrisponde a w;  1 corrisponde a x;  0 negato ogni accesso.
  • 40. Stabilisce o modifica la maschera predefinita dei permessi per i file. Quando si crea un nuovo file, esso appartiene all’utente proprietario e al gruppo dell’utente stesso. Esso inoltre acquista i permessi in base a una maschera predefinita (umask). Per i file, di solito, la maschera predefinita è 666 che corrisponde ai permessi: rw-rw-rw- ; Per le directory, è 777 che corrisponde ai permessi: rwxrwxrwx. Umask (user mask) è un comando e una funzione in ambienti POSIX che imposta la modalità della maschera di creazione del file del processo in corso che limita le modalità di autorizzazione per i file e le directory create dal processo. Un processo può cambiare la modalità di creazione del file con la maschera umask e il nuovo valore viene ereditato dai processi figli.
  • 41. La shell è il programma che interpreta i comandi inviati al sistema, fornendo l'interfaccia fra l'utente ed il sistema operativo
  • 42. Gli SHELL SCRIPT, cioè testi contenenti comandi della shell che diventano a loro volta comandi eseguibili, vengono scritti con diverse modalità. In particolare si fa riferimento alla programmazione nella shell standard, la Bash shell. Bash sta a indicare che questa shell deriva direttamente, con qualche variante, dalla shell di Bourne che è sempre stata, fin dalle prime versioni di Unix, la shell standard del sistema operativo. La Bash shell è un interprete di linguaggio di comandi rappresentato con il nome bash, che si trova nella directory /bin. Il suo pathname è quindi /bin/bash
  • 43. Le variabili sono usate dalla shell per memorizzare e modificare stringhe di caratteri o numeri. Una variabile della shell inizia con una lettera e può contenere lettere, cifre e carattere _ (underscore). Le variabili possono essere quelle definite dall’utente oppure le variabili predefinite (o di sistema).
  • 44. L'evoluzione grafica delle shell a caratteri è costituita dalle GUI (Graphical User Interface. Le GUI consentono anche ad utenti decisamente inesperti di utilizzare il computer. La comunicazione fra l'utente ed il sistema operativo avviene tramite un sistema di finestre, icone e menù che consente di effettuare operazioni complesse con un semplice click del mouse. Le GUI inoltre, presentano la possibilità di sfruttare in maniera immediata le potenzialità del multitasking.
  • 46. Quando alcuni file contengono informazioni riservate e’ possibile utilizzare algoritmi di crittografazione che alterano il contenuto dei file in modo da renderli non comprensibili. In tal modo un eventuale accesso non autorizzato al sistema non consente comunque la lettura dei dati. L’utilizzo della crittografia dei dati e’ di particolare importanza per quei file che debbono essere trasferiti su canali di comunicazione non sicuri; se i dati sono crittografati, ad un utente che "ascolta" i messaggi in rete non sara’ possibile accedere ai dati. Unix fornisce alcuni semplici comandi per effettuare la crittografazione: crypt e decrypt.
  • 47. Unix utilizza lo spazio cloud. Il cloud computing è un nuovo modo di erogare servizi alle aziende, che permette di archiviare, memorizzare ed elaborare informazioni, sfruttando risorse software ed hardware distribuite geograficamente o centralizzate in un un'unica struttura, e virtualizzate in remoto secondo l'architettura client- server. Le infrastrutture di cloud computing sono grandi data center che consentono all'utilizzatore di poter disporre delle risorse (storage, applicativi, programmi, servizi) di cui necessita, con la formula del pagamento a consumo; Si dà vita così ad un nuovo modello aziendale che permette alle aziende di ridurre considerevolmente il proprio potere informatico interno per acquisirlo, esternamente, in base alle esigenze del momento. Quindi, da una parte il fornitore che offre servizi di hardware- software fruibili, in qualsiasi momento, da ogni luogo e con qualsiasi dispositivo; dall'altra il cliente che può, on demand e pagamento secondo utilizzo, accedere, in remoto, ai servizi senza l'assillo dell'installazione, aggiornamento e backup o della manutenzione dell'infrastruttura.
  • 48. Nel caso di computer collegati in rete locale (LAN) o geografica(WAN) la possibilità di elaborazione/archiviazione/recupero può essere estesa ad altri computer e dispositivi remoti dislocati sulla rete stessa. Sfruttando la tecnologia del cloud computing gli utenti collegati ad un cloud provider possono svolgere tutte queste mansioni,anche tramite un semplice internet browser. Possono, ad esempio,utilizzare software remoti non direttamente installati sul proprio computer e salvare dati su memorie di massa on-line predisposte dal provider stesso (sfruttando sia reti via cavo che senza fili).
  • 49. Le utenze Unix corrispondono alle autorizzazioni presenti sul sistema. Ogni utente viene assegnato ad uno o piu’ gruppi, in tal modo e’ possibile la condivisione di dati altrimenti riservati, tra utenti dello stesso gruppo. Generalmente la presenza di una utenza consente il collegamento al sistema mediante una shell (un interprete di comandi) che e’ configurabile dall’Amministratore. Ad ogni utente e’ associata una home-directory su cui ha i necessari diritti e su cui l’utente viene posto al momento del collegamento.
  • 50. Sul sistema Unix vengono mantenuti diversi file di log. Tali file possono essere utilizzati per DEBUGGIN, per ACCOUNTING e per effettuare verifiche sulla sicurezza del sistema.  Il file utmp riporta gli estremi degli utenti connessi al sistema.  Il file wtmp riporta i dati storici di tutte le connessioni avvenute. Il contenuto dei due file puo’ essere analizzato con i comandi finger, who, e con programmi realizzati ad hoc.  Il file lastlog riporta le date delle ultime connessioni dei vari utenti. Il contenuto viene generalmente utilizzato dal comando finger.
  • 51. Su Unix e’ disponibile un servizio di accounting che consente la raccolta di dati sull’utilizzo del sistema. L’accounting registra su log ogni comando Unix attivato, l’utente che lo ha attivato, la quantita’ di CPU e memoria utilizzati, ... e le loro aggregazioni per utente/periodo. Oltre che per ragioni di accounting tali log possono essere utilmente sfruttati per analizzare eventuali attivita’ anomale presenti sul sistema (ad esempio un numero elevato di processi login indica una serie di tentativi di accesso falliti). La presenza di piu’ meccanismi di accounting/raccolta dati di sistema consente eventuali controlli incrociati utili per analizzare le situazione piu’ complesse.
  • 52. Le attivita’ di backup del sistema, dei programmi e dei dati svolgono un ruolo fondamentale per la sicurezza del sistema. Oltre a proteggere i dati/programmi da malfunzionamenti, consentono di ripristinare in modo "sicuro" un sistema dopo che e’ stato oggetto di un "attacco".