Category Archives: Articoli

Roma2LUG OpenLab …con Parrot Security!

Articoli, Eventi, Senza categoria Leave a reply

r2lincontra-copia-1_modtext_2
Volantino in formato PDF

Se pensavate che il Roma2LUG si fosse preso una pausa dopo il Linux Day vi sbagliavate di grosso!

Il Roma2LUG ha avuto modo di conoscere Lorenzo “Palinuro” Faletra, fondatore di Parrot Security, che, di passaggio nella Capitale ed in visita al nostro evento dell’anno, si è proposto di tenere un seminario prima della sua partenza. Dopo i successi degli anni passati con i “Roma2LUG Incontra” siamo entusiasti di presentare “Roma2LUG OpenLab“, una serie di eventi, corsi e seminari dedicati al mondo dell’Informatica Libera.

L’inaugurazione avrà luogo con “parrotsec.org – Cybersecurity ‘n’ cool stuff”, dove Lorenzo Faletra simulerà scenari di attacco reali studiando la mentalità ed adottando il punto di vista di un pentester, sfruttandone le tecniche e gli strumenti, al fine di mettere in sicurezza un’infrastruttura informatica.

L’evento si terrà presso il Laboratorio di Informatica della Facoltà di Ingegneria il giorno lunedì 7 novembre dalle ore 15:00. La partecipazione è assolutamente libera.

 

Resoconto Linux Day 2015

Articoli, Eventi, Life logs Leave a reply

Ormai passate un paio di settimane dall’evento, eccoci nuovamente a tirare le somme di un trascorso Linux Day. Edizione romana 2015, anche quest’anno, il giorno Sabato 24 Ottobre, il Linux Day è stato ospitato presso l’Università di Roma Tor Vergata, da 4 anni luogo abituale per gli avventori dell’iniziativa. Il Roma2LUG, supportato questa volta dal LugRomaTre, è stato nuovamente promotore dell’evento ed ha permesso che anche gli appassionati della capitale e dintorni potessero festeggiare insieme questa speciale ricorrenza.

DSC_0015

La giornata è stata ricca di iniziative che hanno visto il coinvolgimento di utenti di tutte le età e con le più disparate conoscenze sugli argomenti vicini all’open source. Come in passato, all’inizio delle attività, abbiamo avuto il piacere di poter ascoltare un breve benvenuto del Prof. Salvatore Tucci, Direttore del dipartimento di Ingegneria Civile e Ingegneria Informatica, che ormai da anni supporta le nostre iniziative e che ha voluto rinnovare questa fiducia, introducendo il pubblico del Linux Day all’evento.

Fiore all’occhiello di quest’anno è stato sicuramente il workshop su Linux Embedded. A seguito della collaborazione fra il Roma2LUG ed Epigenesys s.r.l., questi interventi tecnici sono nati con l’obiettivo di voler avvicinare un pubblico appartenente al mondo delle aziende, a volte estraneo a tali iniziative. Il workshop è stato introdotto dal prof. Marco Cesati, docente di Sistemi Operativi Open-Source, Embedded e Real-Time per il corso di studi di Ingegneria Informatica dell’Ateneo, che ha voluto dare un’introduzione ai sistemi embedded, alla loro importanza nella società e nel mondo aziendale ed al ruolo che Linux ricopre riguardo queste tematiche. Il resto del workshop ha avuto un carattere tecnico ed è proseguito con l’intervento di Federico Cosentino, membro del Roma2LUG, che ha voluto presentarci Buildroot, un tool che permette di creare e personalizzare a piacimento un sistema operativo Linux per la propria scheda.

DSC_0041 DSC_0096

Spesso utile per chi si trova a dover lavorare sui sistemi embedded,  il workshop è proseguito con una guida alla scrittura di un proprio driver per la scheda appena configurata; l’intervento tenuto dall’Ing. Emiliano Betti di Epigenesys s.r.l., ha permesso al pubblico di poter seguire passo dopo passo la scrittura di un vero e proprio device driver. Continuando a seguire il filo conduttore di questi interventi, il workshop si è concluso con l’esposizione di Pierpaolo Santucci, fra i primi membri fondatori del Roma2LUG e ora dipendente presso Epigenesys s.r.l., che ha voluto intraprendere l’argomento di debugging remoto del kernel tramite il tool kgdb.

