Trots årtionden av forskning inom extensibel operativsystemsteknik är förlängningar såsom enhetsdrivrutiner fortfarande en betydande orsak till systemfel. I Windows XP, till exempel, drivrutiner står för 85% av nyligen rapporterade misslyckanden. Denna artikel beskriver Nooks, en tillförlitlighet delsystem som syftar till att avsevärt förbättra operativsystemets (OS) tillförlitlighet genom att isolera OS från förarfel. Nooks-metoden är praktisk: i stället för att garantera fullständig feltolerans genom ett nytt (och inkompatibelt) operativsystem eller förararkitektur, är vårt mål att förhindra den stora majoriteten av förarorsakade krascher med liten eller ingen ändring av den befintliga drivrutinen och systemkoden. Nooks isolerar drivrutiner inom lätta skyddsområden inne i kärnans adressutrymme, där hårdvara och programvara hindrar dem från att förstöra kärnan. Nooks spårar också en drivrutins användning av kärnresurser för att underlätta automatisk rengöring under återhämtning. För att bevisa livskraften i vårt tillvägagångssätt implementerade vi Nooks i Linux operativsystem och använde det för att felisolera flera enhetsdrivrutiner. Våra resultat visar att Nooks erbjuder en betydande ökning av driftssystemens tillförlitlighet, fångar och snabbt återhämtar sig från många fel som annars skulle krascha systemet. Under ett brett spektrum och antal felförhållanden, visar vi att Nooks återhämtar sig automatiskt från 99% av de fel som annars orsakar Linux att krascha. Medan Nooks var utformad för drivrutiner, våra tekniker generaliseras till andra kärntillägg. Vi demonstrerar detta genom att isolera ett filsystem i kärnläge och en Internettjänst i kernel. På det hela taget, eftersom Nooks stöder befintliga C-språk tillägg, körs på ett råvaruoperativsystem och hårdvara, och möjliggör automatisk återhämtning, utgör det ett betydande steg utöver de specialiserade arkitekturer och typsäkra språk som krävs av tidigare insatser inriktade på säker extensibilitet.
Till exempel isolerar Nooks REF drivrutiner inom lätta skyddsområden inne i operativsystemets kärna. När en drivrutin misslyckas kan den startas om utan att påverka resten av kärnan.
Improving the reliability of commodity operating systems