Strumento per l iniezione di guasti software nel sistema operativo GNU/Linux



Documenti analoghi
Un approccio innovativo alla tecnica di robustness testing del sistema operativo Linux

Strategie per il miglioramento dei log applicativi basate su Software Fault Injection

Una metodologia per la definizione dei livelli di criticità dei componenti di un sistema software complesso

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

Uno strumento per l emulazione di fallimenti hardware in sistemi virtualizzati

Strumenti per la gestione della configurazione del software

Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB:

Un architettura per la gestione dei log di applicazioni distribuite

Generazione Automatica di Asserzioni da Modelli di Specifica

11. Evoluzione del Software

Implementazione di tecniche di tolleranza ai guasti in un middleware per la Data Distribution Service

PROPOSTA DI UN ARCHITETTURA IMS INTEGRATA IN UN AMBIENTE VIRTUALIZZATO: ANALISI DI PRESTAZIONI Daniele Costarella

Realizzazione di un tool di instrumentazione automatica a supporto della failure analysis

tesi di laurea Anno Accademico relatore Ch.mo prof. Stefano Russo correlatore Ing. Generoso Paolillo candidato Marco Leoni Matr.

12. Evoluzione del Software

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Valutazione sperimentale di tecniche di testing per software in relazione ai tipi di guasti

Progettazione e sviluppo di uno strumento di monitoraggio dei componenti software di un sistema per il controllo del traffico aereo

UN SUPPORTO AUTOMATICO PER LA RACCOLTA E L ANALISI DI DATI SPERIMENTALI DI UN MIDDLEWARE PER LA DISTRIBUZIONE DI DATI

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale

PROGRAMMA DEL CORSO AMMINISTRATORE DI SISTEMI LINUX

Analisi sperimentale di software aging nel kernel Linux

Il sistema operativo TinyOS

Analisi di prestazioni di applicazioni web in ambiente virtualizzato

Realizzazione di un framework di monitoring per l'analisi di sistemi critici Anno Accademico 2013/2014

Titolo della tesi Testing Black Box di un Web Service : sperimentazione su di un servizio con stato

Implementazione di un servizio VoIP in ambienti SOA per mobile computing

Analisi empirica dei meccanismi di log in sistemi open-source!

Uno strumento per il deployment automatico di performance test su piattaforme per la distribuzione di dati

Realizzazione di un sistema di logging prototipale per la piattaforma

Confronto sperimentale tra tecniche di testing automatico per applicazioni Android

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

con ANTLR tesi di laurea Anno Accademico Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr

Grid on Cloud : Implementazione e Monitoraggio

Una Soluzione di NAT Traversal per un sistema di comunicazione VOIP per una PMI

Tesi Di Laurea. Anno Accademico 2010/2011. relatore Ch.mo prof. Cinque Marcello. correlatore Ch.mo Ing. Catello Cacace

Estensione dei servizi cloud di ENEA-GRID basati su OpenNebula ad una configurazione multisite. Dott. Pasquale De Michele Tutor: Ing.

Università degli Studi Roma Tre

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Firewall applicativo per la protezione di portali intranet/extranet

Sistema G.U.S. Capitolato di Gara ALLEGATO A

Strumenti per il testing di applicazioni in ambiente Android

Università degli Studi di Salerno

Piano di gestione della qualità

LE CARATTERISTICHE. Caratteristiche. - tel fax pag. 2

Un applicazione client per la localizzazione via Bluetooth e Wi-Fi di dispositivi Smartphone Anno Accademico 2005/2006

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

Progetto e sviluppo di una Applicazione Android per l accesso a reti di sensori senza filo

Sviluppo di applicazioni mobili su piattaforma Maemo

Memorizzazione affidabile di dati in un ambiente di Griglia

Analisi della dependability di un middleware per la

Progettazione di un tool a supporto di un metodo per la selezione delle tecniche di test

Un Sistema Informativo per il Monitoraggio di Apparati Radar mediante l uso di Griglie Computazionali

