Der Begriff Freie Software (free software) wurde Anfang der 1970’er Jahre von Richard Stallman geprägt. Stallman arbeitete gemeinsam mit Kollegen am Massachusetts Institute of Technology an Programmen, indem jeder einfach seine Verbesserungen in den Programmcode einbrachte und die Software dadurch immer funktionsreicher und besser wurde. Nach Stallmans Ansicht sollte Software von jedem benutzt, modifiziert und weitergegeben werden dürfen.
Als in den 1980’er Jahren kommerzielle Versionen des Betriebssystems Unix immer bedeutender wurden, gründete Stallman das GNU-Projekt. GNU steht für “GNU is Not Unix” und verfolgt das Ziel, eine freies Betriebssystem zu schaffen, das kompatibel zu Unix ist. Die Idee, freie Software juristisch greifbar zu definieren und bekannt zu machen, führte zur Gründung der Free Software Foundation (FSF).
Das free in free software wurde häufig als kostenlos verstanden, da free im Englischen sowohl kostenlos (wie in Freibier) als auch frei (wie in Meinungsfreiheit) bedeuten kann. Daher schlugen Eric Raymond und andere den Begriff Open Source Software vor. Auch dieser wird jedoch gerne missverstaden und auf technische Eigenschaften der Software und ihrer Verbreitung reduziert. Heute wird gerne von FOSS (Freie und Open Source Software) bzw. FLOSS (Free/Libre and Open Source Software) gesprochen.
Es gibt verschiedene Definitionen von FOSS, die die Rechte der Anwender beschreiben. Sie haben unterschiedliche Schwerpunkte, sind aber in ihrer Wirkung weitgehend äquivalent.
Gemäß der Definitionen hat der Anwender von FOSS die Rechte,
Software ist oft in einer Compilersprache geschrieben (etwa in C, C++ oder Java). Hierbei liegt der Programmtext (Quelltext, source code) in einer menschenlesbaren Form vor und wird mit einem Texteditor erstellt. Das ausführbare Programm entsteht durch Anwendung eines Übersetzers (compiler), der den Quelltext in eine für die Maschine verständlichen Form übersetzt. Um obigen Bedingungen für Freie Software zu genügen, muss bei der Weitergabe der Software stets auch der Quelltext angeboten oder zumindest auf Anforderung verfügbar gemacht werden. Bei interpretierten Programmiersprachen wie BASIC, Perl, PHP oder Python gibt es keinen Compiler; die Software liegt immer als Quelltext vor und wird bei der Ausführung interpretiert.
Es gibt verschiedene Lizenzmodelle für Freie Software. Hauptsächlich unterscheiden sie sich durch die Anforderungen an die Weitergabe von Freier Software.
Die am häufigsten eingesetzte Lizenz ist die GNU General Public License (GPL), von der es mittlerweile die dritte Version gibt. Sie beinhaltet die Anforderung, dass bei einer Weitergabe die Software unter die selben Lizenzbedingen gestellt werden muss. Somit wird verhindert, dass abgeleitete Werke unter proprietäre Lizenzen gestellt und damit die Benutzer in ihren Rechten beschnitten werden können.
Andere Lizenzmodelle wie die BSD-Lizenz verzichten auf diese Anforderung, so dass die Software oder Teile daraus auch in proprietären Werken verwendet werden können. Weitere Unterscheidungsmerkmale beziehen sich auf die Art, in der der Name des ursprünglichen Autors und Änderungen zu kennzeichen sind.
Nicht nur Software, sondern auch Texte, Bilder, Musikstücke und Videos können unter freie Lizenzen gestellt werden. Die Lizenzmodelle unterscheiden sich jedoch in den Details deutlich von denen für Software. Bekannte Vertreter sind die GNU Free Documentation License und die Creative Commons Lizenzen.
Freie Software und Kommerz schließen sich nicht gegenseitig aus. Für die Erstellung und den Vertrieb der Software darf Geld verlangt werden. Viele Firmen bieten ihre Software unter einer freien Lizenz an und erzielen Einkünfte mit Anpassungen, Beratung und Schulungen. In der letzten Zeit gibt es zudem immer öfter Open Core Software, bei der die Basisversion frei ist, Erweiterungen und Module aber proprietär.
Es ist möglich, Freie Software unter zwei (oder mehr) verschiedenen Lizenzen zu veröffentlichen (dual licensing). Beispielsweise steht das Datenbank-Management-System MySQL wahlweise unter der GNU GPL oder einer proprietären Lizenz zur Verfügung. Der Anwender kann es unter GPL nutzen und hat dann alle Rechte der GPL, muss aber auch die Pflichten bei der Weitergabe beachten und erhält nur sehr eingeschränkten Support. Wem das nicht ausreicht, kann MySQL unter der kommerziellen Lizenz nutzen. Das kostet Geld, beinhaltet aber ein umfangreiches Supportangebot und erlaubt einige Optionen bei der Weitergabe, die mit der GPL nicht möglich wären (etwa eine Bündelung mit eigener, unfreier Software).
Der Aufsatz Über das Projekt GNU von Richard Stallman beschreibt ausführlich die Hintergründe des GNU-Projektes und die Motivation für Freie Software.