Underlying every piece of software you use is source code that issues the commands and handles the data that allow the software to do what it does. The question of who should have the right to look at, alter, or redistribute that source code has long been one of fundamental ideological divides within the world of computing.
Proponents of open source software, as the name implies, come down on the side of openness; they feel that people should have the right to access the source code of the software they use. As we’ll see, though, in practice there’s a lot of variety that falls under that label. Various kinds of open source software exist in just about every niche you can think of—in fact, open source dominates many of them.
What is open source software, what is free software—and are they different?
A succinct definition of open source software is that it’s software whose underlying code can be examined, altered, and redistributed. (There’s a longer and more official definition that we’ll get to in a bit.) The “altered and redistributed” parts are really key to the open source philosophy. Despite what the name might imply, simply opening up your source code so people can look at it doesn’t make it open source.
In some ways, the term “open source software” is a : In the early decades of computer science, software’s source code was available as a matter of course and freely exchanged between researchers and industry scientists. Computers were few and far between and were expected to be extensively modified by their users, so people needed access to the code. In many ways software was seen as an add-on to computer hardware; not until 1974 was it even . But as the microcomputer era dawned in the late 1970s, the industry began to shift to the position that software was something that had monetary value in and of itself, and that access to the underlying code could and should be restricted in order to protect software creators’ rights. Bill Gates’ famous complaining about the widespread piracy of Microsoft’s first product, the Altair BASIC interpreter, is a watershed document of this shift.
While these new ideas were quickly taken up by the rapidly growing software industry, some people pushed back against them. One of the earliest opponents was Richard Stallman, who founded the (FSF) in 1985. The “free” in free software is meant to denote users’ freedom to alter and distribute code as they like; there’s no rule against charging money for free software in this sense. The distinction is often drawn between “free as in free beer” and “free as in free speech,” with free software being in the latter camp.
Still, the idea of free software made many people in private industry, who were, after all, not fans of giving things away, nervous. In 1998 Christine Peterson in part as an attempt to make the idea more accessible to newcomers, particularly those working at for-profit companies. Though Stallman , saying that it turns away from the original political and philosophical ideas of free software, it has come to be the dominant phrase describing this concept. The Venn diagram of free and open source software overlaps enough that sometimes the two are combined under the acronym FOSS (free and open source software). In general, all free software is open source, though a small portion of open source software has license terms that means it’s not free (more on open source licensing in a moment).
, released in 1985 for the version of the Emacs text editor written by FSF’s Stallman.
Since then the number of free and open source licenses has proliferated, each setting slightly different terms for the use of the licensed code; Wikipedia . By definition, any of these open source licenses grant users the three fundamental freedoms of being able to read, edit, and redistribute source code; the main area where they differ is in the terms they impose on redistribution:
- Permissive licenses allow you to redistribute any source code however you see fit. You could, for instance, take source code released under a permissive license, incorporate it into your own software, then release that software under a proprietary license. The BSD license is one of the most famous permissive licenses.
- Copyleft licenses require any redistributed code that incorporates the licensed code to also be released under a similar license. The various versions of the GNU Public License (GPL) from the FSF are copyleft licenses, and their goal is to require developers to pay it forward by sharing the benefits they received from incorporating open source code in their project.
It’s interesting to note that the ideas behind these licenses have spread beyond the software world. The is a legal infrastructure for applying similar terms to written or visual artistic works.
The Open Source Definition and the Open Source Initiative
Open source is by its very nature not controlled by any single entity or organization. In 1998, a group of prominent developers including Bruce Perens and Eric S. Raymond founded the (OSI), a nonprofit dedicated to advocacy for open source within the larger software industry. The OSI in 1999; nevertheless, their formal is, by consensus, the framework all licenses that call themselves open source follow. In addition to the freedom to examine, modify, and redistribute code that we’ve already discussed, the Open Source Definition forbids licenses that discriminate against specific groups or people, that prevent the code from being used for a specific purpose or field of endeavor, or from running on a specific device or type of device.
,” Eric S. Raymond outlined his vision for this process, where anyone can access the code, and updates are added to the codebase from a widely distributed group of developers who dip in and out as their interest dictates.
Open source development of this type is organized around open source projects. These sometimes work on a single piece of software and sometimes a whole related set of applications. Version control software keeps everyone’s contributions in line. is probably the most popular.
Sometimes begun by a single person, open source projects are generally self-organized, small internet communities, and though anyone can contribute to any project, most are usually worked on by a . Sometimes a project may be sponsored by a for-profit company that plans to use the software it produces, even going so far as to put the project’s most prominent developers on the payroll.
Open source examples
Open source software is in fact omnipresent and creates much of the foundation of the modern Internet. Perhaps the most famous open source project is , the open source Unix variant that powers millions of servers. Other prominent and extremely crucial projects include the , the , and . Numerous development frameworks are released as open source, from to Microsoft’s ..
Open source has been less successful in producing home computer software intended for ordinary users. Despite the high cost of proprietary software packages such as Microsoft Word and Adobe Photoshop, open source counterparts like and never managed to find a niche beyond diehard enthusiasts, in large part because the open source community has traditionally prioritized features and flexibility over ease of use. (File format lock-in from proprietary vendors hasn’t helped.) Even Linux, whose advocates have been claiming that the open source OS is only a year away from dominating the desktop, has never really managed to jump to the consumer space. In general, open source is used for infrastructure far more than for end user software. But the movement from monolithic software you run locally to , as cloud-based infrastructures are largely based on stacks dominated by open source.
Remember what we said about for-profit companies supporting open source? Often those projects are produced under a permissive license, so those companies can put open source code at the core of their proprietary offerings while maintaining a separate open source codebase in parallel as a community project. For instance, the Android mobile OS has Linux at its core; all of Apple’s mobile and desktop OSes are based on , an open source operating system originally derived from BSD Unix. Even Google’s Chrome is based on an open source browser called .
The open source community and the open source movement
Open source is more than just a development process; it’s a philosophy that people are passionate about, and it’s a social community that anyone with programming skills can join. In fact, it’s a whole , as the Linux Foundation puts it. (The existence of nonprofits such as the Linux Foundation and the OSI is an important aspect of that community.) Florian Effenberger has a great essay on .
You’ll often hear people talk about the open source or free software movement, which has a connotation of politics and advocacy. Plenty of people in the open source community have pushed for widespread adoption of open source software for a variety of reasons: They think open source produces inherently better code, or they think access to source code is a fundamental right that computer users ought to enjoy, or some combination of the two. This aspect of the community seems a little less visible today, but maybe that’s because, in many ways, open source has won. Back in 2001, then-Microsoft-CEO Steve Ballmer said that, due to its open source license, Linux was “.” Today, Microsoft is an extensive . That’s the last two decades of open source history in a nutshell.
Open source software download
Want to get started browsing and tinkering with open source projects? Check out , , or . There’s plenty for curious folks of any skill level.