Metodologie e tecnologie a supporto nello sviluppo di applicazioni mobile di tipo Enterprise!

Tesi di Laurea Specialistica EMULAZIONE DI EFFETTI WAN NELLA VALUTAZIONE DELLE PRESTAZIONI DI SERVER WEB. Candidato Emiliano Zeppa.

Progetto Virtualizzazione

Linux e Open Source: Libero! Non "gratis"...

Virtualizzazione di macchine Linux tramite XEN

Prototipazione di un componente di elaborazione dei piani di volo in un sistema di Traffic Management

Architettura di un sistema operativo

Progettazione ed implementazione di un tool per lo sviluppo di applicazioni in Esperanto

Sviluppo di un'interfaccia grafica per l'automatizzazione di campagne di software fault injection. relatore Ch.mo prof.

IngEstate. Sistema di telegestione

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438

Introduzione alla Virtualizzazione

Progetto e sviluppo di unʼapplicazione iphone per lʼaccesso a reti di sensori senza fili."

Le licenze d uso. Le principali tipologie di licenze

PHP ), con l'introduzione di un middleware quale Zend Framework a

Università degli Studi di Napoli Federico II Facoltà di Ingegneria. Corso di. Sistemi Distribuiti. Prof. Stefano Russo. Field Failure Data Analysis

DBMS e Linguaggi di programmazione nell'era di Internet

Acronis Universal Restore

Analisi e sviluppo di un componente per un ESB open source

Gestione di un magazzino: sviluppo di un applicazione web-database

Specifiche tecniche e funzionali del Sistema Orchestra

CAPITOLO 1. Introduzione alle reti LAN

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda.

Sistema Operativo Chrome: Analisi degli aspetti peculiari.

Note sul tema IT METERING. Newits 2010

Base di dati e sistemi informativi

Azienda: cooperativa di consumatori nata nel 1989 e presente nelle Province di Modena e di Ferrara e nella Regione Puglia e Basilicata.

Analisi e sviluppo di un sistema automatico per la segnalazione di stati anomali dei job del Data Center S.Co.P.E.

In estrema sintesi, NEMO VirtualFarm vuol dire:

MSFT SAM Certified

Un sistema per l'emulazione delle reti su cluster di macchine virtuali Anno Accademico 2007/2008

Virtualizzazione e Macchine Virtuali

Prototipazione GNU/Linux-Arduino

Architetture Informatiche. Dal Mainframe al Personal Computer

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT

Architetture Informatiche. Dal Mainframe al Personal Computer

Ottimizzazione dello scambio messaggi in un middleware di distribuzione dati conforme allo standard OMG DDS

Licenze d uso libere. Rossetto Stefano Seminario di Commercio Elettronico

Il CRM per la Gestione del Servizio Clienti

Analisi e sperimentazione della piattaforma Web Service Notification nell ambito del controllo del traffico aereo

Incentive & La soluzione per informatizzare e gestire il processo di. Performance Management

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

SquashFS, AuFS ed i segreti delle distribuzioni live

Joomla! e la virtualizzazione in locale... pro e contro

ToolCare La gestione utensili di FRAISA NUOVO

Un framework a supporto della sperimentazione di tecniche euristiche. per l ottimizzazione di pagine Web per Screen Readers

Transcript:

Tesi di laurea Strumento per l iniezione di guasti software nel sistema operativo GNU/Linux Anno Accademico 2009/2010 Relatore Ch.mo prof. Marcello Cinque Correlatore Ch.mo ing. Roberto Natella Candidato Davide Fazzone Matr. 534/002977

Obiettivi della tesi Realizzazione di uno strumento automatico per la creazione e l'iniezione di guasti software all'interno del kernel del sistema operativo open-source GNU/Linux Valutazione, attraverso una fase finale di testing, dell influenza di questi guasti indotti sul corretto funzionamento del sistema operativo e su eventuali applicazioni Ciò è di fondamentale importanza in sistemi safetycritical, i cui malfunzionamenti possono provocare danni a persone o all ambiente circostante.

