Ph.d.-forskning fra ITU finder masser af nye fejl i Linux
Ny forskning fra ITU kan reducere antallet af fejl i kildekode. Ved at bruge nye metoder kan den kommende ph.d. Iago Abal finde fejl i Linux-kernen, som andre værktøjer ikke kan finde.
Iago Abal, som er fra Portugal, kom til ITU i 2013 og begyndte en arkæologisk jagt på kodefejl. Han undersøgte fejl fra tidligere udgaver af Linux, som allerede var fundet og rettet. Ved at kigge nærmere på en fejl kunne han skabe en forsimplet udgave af fejlen, et lille program, som kun indeholdt de dele, der havde med fejlen at gøre.
Det gør det nemmere at skabe nye teknikker til fejlfinding. Algoritmer til søgning efter fejl kan på denne måde, mens de er under udvikling, undgå den kompleksitet, som ligger i at kigge på hele Linux-kodebasen. De simplificerede kodefejl kan også bruges til at bedømme virkningsgraden af andre værktøjer til aflusning af kode. Andre forskningsprojekter benytter også databasen med forsimplede fejl.
I 2014 havde Iago Abal skabt 42 af disse forsimplede fejl fra Linux. I dag indeholder databasen næsten hundrede simplificerede fejl fra fire forskellige systemer.
Resumeer gør kål på eksponetielt problem
En bestemt kategori af kodelus har at gøre med fejlagtig håndtering af resurser, såsom låsning af resurser, åbning af filer og allokering af hukommelse.
Disse fejl er tit fordelt over flere funktioner, og det gør det svært at finde dem, da man på grund af problemets natur kan ende med en eksponentiel stigning i den kode, algoritmen skal kigge på. Det tager alt for lang tid til at være praktisk anvendeligt, så Iago Abal måtte finde på noget bedre.
Hans løsning af det problem består i først at kigge på en funktion og skabe et resumé af, hvilke effekter funktionen giver. Dernæst kan dette resumé kigges efter for fejlagtig håndtering af resurser, og når andre funktioner kaldes, tjekkes deres resuméer for tilsvarende fejl. På den måde kan en uheldig sekvens af operationer på resurserne findes på en måde, der praktisk kan lade sig gøre.
I en test på 26 kendte fejl i Linux kunne algoritmen finde 22 af fejlene, mens tilsvarende værktøjer kun kunne finde 12-14 stykker. Indtil videre er der fundet 13 nye og hidtil ukendte kodefejl i Linux-kernen.
Linux Foundation, som støtter udviklingen af styresystemet, vil lægge resurser i videreudviklingen af Iago Abals idéer, men han har travlt for tiden, så det bliver først om et års tid.
Iago Abal forsvarer sin ph.d. på ITU, i dag fredag kl. 13 i auditorium 1.
