Monday, February 20, 2006

Software freedom matters: The case of Skype

Most end users have probably never even heard of the term "software freedom." It's use has been reserved to programmers and enthusiasts. I wonder when it will catch on.

Recently, Intel and Skype have reached a deal where Skype's product, the popular Voice over Internet Protocol (VoIP) software, will be crippled on machines running older Intel processors and competing equipment made by rival AMD. Skype's new version will be (is?) capable of facilitating conference calls. They intend to limit its conference call capability to 5 callers, except on the newest Intel processors, where the limit will be 10. The newest Intel processors do not contain any instructions related to voice-over-Internet capabilities. From the reporting, it seems that the only processor-specific function being used here will be the return value of the CPUID instruction, a code that identifies the make, model and capabilities of the processor. The software would then be crippled based on the results. There is no evidence that the AMD processors (or even older Intel processors, for that matter) are incapable of performing the operations necessary for the software to function. One report even indicates that the AMD processors benchmark better than their Intel-made counterparts.

As of now, the only processor feature being used is the CPUID instruction, which has been around since the days of the 486. Having it in the toolkit is usually a good thing. If a programmer wants to use a feature only available on some processors, it introduces a quick and easy way to determine an individual machine's capabilities. But, one must ask where this is all going. Now, one may simply decide to use (or become) one of Skype's competitors' services if one does not want to be limited by this deal. With the coming era of "trusted computing", hardware makers (possibly in collusion with software makers) will be able to hardware-encode what software a machine can run. Collusion between sufficiently powerful companies could create artificial incompatibilities between systems in order to force consumers to buy both companies products together. Imagine a world where you need an Intel-based machine to run office software, and an AMD-based machine to run your favorite game. Both machines could be technically capable, but the software and/or hardware prevent the program from running on competitors' machines. I would even venture to predict that most users will just blindly accept things as the way they are and pay even higher prices1 for the crippled products.

The alternative to this kind of proprietary world is the free software world. In the free software world, source code is always available, so any attempts by the original programmers to cripple the software's functionality could quickly be removed by someone else at the source code level. The free software community relies on the continued ability of all computers (of the same architecture) to run the same software. But now, what if the hardware itself were encoded to only allow certain signed ("blessed") software to run on the machine? The continued availability of free software is not guaranteed.

Technorati tags: , ,

1 Consider, for example, that the complexity of both Microsoft Office and microprocessors have increased. The prices of consumer editions of the Intel chips have gone down, but the prices of consumer editions of Office software have increased or stagnated, see this column, for the detailed argument presented by another not-quite-unbiased source. :-)

Comments: Post a Comment

<< Home