Datasheet
GNU
❘
7
GNU
As mentioned previously, the GNU project was started in 1983 as a response to the closed source
software that was by then being distributed by most computer manufacturers along with their hard-
ware. Previously, there had generally been a community that would share source code among users,
such that if anyone felt that an improvement could be made, they were free to fi x the code to work
as they would like. This hadn’t been enshrined in any legally binding paperwork; it was simply the
culture in which developers naturally operated. If someone expressed an interest in a piece of soft-
ware, why would you not give him a copy of it (usually in source code form, so that he could modify
it to work on his system? Very few installations at the time were suffi ciently similar to assume that a
binary compiled on one machine would run on another). As Stallman likes to point out, “Sharing of
software…is as old as computers, just as sharing of recipes is as old as cooking.”
1
Stallman had been working on the Incompatible Timesharing System (ITS) with other developers at
MIT through the 1970s and early 1980s. As that generation of hardware died out, newer hardware
came out, and — as the industry was developing and adding features — these new machines came
with bespoke operating systems. Operating systems, at the time, were usually very hardware-specifi c,
so ITS and CTSS died as the hardware they ran on were replaced by newer designs.
ITS was a pun on IBM’s Compatible Time Sharing System (CTSS), which was
also developed at MIT around the same time. The “C” in CTSS highlighted the
fact that it was somewhat compatible with older IBM mainframes. By including
“Incompatible” in its name, ITS gloried in its rebellious incompatibility.
Stallman’s turning point occurred when he wanted to fi x a printer driver, such that when the printer
jammed (which it often did), it would alert the user who had submitted the job, so that she could
fi x the jam. The printer would then be available for everyone else to use. The user whose job had
jammed the printer wouldn’t get her output until the problem was fi xed, but the users who had sub-
mitted subsequent jobs would have to wait even longer. The frustration of submitting a print job,
then waiting a few hours (printers were much slower then), only to discover that the printer had
already stalled before you had even submitted your own print job, was too much for the users at
MIT, so Stallman wanted to fi x the code. He didn’t expect the original developers to work on this
particular feature for him; he was happy to make the changes himself, so he asked the developers for
a copy of the source code. He was refused, as the driver software contained proprietary information
about how the printer worked, which could be valuable competitive information to other printer
manufacturers.
What offended Stallman was not the feature itself, it was that one developer was refusing to share
code with another developer. That attitude was foreign to Stallman, who had taken sharing of code
for granted until that stage. The problem was that the software — in particular the printer driver —
was not as free (it didn’t convey the same freedoms) as previous operating systems that Stallman had
worked with. This problem prevailed across the industry; it was not specifi c to one particular plat-
form, so changing hardware would not fi x the problem.
1
Free Software, Free Society, 2002, Chapter 1. ISBN 1-882114-98-1
024485c01.indd 7024485c01.indd 7 7/26/11 8:31:58 AM7/26/11 8:31:58 AM