Skip to main content

skip to main content

developerWorks  >  Open source | Architecture  >

The hard roots of open source software

How the road forked when proprietary software was invented

developerWorks
Document options

Document options requiring JavaScript are not displayed


Rate this page

Help us improve this content


Level: Introductory

Peter Salus, Author, Director of the Tcl/Tk Consortium, and former VP, Free Software Foundation

01 Feb 2000

Author Peter Salus takes you back before the beginning of (Internet) time, for a look at how the open source community emerged. Before the Internet came on the scene, disperse user groups were sprouting up to address hardware issues that were as new as the computers they were working on. USENIX followed not too long after, and soon, the difference between free and proprietary software arose. Even so, open source software managed to survive, and some of the developer's best tools, including the UNIX® editors, flourished.

Many appear to equate the Internet and the Web. In fact, The ARPANET dates from 1969, whereas the World Wide Web dates from 1991. Still, the two are often spoken of as the same entity. Similarly, a lot of people think the concept of open source arose with Linux®, or perhaps with Emacs, the popular editor and programming environment. But like the Web, open source finds its origins further back in time, and from different roots.

Disperse user groups, the predecessors of today's connected developer community, sprang up as early as 1955, when IBM® introduced the 704, a redesigned mainframe electron-tube calculator, which was one of the follow-ons to the IBM 701, released in 1952. It was the transition from the 701 to the 704 that brought these user groups into being. The transition was far from trivial; many improvements in software were initiated at the time by Glenn Amdahl and the 704 had CRT memory. So in August 1955, a group of IBM operators got together to discuss hardware fixes, software problems, and solutions, with IBM's encouragement. Their first project was an assembler for the 704.

It was the beginning of SHARE, and it was merely a decade after IBM had subsidized Howard Aiken's Mark I at Harvard, the first big computer. (Aiken's Mark I had tubes and mechanical relays; it is, thus, not the first electronic machine.)

The members of SHARE were interested in getting their hardware to work efficiently. And no one had yet told the manufacturers that the "software'' was important or valuable. So when you bought (or leased, more likely) an IBM machine, you got the bits, as well. A few years later, when you bought a DEC machine, you got the bits, too, on large brown plastic floppies.

USENIX came along in 1974, and the agenda for the first meeting included DEC "hints, problems, solutions, bugs" and for UNIX likewise "hints, problems, solutions, bugs.'' Today USENIX has expanded to be one of the world's largest UNIX user groups. USENIX itself saw the transition from "software" to "open software."

When software meant freeware

Once upon a time, all software was open. The essence of computing lay in manipulating the open source code and sharing your problems and solutions with others. Only a little more than 20 years ago did vendors realize they could actually make money from software — hand over fist.

At the June 1979 USENIX meeting in Toronto, AT&T announced an enormous price hike: from $1,000 to $7,500 for educational institutions; from $5,000 to $40,000 for full commercial open source — per CPU. No wonder folks went home dismayed.

The UNIX editors

Despite the sudden financial matriculation of the software industry, much software did continue to develop openly, producing applications that are still a mainstay of modern UNIX computing. The UNIX editors are one such example and illustrate nicely the open source process.

The original UNIX editor was ed. It was a line editor of reluctant and recalcitrant style. When UNIX (V4) got to Queen Mary College, London, in 1973, George Coulouris — a professor of computing — wasn't happy with it. So he wrote a screen editor, which he called "em," or "ed for mortals."

Coulouris went on sabbatical to Berkeley, where he installed em on his machine. A graduate student noticed it one day and asked about it. Coulouris explained. He then went off to New Jersey to Bell Labs, and when he returned to Berkeley, he found that em had been transmuted into ex, a display editor that is a superset of ed and a number of extensions — primarily the one that enables display editing.

At the beginning of 1978, the first Berkeley Software Distribution was available. It consisted of a tape of the Berkeley Pascal System and the ex text editor. The graduate student was Bill Joy, and the distribution cost $50. The next year, Berkeley got some ADM-3a terminals, and Joy rewrote em to vi — a truly visual editor.

In sum, ed came out of Bell Labs in New Jersey, went to Queen Mary College in London, from there to the University of California at Berkeley, and from there back to New Jersey, where it was incorporated into the next edition of UNIX.

The stories of Linux, Perl, and sendmail, applications that have flourished more recently, are similar.

It's clear in all these cases that corporations' interest in their bottom lines drove the users to SHARE and to the other user groups. Without the manufacturers and distributors to "support'' the software, the operators/programmers/users had to cooperate with one another. The Berkeley Software Distributions, the "tape swaps'' at USENIX events for over a decade, and the gift CDs of today all stem from this.

