Author Archives: Daniele De Angelis

Questo Sabato 25 Ottobre il Roma2LUG ha avuto il piacere di essere in prima fila nell’organizzazione del Linux Day 2014 di Roma. Evento molto sentito dalla comunità italiana, è stato per il terzo anno organizzato dal nostro LUG, attualmente unico Linux User Group attivo sul territorio romano, ed ospitato all’interno dell’Università degli Studi di Roma Tor Vergata.

Continue reading

Roma2LUG Incontra – 2 Aprile, IIS Enzo Ferrari

Eventi, Life logs 2 Replies

Lo scorso 2 Aprile ha avuto luogo il primo evento, promosso dal Roma2LUG con la collaborazione del Dipartimento di Ingegneria Civile e Ingegneria Informatica (DICII) dell’Università di Roma Tor Vergata, “Roma2LUG Incontra”.

Circa 50 studenti dell’istituto Enzo Ferrari di Roma, classi 3°, 4° e 5°, e 3 dei loro professori si sono recati presso la nostra Università per assistere a delle lezioni con argomento principale i sistemi operativi GNU/Linux.

DSC_4490

Alle ore 10.30, dopo una nostra accoglienza, gli studenti si sono potuti accomodare in Aula Leonardo, dove a seguito di una breve introduzione del nostro collega Pierpaolo Santucci, hanno potuto ricevere il saluto del Presidente del Corso di Studi di Ingegneria Informatica, Vincenzo Grassi.

DSC_4493 DSC_4500

A seguire si è subito entrati nel vivo della giornata, assistendo al talk preparato da Daniele De Angelis e Alessio Biancalana, “Why Linux!?”. Lo speech, di carattere generale e divulgativo, ha voluto mostrare agli studenti perché sia effettivamente importante anche solo la conoscenza dell’esistenza dei sistemi GNU/Linux. Con una carrellata di esempi e di casi noti dell’applicazione dei SO GNU/Linux si è voluto sottolineare come nella vita di tutti i giorni, seppure indirettamente, ognuno di noi utilizza sistemi open source.

DSC_4503

Dopo questa introduzione ha preso la parola il professor Marco Cesati, ricercatore dell’Università e professore dei corsi dedicati ai Sistemi Operativi e Sistemi Embedded.

DSC_4527

Al suo intervento è seguito il secondo talk preparato dagli studenti del Roma2LUG, dedicato al single-board computer Raspberry Pi, preparato da Stefano Di Francescangelo e Gabriele Giagnoli. Diviso in due fasi, lo speech ha prima dato un infarinatura sui sistemi GNU/Linux, mostrando i comandi base da conoscere per un primo approccio alla command line, e dando alcuni concetti (es. reti di calcolatori, ssh, etc…) utili per la seconda parte del talk; questa seconda parte infatti, ha avuto un carattere più pratico, mostrando alla platea come a partire da una Raspberry Pi senza alcun sistema operativo, si possa configurare un media center fatto in casa e completamente gestibile da remoto.

DSC_4535

Il single-board computer Raspberry Pi è a nostro parere un elemento caratteristico del mondo dei sistemi operativi GNU/Linux. Nato da un progetto open source dell’Università di Cambridge, ha dimostrato come con pochissimi soldi si possa avere un piccolo computer adatto a moltissime applicazioni; proprio per questo motivo sin da subito il progetto ha avuto il pieno supporto della comunità. Attualmente poi il mondo dei sistemi informatici ha acceso molto l’interesse verso questi sistemi essenziali, rendendo sempre più reale l’idea di “Internet of Things”: ogni dispositivo, grazie a questi sistemi informatici economici e di piccole dimensioni, sarà in un futuro molto prossimo parte effettiva della rete globale.

