OPERATING SYSTEMS

Teaching in italian
SISTEMI OPERATIVI
Teaching
OPERATING SYSTEMS
Subject area
ING-INF/05
Reference degree course
INFORMATION ENGINEERING: ELECTRONICS, COMPUTER AND TELECOMMUNICATIONS
Course type
Bachelor's Degree
Credits
9.0
Teaching hours
Frontal Hours: 81.0
Academic year
2024/2025
Year taught
2025/2026
Course year
2
Language
ITALIAN
Curriculum
Percorso comune

Teaching description

Teaching program is provisional and may be subject to changes

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.

F. Tommasi "Alla Scoperta di UNIX - Esplorare GNU/Linux e macOS con la linea di comando" 2a edizione, Aprile 2024, ISBN: 979-1221056372

 

Il docente mette inoltre 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).

Altri testi per allargare lo sguardo sui contenuti del corso:
[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.

Semester

Exam type
Compulsory - Characterizing

Type of assessment
Oral - Final grade

Course timetable
https://easyroom.unisalento.it/Orario

Download teaching card (Apre una nuova finestra)(Apre una nuova finestra)