Sunday, April 15, 2007
programs and processes, computer literacy
The monopoly says "you don't need to know that." It doesn't want you to gain the computer literacy which would let you make self-interested choices about your computing environment.
Some of my customers have trouble describing what is broken on their computers, or what they were trying to do when they got stuck. They can't say which program they were using, or which program popped up a warning or error message, because they don't know what programs are and how they're distinct from each other. The monopoly encourages that confusion. Confused people are helpless people, easier to exploit.
A computer program is a list of instructions that the computer can execute. A computer program that is running is called a "process."
(Purists may quibble. Some programs are written in a language that the Pentium 4 microprocessor chip doesn't execute directly all by itself. Instead there is another program which interprets that program. The Pentium 4 microprocessor actually executes the interpreter. That's an irrelevant quibble when we are talking about computers at this level of detail.)
In unix (that means GNU/Linux, Mac OS, Sun's Solaris, etc) we try to have a lot of little programs where each does one thing well, and in a way that they can work together to do larger things. In Ubuntu, when you drag a file from the USB drive to the desktop, you are seeing a whole bunch of programs working together. There's a program called Nautilis which presents a view of the contents of a folder on the screen. There's a font server that knows exactly what characters look like on the screen. Nautilis has to consult the font server to find out how to depict the name of a file. And Firefox can consult it, too. So there is no need for Firefox and Nautilis to know what characters look like. That knowledge only has to be in one place because the programs work together. There's a program called hotplug that figures out what to do when new hardware like a USB drive or a wifi card suddenly appears out of nowhere.
This matters because when something goes wrong you usually need to figure out which program screwed up before you can fix it. And if it all looks like (or is) one amorphous mass you can't really do that. Which is one reason MS-Windows is so hard to troubleshoot.
Some of my customers have trouble describing what is broken on their computers, or what they were trying to do when they got stuck. They can't say which program they were using, or which program popped up a warning or error message, because they don't know what programs are and how they're distinct from each other. The monopoly encourages that confusion. Confused people are helpless people, easier to exploit.
A computer program is a list of instructions that the computer can execute. A computer program that is running is called a "process."
(Purists may quibble. Some programs are written in a language that the Pentium 4 microprocessor chip doesn't execute directly all by itself. Instead there is another program which interprets that program. The Pentium 4 microprocessor actually executes the interpreter. That's an irrelevant quibble when we are talking about computers at this level of detail.)
In unix (that means GNU/Linux, Mac OS, Sun's Solaris, etc) we try to have a lot of little programs where each does one thing well, and in a way that they can work together to do larger things. In Ubuntu, when you drag a file from the USB drive to the desktop, you are seeing a whole bunch of programs working together. There's a program called Nautilis which presents a view of the contents of a folder on the screen. There's a font server that knows exactly what characters look like on the screen. Nautilis has to consult the font server to find out how to depict the name of a file. And Firefox can consult it, too. So there is no need for Firefox and Nautilis to know what characters look like. That knowledge only has to be in one place because the programs work together. There's a program called hotplug that figures out what to do when new hardware like a USB drive or a wifi card suddenly appears out of nowhere.
This matters because when something goes wrong you usually need to figure out which program screwed up before you can fix it. And if it all looks like (or is) one amorphous mass you can't really do that. Which is one reason MS-Windows is so hard to troubleshoot.