La giornata non si è conclusa qui! Infatti agli studenti è stato sottoposto un test a risposta multipla riguardante i talk appena seguiti. La prova è stata ideata principalmente per scopi statistici, al fine di verificare quanto effettivamente le nuove generazioni siano affezionate ed appassionate ai temi trattati durante la giornata; si è voluto inoltre solleticare l’attenzione della platea, ponendo in palio, per il miglior test, lo stesso dispositivo Raspberry Pi utiizzato durante la presentazione, sperando che in seguito a questa giornata il vincitore, ma anche tutti coloro che abbiano partecipato, possano continuare a sperimentare personalmente, aumentando il proprio bagaglio culturale in vista di una prossima carriera universitaria o esperienza lavorativa. Questi test, le cui domande sono state ideate dai componenti del LUG, sono stati generati in maniera casuale dal pool di domande, grazie all’applicativo creato da Giulio Picierro (Shuffler).

Mentre i loro test venivano corretti, gli studenti sono stati salutati dal professor Salvatore Tucci, preside del Dipartimento di Ingegneria Civile e Ingegneria Informatica, che ha dato degna chiusura alla giornata, promuovendo l’evento e spiegando perché queste giornate di studenti che insegnano a studenti siano fondamentali, soprattutto in campi come l’Informatica, dove spesso l’utilizzo delle nuove tecnologie è necessario per comprendere queste approfonditamente. Al termine della correzione è stato individuato il test con punteggio maggiore, 9 su 10, il cui autore, Lorenzo Serafini, ha potuto ricevere come premio la Raspberry Pi impostata durante i talk. Nel complesso comunque la piccola prova ha avuto esiti nettamente positivi, con un’ottima media per il tipo di domande poste.

DSC_4604 DSC_4613

Le considerazioni del LUG, al termine di questo evento sono state molto positive. Gli studenti hanno avuto modo di muovere qualche passo verso l’Università, colmando almeno minimamente il gap fra le scuole secondarie e gli studi universitari; si sono inoltre dimostrati estremamente partecipi, attenti ed interessati agli argomenti trattati in questo evento.

Ringraziando quindi tutti coloro che hanno partecipato, con una particolare attenzione ai professori intervenuti e al Dipartimento di Ingegneria Civile e Ingegneria Informatica, speriamo che questo evento sia il primo di una lunga e positiva serie.

DSC_4615

8 Aprile 2014 – XPocalypse

Eventi 1 Reply

L’XPocalypse è vicina!

L’8 Aprile terminerà il supporto Microsoft per il sistema operativo Windows XP! Era forse questa la previsione dei Maya? C’entrano forse i templari? Gli alieni, dopo anni di studio dei nostri comportamenti, sono finalmente pronti all’invasione finale?

A questo non abbiamo risposte. Ma abbiamo una soluzione! Onde evitare che il tuo PC diventi un succulento banchetto per hacker o uno zombie nelle mani dei cybercriminali, vieni a trovarci in questa data. Salveremo il tuo computer dal cataclisma con una distro GNU/Linux: sempre aggiornata, supportata e sicura di fronte alle insidie della rete moderna!

Che aspetti! Ti aspettiamo nella nostra auletta il giorno 8 Aprile. Ti consiglieremo e ti aiuteremo ad installare una delle distribuzioni GNU/Linux, leggere e pratiche anche per PC datati.

Non far soccombere il tuo computer al XPocalypse!

 XPocalipse

Lezione su Buffer Overflow di Giulio Picierro

Articoli, Documentazione, Eventi Leave a reply

Qualche giorno fa, Giulio, nuovo componente del LUG, ha avuto la possibilità di tenere una lezione nella nostra università, sul Buffer Overflow nella programmazione software e come questo possa comportare problemi di sicurezza.

A fine divulgativo, pubblichiamo sul sito il suo materiale della lezione accompagnato da qualche suo appunto 🙂 Buona lettura!

Download

In un mondo in cui tutti siamo connessi con tutti e tutti cominciano a conservare i propri dati su Internet, la sicurezza informatica è sicuramente uno dei temi sentiti maggiormente, basti pensare al caso eclatante dell’NSA, la National Security Agency americana che ha destato scandalo in tutto il mondo per via di intercettazioni e spionaggio non solo di privati ma anche di industrie e capi di stato stranieri.

Mentre nella nostra università sono presenti 2-3 corsi dedicati interamente alla sicurezza di internet e più in generale delle reti, dalla crittografia antica a quella moderna, a mio parere si fa sentire la mancanza di un corso di sicurezza del software, che insegni come sviluppare codice sicuro, o che quantomeno possa illustrare quali siano stati gli errori del passato e come evitarli in futuro.

