Tuesday, October 20, 2015

Software Is Tangible

Many people seem to think that software is non-physical---that unlike the computer keyboard and screen they can touch and feel, the software that makes their computer do useful work has no physical existence.  This ghost-in-the-machine view of software doesn’t square up with reality. Computing is a physical act and software is the physical object that drives computers.
Software is stored in the memory of a computer as collections of electrons: a certain number of electrons stored at a location represents a 1 bit while a small number (or no) electrons represents a 0 bit. (Other storage media represent bits in other ways---magnetic domains, pits in DVDs, etc.---but the principle remains the same.) In a modern memory, only a few hundred of these little tiny electrons are enough to store a 1 bit. 
But tiny is not the same as non-existent.  A little high school physics tells us that, in fact, electrons do exist in the physical world. Wikipedia gives the mass of an electron as 9.1 X 10^-39 kg.  That’s pretty darn small. But they do really exist. And we can sense the behavior of electrons in many ways.  For example, we can steal cryptographic keys from smart cards and computers watching the flow of electrical energy into the machine.  This technique, known as a power attack, figures out the 1s and 0s of your security key simply by watching how much power the computer consumes at different steps of the security process.  The physical nature of those little tiny bits has real and important implications.
And some of the effects of the physical nature of software are accessible by a simple touch. Running software consumes electric power that is transformed into heat by the computer, much as our bodies heat up as we exercise. When your feel your laptop grow hot as you watch a movie, you feel the physical effects of software. Can a ghost in the machine do that?

No comments:

Post a Comment