DSC_0224 

Paralleli al workshop non sono mancati altri interventi, anche quest’anno con temi molto interessanti e variegati. Ad aprire le danze è stato Federico Capoano, membro del gruppo Ninux, che con il suo talk ha voluto analizzare la filosofia Unix con esempi pratici sui progetti Ninux e OpenWISP. Al suo intervento ha fatto seguito il talk di Elvis Angelaccio, studente e contributor per la community di KDE, uno sguardo sul noto Desktop Environment, sulla sua storia e sulle sue particolarità più e meno note, ma soprattutto sul come ognuno di noi possa contribuire a migliorarlo.

La mattinata è stata densa di iniziative tra le quali siamo lieti di poter elencare nuovamente la presenza del laboratorio Coderdojo. Già nostri ospiti lo scorso anno, i tutor hanno tenuto, fino alla pausa pranzo, un “dojo” dedicato ai più piccoli, ospitato all’interno del Laboratorio di Informatica della facoltà di Ingegneria, convertito completamente a Linux dal Roma2LUG ormai 2 anni fa. I bambini, supportati dai membri Coderdojo, hanno avuto modo di poter giocare ed imparare a sviluppare sull’IDE Scratch, speciale tool progettato dal MIT per avvicinare i più piccoli alla programmazione.

DSC_0062 DSC_0119

Durante la pausa pranzo non è potuto mancare il torneo di OpenArena che ha visto pubblico, relatori e membri organizzatori sfidarsi a colpi di laser per la gloria e l’onore ma soprattutto per i premi messi in palio.

DSC_0280

Nel pomeriggio abbiamo assistito ad una nuova ondata di talk che è iniziata con gli interventi di Eduardo Maçan, ospite d’oltre oceano, sulla storia della comunità brasiliana del software libero, e di Roberto Reale, sviluppatore passato quest’anno da pubblico a relatore del Linux Day, sulla storia e l’utilizzo di FUSE per la creazione di file system in user space. A loro hanno fatto seguito i talk di Francesco Uliana e David Rossi, sul Continuous Deployment  distribuito con Docker, e di Alessandro Selli, che, oltre a dedicarsi al banchetto masterizzazione, ha voluto parlarci del tool tcpotente strumento di controllo del traffico di rete, intervento portatoci direttamente dalla LinuxCon di Dublino. Hanno concluso la serie di talk i nostri affezionati Simone Onofri, che si è dedicato all’attacco ed alla difesa contro il Cross Site Scripting, e Simonluca Dettori, con una panoramica sulle soluzioni Linux per una più sicura gestione dei dati.

DSC_0286 DSC_0181

Il laboratorio di Informatica quest’anno è stato al centro di molte attività. Il pomeriggio infatti sempre su questi PC ha avuto luogo la simulazione delle Olimpiadi dell’Informatica. Grazie al supporto del prof. Luigi Laura, membro del comitato olimpico, sono stati preparati degli appositi questionari con problemi tipici a cui sono sottoposte le squadre di ragazzi che vi partecipano. Gli avventori hanno quindi potuto sperimentare come queste gare siano strutturate, ma anche come funzionino i software utilizzati, open source e da poco tempo ospitati su sistemi operativi Linux.

DSC_0342

Come ogni anno non sono potute mancare le iniziative di divulgazione e supporto. Nel corso dell’intera giornata è stato attivo il servizio di assistenza e installazione che, accompagnato dal banchetto masterizzazioni sopra citato, ha permesso di avvicinare nuove persone a Linux o di aiutare chi già ne è un utilizzatore ma ha trovato alcune difficoltà. Sono inoltre stati allestiti degli speciali PC che hanno permesso da un lato di poter dare uno sguardo più da vicino ad un sistema Linux e dall’altro di intrattenere grandi e piccoli con videogiochi open source. Ringraziamo poi Germano Masullo, che da Fedora Ambassador ha potuto allestire un banchetto dedicato a questa distribuzione ed ha messo a disposizione del pubblico DVD del sistema operativo.

DSC_0069 DSC_0081