Proprio la scorsa settimana mi è stata data l’occasione di trattare un argomento, quello del buffer overflow, al corso di Fondamenti di Informatica tenuto dall’Ingegner Lorenzo Bracciale per le classi del primo anno di Ingegneria Elettronica e Ingegneria delle Tecnologie di Internet.

La lezione ha voluto mostrare come sia possibile sfruttare una possibile vulnerabilità derivante dal buffer overflow per eseguire codice arbitrario.

Allego le slides proiettate a lezione e il codice relativo, se trovate errori o inesattezze vi prego di comunicarmelo in maniera che vengano corretti. Sono ben accetti commenti e/o critiche.

Colgo l’occasione per ringraziare Lorenzo Bracciale per l’opportunità che mi ha dato di tenere una (anzi due) lezione all’università, che non è cosa di tutti i giorni per me.

Ringrazio inoltre tutti coloro che mi sono stati vicino e mi hanno sopportato durante questa esperienza.

Giulio

Anno nuovo, kernel nuovo!

Life logs Leave a reply

Come i più appassionati di voi ricorderanno, qualche mese fa sulla pagina Facebook del Roma2LUG è apparso il seguente post:

fb

 

Quello nella foto non è un semplice computer, ma l’attuale router che si occupa di gestire la rete all’interno dell’auletta del Roma2LUG. Nonostante questo compito sia già di vitale importanza per la vita quotidiana del nostro LUG, questo si occupa anche di ospitare alcuni servizi importanti, come il meccanismo di registrazione delle presenze, esposto in un precedente articolo.

Andandone a vedere le caratteristiche, si può notare come questo sia un vero pezzo di storia dell’informatica. La scheda madre su cui è montato è una Asus P2L97 (manual), che ospita un Intel Pentium II da 266 MHz ed è dotato di 312 Mb di memoria RAM. Essendo dedicato al reindirizzamento della rete, questo è stato fornito di due schede ethernet: una D-Link DFE-530TX ed una D-Link  DFE-528TX.

Risulta evidente che l’hardware in uso non è precisamente di ultima generazione e che, seppur dedicato semplicemente al compito di router e poco più, anche un’installazione minima di Debian 7 possa mettere a dura prova le risorse esigue.

Queste riflessioni sono state fatte anche all’interno del LUG e si è deciso di agire al fine di migliorare al massimo la situazione. E così, proprio ieri è stata approntata una modifica importante e decisiva: la compilazione di un kernel dedicato. Abbiamo recuperato dalla rete il sorgente del kernel 3.10.26 e facendo attenti test, verificando di includere tutti i moduli necessari al funzionamento base del pc, sono stati esclusi tutti gli extra evidentemente non utilizzati da hardware cosi datato e dalla configurazione attuale della macchina. C’è da sottolineare che allo stato attuale non esiste alcun modulo esterno, poiché tutti inclusi staticamente all’interno della nuova compilazione. Questo ha portato ad un kernel di poco più di 2.1 MiB.

Seppure questo traguardo risulti molto soddisfacente, non vogliamo fermarci. Il nostro obiettivo è aumentare ancora di più le prestazioni del pc, identificando solamente i moduli necessari alla configurazione attuale per ridurre la grandezza del kernel. Soglia dei 2 MiB ti oltrepasseremo!!

Se siete interessati, potete scaricare l’attuale configurazione dal repository GitHub corrispondente. Per ulteriori informazioni, non esitate a contattarci sui nostri canali!

Buone feste dal Roma2LUG

Articoli, Eventi Leave a reply

Buongiorno a tutti!

Con un leggero ritardo (solo qualche festività… facciamo 3), il Roma2LUG tutto vuole augurare a chi ci supporta un caloroso augurio di buone feste!

Purtroppo abbiamo perso l’occasione di farlo prima di Natale. Con molta probabilità eravamo tutti troppo ubriachi 😀drunk homer

Cerchiamo quindi di rimediare, augurandovi un buon anno! Un anno che speriamo porterà tante novità e sorprese.

