Yes, code is sometimes bug-free, and for certain safety-critical applications absolute proof of correctness is mandated by law. But it takes unwavering design discipline, which is expensive and slow, and the functionality has to be kept simple enough so that it can be completely understood down to the bits-and-bytes level. And when it's proven correct, it needs to be burned into ROM so that it can never be changed. In addition, the hardware it executes on has to be proven formally correct. Can't do it with mayfly parts.
The IoT will be spamming everyone and everything. There will be security flaws (is code ever bug free- NO!) so hackers will probably be able to turn every kitchen appliance into a malware bot. Just great...
Having a computer that receives security updates is bad enough. When every device in the house is getting updated (many of which we may not even be aware of), we may find ourselves in gridlock. Already a quick attempt to check something on the Internet is frequently blocked by a mandatory automated browser reboot and software installation at the worst possible time. Turning off the updates is even worse; many website then refuse admission because I'm running obsolete browser software. I also find that automatic sensors (like the oil level in my home heating tank) seem to do their daily transmission a minute after the vendor does their daily system update so the information is always running a day behind (and worse on weekends). The basic process flows and dependencies need to be worked out and hardened before we find ourselves in the hell of electronic device gridlock.
NASA's Orion Flight Software Production Systems Manager Darrel G. Raines joins Planet Analog Editor Steve Taranovich and Embedded.com Editor Max Maxfield to talk about embedded flight software used in Orion Spacecraft, part of NASA's Mars mission. Live radio show and live chat. Get your questions ready.
Brought to you by