There has been much talk of late of the $100 computer. Steve Ballmer has suggested that computers should only cost $100. Ballmer's motive appears to be that cheaper computers means more money left over to pay for the software. A cynical (or perhaps reasonable) counter-suggestion is that the amount to pay for the software could be as little as zero, which oddly enough happens to be the exact price of a large amount of open source software.
(Note: all prices here are in US$, the international language of money, even though I come from New Zealand.)
Nicholas Negroponte has started a scheme at MIT for creating $100 laptops for people in poorer countries, with the proviso that the laptops will be manufactured and purchased in quantities of at least a million at a time.
How could you get your own computer for $1, and without having to invest $100,000,000 up front?
There are many people in poorer countries who do not have much hope of buying a modern new PC, which would probably cost at least $400, and who also lack access to the infrastructure required to support it, in particular reliable electricity and broadband Internet (>=256kBit/second). Also there is the issue of being able to secure a relatively valuable item from burglars, in places where the value of the cheapest computer represents weeks or even months of a typical working wage.
But a surprisingly large number of these people do have ready access to someone else's computer, connected to the Internet, for a reasonable hourly rate – as little as $1 or even $0.50 per hour. These computers are to be found inside commercial Internet cafés.
So if there was some way to magically transform someone else's computer into your own computer, which only cost $1, then the $1 computer would be a reality, albeit with an additional hourly useage charge.
As luck would have it, the technology to perform this magical transformation already exists – it is called the Live CD.
To understand what a Live CD is, and how you can use it to turn someone else's computer into your own computer, we must start by understanding what the critical difference is between your computer and someone else's computer.
If we consider most technological property, the main reason that we don't like to freely share it with other people is that we don't trust other people to look after our property.
For example, why don't we freely share our cars with other people when we are not using them? The amount of wear and tear that a car suffers depends very much on how much the user of the car cares about maintaining its value, and nobody ever cares quite so much about this as the actual owner of the car. So if you need to borrow a car, and you don't have a very understanding friend or relative, you have to go to a car hire company, and pay hire rates which are substantially higher than the normal cost of car ownership (even when that includes interest, depreciation, maintenance, registration and petrol).
Another issue with borrowing cars (and which is more relevant when I try to extend this analogy to computers) is the question of whose stuff can be left in the car when it is being used. If I borrow my friend's car, does he leave his stuff in it while I am using it? Can I leave my stuff in it in between borrowings?
So we can see that there are a number of complications involved in sharing cars. Yet it does seem so wasteful that most cars in the world spend most of their time not being used, just cluttering up garages, roadsides and parking lots.
In the case of a computer, there are two categories of wear and tear, which we can divide into physical and digital. (It might seem odd to talk of digital "wear and tear", but I would include in this category all the junk that can accumulate on a hard disk: viruses, spyware, trojan horses, leftovers from faulty uninstallation procedures, fragmented files, out-of-date applications and forgotten documents.)
If we consider the question of whose "stuff" is in the computer, we find that computer stuff also falls into categories of physical and digital. The physical can be divided into external peripherals, which are easy to connect and reconnect, and therefore not such an issue when transferring control of a computer from one person to another, and internally installed items, such as expansion cards, extra drives and memory, which are usually very limited in number. Most of the additional items of stuff in a typical computer, by any reasonable notion of counting, are digital items, consisting of applications and content installed onto the computer's hard disk.
This distinction between the physical and the digital suggests a strategy for reducing the difference between "my" computer and "your" computer to a difference between "my" and "your" something else which is cheaper, based on this idea that most of the differences that matter are differences in the digital information stored on the computer. For example, if we separated the hard disk from the rest of the computer, "my" computer could be stored on my hard disk, and "your" computer could be stored on your hard disk. Now you can buy hard disks for less than $100, and there do exist mechanisms for inserting and removing hard disks into computers.
But we can do better than this. Modern hard disks typically have a minimum size of 40 gigabytes. In a hard disk drive there is no separation of the disk from the drive. But there are also removeable disk drives, where the disk is what gets removed. New removeable disk technologies are being developed, but the most common and economical types of disk currently used in removeable disk drives are CD's, which store up to 700 megabytes, and single-sided DVD's, which store 4.7 gigabytes. Modern operating systems and applications do tend to expand beyond the limits of a 700 megabyte disk, and even beyond 4.7 gigabytes. But with a certain amount of frugality, it is quite possible to set up a useful computer system within these limits, with enough functionality for the user to do real work.
Furthermore, most modern computers provide the ability to boot off a CD or a DVD. (In fact there is a general tendency to move towards being able to boot off anything that can conceivably be booted off, including network drives and USB memory "sticks".)
And that is what a Live CD is: a CD containing an operating system with all that is needed to get a computer started and running, and with the same types of applications that one expects to find on a "traditional" hard-drive based PC. And if it's a DVD, you call it a "Live DVD".
There are many Live CD's available. Most Live CD's are Linux-based, because the free-ness of Linux means that it can be freely copied onto any number of CD's without anyone having to pay any license fees.
However, most currently available LiveCD distributions are not specifically oriented towards the requirements of people who don't have a computer at all. Mostly they are designed as easy demo systems, or as a preliminary to a full hard-disk installation, or as a rescue disk, or as a means to temporarily access your own preferred system on another person's computer.
One major deficiency with most of these systems (if we are trying to fit the equivalent of a full computer onto a single disk) is the provision they make for writing data. The most common approach to enabling writing is to include access to USB memory sticks. These sticks can be quite cheap (less than $30), but, we can do better.
A recent development in this field is Puppy Linux, which, among other features, includes the ability to write data back to the CD that was booted from. Although this system is still "work-in-progress", I view it as the first available system that can rightfully claim to implement the concept of the "$1 computer". (See also the Slashdot article for some discussion on the subject.)
Given that the $1 doesn't include the full computer, and to avoid claims of false advertising, the "$1 Computer" is perhaps best referred to as the "$1 Virtual Computer". Virtualisation of various kinds is a major feature of many computer systems, and it is part of these systems for many reasons. All I am doing here is adding yet another reason: we want to make ownership of computers available to people too poor to own them.
As I mentioned earlier, many people in the world who cannot afford their own computer have ready access to computers in Internet cafés at reasonably cheap hourly rates. If the vision of $1 Virtual Computers is to come true for these people, these same Internet cafés need to provide suitable hosting for CD or DVD-based virtual computers. Requirements for such hosting fall into two major categories:
The PC should be one that is optimised for booting and running software off a removeable disk. Required features would include:
The network environment should provide local facilities that enable a "virtual" yet affordable Internet:
Computers and Internet provide opportunities for education and business, both of which should be of great interest to many of the poorer people in the world, who have limited opportunities in either respect. Of course much personal computer use consists of game playing, web surfing and social communication, and this is as likely to be true for the poor as it is for the rich.
But with a little effort, a Virtual-Computer-hosting Internet café could be made education and business-friendly, and whether or not the users of such a café take advantage of the relevant facilities would be up to them. Such facilities would include:
If an Internet café offers services with this orientation, then it will naturally attract users who are interested in using computers and Internet for education and business, and those users will (hopefully) socialise and support each other in their endeavours. If it is easier to download the latest copy of gcc than play a networked shoot-em-up game, then this may have a beneficial effect in providing an "atmosphere" which is suitable for such activity, where shouting out "Yippee you're dead!" may be less socially acceptable than "does anyone know what this C++ error message means?".
More formal educational services can easily be provided in an Internet café that is education-oriented. If ten people are seriously interested in learning such-and-such a programming language, and there is someone who can teach it (or at least help with a mutual learning process), then it is easy enough to declare that eleven computers are reserved from 3pm to 4pm on Fridays for learning the such-and-such language (and any interested extra students are not necessarily excluded if there are still computers going spare).
A common feature of Internet cafés is to charge rather high prices for certain specific services of particular use to tourists or travelling business people, such as CD writing. If you want to copy all the photos in your camera's memory card to CD, you might be charged $5, even if only a small fraction of the CD is used up.
If an Internet café provides CD/DVD writers, USB sockets and memory card readers on every computer as a matter of course, then it may be difficult to enforce higher charges for disk-writing services.
However, businesses can and do charge different rates for regular users and casual users. If the tourist users of such services are made aware that the normal charges they pay help to finance the benefits of providing cheap computing facilities to locals who have more limited funds, then an "honesty" system may be sufficient to encourage full payment for these services. An Internet café could also discriminate between higher paying users who are given priority access, and lower paying users who might have to wait for time slots when no one else wants to use the computers.
I previously mentioned Puppy Linux as the closest thing I know of to a $1 Virtual Computer. The open-source-ness and general freeness of Linux makes it the best candidate for a foundation on which to base such a vision.
But it is not completely out of the question for propietary operating systems and applications to support virtual computing. The main caveat is that they should allow for licensing per machine and not per user. Proprietary virtual computing would also impose extra requirements on the host hardware, as there would have to be an extra disk built into the machine to separately provide all the per-machine-licensed software (which could not be freely copied onto the customers' own disks), and that extra disk would provide read-only access to normal users, with clean separation of machine-based configuration and extensions from user-determined configuration and extensions.
To achieve this type of separation 100% will require considerable effort from the proprietary software developers (to reorganise their software into copyable and non-copyable components), and yet with no expectation of them being able to charge per-machine license fees any higher than what is currently charged to owners of single PC's in rich first world countries.
So in the near term, expect more progress on this front from the developers of open source operating systems and applications.