Con un evento cosi ricco di attività non si può che ritenersi soddisfatti dei risultati ottenuti. Anche quest’anno abbiamo registrato un buon numero di visitatori, intorno ai 200, che ci hanno fatto compagnia nel corso dell’intera giornata. Poter vedere cosi tante persone interessate alle tematiche proposte dal nostro Linux Day non può farci che piacere e ci spinge a continuare su questa strada, cercando sempre di offrire delle buone iniziative a chi ci supporta. Un ringraziamento va sicuramente ai relatori che come sempre rendono ricca questa giornata, ai proff. Cesati, Tucci e Laura che appoggiano le nostre iniziative e il cui supporto ci spinge sempre a dare il massimo, ad Epigenesys s.r.l. che ci ha affiancato e supportato in questa organizzazione, a chi ha partecipato all’evento con banchetti e laboratori, al Roma2LUG che ha dimostrato nuovamente di poter affrontare questa sfida ed al LugRomaTre, a cui auguriamo di poter continuare a crescere ed in futuro essere alle prese in prima linea con l’organizzazione del Linux Day. Concludiamo come giusto che sia con il ringraziare il pubblico di questo Linux Day che ci permette con la sua partecipazione di continuare a dedicarci con uno spirito sempre rinnovato alle nostre passioni.

Con questo concludiamo il resoconto. Ricordiamo a tutti che il materiale dell’evento è disponibile al link http://lug.uniroma2.it/ld15/slide-talk/, dove nei prossimi giorni sarà reso fruibile anche il video del workshop su Linux Embedded. Per altre informazioni sulla giornata invitiamo a visitare il sito dedicato ed a continuare a leggere la nostra pagina Web per tenersi aggiornati su attività future. Per il resto grazie ancora da tutto il Roma2LUG ed al prossimo Linux Day!

Roma2Lug Incontra – 29 Maggio Itis G. Vallauri

Articoli, Eventi Leave a reply

Il 29 Maggio ha avuto luogo il secondo evento d’incontro con le scuole superiori promosso dalla nostra associazione e dal dipartimento d’Ingegneria Informatica e Civile di Roma Tor Vergata, DICII.

Roma2lug incontra ancora

Alcune fra le eccellenze dell’istituto G. Vallauri di Velletri, delle classi 3°, 4° e 5°, e 2 dei loro professori si sono recati presso la nostra Università per assistere all’iniziativa di divulgazione dei sistemi open source. 

Il programma dell’evento è stato del tutto analogo a quello del 2 aprile.

Alle ore 10 e 30 studenti e professori dell’istituto sono stati accolti da Andrea Mercanti e Giulia Cassara’ e fatti accomodare in Aula Leonardo, dove è seguita un’introduzione all’evento da parte prima del professor Salvatore Tucci, direttore del DICII, e dopo del professor Vincenzo Grassi, coordinatore del Corso di Studi di Ingegneria Informatica; entrambi hanno accolto professori e studenti con un discorso introduttivo, sottolineando l’importanza dei temi trattati durante la giornata e di quanto questi siano centrali per i corsi di Ingegneria del dipartimento, ribadendo quindi il loro appoggio all’iniziativa come affermato già da loro più volte affermato:

DSC_4755

Che l’informatica stia cambiando il nostro modo di rapportarci con il mondo, di gestire le nostre attività e le relazioni con gli altri è ormai quasi un luogo comune che forse non vale nemmeno la pena sottolineare: è una rivoluzione che sta avvenendo sotto i nostri occhi e che non è ancora terminata, e della quale non è del tutto chiaro e possibile prevedere in quale direzione evolverà.
Di questa rivoluzione è bene non essere spettatori passivi, ma parte attiva, per poter avere voce in capitolo. Per questo ci piacciono i sistemi informatici “aperti” come l’ecosistema GNU/Linux di cui i ragazzi del Roma2LUG si fanno promotori e ambasciatori, perché sono uno degli strumenti che aiutano ad avere un ruolo di protagonista in questo cambiamento.  E formare protagonisti e non spettatori della rivoluzione informatica è l’obiettivo principale del nostro corso di laurea, siamo quindi molto felici di poter supportare l’attività dei ragazzi del Roma2LUG, ai quali va comunque tutto il merito di queste iniziative.
 [Prof. V. Grassi – Articolo]

DSC_4769