Noi ci stiamo impegnando in questo! Come avrete notato dai passati articoli, stiamo cercando di sviluppare nuove idee e portare a completamento molti progetti.

Giusto per dare qualche assaggio, vorremmo dare uno sguardo a questo interessante progetto, Docker, utile per chi ha intenzione di creare container di sistema operativo, su server datati e poco performanti come quelli in nostro possesso. Inoltre vorremmo poter organizzare dei piccoli eventi, atti alla divulgazione di qualche nuova tecnologia, di tecniche di programmazione e di tutto quello che concerne il campo dell’ open source.

Quindi con questi fioretti, salutiamo il 2013 e auguriamo a noi e a voi un 2014 pieno di novità!

Nuovo sistema di prenotazione per assistenza

Comunicazioni Leave a reply

Come si dice “Anno nuovo, vita nuova!“. E siccome in un LUG un anno può essere considerato come il periodo di tempo fra un Linux Day ed un altro, abbiamo deciso di rispettare il detto introducendo alcune novità.

Essendo aumentata la richiesta di assistenza che il nostro LUG riceve, abbiamo deciso, onde evitare ingolfamenti e disservizi dati dall’eccessiva mole di lavoro, di organizzare un tipo di assistenza basata su prenotazioni. In poche parole, abbiamo preparato un modulo di prenotazione, raggiungibile su questo sito alla sezione “Prenotazione assistenza“, in cui, fornendoci pochi dati come nome, email, richiesta assistenza e volendo anche qualche data preferita, saremo in grado di schedulare il nostro intervento nel modo più celere e organizzato possibile.

In conclusione insomma: hai bisogno di un’installazione? Correzione di un problema? Oppure semplicemente di una copia fisica della tua distribuzione preferita? Prenotati e ti daremo un appuntamento nel più breve tempo possibile.

Spero che questo risulti utile a tutti quanti e che permetta quindi un miglioramento dei nostri servizi. Non mancate comunque di farci avere dei feedback, qualora ce ne sia bisogno!

Considerazioni post Linux Day

Life logs Leave a reply

Buongiorno a tutti.

Ben trovati in questa settimana post Linux Day. Spero che l’evento sia stato di vostro gradimento, che abbiate imparato qualche cosa dai nostri talk e che vi siate divertiti a condividere qualche discussione nell’ambito dell’open source con noi, con i nostri partner, con i nostri relatori e, perché no, anche fra di voi.
Quest’anno abbiamo potuto riscontrare una flessione delle presenze, da attribuirsi, pensiamo noi, a nostri errori organizzativi che vogliamo prontamente riparare e sistemare per il prossimo LD; come si dice “Sbagliando si impara” ed essendo noi un gruppo giovane abbiamo ancora molto da sbagliare 🙂
Nel totale con le nostre registrazioni abbiamo riscontrato un numero di 140 presenze e so di qualcuno di voi che ha preferito non registrarsi; tranquilli non porteremo rancore, ma lo diciamo per dimostrarvi che la nostra richiesta deriva puramente da fini statistici utili alle nostre organizzazioni future.

Vogliamo ringraziare tutti i relatori che ci hanno accompagnato in questa edizione, con un accenno speciale a chi ha voluto dare nuovamente il suo contributo dopo l’esperienza (spero positiva) dell’anno passato. C’è anche da ringraziare i nostri partner: i ragazzi del banchetto masterizzazioni e del banchetto Parallel Knoppix, che come l’anno scorso hanno condiviso i nostri sforzi nel cercare di fornire un evento comprendente tutte le iniziative possibili e quindi a soddisfare la maggior parte delle vostre richieste.

Quest’anno aggiungiamo nei ringraziamenti la cornetteria Cinque Stelle, che ha permesso di organizzare la nostra colazione, che spero abbiate gradito. Se quindi siete riusciti ad avere uno dei loro cornetti freschi, vi invito ad iscrivervi al loro gruppo Facebook, al fine di suggellare questa nostra partnership che potrà essere utile nei nostri eventi futuri.

Concludiamo poi questa carrellata di ringraziamenti, comprendendo chi ha voluto fare donazioni alla nostra associazione, anche solo partecipando alla nostra pesca a premi o alla nostra colazione; queste verranno reinvestite in eventi futuri e ci permetteranno di mantenere viva la nostra associazione.

