Crash-Proof Code a Necessity for Computer-Run Services
The blue screen means death in any language.
CREDIT: aj82, via Flickr
Software runs everything. From the electrical grid to airlines to medical devices, the modern world runs on code. That also means software failure has become more dangerous just as vulnerability to hackers and bugs in complex software reaches an all-time high.
To combat that, programmers are working on ways to certify operating systems and the software that runs on them to make them more secure. The work being done in this area, in particular certifying that the kernel of an OS is crash-proof, was named one of MIT Technology Review's top 10 emerging technologies of 2011.
"Everything running on a machine relies on the integrity of the OS kernel,' said Zhong Shao, a professor of computer science at Yale University. "If there's a bug, it could be all bets are off."
One group that is working on that OS kernel is Gerwin Klein's lab at NICTA, Australia's national IT research. The researchers were able to develop a microkernel that could be verified to always perform how it's meant to, according to MIT Technology Review .
"If we can make sure the kernel works, then it's a great start," Shao told InnovationNewsDaily. "Without it, it's like building a skyscraper on sand."
Even with a firm foundation, there are still many challenges to building secure code. There are other parts of the computer that ideally should be verified to be bug-free, such as compliers.
There is also some debate over what even constitutes crash-proof code . Shao noted that besides the technological challenges of having a machine that can verify all of the pieces of an operating system which is likely impossible because it would take an infinite amount of time there is a more basic question of what you're trying to achieve.
If you make the assumption that the person operating the computer wants to use it in the way it was intended, and there are no hardware failures, then he believes it is possible to eventually build software that does what it is meant to do 100 percent of the time. Those are some big assumptions, but if you accept those, then certified software is possible.
"There is a potential we can make it crash-proof," Shao said.
Advances in machine-checkable proofs is helping to push the industry forward although it will likely never be possible to completely protect against hackers. With the work being done across the globe, however, there is reserved confidence that researchers can certify the critical components to make software safer.
"There's still a lot of challenges," Shao said. "It's not an easy task, but the technology is getting better and better."
This story is part of a series covering MIT Technology Review's Top 10 Emerging Technologies of 2011 list. You can read the previous parts of the series here.