In seguito uno dei membri fondatori del LUG, Daniele De Angelis, è intervenuto per ringraziare gli studenti e i professori per la loro presenza, il DICII e i nostri professori per il loro sostegno alla nostra iniziativa. Concludendo, ha introdotto  il primo talk della giornata, Why Linux, tenuto da Emanuele Savo e Alessio Biancalana, riguardante la divulgazione dei sistemi GNU/Linux ed avente lo scopo di sottolineare la presenza diretta e indiretta di questi sistemi nella vita di tutti i giorni. I relatori hanno dato, insieme ad un po’ di storia e di curiosità, una carrellata di esempi riguardanti la presenza di Linux nel business  e nelle amministrazioni.

why linux

Al termine del talk la professoressa Valeria Cardellini, docente del corso di Cloud Computing e Sistemi Distribuiti, è intervenuta dando una breve introduzione al corso di laurea in Ingegneria Informatica e sugli sbocchi professionali che potrebbero seguire dopo una laurea in queste discipline. Dopo una breve introduzione, Daniele de Angelis ha dato il via al secondo intervento della giornata: Raspberry Pi (pt. 1, 2, 3) riguardante l’omonima scheda elettronica di tipologia SOC e ritenuta, secondo noi, un ottimo esempio di coesistenza di tecnologie open source, sia software che hardware; il talk è stato tenuto da 2 dei membri fondatori del LUG, Federico Cosentino e Gabriele Giagnoli.

Come nell’evento precedente, è stato effettuato un primo setup della scheda, con l’installazione di un sistema operativo GNU/Linux, e sono state date alcune spiegazioni basilari su strumenti utili per la trattazione successiva. In questa occasione, a differenza del primo evento, è stata vista in modo più approfondito la parte elettronica della Raspberry Pi; Federico ha quindi introdotto alcune basi di scripting Bash e di protocolli di comunicazione seriale, al fine di poter gestire tramite la scheda apparecchiature esterne, nel caso specifico una ventola di raffreddamento per la Raspberry Pi stessa: PiCoolFan. Gabriele ha poi concluso il talk, con l’installazione dell’ormai noto tool XBMC, dimostrando come la Raspberry Pi possa fungere da efficiente media center.

 bomber Consentino

Alla fine del secondo talk è arrivato, anche in questa occasione, il momento dei test: 10 domande a risposta multipla con testi diversi, generati da un nostro codice, per ogni partecipante e lo studente col miglior risultato avrebbe vinto una Raspberry Pi! Questa volta è stato inaspettatamente raggiunto un pareggio, infatti 2 studenti hanno preso la votazione di 9/10, per cui è stato necessario effettuare uno spareggio tramite una domanda a risposta aperta ad entrambi, che ha decretato un unico vincitore, Davide Sganga, studente di Informatica del 4° anno.

Winner 2

Anche in questa occasione il gruppo al completo può ritenersi soddisfatto dell’iniziativa, portando a casa nuovamente un ottimo risultato, frutto dello sforzo di tutti quanti: includiamo quindi l’apporto dato da Cristina Zucchiatti per le foto e di Stefano Di Francescangelo per il mixer. Questo non permetterà comunque all’associazione di adagiarsi sugli allori: è infatti in previsione la ripetizione dell’evento per il prossimo anno scolastico, con la probabile aggiunta di un form di iscrizione, dedicato alle scuole, al fine di rendere più snella e veloce l’organizzazione di questi eventi. Questo sarà uno delle possibili novità degli eventi Roma2LUG Incontra, sperando che questi possano diventare presto una buona abitudine.

In conclusione : Good Job ROMA2LUG!

DSC_5034

UEFI – Un’Esperienza Fortuitamente Impredicibile

Articoli

Ultimamente al LUG ci siamo schierati in battaglia contro le eccessive complicazioni incontrate nell’installare Linux in un PC con boot in UEFI mode, standard degli ultimi computer con Windows 8 nativo.

Tu stesso hai incontrato difficoltà? Combatti insieme a noi seguendo questa piccola guida! Per dovere di cronaca, devo avvertirti: avendo ogni computer delle procedure leggermente diverse per sbloccare la modalità di cui abbiamo bisogno, questo articolo potrebbe non essere totalmente fedele, ma comunque indicativo!

Procedimento:

  1. Scaricare la ISO
  2. Partizionare Windows 8
  3. Periferica USB non rilevata
  4. Schermata Nera
  5. Riordinare il Boot
  6. Boot Repair
  7. Grub Customizer
  8. Finish!

