SOFTWARE that tests critical code before allowing it to run could make personal computers almost entirely crash-proof. Known as Nooks, the software has dramatically improved the stability of the Linux operating system and its inventors say it could be adapted for Windows.
Most operating systems have at their core a component known as the kernel, which manages communication between the software and the underlying hardware such as the processor and memory. When extra hardware, such as a printer or scanner, is connected to the computer a software driver is needed to translate messages between the new device and the kernel. Some types of software also use a driver to interact with the kernel.
But drivers are often written by programmers with limited understanding of the way the kernel operates. And poorly written code can cause the kernel to malfunction, resulting in the notorious 鈥渂lue screen鈥 system crashes. Under the Windows XP operating system, for example, hardware device drivers are thought to be responsible for up to 90 per cent of crashes.
Advertisement
Michael Swift and colleagues at the University of Washington in Seattle have developed a system that prevents kernel crashes, even those caused by poorly written drivers. Their approach is to insert a software barrier that prevents drivers communicating directly with the kernel. The barrier acts as a kind of virtual kernel, mimicking the way the code interacts with the real thing. If it finds a problem, it prevents the driver from accessing the kernel and reloads the driver so that the process can start again.
Swift tested the Nooks prototype on Linux by introducing artificial driver errors designed to cause crashes. The modified operating system recovered successfully from 99 per cent of these errors, all of which would normally have caused the system to crash. He presented the results at the 19th ACM (Association for Computing Machinery) Symposium on Operating Systems Principles in New York last month.
Software companies are showing an interest in the work, according to Swift. 鈥淚f you can make a computer more reliable they鈥檙e interested in that.鈥
But Nooks has one major drawback: it soaks up a lot of the computer鈥檚 processing power. To minimise the impact on performance, Swift suggests that systems could be configured to offer either maximum speed or maximum stability, depending on the user鈥檚 needs.
Nooks鈥檚 basic principles could be applied to operating systems other than Linux, including Windows, Swift says. Rob Short, Microsoft鈥檚 vice-president of Windows core technology, accepts that this might address one of the vulnerabilities of Windows PCs: 鈥淒river reliability is a crucial issue,鈥 he says. But he points out that Windows drivers are substantially different from Linux versions, making it difficult to assess how well Nooks would function with Windows.
He says Microsoft is looking into similar ways of preventing device drivers from causing system failures. It is also examining ways to simplify the process of writing drivers and is developing new tools for programmers to diagnose problems in driver code before it is released.
