Diario delle lezioni

  1. 5/3/08 (LAB). Presentazione del corso. Introduzione a Linux. Comandi base.
  2. 7/3/08 (AULA). Il filesystem Unix. Directory, link e permessi. Variabili di shell. Redirezione.
  3. 12/3/08 (LAB). Gli script di shell. Il ciclo for. Esercizi.
  4. 14/3/08 (AULA). Le pipe. Comandi concatenabili: cat, wc, sort, uniq. Command substitution. Script di shell. Costrutto if e comando test.
  5. 2/4/08 (LAB). Arithmetic substitution. Ciclo while. Esercizi su script di shell.
  6. 4/4/08 (AULA). Espressioni regolari. Comandi grep, sed ed awk.
  7. 9/4/08 (LAB). Esercizi su espressioni regolari. Awk avanzato.
  8. 11/4/08 (AULA). Comandi per la gestione dei processi. Richiami di linguaggio C.
  9. 16/4/08 (LAB). Esercizi su script ed espressioni regolari. Esercizio n.2 del 9/7/07 (soluzione). Esercizio n.2 del 18/2/08. Esercizio n.2 del 7/9/07.
  10. 18/4/08 (AULA). System call per l'accesso al filesystem (open, close, read, write, lseek, dup, dup2). I segnali; system call kill e signal.
  11. 23/4/08 (LAB). Esercizi sulle system call per l'accesso al filesystem. Esercizio mostrare un file alla rovescia (soluzione).
  12. 30/4/08. Prova intercorso.
  13. 7/5/08. (LAB). I segnali: system call alarm. Gestione dei processi: fork. Esercizi.
  14. 9/5/08. (AULA). Gestione dei processi: exec. Le pipe.
  15. 14/5/08. (LAB). Esercizio sul pool di programmi per il calcolo dei numeri primi (pipe, fork, exec e dup2).
  16. 16/5/08. (AULA). I thread POSIX. Esempio.
  17. 21/5/08. (LAB). Esercizi sui thread POSIX.
  18. 23/5/08. (AULA). Sincronizzazione tra thread: mutex e condition variable.
  19. 28/5/08. (LAB). Esercizi sulla sincronizzazione tra thread.
  20. 30/5/08. (AULA). Socket locali.
  21. 4/6/08. (LAB). Esercizi su socket locali.
  22. 6/6/08. (AULA). Socket TCP/IP. Risoluzione dei nomi.
  23. 11/6/08. (LAB). Esercizi su socket TCP/IP.
  24. 13/6/08. (AULA). Il debugger gdb. Il buffer overflow.