Approfondimento GNU Autotools Sistemi Operativi (9 CFU), Cdl Informatica, A

Approfondimento GNU Autotools Sistemi Operativi (9 CFU), Cdl Informatica, A

Approfondimento GNU Autotools Sistemi Operativi (9 CFU), CdL Informatica, A A !"#$%!"#& Dipartimento di Scienze Fisic)e, Informatic)e e *atematiche Università di *odena e Re--io .milia )ttp/%%0e1lab ing unimo it/people%andreolini/didattica/sistemi2operativi 1 Quote of t)e da4 (*editate, -ente, meditate ) “The difference between a good and a poor architect is that the poor architect succumbs to every temptation and the good one resists it.” Ludwig Wittgenstein (1889-1951) Filosofo, ingegnere, logico Pioniere della logica filosofica 2 GNU AUTOTOOLS 3 Scenario e domande (Esistono strumenti di ausilio alla scelta di una distribu(ione GNU%Linu56) Scenario: l7utente ha a disposizione un )ost%-uest su cui 8 stata appena installata una distribu(ione GNU/Linu5 L7utente vuole imparare a gestire (installare, rendere porta1ile) il soft0are 9a mano: Domande: .sistono strumenti per installare soft0are partendo da archivi sor-ente6 ;ali strumenti gestiscono le differenze presenti nei diversi SO UNI=6 4 Un caso di vita vissuta (Un programmatore scopre X11 e vuole condividere la sua scien(a con altri) Un pro-rammatore scrive un programma in lingua--io C che apre una >nestra di =## A puro titolo di esempio, fate conto che ?uesto programma sia window.c, presente nella se(ione 9Approfondimenti: della presente lezione Lo compila con successo gcc -o window window.c -L/usr/X11R6/lib -lX11 Lo esegue ./window 5 Funziona Un caso di vita vissuta (Un pro-rammatore scopre =## e vuo e condividere la sua scienza con altri) Il programmatore, pieno di orgoglio, fornisce il sorgente al suo amico e gli chiede di compilarlo e testarlo Scaricate window.c sul vostro guest 'e1ian. @rovate a compilarlo gcc -o window window.c -L/usr/X11R6/lib -lX11 La compilazione fallisce 6 ;rue stor4 (Neil @atrick a-rees) 7 Cosa 8 andato storto6 (Nell7esempio in ?uestione) Sul guest 'ebian mancano i >le include della li1reria =## /usr/include/X11/X.h in primis ;ali >le non sono installati di default in Debian. 'e1ian 8 un SO universale, non un SO orientato solo ai programmatori B possibile installare i >le include tramite un pacchetto binario opportuno 8 .terogeneità de-li ambienti UNIX (La causa più -enerale del fallimento) La causa principale del fallimento 8 una ed una sola Gli )ost dei due pro-rammatori non sono uguali. Sono simili, ma non u-uali Che cosa cam1ia6 @acc)etti soft0are installati Dersioni dei pacc)etti soft0are installati @osi(ione nel >le s4stem dei soft0are ric)iesti 9 @ortabilit+ (Lo strumento con cui contrastare l7eterogeneit+ de-li ambienti UNIX) @er contrastare l7eterogeneità il soft0are i sistemi di tipo UNI= (nello specifico, GNU/Linu5) incora--iano la produ(ione di soft0are portabile "ortabilità: un soft0are 8 detto portabile se 8 compila1ile e/o eseguibile con sfor(o ridotto (al limite, nullo) su un host diverso da ?uello su cui 8 stato scritto ;anto minore 8 lo sfor(o, tanto piC 8 portabile il soft0are 10 Come si ottiene la portabilit+6 (Scrittura di codice portabile, costru(ione portabile di un ese-uibile) Si scrive codice portabile che non fa assunzioni di alcun tipo sulla piattaforma In altre parole: rende tutto parametrico Esempio: se un >le di con>-urazione cam1ia nome tra uno UNI= ed un altro, si de>nisce una costante con il nome corretto #define LOGNAME /var/log/auth.log Nel programma non si usa direttamente la strin-a 9/var/log/auth.log:, 1ensE la macro LOGNAME 11 Come si ottiene la portabilit+6 (Scrittura di codice portabile, costru!ione portabile di un eseguibile) Nel caso di lingua--i compilati ?uali il C, si usano strumenti per la compilazione di soft0are in modo portabile ;ali strumenti/ anali((ano il SO e l'albero sor-enteF identi>cano dipenden(e soft0are necessarie (li1rerie e programmi ese-ui1ili)F veri>cano la presen(a delle dipenden(eF costruiscono un Makefile adatto all'arc)itettura )ard0are e soft0are 12 Un esempio di soft0are portabile (Il soft0are di esempio GNU Gello) $NU &ello 8 un soft0are del pro-etto GNU che svolge una sola, semplice azione/ salutare l7utente Come soft0are non serve ad un granc)H B, tuttavia, un esempio di soft0are portabile Essendo contenuto, 8 piC semplice da studiare 13 Scelta della versione di GNU Gello (L7ultima disponibile su http:%%000 -nu or-%soft0are%hello) Aprite un bro0ser e navigate all7URL seguente/ )ttp/%%000 -nu.or-/soft0are%)ello Identificate la sezione 9'o0nloading Hello: Cliccate sul primo link HT*L. Identificate l7ultima versione/ hello-2.10.tar.gz 14 Scaricamento di GNU Gello (;ramite il comando wget) Una volta sopra il link G;*L, premete il pulsante destro del mouse e selezionate la voce 9Copia indiri((o link: Aprite un terminale ed usate il comando wget per scaricare l7arc)ivio: wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz @er incollare l7URL copiato in precedenza, potete/ premere la sequen(a Ctrl-Shift-vF premere il tasto centrale del mouse 15 Installa(ione del pacchetto wget (;ramite pacc)etto soft0are) Se non avete wget, installatelo (per il momento, tramite il gestore dei pacc)etti di Debian): apt-get install wget 16 @erc)H wget6 (. non, ad esempio, il bro0ser6) @erc)H wget supporta il ripristino dei do0nload interrotti. Basta attivare l7opzione -c wget -c http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz Non tutti i bro0ser moderni supportano tale funzione out2of2the2bo5 3uando si rende necessario proteggersi dalle interru(ioni? Quando: la connessione di rete )a una 1anda 1assa ed il do0nload deve essere svolto in piC puntateF la connessione di rete )a un alto tasso di erroriF la dimensione del >le da scaricare 8 -rande 17 Esercizi (5 min ) J Scaricate l7arc)ivio sorgente dell7ultima versione disponi1ile del soft0are GNU Kget Interrompete lo scaricamento a met+ con la se?uenza Ctrl-c ,ipristinate lo scaricamento 18 Altol+ (“Chi va l+6”) @rima di procedere con lo studio di GNU Hello, dovete verificare c)e l7arc)ivio da voi scaricato sia autentico ed inte-ro tramite la verifica della >rma di-itale dell7archivio 19 Installa(ione di GNU @rivac4 Guard (apt-get install gnupg) Il controllo della >rma ric)iede strumenti per la -estione della critto-ra>a asimmetrica (a c)iave pu1blica e privata). Il SO mette a disposizione il soft0are GNU @rivac4 Guard (GNUPG) allo scopo Installatelo apt-get install gnupg 20 Creazione di una coppia di c)iavi (Comando gpg, op(ione --gen-key) @er verificare per bene l7inte-rità di un archivio soft0are, createvi una coppia di chiavi pubblica e privata con il comando seguente/ gpg --gen-key Accettate i primi tre valori prede>niti premendo INVIO Inserite nome e co-nome @otete proteggere le c)iavi con una password, se volete 21 Scaricamento della firma digitale (;ramite il comando wget) @onete il cursore sopra il link di nome/ hello-2.10.tar.gz.sig @remete il pulsante destro del mouse e selezionate la voce 9Copia indirizzo linA: Aprite un terminale ed usate il comando wget per scaricare la firma di-itale/ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz.sig L7estensione .sig sta per signature ('rma) 22 Derifica di inte-rità e di autenticit+ (Comando gpg, op(ione --verify) Il comando gpg --verify riceve in ingresso la >rma di-itale e verifica/ c)e l'arc)ivio sia stato >rmato dal pro-rammatore responsa1ile e nessun altroF c)e l'arc)ivio sia inte-ro .se-uite il comando seguente/ gpg --verify hello-2.10.tar.gz.sig 23 Esercizi (3 min ) $ Scaricate la >rma digitale dell7arc)ivio soft0are di GNU K-et e veri>catela 24 Un piccolo problema (Non avete la c)iave pubblica dello sviluppatore c)e ha >rmato l7archivio) Il comando non riesce a validare la firma gpg: Impossibile controllare la firma: chiave pubblica non trovata @er verificare la >rma 8 necessario disporre della c)iave pu1blica dello sviluppatore che ha >rmato l7arc)ivio ,icordate/ la >rma di-itale va decriptata con tale c)iave e l'hash contenuto al suo interno 8 confrontato con l'has) calcolato sull'arc)ivio scaricato 25 Identi>cazione della chiave pu11lica (B presente un identificatore apposito nel messa--io di output di gpg) 'ovete innanzitutto identificare la c)iave pu1blica dello sviluppatore c)e )a >rmato l7arc)ivio L7identificatore della c)iave 8 presente nel messa--io se-uente/ gpg: Firma eseguita in data dom 16 nov 2014 13:08:37 CET usando RSA, ID chiave FDE9B739 26 Scaricamento della c)iave pu11lica (Comando gpg, op(ione --recv-key) Una volta noto l7identificatore della c)iave pu1blica, la si puM importare da un server remoto di c)iavi pu11lic)e Si usa il comando seguente/ gpg --recv-key FDE9B739 27 IIG FAT KARNING (Nou have been 0arned) Il comando gpg --recv-key si connette ad un servizio remoto 1asato sul protocollo ;C@ Se un >re0all intermedio 1locca il tentativo di connessione, il comando non fun(ionaO In tal caso, 8 necessario scaricare ed importare a mano la c)iave pu11lica dello sviluppatore 28 Individuazione di una chiave pu11lica (Nel caso in cui gpg --recv-key non fun(ioni) Il primo passo consiste nella individuazione dell7ID della c)iave pu1blica gpg --verify vi dice ?ual 8 la c)iave privata con cui 8 stato >rmato l'arc)ivio Doi dovrete individuare la corrispondente c)iave pu11lica Annotatevi su un file di testo il valore dell7I' Nel caso di GNU Hello: FDE9B739 29 Localiz(azione di una chiave pu11lica (;ramite un motore di ricerca) La c)iave pu11lica è di solito ospitata su siti Ke1/ )ome pa-e dello sviluppatoreF motore di ricerca di c)iavi PGP I motori di ricerca indicizzano tali siti Aprite un bro0ser all7U,L/ )ttp/%%000 -oogle com Inserite la stringa FDE9B739 Cercate i risultati relativi a/ )ome pa-e dello sviluppatoreF server di c)iavi PGP 30 Locali((azione home page (;ramite un

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    179 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us