Dan's Brain

SO


Mail Prof: daniele.radicioni@unito.it 12 Crediti

Informazioni corso

  • Scritto
  • Orale facoltativo - per la Lode

Teoria

Unix

  • The Linux Programming Interface

Introduzione

Anni ‘60

2 Kernel Originari

  • AT&T
  • BSD

Richard Stallman lancia lo GNU Project 1983

Free as in Freedom, il punto non e’ sulla gratuita'

  • E' ispezionabile

Per un uso didattico basta un sistema discendente da System5

Linus Torvalds, inizia a lavorare su Linux - Unix-like 1991

Progressive Licensing ~ software distrubuibile gratuitamente

  • Linux e' il kernel

OS

strato che mette in comunicazione utente e hardware

  • Kernel

    strato piu' basso

    • composto di funzioni autonome
      • non utilizzate direttamente dall’utente
    • Permette l’accesso all’hardware
    • Device
    • Processi

      Sono programmi in esecuzione

      • un kernel facilita la creazione e la gestione dei processi
      • Fork

        System call

        • crea una seconda linea di computazione
        • crezioni di processi

          Processi possono creare altri processi

          • Genitori
          • Figli
        • biforcazione della linea di computazione
      • Comunicazione tra Processi

        per permetterne la collaborazione

    • Gestione della Memoria

      • Virtualizzazione della Memoria

        spostamento parti di processi in Memoria Secondaria

        • poi ripresa attraverso paging
        • Swap

          spostamento di interi processi nella memoria secondaria

    • Operazioni sul Filesystem
    • Un kernel e' construito per un hardware specifico
  • Shell

    • interprete di comandi
    • permette l’interazione utente - sistema
    • oggetto utilizzato per l’amministrazione della macchina

      $ cat /etc/shells

      $ tar cvzf foo.tgz cps100 $ tar xvzf foo.tgz

  • Filesystem

    Visione astratta che visualizza il contenuto della memoria secondaria della macchina

    • e' un albero
      • bin/ applicazioni condivise
      • etc/ configurazione
      • home/ directories degli utenti
      • lib/ librerie necessarie agli utenti
      • opt/ third party software
      • tmp/ spazio temporaneo
      • usr/ spazio programmi degli utenti
    • permette all’utente di

      • visualizzare
      • organizzare
      • interagire le directories della macchina
  • Applicazioni

    comandi, parti

    • Comandi

      • comando
      • argomenti
      • flag con o senza dash che li preceda
      • tar
      • man

        >man 1 command

        • Possibile specificare la sezione con numero
      • grep

        global regular expression print

        • cerca pattern
      • tail
      • head
      • less
      • more
      • mv
      • rm
      • cp
      • Metacharacter

        wildcards

        • ? qualsiasi carattere 1 volta
        • * carattere 0 o piu'
        • match tra uno dei caratteri specificati
      • Input Output Redirection

        redirigere l’output $ ls > out.org sovrascrive $ ls >> out.org preserva il contenuto precedente

        cambiare l’input $ sort < terms > terms-alpha sort prende terms e scrive in terms-alpha

      • Pipes

        Operatore che combina input e output redirection

        • l’output di un programma viene utilizzato come input ad un altro programma

        > echo $SHELL

  • Filosofia

    • Semplicita'

      ciascun componente deve essere breve

    • Focus

      fare una cosa bene

      • piu' semplice da mantenere
    • Componenti Riutilizzabili
    • Filtri

      strumenti che trasformano l’input in un output

    • File in formati aperti

      UTF8 ~ UTF16

    • Flessibilita'

      Evitare limiti arbitrari

  • Account

    Privilegi dei vari account

    • root

      completo controllo

      • puo' distruggere il sistema
      • e' dato per scontato che si abbia conoscenza dei pericoli
    • system
    • utente

      • nomi
        • si usavano al piu' di 8 caratteri
      • poco accesso
    • Gruppi

      ogni file ha permessi per:

      • owner
      • gruppo
      • altri

      Consentono il controllo di accessi su parti diverse della macchina in una macchina condivisa

    • Permessi

      il superutente o il proprietario di una risorsa puo' cambiarne la proprieta'

      > chown jane home/bin > ls -l //formato long -rwxrwx—

      • la sequenza e':
        • in prima posizione indica il tipo di file
          • directory
          • fifo
        • poi si susseguono 3 blocchi da 3
          • permessi utente
          • permessi gruppo
          • permessi altri

      Cambio Permessi > chmod o+wr myfile //symbolic mode aggiunge write e execute permission a others > chmod 754 myfile //absolute mode

      • absolute
        • ogni numero indica il valore in binario dei permessi di ogni gruppo(owner|group|others)
      • Tipi di permessi

        • r
        • w
        • e
      • utenti

        • u
        • g
        • o

Integrazione C

Controllo dei processi

Segnali

Pipe e Fifo

Code di messaggi

Memoria Condivisa

Semafori

Bash

C

Esercitazioni

La sua discussione permette l’accesso allo Scritto (5 scritti all’anno)

  • almeno 10 giorni di anticipo per la consegna, inviato ai professori dei turni corrispondenti ai partecipanti
  • preferibilmente fuori dalla finestra esami

Progetto Individuale o di Gruppo (max 3)

Una volta completato chiedere con mail al professore del corso di Teoria di poter sostenere l’esame scritto, eventualmente l’orale

Novembre

Sorgenti

Breve Relazione

Nome Cognome - Matricola - Mail

Links to this note