Vorremmo invitarvi a comunicarci la vostra impressione, i vostri pareri sull’evento e i consigli che vorreste darci per migliorare. Ricordo quindi la nostra email: roma2lug_at_gmail.com, a cui potrete scrivere per inviare il vostro consiglio al fine di continuare ad organizzare eventi sempre migliori e piacevoli per ognuno di voi.

Chiudiamo tutti questi annunci comunicando che il nostro lavoro non è finito: organizzeremo nuovi eventi utili alla divulgazione di Linux e dell’Open source, quindi vi invitiamo a seguirci e a tenervi informati.

Stay tuned!

GDB: DON’T PANIC!

Articoli Leave a reply

don_t_panic_buttonChiunque di noi si sia cimentato almeno una volta nella programmazione C, sa quanto questa sia versatile ed utile per molte delle applicazioni più complesse, prime fra tutte i sistemi operativi.

È pur vero che se si è provato almeno una volta a creare un programma, anche il più semplice, questo puntualmente la prima volta si è rivelato un fiasco, andando in errore, o ci si è trovati ad affrontare il temibile SEGMENTATION FAULT, o in italiano, Errore di Segmentazione.

Il C non è molto di aiuto nello scovare queste inefficienze dei programmi e può portare la persona più santa del mondo ad imprecare come il miglior scaricatore di porto.

Esiste però un rimedio a tutto questo o almeno un piccolo aiuto: il suo nome è GDB, un applicativo da linea di comando in grado di permetterci un debug degno dei migliori linguaggi di programmazione ed anche di più.

Sottolineiamo che in questo articolo non abbiamo intenzione di scrivere una guida completa e perfetta di questo programma, in quanto non siamo in possesso delle conoscenze per poterlo fare; vogliamo però aiutare chi si trova nelle difficoltà precedentemente accennate, a districarsene come abbiamo fatto noi con un po’ di conoscenze da auto didatta.

Vediamo innanzitutto come questo programma funziona: è in grado di eseguire tutti gli eseguibili, ma eccelle con l’input di speciali file compilati in modo da mantenere molte delle caratteristiche che hanno in fase di programmazione (numeri di riga, nessuna ottimizzazione, etc…).

Per creare un eseguibile di questo tipo dobbiamo mettere mano ad un Makefile, o comunque a gcc, e compilare i nostri file C utilizzando la seguente opzione:

gcc -g [FILES] -o [OUTPUT FILE]

Una volta generato il nostro file, possiamo cominciare a debuggarlo: eseguiamo quindi sempre da riga di comando, nella cartella dove abbiamo generato il nuovo file:

gdb [OUTPUT FILE]

se però ci troviamo nella situazione in cui il nostro programma richieda dei dati in input dobbiamo far si che questi pervengano all’eseguibile, e scopriremo a nostre spese che non è possibile farlo dopo la chiamata di gdb. Andremo quindi ad utilizzare questo comando:

gdb –args [OUTPUT FILE] [ARGS]

Siamo a cavallo! Il programma è stato caricato in memoria dall’applicativo e possiamo cominciare a lavorare! Ma come?!
segmentation-faultGdb si presenta come un programma a linea di comando ed è molto di aiuto per l’utilizzo: basta scrivere il domando “help” per avere un’idea di come poter cominciare.

Vediamo un utilizzo base tipico. Per cominciare proviamo ad eseguire un programma: trovandoci nella shell di gdb digitiamo il semplice carattere “r” e subito il programma si eseguirà, come si eseguirebbe ad un semplice avvio del vero eseguibile; c’è però un aspetto interessante: anche senza l’ausilio dei break point, tipico esempio di esecuzione di programma in modalità debug, gdb è in grado di catturare segnali (es: SIGPIPE) o i temibili Segmentation Fault. Quando questo accade, il programma viene fermato, ponendo in evidenza la riga esatta in cui questo è avvenuto, ed è possibile visualizzare i valori delle variabili presenti in quel contesto, nel loro stato attuale; scrivendo nella shell

print [NOME VARIABILE]

o

print [FUNZIONE RITORNANTE]