Cos è la Fault Injection Il test di un programma può essere usato per mostrare la presenza di bug, ma mai per mostrare la loro assenza (E. Dijkstra 1970) Esempio di guasto iniettato Definizione: Volontaria iniezione di guasti all'interno del sistema sotto osservazione, per valutarne il comportamento all'insorgere dei guasti iniettati Usata nella validazione della Fault Tolerance Differenze tra Fault, Error e Failure Ciclo Fault-Error-Failure

Metodologie di Fault Injection Tecnica G-SWFIT: Modifiche a livello del codice binario Adatta a componenti OTS Necessità di essere adattata a hardware, sistema operativo e compilatore Fault Injection Tool (FIT) Modifiche a livello del codice sorgente Adatta a software open-source Necessità di poter accedere al codice sorgente Tecnica G-SWFIT Passi del Tool di Fault Injection

La Fault Injection nel Sistema Operativo Perché fare F.I. nel Sistema Operativo? Risulta di interesse osservare come i fallimenti a livello del S.O. si propagano nel software applicativo Il S.O. è realizzato per aggregazione di componenti (problematiche di integrazione) Concentrare i test sui driver Secondo studi statistici, i guasti nei driver sono la principale causa di fallimento dei Sistemi Operativi in quanto scritti da terze parti Failure di un driver in sistema Windows Modi di fallimento possibili: Hang del sistema Crash del sistema Errori Applicativi Come il Sistema Operativo reagisce a questi fallimenti

Uso del tool sul codice del kernel Linux Metodo e componenti usate Virtualizzazione (QEMU) Tool ausiliarii (mcpp, httperf) Realizzazione di un processo per generare dal codice sorgente diverse versioni del driver con guasti iniettati Problemi nell uso del tool sul codice del kernel Linux Necessità di progettare un tool che permetta di usare normalmente il FIT

Processo automatico realizzato Fase iniziale di configurazione ed ottenimento dei sorgenti Utilizzo del fix-tool creato per adattare il codice del kernel, al fine di poter applicare il tool di Fault Injection in uso Rimozione di macro, direttive al precompilatore e parole chiave non aderenti allo standard del linguaggio Compilazione delle patch generate Test per ogni patch

FNM-Linux (Finmeccanica Linux) v. 2.1.1 Basata sulla meta-distribuzione Gentoo Linux Le principali feature di questa distribuzione sono: Management di prodotti industriali Real Time spinto su sistemi multi-core Scalabilità garantita Software Safety D0178B Licensa GPL2 Kernel in uso: Linux-2.6.24-FNM_v2.1 (evoluzione della versione 2.6.24.7 del kernel Linux, opportunamente patchato secondo le loro necessità aziendali). Equipaggiata di Abyss Web Server per il test delle schede di rete Le tre schede di rete sotto test: Caso di Studio Realtek NE2000 (modulo ne2k-pci LOC: 716) Realtek RTL-8139C (modulo rtl8139cp LOC: 2101) Adv. Micro-Devices PCnet32 (modulo pcnet32 LOC: 3106)

Risultati del Caso di Studio Per ogni scheda sono state create diverse centinaia di patch Si escludono: quelle che non permettevano una corretta compilazione quelle che non riguardavano il modulo in esame ma qualche libreria inclusa Dalla compilazione delle rimanenti si ricavano i moduli buggati Ognuno di questi viene messo in esercizio e testato tramite uno script di workload Si ottengono, quindi, i risultati statistici desiderati

Conclusioni e Sviluppi Futuri Statistiche complessive 73,6% dei casi di test senza errori 11,8% dei casi di test con Crash 2,5% dei casi di test con Hang 12,1% dei casi di test con Errori Applicativi Percentuali dei failure riscontrati rispetto al totale degli errori Sviluppi Futuri Logging in caso di Hang Modalità diverse da test a scatola chiusa

Grazie dell attenzione