Scaricare la ISO

Il primo passo, comune a tutti, è di procurarsi la giusta ISO della tua distro preferita. Nota bene: nel caso di Ubuntu (e derivate) dovrai scegliere una versione successiva alla 12.04, obbligatoriamente a 64bit (la 32bit non è supportata da UEFI). Vai qui http://mirror.switch.ch/ftp/ubuntu-cdimage/ per il download!

Partizionare Windows 8

Proseguiamo con la creazione della partizione: utilizza il tool di gestione dei dischi di Windows 8, per evitare problemi! Apri “Esplora Risorse”, clicca con il destro sul l’icona “Questo PC” (il vecchio “Risorse del Computer”) e seleziona “Gestione”. Se viene richiesta l’autorizzazione, concedila!

Gestione DiscoSeleziona “Gestione Dischi” e avrai una panoramica delle partizioni esistenti sul tuo portatile. Seleziona quella da ridimensionare (“C:” nella stragrande maggioranza dei casi) e seleziona “Ridimensiona”. Lascia liberi circa 30GB, giusto per star tranquilli. Una volta terminato, sei pronto alla prima schermaglia, arriviamo infatti ad un bivio: in generale dovrai sistemare le opzioni del BIOS mentre, solo per alcuni fortunati, basterà eseguire un semplice comando, su Linux, per creare una USB avviabile direttamente in UEFI mode:

sudo dd if=ubuntu.img of=/dev/sdb

Altrimenti puoi utilizzare, anche su altri sistemi operativi, il software Unetbootin. Una volta terminato, spegni il pc e accedi al menù di Boot, da cui dovrai avviare la tua periferica USB.

Periferica USB non rilevata

Nella schermata di Boot non è presente la tua USB? Non ti preoccupare, purtroppo capita sovente. Ci vorrà qualche minuto in più per installare Linux, ma nulla di inarrivabile! Spegni nuovamente il PC ed entra nella configurazione del tuo BIOS. Ora disattiva il Secure Boot e attiva la “Legacy Mode” (o la modalità compatibile “Legacy”).

Una volta riusciti nell’impresa (comunque non banale in alcuni modelli estremi), torna nel menù del Boot e seleziona la tua periferica USB.

Schermata Nera

Dopo aver selezionato l’avvio dell’installazione lo schermo si spegne e la tua distro non si avvia? Complimenti, sei tra i fortunati possessori di un pc con doppia scheda grafica! Per risolvere è presto detto, riavvia il pc e giunto al GRUB edita l’avvio premendo c, aggiungi “nomodeset” (senza virgolette) tra “quiet splash ” e “” ed esegui il tutto con F10.

Riordinare il Boot

Nonostante i precedenti passi, Windows 8 potrebbe tentare l’ultima sortita e riprendersi ciò che crede suo di diritto, forzando l’esecuzione del proprio MBR invece del GRUB. Per ovviare a questo problema, torna nel BIOS e dirigiti nel menù di Boot. Se è comparsa la voce “GRUB” spostala fino al primo posto così da eseguirlo prima del boot di Windows.

Schermata di BootSe non è comparso nulla, prosegui al prossimo paragrafo!

Boot Repair

Se dovesse accadere ciò, torna nel BIOS senza scoraggiarti e riattiva la UEFI mode, dopodiché crea una USB avviabile con Boot Repair, utilizzando il software Unetbootin.

Boot Repair

Solito discorso del Boot, avvia la nuova USB. Nel menù che apparirà seleziona Advanced – GRUB Config – controlla che l’opzione “Separate boot partition” sia spuntata (o spuntala in caso contrario) e poi premi Apply.

Dopo qualche secondo ti sarà chiesto di intervenire ma niente paura: devi semplicemente seguire le istruzioni a schermo, eseguendo alcuni comandi su un terminale..

Grub Customizer

Al successivo riavvio avrai il tuo menù completo, con Windows 8 (tra le mille che potrebbe apparire utilizza sempre “Windows UEFI Boot Manager”) e la tua distro preferita, fresca d’installazione. Però sicuramente il tuo GRUB è disordinato, colgo dunque l’occasione per suggerirti e spiegarti l’utilizzo di Grub Customizer!

Grub Customizer

Apri un terminale ed esegui:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
sudo grub-customizer

