YodaWiki : DieBedeutungvonOpenSource

Der erste Anlauf


Richard Stallman gründete als einer der letzten großen Hacker vor deren Fusion mit der Unix-Hacker-Community die Free Software Foundation. Das Ziel war es Software von hoher Qualität zu schreiben, die jedoch frei verfügbar sein sollte, nicht zwingend im Sinne von kostenlos, sondern eher frei bezogen auf ihren Inhalt und dessen Verwendung.Das GNU der Free Software Foundation Gerade im Englischen ist diese Verwechslung schnell aufgefallen und bald wurde das Prinzip der freien Software mit dem Spruch „free like in freedom“ propagiert. Klassischerweise wird Software von einem Autor -meist einer Firma- verfasst und als fertig nutzbare Version (binary, also computerlesbar) dem Nutzer zur Verfügung gestellt. Der kann dann aber nicht auf den Quellcode, also die von Menschen lesbare und veränderbare Form der Software, zugreifen und weiß folglich nie genau, was die Software tut oder tun sollte. Für Hacker ist dieser 'freie' Zugang aber essentiell, sie wollen wissen, wie das Programm funktioniert und es gegebenenfalls verbessern. Freie Software sollte diesen Zugang sicherstellen. Wie genau das geschieht, werde ich im Verlauf dieses Textes noch näher erläutern.
Grundlegende Vorraussetzung um Programme erschaffen zu können, die dann frei verfügbar sein können, sind aber freie Werkzeuge mit denen man sie programmieren kann. Das sind insbesondere Compiler, Debugger, Bibliotheken und Programmierumgebungen aber auch Lizenzen, die Dritte daran hindern, das Recht auf freie Software streitig zu machen. Ferner benötigt man ein Betriebssystem, auf dem dies alles läuft. Stallmans Idee war es also eine ganze Produktionskette zu kreieren, mit der Hacker Software herstellen können, die in ihrem ganzen Produktionsprozess nicht auf (kommerzielle) Software angewiesen ist, die nicht kontrolliert werden kann und diese auch rechtlich abzusichern.
Noch einmal, es ging nicht primär um die Tatsache, dass die Software kostenlos werden würde, sondern darum nachprüfen zu können, wie alles funktioniert damit keine Information der Welt vorenthalten werden könnte und damit die bestmögliche Software daraus entstünde. Diese im Grunde demokratische Sichtweise wurde die Basis für das modernen Hackertum.

Linux