possiamo verificare quale abbia causato l’errore e provare a capirne la motivazione.

Potrebbe essere però utile seguire l’esecuzione passo passo, cosi da capirne la logica mentre questa viene eseguita.

Porre un break point è un’operazione molto semplice: scrivendo semplicemente

break

possiamo porre un’interruzione nell’istruzione subito successiva a quella attuale. Questo tipo di utilizzo è però molto raro e poco utile; è di gran lunga più utile il seguente comando

break [NOME FUNZIONE]

in questo modo non appena la logica del programma ci porta all’interno della funzione indicata, l’esecuzione viene bloccata e possono essere stampati i valori delle variabile, verificare il ritorno delle funzioni, eseguire la prossima istruzione (Comando: “next” o semplicemente “n”) o riportare il programma ad un esecuzione lineare, fino almeno al prossimo break point (Comando: “continue”).

A volte una funzione può essere molto lunga e potrebbe non essere necessario eseguire le prime righe di codice per effettuare un debug; può risultare utile, se si è a conoscenza del numero di riga dal quale vogliamo cominciare, la seguente variante

break [NUMERO DI RIGA]

in grado di bloccarci solamente quando raggiunta tale riga, evitando tediose e ripetute pressioni di tasti.

I progetti C sono solitamente divisi in molti file di codice, alcuni dei quali contengono funzioni con stesso nome di quelle di altri. Come fa gdb a capire su quale di queste bloccarsi? E se il file C non contiene il dato numero di riga, in quanto presente in un altro file?

Ci vengono in aiuto due ulteriori versioni di questo comando, dedicate alle nostre specifiche richieste

break [NOME FILE]:[NOME FUNZIONE]

e

break [NOME FILE]:[NUMERO DI RIGA]

Ultima (nella nostra trattazione), ma non banale o poco utile, variante di questo comando è la seguente

break … if [CONDIZIONE]

questa ci permette di eseguire il debug nel migliore dei modi: al verificarsi di un dato evento, permettendo di facilitare ulteriormente il nostro lavoro.

L’utilizzo di gdb può essere immenso. Il nostro articolo purtroppo non può coprire tutti i casi, ma vi rimandiamo a seguente link http://www.chemie.fu-berlin.de/chemnet/use/info/gdb/ dove è possibile quietare i dubbi più intricati, se il nostro articolo non è riuscito a delucidarvi.

Siamo vivi!

Life logs Leave a reply

Salve LUGgers!

Purtroppo come noterete questo spazio è un po’ datato, ma l’attività del LUG non è ferma.

Molti dei nostri componenti, fortunatamente per loro, sono in vista della laurea e il loro impegno, giustamente, non è sempre assicurato. Ci sono però molte cose che sono state fatte ed altre ancora da fare.

La nostra attività di supporto è sempre attiva: dal Lunedì al Venerdì, dalle ore 9.30 alle 18, potete recarvi in auletta (sempre al solito posto: 2° piano, l’aula col pinguino) per ricevere assistenza di qualsiasi entità, nel campo dei sistemi operativi Linux.

Stiamo cercando di portare avanti la nostra iniziativa di attivazione di servizi online per gli studenti, volti sempre ad avvicinare le persone al mondo dell’open source, ma anche a dar supporto a questi ultimi nell’avanzamento della loro carriera universitaria.

Abbiamo ancora molti progetti in cantiere, che vanno dal prossimo Linux Day 2013 fino al supporto ai neofiti, ma la nostra attività è resa possibile solo dalla volontà dei nostri membri. Quindi ribadiamo il nostro invito a chiunque sia volenteroso, ad unirsi alla nostra compagnia (noi abbiamo i biscottini).

Cambiando argomento, vogliamo render noto che il LUG quest’anno può vantare di aver preso parte con la propria squadra all’evento EBEC del Best di Tor Vergata, classificandosi nella prova del Team Design al secondo posto. I nostri intrepidi hanno avuto la meglio su altri 20 gruppi circa, dimostrando che gli informatici sanno anche sporcarsi le mani. Postiamo alcune foto come prova (stranamente nessuno ci crede mai senza XD )

Rimanete aggiornati e venite a trovarci!