Attività di Laboratorio
|
|
Documentazione
I documenti che trovate qui di seguito, insieme ai vostri appunti presi durante le lezioni,
costituiscono una base sufficiente per imparare gli argomenti principali per le parti di laboratorio
del corso di Sistemi Operativi.
La semplice lettura di questi documenti non è sufficiente:
dovrete utilizzare i metodi presentati sui testi per risolvere gli esercizi presentati a lezione. Non
solo, potrete utilizzare questa conoscenza per risolvere i vostri problemi di programmazione (di sistema e
non).
Linguaggio C
Il linguaggio C è descritto in un libro di testo ritenuto fondamentale, detto brevemente K&R
(dal nome degli autori, Kernighan and Ritchie - autori sia del libro che del linguaggio!). A differenza
degli altri libri per il corso di LSO, questo libro è fondamentale per ogni informatico che si
rispetti. Ciò nonostante, pubblichiamo qui alcuni link che possono essere utili a imparare il C.
- Ansi C for programmers on Unix systems, di Tim
Love
Questo testo (73 pagine) contiene una descrizione del linguaggio C per chi conosce già un
linguaggio di programmazione procedurale imperativo. Descrive brevemente tutte le caratteristiche
fondamentali. Consigliato.
[Pdf][Postscript]
- GNU C Language Introduction
and Reference Manual di Richard Stallman,
Trevis Rothwell, Nelson Beebe.
Questo testo recentemente aggiornato (09/2022) presenta
una introduzione alla programmazione in C e il manuale
di riferimenti di GNU C (estensione di ANSI).
[git]
[ copia locale pdf ]
- C Programming Notes, di Steve Summit
Questo corso (in formato html) è suddiviso in due parti; la prima è introduttiva, mentre
la seconda contiene informazioni più avanzate. Questo testo è nato come supplemento al
K&R, ma può essere consultato anche da solo. Se il testo precedente non vi basta, questo
potrebbe essere la soluzione.
[Parte 1 (versione online)][Parte 2 (versione online)][Parti 1 e 2 (versione tar.gz)]
- Programming in C - UNIX System Calls and Subroutines using C, di Dave Marshall
Un altro corso molto completo, che contiene anche una interessante discussione sul system call e
interprocess communication. Per questo motivo è citato anche nel seguito. Alcune parti sono
relative al laboratorio dell'autore, come
[Versione online][Versione
tar.gz]
- Elenco funzioni della libreria standard ANSI C
Un semplice elenco di funzioni, per capire cosa si può fare. Se avete bisogno di più
dettagli, utilizzate il comando man 3 nomefunzione su una macchina
Linux.
[Versione online]
- Ansi C Reference Card
[Copia originale] [Copia locale]
- The C Library Reference Guide
[Copia originale]
- The GNU C Reference Manual
[Copia originale]
- The GNU C Library Reference Manual
[Copia originale]
- The C Library Reference Guide
[Copia originale]
Unix
Un testo semplice che spiaga alcuni dei concetti base di Unix è il seguente:
- Introduction to Unix, di G. Fiamingo et al. (testo veramente introduttivo)
[Pdf]
- Guida alla programmazione in Linux, di Simone Piccardi (testo
non completo, ma valido)
[Html] [Pdf]
- GNU Linux Advanced Administration by Remo S. Boldrito, Josep J. Esteve
[pdf] [pdf]
- The Art of UNIX Programming, di Eric S. Raymond (unico nel
suo genere)
[Html]
- Linux System Administration
Paul Cobbaut [pdf]
[pdf]
- Amministrare GNU/Linux, di Simone Piccardi - truelite
[Html]
[pdf]
- Interfaccia Utente a caratteri (testuale)
Interprete dei comandi
Shell scripting , di Vittorio Ghini (prof. SO - unibo Cesena)
[pdf]
- vi cheatsheet, di Miles Davis et al.
[Html]
- The Linux Command Line, di William Shotts
[pdf]
Shell scripting
Per quanto riguarda shell scripting, non esiste un testo (stampato) di riferimento. I testi qui indicati
sono più che sufficienti.
- Advanced Bash-Scripting Guide, di Mendel
Cooper
Guida completa alla shell bash.
[Pdf]
- The Awk Manual (autori vari)
Guida al tool awk.
[Pdf]
- Effective AWK Programming
Un'altra guida ad awk.
[Html]
Python
- Da Zero a Python in 45 minuti. Andrea Colangelo
[Pdf]
[Pdf(local copy)]
- Python for Programmers, Alex Martelli
[Pdf]
- Pensare da informatico, A. Dowley, J Elkner and C. Meyers
[Pdf]
[Pdf(local copy)]
- Think Python, A. Dowley, J Elkner and C. Meyers
[sito]
[pdf]
[Pdf(local copy)]
- Manuale python per ragazzi, Aurora Martina, Angelo Raffaele Meo, Clotilde Moro, Mario Scovazzi.
[Pdf]
[Pdf(local copy)]
Sistemi di Versioning
- Pro Git
Scott Chacon and Ben Straub
[html, pdf]
- git-crash-course
Davide Alberani.
[git, markdown]
- Git User’s Manual
[html]
- Pro Git
[html]
- Git Tutorial: A Comprehensive Guide
[html]
- git - la guida tascabile - niente di complicato!
[html]
- Version Control with Subversion (Sussman, Fitzpatrick, Pilato)
[Sito del libro]
Build System
UNIX (storia)
Varie
-
RAID6:
"EVENODD: An Optimal Scheme for Tolerating Double Disk Failures
Mario Blaurn et al."
Linux
Per la documentazione relativa a Linux, vi consigliamo di dare un'occhiata al Linux Documentation Project . Questi progetti raccolgono testi con licenze libere su Linux e informatica in generale. La
pagina con il maggior numero di testi è quella relativa al CD.
PS
Questa pagina non viene aggiornata molto spesso; alcuni link possono essere obsoleti. Se trovate broken
link o nuova documentazione, siete pregati di comunicarlo a entrambi i docenti.
|