Während Stallman und die FSF unter dem Projekt GNU (eine rekursive Abkürzung für „GNU's not Unix“) einen Unix-Klon erschaffen wollten, scheiterten sie immer wieder an der Programmierung eines guten Kernels. Der Kernel ist „der zentrale Bestandteil eines Betriebssystems. In ihm ist die Prozess- und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Betriebssystems aufbauen.“ [http://de.wikipedia.org/wiki/Kernel]
Ohne diesen zentralen Kern, konnte das Projekt, das schon Anfang der Achtziger begonnen hatte, nicht wirklich vorankommen und geriet zusammen mit dem gesamten Hackertum immer mehr ins Abseits. Erst 1991 sollte sich das ändern. Das Linux Maskottchen - TUX, der Pinguin Linus Torvalds, ein junger finnischer Student begann unter Zuhilfenahme des Toolkit der Free Software Foundation, also jener Werkzeuge, die Stallman schon fertiggestellt hatte, die Arbeit an einem Kernel für Intel kompatible 386 Maschinen. Neben dem großen und sehr schnellen Erfolg, der in der Hackergemeinschaft eine neue Blütezeit auslösen sollte, erschuf Torvalds eine komplett neue Art Software zu entwickeln, die später millionenfach nachgeahmt werden sollte. Die folgenden Erklärungen entstammen den Beobachtungen von Eric S. Raymond aus seinem Essay „The Cathedral and the Bazaar“:

Der klassische Weg Software zu entwerfen ist, das Problem in einzelne Teile zu zerlegen und diese Einzelprobleme zu lösen (Prinzip „Divide and Conquer“). Folglich wird ein Projekt mit mehreren Programmierern angegangen, jeder ist dabei für einen bestimmten Teilaspekt verantwortlich, wobei Kommunikation die entscheidende Rolle spielt. Diese erlesene Stamm von Entwicklern ist quasi die Kathedrale, von der das Programm ausgeht und von der auch alle Änderungen ausgehen müssen. Außenstehende können mit dem Programm exakt eine Sache tun: es benutzen (oder auch nicht). Sie können es nicht verändern, allerhöchstens können sie die Kathedrale auf Fehler aufmerksam machen, und dort entscheidet man dann, ob und wie der Fehler behoben wird.
Linux Torvalds benutzte eine andere Art der Entwicklung: Obwohl er der zentrale Entwickler war, stellte er sein komplettes Projekt offen (inklusive Quellcode) im Internet zur Verfügung. Er bot das Ganze wie auf einem Basar an. Andere Entwickler schlossen sich seiner Sache an und verbesserten seinen Code oder gaben ihm Feedback. Das Erstaunliche ist, dass entgegen der üblichen Regel, dass zu viele Programmierer ein Projekt unübersichtlich und träge werden lassen, die Zahl der Beteiligten offenbar nur zu einer schnelleren Qualitätssteigerung führte. Dazu mußte das Produkt aber auch schon in seiner frühen Phase und recht häufig in einer neuen Version veröffentlicht werden. Dies wäre in der Kathedrale ein Sakrileg, denn der User bekommt die Software dort erst dann zu Gesicht, wenn sie 'fertig' ist. Am Bazar führte es aber eben dazu, dass User, die auch Programmierer waren, schnell Fehler fanden und auch gleich beheben konnten. Diese Regel wird auch als „Linus's law“ bezeichnet, welcher es wie folgt ausgedrückt haben soll: „Given enough eyeballs, all bugs are shallow“-“Wenn man genug Augen hat, wird jeder Fehler sichtbar“.
Soziologen nennen dies den Delphi-Effekt, das bedeutet, dass die durchschnittliche Meinung einer Gruppe von gleichwertig fachkundigen (oder fachunkundigen) Menschen verlässlicher ist als die eines zufällig ausgewählten Einzelexemplars aus der Gruppe. Linus Torvalds bewies erstmalig, dass diese Theorie auch auf die Entwicklung eines komplexen Softwareprojekts zutrifft.
Ebenfalls bedeutend war das Angebot einer stabilen Version und einer aktuellen aber nicht zwangsweise fehlerfreien Version der Software. Die stabile Version beinhaltete nicht alle Features, lief aber dafür zuverlässig, weil sie vorher eingehend getestet worden war. In der aktuellsten Version fanden sich die neuesten Features aber man mußte verstärkt mit Fehlern rechnen. So konnte sowohl klassische User als auch Entwickler gleichermaßen bedient werden.
Ein weiterer Aspekt in der Community ist auch heute noch, dass nur interessierte Hacker an der Entwicklung beteiligt sind. Sie entscheiden sich freiwillig zur Teilnahme und haben daher eine viel stärkere Motivation als Mitarbeiter in der 'Kathedrale', die ihren Job zugeteilt bekommen und sich für das Problem möglicherweise gar nicht interessieren. Außerdem sind Hacker, die sich entschließen sich mit einem bestimmten Problem zu befassen, in der Regel auch fähig genug, damit fertig zu werden. Bei Mitarbeitern in einer Firma können die Fähigkeiten stark auseinander gehen und möglicherweise passt die Aufgabe gar nicht zu den Fähigkeiten des Programmierers. All diese Disparitäten gleichen sich in der Open-Source-Community beinahe automatisch aus. Man findet nicht nur irgendeine Lösung für ein Problem sondern sukzessive die beste Lösung, eine grundlegende Errungschaft des Hackertums, die sich schon in der Pionierzeit am MIT entwickelt hatte.
Es gibt eine weitere Regel genannt „Brooks' Law“, die aussagt, dass die Steigerung der Zahl der Beteiligten an einem Projekt die Komplexität und Kosten quadratisch erhöht während die verrichtete Arbeit nur linear wächst. Die stille Vorraussetzung in dieser Formel ist jedoch, dass jeder Beteiligte mit jedem kommunizieren muss. Tatsächlich kommunizieren bei Open-Source-Projekten die einzelnen Gruppen eher wenig untereinander sondern die jeweilige Gruppe nur mit dem Entwicklerkern. Daraus erklärt sich, dass diese Projekte nicht unter ihrer Komplexität zusammenbrechen auch wenn Hunderte oder Tausende von Entwicklern, Beta-Testern und Bug-Reportern beteiligt sind.
Außerdem hat sich basierend auf dieser Technik die Modularität in der Programmierung durchgesetzt. Viele moderne Programmiersprachen haben in ihren Definition heutzutage die Objektorientierung integriert (Java, Java-Script, Smalltalk), also die modulare Aufteilung zur besseren Übersicht. Große Softwareprojekte werden in Module aufgebrochen und erleichtern so die Aufteilung auf einzelne Programmierer. Das führt insbesondere bei Open-Source-Projekten zu einer Spezialisierung der Programmierer auf bestimmte Themenbereiche. Unter den Modulen muß kaum kommuniziert werden, nur die Verbindung zum Kern muß bestehen.
Selbst der aktuelle Linuxkernel, besteht heute aus einem eigentlich Kern und angelagerten Modulen, die man je nach Verwendungszweck anschalten kann (oder auch nicht).
Viele andere Möglichkeiten der Erklärung des Open-Source-Phänomens sind möglich. Das Prinzip der „freien Marktwirtschaft“ läßt sich ebenso anwenden wie die Theorie der „natürlichen Auslese“. Fakt ist, dass diese neue Art Software zu entwickeln einzigartige Impulse gegeben hat und die technische Entwicklung in vielen Bereichen verstärkt vorangebracht hat.
Außerdem benötigt Open Source Software zur Entstehung nur das gesteigerte Interesse einiger weniger Menschen. Anders als in klassischen Firmen, wo für ein neues Produkt erst eine Kosten/Nutzen – Rechnung aufgemacht wird, kann ein Open Source Projekt von einer einzelnen Person gestartet werden und findet die ihm angemessenen Popularität im Netz von selbst. Wenn es viele „Kunden“ für das Produkt gibt, steigert das gleichermaßen die Zahl der beteiligten Entwickler und Tester (denn in der Hackergemeinschaft sind das ja oft ein und dieselbe Person) und somit die Geschwindigkeit und Qualität des Projektes. Es ist offensichtlich, dass viele Aspekte dabei selbstregulierend sind, die üblicherweise streng kalkuliert werden würden.
Tatsächlich entstehen aber auch Lösungen für Randgruppen. So war dieser Autor in den Jahren 2003/2004 Teil eines Softwareprojekts zur Erstellung eines Computerspieles auf der Playstation 2 unter Verwendung eines Linux Kits. Obwohl Sony als Hersteller der Playstation 2 versuchte, die Open Source Gemeinde um seine Konsole zu scharen (wahrscheinlich mit Blick auf die boomende OS Branche) schlief diese Community schon im Jahre 2002 ein und hinterließ eine Menge teils unfertiger Tools für die Spieleprogrammierung, die wir in unserem Projekt verwendeten. Innerhalb eines Jahres entstand dann das unseres Wissens nach einzige ernsthafte Spiel für PS2 Linux komplett mit Hilfe von Open Source Werkzeugen. In ähnlicher Weise haben andere Open Source Projekte Software für sehr spezielle Anwendungszwecke hervorgebracht, die bei herkömmlichen Firmen nie das Licht der Welt erblickt hätten.

Der Begriff "Open Source"


Der Begriff "Open Source" wurde erfunden um eine konkretere Bezeichnung für die Intention zu finden, die dem ganzen ideologisch zugrundeliegt. Vielfach wurde „free software“ mißverstanden und es kam vor allem in der breiten Öffentlichkeit zu der Ansicht es ginge primär darum kostenlose Software zu schaffen. Tatsächlich heißt es aber in der GPL (GNU Public License), der verbreitetsten Lizenz für freie Software: Das Logo der Open Source Initiative

„Die Bezeichnung „freie“ Software bezieht sich auf Freiheit, nicht auf den Preis. Unsere Lizenzen sollen Ihnen die Freiheit garantieren, Kopien freier Software zu verbreiten (und etwas für diesen Service zu berechnen, wenn Sie möchten), die Möglichkeit, die Software im Quelltext zu erhalten oder den Quelltext auf Wunsch zu bekommen. Die Lizenzen sollen garantieren, daß Sie die Software ändern oder Teile davon in neuen freien Programmen verwenden dürfen – und daß Sie wissen, daß Sie dies alles tun dürfen.
Um Ihre Rechte zu schützen, müssen wir Einschränkungen machen, die es jedem verbieten, Ihnen diese Rechte zu verweigern oder Sie aufzufordern, auf diese Rechte zu verzichten. Aus diesen Einschränkungen folgen bestimmte Verantwortlichkeiten für Sie, wenn Sie Kopien der Software verbreiten oder sie verändern.
Beispielsweise müssen Sie den Empfängern alle Rechte gewähren, die Sie selbst haben, wenn Sie – kostenlos oder gegen Bezahlung – Kopien eines solchen Programms verbreiten. Sie müssen sicherstellen, daß auch die Empfänger den Quelltext erhalten bzw. erhalten können. Und Sie müssen ihnen diese Bedingungen zeigen, damit sie ihre Rechte kennen. “

Es ergibt sich nun, aus diesen Regeln, dass eine Software, wenn sie kostenpflichtig vertrieben wird, von jedem, der das tun möchte, verändert werden und wiederum veröffentlicht werden kann, auch günstiger oder gar kostenfrei. Das ist ein bißchen so, als würde man einen Film in dem man selbst eine Szene geändert hat, als eigenes Produkt anbieten können. Folglich hat es sich durchgesetzt, dass für die Software selber in der Regel kein Entgelt berechnet wird. Es schließt sich aber nicht aus, Firmen wie RedHat verdienen ein Menge Geld mit dem Verkauf ihrer Software. Da dies aber nur ein Nebeneffekt und nicht die Hauptidee hinter der Sache war, entschlossen sich einige Hacker unter maßgeblicher Führung von Eric S. Raymond kurz vor dem Jahrtausendwechsel die Open Source Initiative (OSI) zu gründen, deren Aufgabe es ist die wahre Idee hinter freier Software/Open Source zu propagieren. Die FAQ_Seite der OSI beschreibt ihre Aufgabe so: „The Open Source Initiative is a marketing program for free software. It's a pitch for "free software" on solid pragmatic grounds rather than ideological tub-thumping.“ [http://opensource.org/advocacy/faq.php]

Zahlreiche moderne Entwicklungen verdanken ihre Entstehung (oder ihre Verbreitung) der Open Source Community. Der meistgenutzte Webserver der Welt „Apache“ ist ein Open Source Projekt, genauso wie das unter Hackern beliebte Debian GNU/Linux, dessen grafische Benutzeroberfläche KDE oder das beliebte OpenOffice. MP3 wäre nicht, was es heute ist, wenn es nicht Open Source Projekte für Encoder, Player etc. geben würde, die das Format auf nahezu jede Plattform transportiert haben. Es ist heute möglich ein verläßliches, funktionierendes Computersystem mit allen Anwendungen, die man jemals benötigt, nur mit Open Source Software aufzusetzen. Die große Open Source Projektplattform Sourceforge beherbergt heute über 100,000 Projekte und stellt Entwicklern die Kommunikationsplattform quasi kostenlos zur Verfügung, die Open Source Software erst ermöglicht. Die Vorteile von Open Source Software sind der breiten Öffentlichkeit häufig nur über die geringen Kosten zu vermitteln. Im Grunde bedeutet es aber viel mehr: Die Systeme, mit denen man vorrangig im nächsten Jahrtausend arbeiten wird sind verlässlich und kontrollierbar. Nicht kontrollierbar durch Einzelne sondern durch Viele. Sie gehören nicht irgendjemandem, niemand hat ein Monopol. Alle können daran mitarbeiten, Fehler finden, Fehler beseitigen, Verbesserungen vornehmen, im Grunde all die Dinge, die das Wort Demokratie in sich trägt. Das System ist dezentral und daher nicht von einem Punkt aus steuerbar, dies ist ein sehr starker Einfluß der Hackergemeinschaft auf die Zukunft, der schon in der Hackerethik auftaucht.
Man kann den Gedanken nicht unterdrücken, dass es sich in vielen Aspekten sogar um praktizierten Marxismus handelt, denn auch wenn Hacker eine Art Elite sind, haben sie die Produktionsmittel und stellen sie nicht nur frei zur Verfügung sondern schützen auch diese Freiheit für die Zukunft. Diesem Aspekt könnte man aber sicher ein ganze Arbeit widmen und darum sollte hier nur kurz darauf aufmerksam gemacht werden.
Die Idee, das Wissen der Welt und wie sie funktioniert frei verfügbar zu machen, ist die erste Regel der Hackerethik und steckt in jedem Aspekt von Open Source. In der Praxis mag das hin und wieder problematisch umzusetzen sein und sicherlich ist nicht alles perfekt, was mit Open Source zu tun hat, jedoch haben die wenigen Jahre der Bewegung zweifellos einen starken Eindruck hinterlassen und die Hackergemeinschaft hat Teile ihrer Ideologie in der Gesellschaft untergebracht.

(K)Ein Fazit

Auf ein endgültiges Fazit muß, denke ich, an dieser Stelle verzichtet werden, da sich die gesamte Branche noch immer in einem unsicheren Zustand befindet und der ewige Zwist zwischen Hackerethik und Kommerz noch immer ungeklärt ist, weshalb Teile der Hackergemeinde den populärsten Entwicklungen der jüngsten Vergangenheit eher skeptisch gegenüberstehen. Auch wenn es mir offensichtlich scheint, wie ich hoffentlich zeigen konnte, welche Bedeutung das Hackertum für die Entwicklung bis zum jetzigen Zeitpunkt hat, so ist es doch unklar wie sich ihre Rolle in der Zukunft entwickeln wird. Darum möchte ich das Thema nicht final abschließen, sondern viel mehr das Augenmerk auf diese Aspekte lenken damit sie während der kommenden Entwicklungen nicht unbeachtet bleiben.


CategoryHacking
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.2
Page was generated in 0.0310 seconds