SISTEMI OPERATIVI

Insegnamento
SISTEMI OPERATIVI
Insegnamento in inglese
OPERATING SYSTEMS
Settore disciplinare
ING-INF/05
Corso di studi di riferimento
INGEGNERIA DELL'INFORMAZIONE
Tipo corso di studio
Laurea
Crediti
6.0
Ripartizione oraria
Ore Attività frontale: 54.0
Anno accademico
2020/2021
Anno di erogazione
2021/2022
Anno di corso
2
Lingua
ITALIANO
Percorso
PERCORSO COMUNE

Descrizione dell'insegnamento

Il programma dell'insegnamento è provvisorio e potrebbe subire delle modifiche

Familiarità con l'utilizzo di un qualunque computer, nozioni di file, directory. Familiarità con i principali programmi di rete.

 

Introdurre ai concetti fondamentali alla base di un sistema operativo sia mediante la presentazione di nozioni teoriche che attraverso un approccio pratico al sistema operativo UNIX®. Gli studenti vengono introdotti all'esplorazione e alla conoscenza del sistema operativo attraverso l'uso dei più importanti comandi offerti dalla CLI (Command Line Interface – Interfaccia a linea di comando). L'esplorazione del sistema viene approfondita e resa più completa attraverso l'apprendimento delle tecniche di scripting, ovvero attraverso la scrittura di programmi di complessità crescente che consentono di esplorare gli aspetti più significativi del funzionamento del sistema.

 

Al termine del corso lo studente dovrebbe essere in grado di

* Comprendere le principali caratteristiche e funzionalità del sistema operativo UNIX®.

* Padroneggiare la linea di comando UNIX® attraverso lo shell bash

* Conoscere le utility più importanti messe a disposizione del sistema.

* Scrivere degli script in linguaggio bash che realizzino un'ampia gamma di funzionalità.

Il corso prevede che lo studente segua avendo la possibilità di provare immediatamente sul proprio computer quanto illustrato dal docente.

L'esame consiste di una prova svolta al computer (della durata variabile, a seconda della complessità, dai 90 ai 150 minuti) durante la quale si richiede di utilizzare in pratica mediante la realizzazione di uno script bash funzionante, i concetti e gli strumenti acquisiti durante il corso. Durante l'esame gli studenti sono liberi di consultare qualsiasi testo, cartaceo o digitale, e di fare ricerche su Internet.

 

Il File System UNIX (la sua organizzazione interna e la disposizione dei file tipica di ciascuna variante)
Il sistema dei privilegi in UNIX (significato dei privilegi per files e directory) SUID bit, SGID bit, Sticky bit
I tipi di file
Le named pipe
I processi (creazione, identificazione, distruzione, relazioni, monitoraggio, gestione)
Lo spazio di memoria di un processo
Memoria virtuale (uso dello spazio virtuale da parte di un processo e strumenti di monitoraggio)
Affinità, interoperabilità e compatibilità tra Linux, MacOS X e FreeBSD
MacOS X come client per l'accesso a un server Linux
L'editor TextWrangler
L'applicazione Terminale
Il montaggio di volumi di rete ospitati da un server Linux sulla scrivania di MacOS X
Librerie statiche e dinamiche (significato, costruzione, istallazione, utilizzo, collocazione nello spazio di memoria del processo)
Il comando grep e le espressioni regolari
I principali comandi per la crittografia a segreto condiviso e a chiave pubblica, la firma digitale
I comandi per la diagnostica e l'utilizzo delle reti
La rappresentazione dei caratteri: Unicode e UTF-8
Introduzione ai Segnali
Le distribuzioni Linux

Comandi utente presentati nel corso:

apropos, arp, base64, basename, bc, cal, cat, chmod, cmp, cp, curl, cut, date, dd, dig, dirname, du, dumpe2fs, edit, env, file, find, grep, head, hexdump, iconv, id, ifconfig, ip, jot, less, ln, locale, ls, lsof, lynx, man, md5, mkdir, mkfifo, mv, nice, open, openssl, otool, ping, printf, ps, pstree, rev, rm, rmdir, rs, say, scp, screencapture, script, sed, seq, sort, split, ssh, stat, strings, stty, sysctl, tac, tail, tar, tee, test, textutil, top, touch, tr, traceroute, tty, uniq, vm_stat, vmmap, stat, wc, which, who, whois, xargs, xxd

Bash (con riferimento ai capitoli della pagina di manuale di bash)

Invocazione, Shell grammar, Quoting, Parameters, Expansions, Redirections, Job control, Funzioni, Aritmetica, Scripting, Cicli ed espressioni condizionali, Aritmetica, Environment,  Exit status, Prompting, History, Build-in commands, Gestione dei segnali.

Comandi built-in di Bash presentati nel corso:
#, #!, alias, bg, break, case, cd, echo, enable, eval, exec, exit, export, fg, for, getopts, history, if, jobs, kill, let, pwd, read, return, select, set, source (.), test, time, times, trap, type, umask, while.

Il docente mette a disposizione numerose dispense, note e link, scaricabili liberamente dagli iscritti dal sito https://moodliis.unisalento.it (richiede autenticazione con credenziali comunicate all'inizio del corso).

Testi integrativi:
[1] Learning the Unix Operating System, 5th ed. O'Reilly 2001, ISBN 978-0596002619. Di taglio decisamente introduttivo.
[2] Learning the bash Shell, 3rd ed., O'Reilly 2005 ISBN 978-0596009656. Una trattazione molto accurata dello shell bash. 
[3] Linux in a Nutshell, 6th Edition, 3rd ed., O'Reilly 2009 ISBN 978-0596154486. Un comodo e sintetico manuale di riferimento per Linux (in grandissima parte valido anche per MacOS).
[4] Linux Command Line and Shell Scripting Bible, 3rd ed., John Wiley & Sons 2015 ISBN 978-1118983843. Il testo che, tra quelli qui elencati, copre la maggior quantità di argomenti trattati nel corso.
[5] Advanced Bash-Scripting Guide, http://tldp.org/LDP/abs/html. Una guida gratuita estremamente approfondita allo shell bash.
[6] A.Silberschatz - Operating System Concepts - Wiley - 9th edition (2013) - ISBN 978-1118063330. Una classica presentazione di taglio strettamente teorico dei concetti che il corso si sforza di introdurre attraverso l'interazione pratica con un sistema reale.

Semestre

Tipo esame
Obbligatorio

Valutazione
Orale - Voto Finale

Orario dell'insegnamento
https://easyroom.unisalento.it/Orario

Scarica scheda insegnamento (Opens New Window)(Opens New Window)