Con questo programma potrai facilmente riordinare e rinominare le entry del tuo menù di avvio. Per quanto questa operazione sia elementare, raccomando sempre attenzione massima quando si “gioca” con il Grub!.

Finish!

Qualcosa è andato storto oppure non sai installare Linux? Hai alcune curiosità o non ti fidi a farlo da solo? Raggiungici in auletta! Cosa diciamo noi a Windows? NON OGGI!

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

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à!

Kano, il PC in scatola di montaggio

Articoli Leave a reply

Sono passati poco più di vent’anni da quando i precursori dell’informatica cominciavano a pubblicizzare i primi personal computer. Bill Gates diceva: Nel futuro vedo un computer su ogni scrivania e uno in ogni casa”. Diceva bene! Allo stato attuale ogni casa ha almeno un computer, che sia fisso o portatile. Non è più uno status symbol, ma un elettrodomestico di cui difficilmente si può fare a meno. Si potrebbe pensare che ormai il boom del computer casalingo è passato, non si può più stupire il pubblico con qualche idea rivoluzionaria che coinvolga ancora questi apparecchi, e invece c’è chi ancora ci prova. L’evoluzione naturale dei computer sono gli embedded systems, che ultimamente stanno attirando sempre più curiosi. Cosa sono? Sono dei computer in miniatura, che stanno nel palmo della mano e sono composti da un’unica scheda elettronica. Siamo partiti con mini-computer del calibro di BeagleBoard, PandaBoard e pochi altri “prototipi” per arrivare ai giorni d’oggi con computer tascabili, potenti e funzionali che si presentano in tutte le forme e dimensioni come varianti di alcune correnti principali quali RaspberryPI, Cubox, CubieBoard e OLinuXino. Sicuramente quella che spicca di più è la Raspberry Pi, che ha fatto parlare di sé anche grazie a persone che ne hanno saputo dimostrare la reale potenza mettendo in piedi un vero e proprio cluster montato su un rack fatto di LEGO.

A proposito di LEGO, ciò che si sta cercando di fare è di insegnare anche ai più piccoli come ci si può divertire costruendo e assemblando un computer: Kano è un progetto tuttora attivo sulla piattaforma di crowdfunding Kickstarter che si propone di insegnare ai bambini come funziona un computer e scrivere programmi è divertente.

Continue reading

Byzantium: una distribuzione a prova di apocalisse zombie

Articoli Leave a reply

Rete Wireless Mesh

Lo scopo del progetto Byzantium è sviluppare un sistema di comunicazione per permettere agli utenti di connettersi tra loro e condividere informazioni anche in assenza di accesso ad Internet. Questo viene fatto attraverso la creazione di una rete ad-hoc mesh wireless che offre servizi che sostituiscono i popolari siti web spesso utilizzati per questo scopo, come Twitter e IRC.

Per realizzare ciò si sta sviluppando una distribuzione GNU/Linux che può essere eseguita da un supporto removibile (CDROM o chiavetta USB) senza necessità di essere installata.
Pur avendo tale caratteristica, Byzantium Linux è in grado di memorizzare i dati generati dal nodo della rete (ovvero da Byzantium stessa) durante il proprio funzionamento in modo da preservare le informazioni di configurazione e di tutti i database creati in precedenza.

Byzantium Linux dal 30 giugno scorso è in fase beta. L’ultima versione ha aggiunto il supporto per packet radio e un sistema di messaggistica distribuito (Microblog) oltre all’IRC (Web chat) e al Notepad. Questa distribuzione è direttamente costruita su Porteus Linux che mira alla compatibilità con Slackware sotto molti aspetti. Byzantium Linux realizza un nodo della rete ad-hoc mesh wireless, ma per utilizzare quest’ultima non è necessario l’uso della distribuzione. Per essere un cliente della rete, cioè per usare una maglia per comunicare, basta solo che il dispositivo utilizzato sia in grado di entrare in modalità di rete ad-hoc e questa è un’operazione possibile per tutti i PC e i computer portatili in generale. Anche molti dispositivi mobili sono in grado di operare in modalità ad-hoc con o senza richiedere l’installazione di software aggiuntivo.
È possibile inoltre collegare un router wireless convenzionale ad un nodo di Byzantium e servire le applicazioni web per i dispositivi “client wireless”. Ci si può così collegare al nodo Bisanzio attraverso il router come se fosse un collegamento ad un qualunque punto di accesso Wi-Fi ordinario.

