Unibo Logo

Sistemi Operativi
2016-2017

Renzo Davoli

 
 Home
 Informazioni generali
 Sistemi Operativi
 Attività di Laboratorio
 Materiale
 Studenti AA passati

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 del corso di LSO. Ovviamente, trattandosi di un corso di laboratorio, la semplice lettura di questi documenti non è sufficiente: dovrete utilizzare le nozioni presentate sui testi per risolvere gli esercizi presentati a lezione. Non solo, potrete utilizzare queste nozioni 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]
  • 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]

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]
  • 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]

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

  • Version Control with Subversion (Sussman, Fitzpatrick, Pilato)
    [Sito del libro]
  • Git User’s Manual
    [html]
  • Pro Git
    [html]
  • Git Tutorial: A Comprehensive Guide
    [html]
  • git - la guida tascabile - niente di complicato!
    [html]

UNIX (storia)

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.