When I was writing A Quarter Century of UNIX, I discovered an element that was essential to the "UNIX philosophy," but alien to commercial programming: The changes to the kernel, and the applications, the programs were all written by one or two or three hackers — not by teams of programmers. Eric Allman wrote sendmail; Mike Lesk wrote the original uucp (and even the mid-1980s version, HoneyDanBer, was created by Peter Honeyman, Dan Nowitz, and Brian Redman); Steve Johnson wrote yacc; Bill Joy wrote vi; etc. Brian Kernighan once told me that AWK was the toughest project he ever worked on "because there were three of us'' (Aho, Weinberger, and Kernighan).



Back to top


So why does it work?

Of course, we can chalk the spread of software and the expansion of the open source community up to the Internet. Even with the semi-annual USENIX tape-swaps and uucp, stuff was passed around slowly. But in 1975, Steve Holmgren and his colleagues at the University of Illinois had brought UNIX to the attention of ARPANET users, and within a few years, the Internet was running on UNIX.

It's the Net that enabled Finnish student (Linus Torvalds) to send his work to nearly every corner of the world and that currently enables so many programmers to contribute feedback to the Linux and GNU and Perl communities. Thousands of programmers all over the world contribute to the excellence of programs and systems. They don't have an encapsulated proprietary system that no one can debug.

Perhaps the most fascinating conundrum here is why a far-flung band of iconoclastic programmers can work more effectively than most corporate design teams.

I think the real answer is buried in a remark by hacker Brian Kernighan. In big companies, large teams work on projects. We have been repeatedly told of the many thousands of programmers who have worked on the 40 million lines of Microsoft® Office 2000. But anyone who has ever looked at Windows® code knows that it is loose and disorganized.

This is because a "team'' wrote a bit, and another "team'' taped it to something else and stapled yet something else to it. No one consciousness has gone over the whole thing (indeed, at 40 million lines, who could?).

Furthermore, modern software is anonymous, by and large. We don't identify Mike Cowlishaw with REXX (though he authored it), nor anyone at all with DOS or Windows. But we know that Ken Thompson and Dennis Ritchie created UNIX, that Bjarne Stroustrup wrote C++, that Larry Wall is the father of Perl, etc. These people can act as the final word on contributions from the group consciousness that is the hacker community.

So perhaps the real reason that open source software works so well is that the writing and the criticism are done by folks interested in the software, not merely assigned to work on it. And if you have a large enough audience, someone will be interested in all parts of it.

But this process does have its drawbacks. It doesn't, for example, enable a corporation to run a schedule. The Free Software Foundation's HURD came out six years after it was announced — and just in time to have had its lunch and dinner eaten by Linux.

Still, this means that open source software isn't subject to the whims of a corporate board or the vagaries of a marketing department. When a company is bought up or goes out of business, its hardware or software products become nearly worthless. Who will maintain them? Who will support them?

Just the contrary is true with open software: If you have a problem, ask the Net. One inquiry I posted last year brought me six solutions in a matter of hours. A few hours later, I had three more (one correcting a previous item). By the next day, about 30 hours after I first posted, I had two elegant pieces of code, one from a user in Singapore, the other from Austria.

Everything was open, published, if you will, on the Net. Pay? My guess is that all these folks have jobs. But this sort of code pays off in fame and glory. At large meetings, known programmers are treated like rock stars. Commercial and free software are becoming similar in at least one respect: Getting an audience with Linus Torvalds these days is probably not much easier than getting one with Bill Gates.



Resources

Learn

Get products and technologies
  • Innovate your next open source development project with IBM trial software, available for download or on DVD.

  • Download IBM product evaluation versions, and get your hands on application development tools and middleware products from DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®.

Discuss


About the author

Peter H. Salus holds a B.S. (Chemistry), an M.A. (Germanic Languages), and a Ph.D. (Linguistics), all from New York University. After 20 years as an academic (including stints as a chairman, associate dean, and dean), he went to IBM Research as "visiting faculty." From there he went into computer user groups, spending a half-dozen years at the USENIX Association and the Sun User Group. He has been Vice President of the Free Software Foundation and is currently the Director of the Tcl/Tk Consortium. He is the author of A Quarter Century of UNIX (Addison-Wesley 1994), Casting the Net (Addison-Wesley 1995), and innumerable columns in networking and computer periodicals. He is Editor in Chief of the Handbook of Programming Languages (4 vols., Macmillan).




Rate this page


Please take a moment to complete this form to help us better serve you.



YesNoDon't know
 


 


12345
Not
useful
Extremely
useful
 


Back to top