Vi segnaliamo due articoli, a dimostrazione del fatto di quanto possa risultare utile una simile distribuzione GNU/Linux in caso di calamità naturali o altro:
http://mashable.com/2012/11/21/hillis-byzantium-technology-sandy/
http://techpresident.com/news/23127/red-hook-mesh-network-connects-sandy-survivors-still-without-power

Nicola

Xorg: Come cambiare i DPI

Articoli Leave a reply

Citando Wikipedia:

I punti per pollice, noti anche […] con l’acronimo DPI, sono la quantità di informazioni grafiche che possono essere rese da un dispositivo di output […]. Con il DPI si esprime la quantità di punti stampati o visualizzati su una linea lunga un pollice (2,54 cm). Ad un valore più elevato corrisponde una risoluzione maggiore ed una migliore resa sulle linee inclinate.

 

Si, ma perché dovrei cambiare le mie impostazioni?

Questo valore può essere aumentato e diminuito a nostro piacimento, ma cos’è che effettivamente cambia modificandolo? Se noi impostiamo un valore maggiore, i caratteri dello schermo saranno “più grandi“, ma di una qualità nettamente superiore. Questa funzione potrebbe ritornarci utile se ad esempio vogliamo utilizzare il nostro pc per visualizzare documenti e presentazioni, oppure configurare un display per uno stand pubblicitario. Se invece impostiamo un valore minore i caratteri diventeranno “più piccoli” e perderanno in definizione, ma guadagneremo molto spazio – utile se ci accorgiamo che lo schermo in una macchina dual-boot “sembra più grande” in Windows e “più piccolo” in GNU/Linux.

 

Modificare le impostazioni dei DPI 

Testare “on the fly” i differenti settaggi è molto semplice e, mediante xrandr, uno dei principali tool per la gestione del server grafico Xorg (che molto probabilmente troverete già installato sulla vostra Linux Box) potete così evitare di riavviare il server grafico.

Di default il server Xorg imposta questo valore a 96: possiamo accorgercene con l’esecuzione di un programma che non necessita il riavvio di Xorg per mostrarci la differenze, ad esempio l’esecutore con privilegi di amministratore in GTK gksu, o il tool di configurazione per schede video NVidia, nvidia-settings.

Per settare i DPI temporaneamente, è sufficiente digitare in un terminale o in una barra di esecuzione

xrandr --dpi VALORE

e quindi ad esempio aprire nvidia-settings mediante

nvidia-settings

Rendere effettive le nostre modifiche
Per rendere le nostre modifiche definitive, invece, dobbiamo modificare il file di configurazione di xorg, /etc/X11/xorg.conf. Ovviamente si consiglia di creare una copia di backup del file di configurazione prima di procedere ad eventuali modifiche: da terminale basta eseguire:

su -c "cp /etc/X11/xorg.conf /etc/X11/xorg.conf.old"

inserendo la password di root, oppure

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.old

inserendo la propria password, per poi procedere editando il file di configurazione del server grafico con il nostro editor di testi preferito, ad esempio:


su -c "nano /etc/X11/xorg.conf"
sudo vi /etc/X11/xorg.conf
gksu "gedit /etc/X11/xorg.conf"
gksudo "leafpad /etc/X11/xorg.conf"

 

Raggiungiamo la Section “Screen” ed aggiungiamo le righe:


Option         "UseEdidDpi" "False"
Option         "DPI" "75 x 75"

 

ovviamente modificando opportunamente il valore “75 x 75” con le nostre impostazioni preferite, salviamo il file e riavviamo il server grafico da console ad esempio premendo la combinazione di tasti, ctrl-alt-f1, eseguendo un login come root e digitando:

/etc/init.d/gdm [oppure kdm, slim, lightdm, ...] restart

scegliendo il login manager utilizzato, oppure da utente normale con

sudo /etc/init.d/gdm [oppure kdm, slim, lightdm, ...] restart

 

Edit: potrebbe essere necessario installare il pacchetto degli xfonts relativo alla risoluzione scelta! In debian:

sudo apt-get install xfonts-75dpi*

oppure

sudo apt-get install xfonts-100dpi*

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.