Anhang B: Freie Software

Dieser Anhang soll dem Leser ein grundsätzliches Verständnis für freie Software vermitteln. Dazu dient der folgende Abschnitt „Was ist freie Software?“. Danach werden Eigenschaften erläutert sowie die Vorteile und möglichen Einsatzgebiete freier Software betrachtet. Eine Auswahl, im Rahmen dieses Buch-Projektes eingesetzter, freier Software sowie deren Einsatz in der Wirtschaft runden die Thematik ab.

1.1      Was ist freie Software?

Freie Software ist ein Phänomen, das in einer Welt, die durch Kapitalismus, Kommerz und Konsum geprägt ist, eigentlich gar nicht hätte entstehen können, denn es bricht sämtliche Regeln des profitorientierten Unternehmertums in der heutigen Wirtschaft.

Was ist aber freie Software? Die unmittelbare Assoziierung von frei mit kostenlos ist zwar nicht falsch, deckt aber nur einen kleinen Teil dessen ab, was freie Software meint. Die falsche Verwendung des Begriffs „freie Software“ führte in der Vergangenheit nicht selten zu großen Missverständnissen.

Um eine bestimmte Sache zu beschreiben, ist es manchmal hilfreich, Merkmale ihres Gegenstücks zu analysieren: die proprietäre Software. Proprietäre Software ist ein Produkt, das in einem Unternehmen entwickelt wird, um einen möglichst großen Gewinn zu erzielen. Dieser besteht zum einen im Verkauf der Software in seiner binären – also direkt nutzbaren – Form, zum anderen in der Wartung und der Pflege. Mit dem Erhalt und der Bezahlung der Software erklärt sich der Kunde bereit, Bedingungen, die die Nutzung der Software betreffen, einzuhalten. Solche Lizenzbedingungen enthalten in der Regel ein Verbot des Kopierens, Veränderns und Weiterverbreitens.

Freie Software hingegen hebt ausdrücklich diese Verbote auf. Sie kann (und soll) nicht nur kopiert, sondern auch verändert, ergänzt und in veränderter Form neu veröffentlicht, verbreitet oder sogar verkauft werden. Das Ändern von Software setzt das Vorhandensein des menschenlesbaren Programmtexts voraus. In diesem so genannten Quelltext, auch Quellcode oder Sourcecode genannt, kodiert der Entwickler strukturiert mit Hilfe einer Programmiersprache die Funktionen seines Programms.

Während in Softwareunternehmen der Quelltext von Programmen zu den am besten gehüteten Geheimnissen zählt, ist er bei freier Software sozusagen öffentliches Gut. Er ist in der Regel zusammen mit den binären Dateien im Internet oder durch andere Medien öffentlich zugänglich. So kann jedermann das Programm lesen, verstehen und nach seinen eigenen Wünschen anpassen.

Die meiste freie Software wird in einer international zusammengesetzten Gruppe entwickelt, die über das Internet kommuniziert und sich selbst organisiert oder von einer Organisation koordiniert wird. Entwickler, Organisatoren und Benutzer der Software ergeben zusammen eine Gemeinde. So gibt es beispielsweise eine Linux-, Perl- und Apache-Gemeinde.

Viele Programmierer arbeiten in ihrer Freizeit unentgeltlich an freier Software. Der Gegenwert ihrer Arbeit besteht nicht aus einem Gehalt, sondern aus der Anerkennung anderer, dem Gefühl der Zugehörigkeit zu einer Gemeinschaft oder ganz einfach aus Spaß und Freude an der Softwareentwicklung. Größere Projekte werden von Firmen unterstützt, die ein allgemeines Interesse an der Entwicklung und Verbreitung freier Software haben.

Die Freiheit eines jeden, Software zu nutzen, zu modifizieren und weiterzuverteilen ist Teil eines evolutionären Prozesses, der nicht nur ausschließlich technische Vorzüge wie Stabilität, Flexibilität, Integration, in einem Wort: Qualität, birgt. Ebenso ist mit ihr ein politischer, gesellschaftlicher und philosophischer Gedanke verknüpft, der in vielen Fällen den motivierenden Antrieb jener darstellt, die sich mit freier Software auseinander setzen.

Dem universitären, akademischen Ursprung entwachsen, stellt freie Software heute einen nicht zu unterschätzenden wirtschaftlichen Faktor dar. Das Betriebssystem Linux, der Web-Server Apache , die Programmiersprache Perl weisen in den letzten Jahren außergewöhnliche Wachstumszahlen auf, die Herstellern von Konkurrenzprodukten zunehmend Kopfschmerzen bereiten. Doch statt tobender Machtkämpfe konnte man vielerorts durch Aufklärungs- und Öffentlichkeitsarbeit seitens der freien Software-Bewegung ein Näherkommen oder gar einen Zusammenschluss der gegnerischen Parteien beobachten. Diesem Kooperationsmodell – so die Experten und Analysten – scheint eine große Zukunft gesichert zu sein.

1.2      Eigenschaften freier Software

Die offensichtlichen primären und bereits erwähnten Eigenschaften wie

wirken sich auf weitere sekundäre, sich teilweise beeinflussende Faktoren aus, die freie Software kennzeichnen. Sie beschränken sich nicht allein auf die technischen Aspekte, sondern beziehen auch organisatorische und gesellschaftliche Merkmale ein.

1.3      Vorteile freier Software

Stabilität/Zuverlässigkeit/Sicherheit: Die Stabilität von freier Software ist einer ihrer größten Vorteile. Sie ist Folge der großen aktiven Benutzer- und Entwicklergemeinde, die testet, Fehler findet und behebt. Unternehmen, die auf Software hoher Kritikalität angewiesen sind, wie beispielsweise die NASA, nutzen (angepasste) freie Software.

Flexibilität/Anpassbarkeit: Durch die Offenheit der Quellen kann jeder, der freie Software nutzt, diese nach seinen eigenen Wünschen anpassen. Anpassung heißt auch Spezialisierung. Freie Software lässt sich relativ einfach für bestimmte Einsatzgebiete spezialisieren. Zum Beispiel kann ein Linux-Rechner als Drucker-Server agieren und dabei von allen Komponenten befreit werden, die nicht für das Drucker-Serving benötigt werden.

Integration/Adaptierbarkeit: Wenn freie Software nicht ausschließlich auf ein spezielles Einsatzgebiet fixiert ist – und das ist fast immer der Fall – bedient sie sich offener, dokumentierter Schnittstellen. Zusammen mit der durch freien Quelltext bedingten Transparenz lässt sie sich schnell in andere Umgebungen integrieren. Beispiel: Perl und Tcl/Tk werden fast immer im Zusammenspiel mit anderen, oft ebenfalls freien Softwarekomponenten genutzt.

1.4      Einsatzgebiete freier Software

Es gibt einige Gebiete, die freier Software nicht zugänglich sind. Das sind fast immer Bereiche und Branchen (Bau, Agrarwirtschaft, Gastronomie etc.), die spezialisierte, individuelle Software benötigen. Freie Software ist immer – wenn auch nicht von Anfang an geplant – auf ein großes Publikum ausgerichtet. Nur dann kann sich der begleitende, evolutionäre Prozess voll entfalten.

Ansonsten kann freie Software in nahezu allen Bereichen genutzt werden. Dem akademischen Sektor entwachsen hat sie mittlerweile auch in der Industrie und der Dienstleistungsbranche einen festen Platz gefunden. Im Folgenden werden die wichtigsten Einsatzgebiete aufgeführt. Die freien Betriebssysteme Linux und FreeBSD sind in ihrem Einsatz nicht beschränkt und können als Fundament überall genutzt werden, sowohl als Server-System in Unternehmen, als auch auf dem heimischen PC oder gar in Kleincomputern oder Embedded Systems.

1.4.1        Netzwerke (Internet/Intranet)

Da die Wurzeln freier Software von UNIX abstammen, und UNIX in erster Linie ein Betriebssystem für leistungsstarke Server-Rechner in einer Netzwerkumgebung ist, stellen Netzwerke das Haupteinsatzgebiet dar. Internet und freie Software sind sich gegenseitig beeinflussende Techniken. Manche bezeichnen freie Software als „das Getriebe des Internet“.

Internet-Protokolle: In den Geburtsjahren des Internet (1969) und ihres jüngeren Teils, des World Wide Web (1991), wurden offene Standards und Protokolle entwickelt (TCP/IP, HTTP etc.), die in ihren freien Implementierungen die Basis des weltweiten Netzes darstellen. Dazu zählt auch das Domain Name System mit seinen Diensten (DNS/BIND).

E-Mail: Als Server-Applikation zum Verwalten von elektronischer Post sind freie MTAs (Mail Transfer Agents) wie sendmail oder qmail sehr beliebt. Sendmail ist auf ca. 80 Prozent aller Mail-Server installiert[i].

Web-Server: Marktführender Web-Server, der zur Übertragung von Web-Seiten dient, ist Apache.

Andere Server: Die üblichen Aufgaben eines Servers, Datei-, Drucker- und weitere Dienste, können entweder von den freien Betriebssystemen selbst übernommen oder durch zusätzliche Software, beispielsweise Samba, erledigt werden.

1.4.2        Softwareentwicklung

Zur Softwareentwicklung gibt es eine reichhaltige Auswahl an freien Programmiersprachen, Compilern, Debuggern und anderen Werkzeugen. Perl ist die beliebteste Sprache, wenn es darum geht, dynamische Inhalte für Web-Seiten zu erzeugen oder Administrationsaufgaben zu bearbeiten. Yahoo und Amazon setzen fast ausschließlich auf Perl in Zusammenarbeit mit Apache und Linux oder FreeBSD.

Tcl/Tk und Python werden wegen ihrer Stärken bei der Integration verschiedener Technologien zur Plattform-unabhängigen Programmierung genutzt.

1.5      Freie Software-Projekte

In den folgenden Abschnitten werden die Projekte freier Software besprochen, die im Rahmen dieses Buch-Projektes – insbesondere im virtuellen Projektbüro – eingesetzt wurden. Es werden insbesondere deren Entstehung und Entwicklung im Einzelnen dargelegt, primäre Einsatzorte benannt und es wird auf Besonderheiten hingewiesen.

Es kann nur eine begrenzte Auswahl an freier Software vorgestellt werden, da sonst allein die Beschreibung dieser den Rahmen sprengen würde. Die hier erwähnten Projekte gehören zu den bedeutendsten und verkörpern den Begriff „Open Source“ am besten.

1.5.1        Linux

Der Erfolg eines Betriebssystems lässt sich in der Regel anhand der Anzahl seiner Installationen messen. So gesehen ist Linux mit wenigen Prozentpunkten Marktanteil – gegenüber Windows mit über 90 Prozent – nur ein Nischenprodukt. Anders sieht die Lage im Server-Bereich aus: Laut Marktforschungsinstitut IDC hat Linux dort schon 1999 den zweiten Platz mit 25 % hinter Windows NT mit 38 % eingenommen. Schaut man sich aber die Entwicklung in den letzten ein oder zwei Jahren an, so ist festzustellen, dass sich Linux schneller als jedes andere Betriebssystem zuvor verbreitet. Es hat den Ruf eines bedienerunfreundlichen, komplizierten Hacker- und Bastler-Systems längst abgelegt.

Wie entstand aber nun Linux? Wer hat es entwickelt? Im Vergleich zu kommerziellen Betriebssystemen hat Linux eine völlig andere, sehr interessante Geschichte.

Linux ist ein UNIX-ähnliches Betriebssystem, das seinen Ursprung 1991 an der Universität von Helsinki fand. Der dort studierende Linus Torvalds kam auf die Idee, ein „richtiges“ UNIX für den damals aufkommenden 80386er Prozessor zu schreiben, also ein PC-UNIX. So kündigte er sein Vorhaben in der Newsgroup comp.os.minix an:

„Hello everybody out there using minix –

I'm doing a (free) operating system (just like a hobby,

won't be big and professional like gnu) for 386 (486)

AT clones.“

Als Grundlage nahm er das von Professor Andrew Tanenbaum für Lehrzwecke entwickelte Minix. Er orientierte sich während seiner Programmierarbeit an bereits vorhandenen, ausgereiften Standards wie z. B. dem System V- und dem POSIX-Standard. Letzteres trägt viel zur Anerkennung von Linux bei, denn besonders in den USA gilt die Unterstützung von Standards wie POSIX als Voraussetzung für öffentliche Ausschreibungen.

Torvalds entschied sich dafür, den Quellcode frei verfügbar zu machen. Dazu unterstellte er ihn der GPL und veröffentlichte ihn im Internet. Nach der Version 0.02 1991 folgte die Version 1.0 1994, 2.0 1996 und schließlich die aktuelle Version 2.2.14. Heute konzentriert er sich statt auf die eigentliche Programmierung mehr auf die Koordinierung der Entwicklung, damit diese nicht in eine falsche Richtung abdriftet. Das ist ihm bis heute gut gelungen, denn Linux ist ein einheitliches System auf verschiedenen Architekturen (Intel, DEC-Alpha, Mac, Amiga, MIPS, Palm Pilot [!]) geblieben. Ganz im Gegensatz steht dazu die Zersplitterung von UNIX in seine zahlreichen, kommerziellen Derivate, die immer wieder wegen Inkompatibilitäten zu Diskussionen führ(t)en und Verwirrungen auslös(t)en.

Linux selbst bezeichnet im Prinzip nur den Kern des Betriebssystems, samt Datei- und Speicherverwaltung, Low-Level-Funktionen etc. (Kernel). Alle darüber liegenden Softwarekomponenten, z. B. die mächtige Shell als Kommandointerpreter, die grafische Benutzeroberfläche X-Windows, Systemtools usw., sind nicht an Linux gebunden; sie sind austauschbar. Diese Tatsache beweist den modularen Aufbau und gibt dem Anwender Möglichkeiten, sein System nach eigenem Ermessen anzupassen in einem Maße, wie es bei kaum einem anderen Betriebssystem der Fall ist.

Viele solcher Komponenten, insbesondere Systemprogramme wie Compiler und Debugger, Tools wie awk und sed oder Anwendungen wie Editoren und Textverarbeitungen, waren bereits vor der Entstehung von Linux als freie Software für UNIX-Systeme im GNU-Projekt entwickelt worden. Es war keine allzu schwierige Aufgabe, diese nach Linux zu portieren. Sie wurden mit Torvalds Linux-Kernel zum GNU/Linux-System vereint.

Neben GNU gibt es viele weitere Arbeitsgruppen, Institutionen, Firmen und Privatleute, die nützliche Software für Linux schreiben. Um all diese unter einen Hut zu bringen, gibt es so genannte Distributoren. Sie fassen sämtliche Programme (evtl. auch proprietäre) zu einem Paket zusammen, das als Ganzes angeboten wird. Die Distributoren pflegen den Kontakt zu Entwicklern und beschäftigen oft auch eigene, um ihr Produkt von der Konkurrenz abzuheben. Einige setzen sich auch politisch sehr stark für die Verbreitung der freien Software ein. Das ist wichtig, denn oft sind es zuerst sie, mit denen ein neuer Anwender von freier Software in Verbindung tritt. Damit die – durch (teilweise nicht freie und proprietäre) eigene Entwicklungen ergänzten und erweiterten – Linux-Systeme einzelner Distributoren nicht zu weit auseinander driften, hat man sich auf den Standard LSB (Linux Standard Base) geeinigt, der die Lauffähigkeit von Anwendungen auf allen Distributionen garantieren soll.

Als namhafte Distributoren sind Red Hat, S.u.S.E., Corel, Caldera, Debian, Turbo Linux und Slackware zu nennen, von denen sich zwar keiner auf bestimmte Einsatzbereiche beschränkt, aber trotzdem in verschiedenen Gebieten öfter als woanders zutage treten. Beispielsweise ist Red Hat sehr stark in den Vereinigten Staaten auf Server-Plattformen verbreitet, S.u.S.E. hingegen ist mehr bei Privatanwendern in Europa, insbesondere in Deutschland, vertreten, nicht zuletzt wegen der einfachen Installation und der Sprachanpassung.

Insgesamt betrachtet sind die meisten Installationen auf Servern zu finden, was sich auf die Stabilität, Flexibilität und Geschwindigkeit von Linux zurückführen lässt. Gerade im Internet/Intranet-Bereich ist es häufig vertreten, aber auch als Datei- und Drucker-Server und sogar als Windows-Server sehr beliebt.

Für den Privatanwender gelten aber ganz andere Anforderungen an ein Betriebssystem. Es muss sich einfach und komfortabel bedienen lassen, und es müssen viele Anwendungen vorhanden sein. Zahlreiche Software-Projekte wie z. B. KDE, GNOME oder GIMP versuchen, dieses zu realisieren, so dass Linux auch als Desktop-System für den Heimanwender am PC eine ernst zu nehmende Alternative darstellt. Einige Unternehmen statten bereits ihre Arbeitsplatzrechner mit Linux-Desktops aus, u. a. der Autoverleih SIXT.

Am derzeitigen Erfolg von Linux wollen auch Hardwarehersteller wie z. B. IBM, Sun und Compaq teilhaben, die nun einige ihrer Maschinen mit dem freien UNIX ausliefern. Die Abkehr von kommerziellen UNIXen (AIX, HP-UX, Solaris etc.) hin zu Linux scheint sich zu verstärken. Viele sehen es auch als einzige Alternative zu Windows NT. Dennoch ist sein Potenzial im kommerziellen, industriellen Umfeld nur schwer auszuloten, denn der Markt der Betriebssysteme ist ständig in Bewegung; man denke an das neue Windows 2000.

1.5.2        DNS/BIND

Diese außerhalb von Technikerkreisen fast völlig unbekannte Software ist für eine äußerst wichtige Dienstleistung im Internet verantwortlich. Ohne das Berkeley Internet Name Domain (BIND)-Paket müsste jeder Internet-Benutzer zur Kommunikation mit anderen Computern schwer lesbare Zahlenkolonnen eintippen, die keinen inhaltlichen und für den Menschen leicht erfassbaren Bezug zum angewählten Rechner bieten. BIND übernimmt die Umsetzung dieser IP-Adressen in verständliche Domainnamen.

Die Ursprünge von BIND sind, wie der Name schon sagt, fest mit der Berkeley-Universität in Kalifornien verbunden, wo Anfang der achtziger Jahre das BIND-Projekt unter der Aufsicht der US Defense Advanced Research Projects Administration (DARPA) als eine Diplomarbeit von einer Gruppe von Studenten entwickelt wurde. Die ersten Versionen wurden von der Computer Systems Research Group (CSRG) an der Universität betreut.

Später stießen andere Entwickler hinzu, darunter Kevin Dunlap, Angestellter der Digital Equipment Corporation (DEC), der von 1985 bis 1987 das Projekt leitete und dessen Arbeitgeber die Versionen 4.9 und 4.9.1 veröffentlichte. Seit dieser Zeit ist Paul Vixie die tragende Figur rund um BIND. Zunächst ebenfalls bei DEC angestellt, gründete er seine eigene Firma Vixie Enterprises, die gleichzeitig als Sponsor für seine Software fungierte. Seit dem Release 4.9.3 werden alle Versionen von BIND vom Internet Software Consortium (ISC) entwickelt, in dem Vixie Enterprises aufgegangen ist.

Das ISC wurde als gemeinnützige Organisation 1993 gegründet. Diese ist nun Schirmherr von weiterer protokollnaher Internet-Software und -Dienstleistungen. Leider blieben größere Spenden von Firmen aus und man musste andere Geldquellen suchen, um das ISC zu finanzieren. Als eine Möglichkeit ersann man den bezahlten Support und Schulungen für die entwickelte Software. Aber weiterhin sucht der Vorstand nach einem neuen Modell, um das Überleben langfristig zu sichern. Auf keinen Fall erwägt man einen Umsturz des Entwicklungsmodells von freier zu nicht-freier und bezahlter Software, denn oberstes Gebot des ISC ist weiterhin die frei verfügbare, offene Implementierung von Kern-Protokollen des Internet.

Nachdem BIND bereits mit der Version 8 einen großen Sprung gemacht hat, indem quasi die Hälfte der Software neu geschrieben wurde, erfährt es mit dem Release 9, das in diesen Tagen als öffentliche Beta verbreitet wird, eine erneute Revision, bedingt durch das enorme Wachstum des Domain Name System und die Gewährleistung gewisser Sicherheitsaspekte.

DNS/BIND und andere Teile der Berkeley TCP/IP-Software-Suite sind das Fundament der Internet-Industrie und insbesondere auf UNIX-Systemen zuhause, aber auch Microsoft liefert eine Version von BIND aus.

BIND arbeitet mit dem Domain Name System/Service (DNS) zusammen, einer verteilten Datenbank, die Domain-Namen beinhaltet. Jeder Rechner, der einen Teil dieser Datenbank unterhält, ist ein Name-Server. Die Kommunikation zwischen diesen, also beispielsweise das Annehmen und Weiterleiten von Namensanfragen, übernimmt DNS/BIND.

„The high wall we have to get over was in getting companies to stop believing that they had to ‚own’ all of their intellectual property that went into their products.“ – Paul Vixie, Internet Software Consortium

Paul Vixie ist eine bekannte Persönlichkeit in der Open Source-Szene. Er setzt sich nicht nur für seine Software-Projekte innerhalb des ISC, sondern auch stark für die Lösung von Sicherheitsproblemen im Internet und für die Bekämpfung des Spamming2 ein. Vixie sieht in der heutigen Zeit noch enormen Aufklärungs- und Überzeugungsbedarf seitens der Unternehmen: Sie müssen davon abgebracht werden, ihr gesamtes geistiges Eigentum, das in ihre Produkte einfließt, zu „besitzen“, es der Öffentlichkeit zu verschließen.

1.5.3        Sendmail

Trotz der bunten, multimedialen Vielfalt des World Wide Web ist E-Mail weiterhin der beliebteste Dienst im Internet. Es hat sich als Kommunikationsform neben der Briefpost und dem Telefon durchgesetzt.

Seit vielen Jahren gehört Eric Allmans sendmail zum Marktführer der Mail Transfer Agents (MTA). Als elektronisches Postamt sorgen diese Agenten für die Versendung, Weiterleitung und den Empfang von E-Mails auf Mail-Servern. Der gemeine Internet-Benutzer und E-Mail-Schreiber zuhause am PC merkt davon gar nichts, doch wird fast jede seiner Nachrichten in irgendeiner Weise von sendmail zugestellt.

Diese Dominanz erwuchs aus der harten Arbeit von Eric Allman und vielen anderen begeisterten Entwicklern, angespornt durch die Vorstellung, die Voraussetzungen für ein neues Medium zu schaffen. Allman selber sieht sich nicht als Pionier, er hat weder durch Entwicklung von Protokollen die Struktur des Internet geprägt, noch visionäre Ideen eingebracht, wie er von sich sagt. Aber er hat einen wichtigen Schritt mitgemacht: den von der Erfindung zur Realisierung des Internet.

„There's a big step from inventing it to making it work. I didn't design the protocols. I didn't come up with the ideas. I'm an engineer. A damn good one, perhaps, but an engineer.“ – Eric Allman, Sendmail Inc.

Angefangen hat alles 1979, wie so oft, an der Universität von Berkeley, als Allman die erste Implementation eines elektronischen Post-Systems in Angriff nahm, das zunächst in der Version 4.0 und 4.1 des BSD-UNIX unter dem Namen delivermail vertrieben wurde. Nach einigen Umstrukturierungen des ARPAnet (Advanced Research and Project Agency Network), dem Vorgänger des Internet, bezüglich der Protokollstruktur und der Entwicklung des Simple Mail Transport Protocols (SMTP) weitete sich das Projekt schnell zu einem hochkomplexen Gebilde aus. Der Bedarf an Fachkräften und der Gedanke, für offene Standards wie SMTP auch offene Programme zu schreiben, rief Entwickler aus Unternehmen (Sun, Hewlett-Packard), Hochschulen und Forschungsinstituten auf, Beiträge in Form von Quellcode zu leisten.

Seit der ersten Version wird sendmail kostenlos und mit allen Rechten zur Programmmodifikation an seine Benutzer verteilt, wie es Markenzeichen von Open Source-Software ist. Von Anfang an wurde sendmail hauptsächlich wegen seiner offenen Architektur und der guten Skalierung geschätzt. Es lässt sich bis ins kleinste Detail konfigurieren, an die eigenen Bedürfnisse anpassen und fast überall einsetzen. Bestes Beispiel hierfür gab Allman selbst während eines Interviews: „Ich wurde damals während des kalten Kriegs von jemandem gebeten, sein sendmail-System zu konfigurieren und zwar in einer Weise, die völlig vom Normalen abwich. Einige Zeit später stellte sich heraus, dass der Mann Lehrer an einer öffentlichen Schule in Chicago war, dessen Schüler Brieffreundschaften mit Schülern aus Moskau pflegten und deshalb umständliches Mail-Routing3 vonnöten war.“

Dem non-profit sendmail-Konsortium sendmail.org steht sein kommerzielles Ebenbild Sendmail Inc. zur Seite, das 1997 von Eric Allman und Greg Olsen mit Hilfe einiger privater Investoren ins Leben gerufen wurde. Sendmail Inc. vertreibt weiterhin das freie sendmail, verkauft aber zusätzliche Tools wie z. B. Administrationsoberflächen. Mit einer solch hybriden Konstellation ist bewiesen, dass die synergetischen Effekte von Industrie und der Open Source-Gemeinde für den Anwender nur positiv sein können.

Sowohl sendmail als auch DNS/BIND beherrschen den Markt so sehr, dass es kaum ein kommerzieller Softwarehersteller gewagt hat, ein Konkurrenzprodukt zu entwickeln oder beim Versuch, ein solches zu etablieren, gescheitert ist.

1.5.4        Apache

Im Jahre 1995, als das World Wide Web noch in den Kinderschuhen steckte, programmierte eine Gruppe von Entwicklern Patch-Dateien für den damals aktuellen NCSA-Web-Server (A PAtCHy server). Die Arbeit erwuchs schließlich zu einer eigenen Software, die heute als Apache-HTTP-Server für Furore sorgt. Es ist eines der erfolgreichsten Open Source-Projekte überhaupt und beherrscht mit ca. 55 % Marktanteil die Web-Server-Szene[ii]. Alle acht Sekunden kommt eine neue Apache -gestützte Web-Site hinzu. Das ist umso erstaunlicher, wenn man bedenkt, dass diese Software ohne jegliche Marketingmaschinerie solche Beliebtheit erlangte.

Der Apache-Web-Server existiert in seiner aktuellen Version 1.3.9 für fast alle UNIX-Derivate. Die Windows NT-Version hängt den UNIX-Versionen in Sachen Stabilität etwas hinterher, woran aber fieberhaft gearbeitet wird.

Die tragende Organisation ist die im Juni 1999 gegründete und aus der Apache Group hervorgegangene Apache Software Foundation (ASF), die die Entwicklung rund um den Web-Server und viele andere Vorhaben betreut. Das traditionelle, verteilte Entwicklungsmodell von Open Source findet sich nur entfernt wieder, denn ein Merkmal dieses Projekts ist die zentrale Kontrolle des Quellcodes, die gewährleistet – hinsichtlich der rasanten Entwicklung des WWW – schnell Änderungen vorzunehmen.

„When you talk to someone who's not technical, they need to realize that there's an option, that there's a Pepsi to Microsoft's Coke.“ – Brian Behlendorf, Apache Software Foundation

Obwohl die ASF eine non-profit-Organisation ist, weist sie Charakteristika eines Unternehmens auf. Beispielsweise gibt es einen Aufsichtsrat, der von Mitgliedern der ASF gewählt wird, Verantwortung trägt und Entscheidungen fällt. Manager und Entwickler aus den unterschiedlichsten Institutionen gehören dem Aufsichtsrat an: z. B. Brian Behlendorf (O’Reilly), Ken Coar (IBM), Roy T. Fielding (Universität von Kalifornien, Irvine) usw. Gerade kommerzielle Firmen wie IBM tragen seit einiger Zeit nicht unerheblich zum Apache-Projekt bei, indem sie ein eigenes Entwicklerteam bereitstellen. Sicherlich ist dies keine reine Geste der Wohltätigkeit – schließlich liefern sie den Apache-Web-Server als Teil ihres Web-Sphere-Produkts aus – aber es zeigt deutlich, dass sowohl kommerzielle Softwarehersteller und deren Kunden als auch die Open Source-Gemeinde vom Erfahrungs- und Wissensschatz solcher Partnerschaften innerhalb einer Organisation wie der ASF profitieren können.

Durch diese professionelle Struktur gewinnt die ASF mehr und mehr Akzeptanz auf dem IT-Markt und kann dadurch finanzielle und organisatorische Unterstützung für all ihre Open Source-Software-Projekte sicherstellen. Zu diesen gehören weitere Web-Applikationen und -Techniken wie beispielsweise

·         xml.apache.org: um professionelle XML-Lösungen zu fertigen;

·         Jakarta: um serverseitige Java-Entwicklungen zu erstellen (u. a. eine Java Servlet Engine und eine Java-Server-Pages-Referenz-Implementation),

·         mod_perl: um die Integration der mächtigen Skriptsprache Perl und des Apache-Web-Servers zu fördern.

Brian Behlendorf ist der bekannteste Kopf der Apache-Gemeinde und ihr Pressesprecher. In letzter Zeit ist er öfter ins Rampenlicht der IT-Presse gerückt. Er zeigt damit ähnliche Präsenz in der Öffentlichkeit wie Linus Torvalds, Richard Stallman oder Eric Raymonds. Seine Arbeit bei O’Reilly hat das interessante Projekt sourceXchange hervorgebracht. Der Erfolg von freier Software hängt nach seiner Meinung in entscheidendem Maße davon ab, dass der Massenmarkt das gleiche Vertrauen in Open Source wie beispielsweise in die Marke Microsoft setzt. Es muss verdeutlicht werden, dass freie Software eine Alternative ist, so wie „Pepsi eine Alternative zur Microsofts Coke“ ist, um es mit den Worten von Behlendorf zu formulieren.

1.5.5        Samba

Es gibt sicher wenige Informatiker, die noch nicht in eine Diskussion UNIX vs. Windows verstrickt waren. Doch statt das eine zu verfechten und das andere zu verteufeln, ist es wesentlich produktiver, die Vorzüge beider Systeme zu verbinden. Gerade in der heutigen Zeit der Netzwerke erlangt die Integration heterogener Plattformen immer größere Bedeutung.

Der aus Australien stammende Schöpfer Sambas, Andrew Tridgell, dachte 1992 noch nicht in solchen Dimensionen, vielmehr war es wie sooft ein technisches Problem, dessen softwaretechnische Lösung sich später zur Nummer eins der Windows-UNIX-Integration entwickeln sollte. Tridgell wollte Verzeichnisse auf der Festplatte eines UNIX-Servers auf seinem DOS-PC nutzen („mounten“), was im Grunde mit NFS (Network File System) kein Problem darstellte, wohl aber, wenn auf dem DOS-PC zusätzliche Anwendungen laufen sollen, die sich anderer Netzwerkschnittstellen, beispielsweise NetBIOS bedienen. So untersuchte er Microsofts SMB-Protokoll (Server Message Block), das für das File-Sharing in einem lokalen Netz verantwortlich ist, und implementierte es in einer Software auf seinem UNIX-Server. Zwei Jahre später konnte er mit dem gleichen Programm ein Linux-System mit einem Windows-Rechner verbinden und von beiden Stationen einen gemeinsamen Drucker nutzen.

Das unter der GPL vertriebene Samba ist also eine auf einem UNIX-Server laufende Software, die Dienste eines Windows-Rechners zur Verfügung stellt. Für denjenigen, der diese Dienste nutzt, sieht der Server wie ein anderer Windows-Rechner aus.

Mit der im Januar 1999 erschienenen Version 2.0 bietet Samba nicht nur Drucker- und Dateidienste an. Es beherrscht quasi alle Dienste, die ein Windows NT-Server bietet, darunter auch Anmelde- (Authentifizierungs- und Autorisierungs-) und Namensdienste. Interessanterweise haben Studien von Ziff-Davis gezeigt, das ein Linux-PC mit Samba schneller arbeitet als ein Windows NT-Server mit identischer Hardware[iii].

Es ist nicht immer einfach, diese Dienste eines Windows-Rechners in andere Software zu implementieren, denn Microsofts Informations- und Dokumentationspolitik ist in dieser Beziehung mehr als zurückhaltend. Erreichen lässt es sich aber, wie man sehen kann, trotzdem, und zwar durch die Bestrebungen vieler Entwickler aus aller Welt, von denen lediglich ein einziger für seine Arbeit bezahlt wird: Jeremy Allison von SGI, der derzeitige Leiter des Samba-Projekts. SGI trägt einen großen Anteil am Erfolg Sambas, war es doch Ende 1998 die erste Firma, die kommerziellen Support dafür anbot.

Der Vorteil einer großen verteilten Entwicklergemeinde zeigt sich im Falle Sambas anhand folgenden Falls: Die Version 2.0 enthielt einen gravierenden Fehler, der jedoch bereits drei Tage später behoben wurde und die Versionsnummer auf 2.02 hob. Eine derart schnelle Reaktionszeit ist nirgendwo sonst als bei Open Source-Software möglich. Das aktuelle Release trägt die Versionsnummer 2.0.6.

Die enorme Bedeutung von Samba wurde unterstrichen, als dem Gründer der Open Source-Initiative Eric Raymonds, zwei interne Microsoft-Memoranden zugespielt wurden, heute weltweit als die Halloween-Dokumente bekannt, die Samba und andere Open Source-Projekte als gefährliche Bedrohung für Microsofts Vormachtstellung aufzeigten.

Der zukünftige Werdegang Sambas wird durch Windows 2000 geprägt werden. Zahlreiche neue Features wie Dynamic DNS, Active Directory und Kerberos müssen berücksichtigt werden[iv]. Es ist sicherlich eines der spannendsten Projekte und bedarf deshalb umso mehr Aufmerksamkeit.

1.5.6        Perl

Perl  (Practical Extraction and Report Language) wurde 1986 von Larry Wall entwickelt. Damals arbeitete dieser in einer Firma in den Vereinigten Staaten, die jeweils eine große UNIX-Workstation an der Ost- und an der Westküste besaß. Er wurde beauftragt, ein Programm zu schreiben, das diese von einer zentralen Stelle aus administrieren sollte. Da die Verwaltung solcher Rechner auf der Übertragung von vielen hauptsächlich Textdateien beruht, setzte er sein eigenes zuvor entwickeltes News-System ein.

„There's more than one way to do it.“ – Larry Wall, Erfinder von Perl

Da die Texte natürlich auch noch modifiziert werden mussten, bediente Wall sich des UNIX-Tools awk, das aber schon bald nicht mehr seinen Anforderungen genügte und so erweiterte er es. Die Erweiterungen gingen schließlich so weit, dass aus awk ein völlig neues Programm wurde: Perl.

Als Wall die Firma verließ, nahm er seine neugeschaffene Sprache mit, veröffentlichte sie in der Newsgroup comp.sources 1987 im Internet und erhielt sehr positive Rückmeldungen, Verbesserungsvorschläge und weitere Wünsche[v].

Relativ schnell und mit Hilfe anderer Programmierer schuf er die neuen Versionen 2 (1988), 3 (1989) und 4 (1991). Das dritte Release war das erste, das unter einer Lizenz verbreitet wurde, der GPL, mit der vierten kam eine neue Lizenz hinzu: die Perl Artistic Licence, die etwas näher auf die Aspekte einer Programmiersprache eingeht.

Mit Version 5.0 fand 1994 eine nahezu komplette Neuentwicklung von Perl statt. Neben Geschwindigkeitsverbesserungen wurden unzählige neue Features eingebaut, u. a. Objekte. Schon die Versionen 3 und 4 waren weitaus mehr als eine Sprache zur Manipulation von Texten, da sie auch mit Binärdaten umgehen konnten, aber erst Perl 5 brachte von Haus aus alle Möglichkeiten einer Allzweck-Programmiersprache mit. Zudem wurde die Dokumentation sehr stark überarbeitet und ist heute mit über 1.000 Seiten das Standardwerk für den engagierten Perl-Programmierer.

Heute wird Perl von circa 100 Programmierern weiterentwickelt und ist auf vielen Plattformen portiert worden, beispielsweise auf Solaris, HP-UX, AIX, Linux, MacOS, OS/2, Windows und VMS.

Das Hauptanwendungsgebiet von Perl liegt in der Entwicklung von Internet/Intranet-Applikationen, besonders im Bereich der CGI-Programmierung, in dem Perl seine Fähigkeiten zur Handhabung von Texten voll ausspielen kann. Ebenso wird es als Netzwerk- und Systemadministrationswerkzeug auf UNIX-Systemen verwendet. Dazu werden Funktionen und Methoden in so genannten Perl-Modulen bereitgestellt, die aus dem Internet frei heruntergeladen werden können.

Larry Wall erklärt den Erfolg von Perl mit seiner Flexibilität. Es vereint in sich die Vorteile unzähliger Sprachen. Schließlich hat Wall, als er Perl entwickelte, Features von Sprachen wie C++, sh, Fortran, COBOL, PL/I, LIPS, ADA und UNIX-Tools wie awk und sed eingebaut. Es besitzt eine Art Überbrückungsfunktion zwischen bestimmt eingesetzten Informationstechnologien, beispielsweise bei einer interaktiven, datenbankgestützten Web-Site. Perl wird deshalb auch als eine Art flüssiger Klebstoff (glue) bezeichnet.

„Easy things should be easy, and hard things should be possible.“ – Larry Wall, Erfinder von Perl

Laut Wall schreibt Perl seinen Programmierern nicht vor, wie sie zu programmieren haben, sondern überlässt ihnen die größtmögliche Freiheit, woher auch Walls Slogan „There’s more than one way to do it“ stammt.

Auf der ersten Perl-Konferenz im August 1997 in San Jose, Kalifornien, plädierte Larry Wall in einer ergreifenden Rede für einen neues Modell, in dem die freie Software-Szene und die kommerzielle Gemeinde zusammenarbeitet, denn beide beherrschen Dinge, die die andere Seite nicht beherrscht. Für dieses Kooperationsmodell müsste aber, so Wall, zunächst ein Waffenstillstand geschlossen und Vorurteile beseitigt werden.

Perl ist eine sich ständig in Bewegung befindliche Software. In naher Zukunft könnte Perl wieder eine große Umstrukturierung erfahren, da der digitale Text, deren Manipulation das Markenzeichen von Perl darstellt, ebenfalls einen Wandel durchläuft. Die zunehmende Internationalisierung in der Softwarebranche bringt einen neuen Text-Standard hervor, Unicode, dessen Unterstützung neben XML zu Walls primären Zielen gehört.

1.5.7        PHP

PHP Hypertext Preprocessor ist eine Server-seitig interpretierte, in HTML-Code eingebettete Sprache zur dynamischen Erzeugung von Web-Inhalten. Das bedeutet, dass spezifische PHP-Anweisungen (PHP-Tags) in HTML eingebunden werden, die, wenn die entsprechende HTML-Seite angefordert wird, vom Web-Server, bzw. vom PHP-Modul im Web-Server gelesen und ausgeführt werden. Durch die Beschränkung auf Web-Funktionalitäten ist die Sprache PHP leicht zu erlernen und nach nur kurzer Einarbeitung effizient anwendbar.

Von einem einfachen Parser 1995 von Rasmus Lerdorf in der ersten Version PHP/FI, entfaltete es sich schnell nach zwei kompletten Neuschreibungen zu einer vollwertigen Programmiersprache für das Web mit Datenbankschnittstelle und Unterstützung diverser Internet-Protokolle (NNTP, POP3, IMAP usw.).

Von Beginn an als Open Source-Projekt konzipiert ist PHP auf vielen UNIX-Systemen, Windows und Mac erhältlich. Die Nutzer- und Entwicklergemeinde wird ständig größer, zu erkennen am stetigen Wachstum der mit PHP bestückten Web-Server, deren Anzahl in diesen Wochen die Grenze von einer Million überschreitet. Technische Hilfestellung bieten die Mitglieder der PHP-Gemeinschaft in Mailing-Listen und in einer umfangreichen Knowledge-Base. Obwohl PHP im Gegensatz zu den meisten anderen großen freien Software-Projekten weder eine öffentlich auftretende Leitfigur noch eine fördernde Institution als Schirmherr hat, gedeiht es bemerkenswert von Jahr zu Jahr.

PHP und seine Erweiterungen unterliegen der GPL und der PHP Licence. Letztere umfasst Bedingungen zum Bündeln fremder Produkte mit PHP einschließlich Distribution. Zu den Benutzern gehören solch prominente Namen wie Opel, die SPD, der Spiegel, Neckermann und S.u.S.E.

Derzeit vollzieht sich ein weiterer Generationswechsel zur Version 4.0, die eine bessere Strukturierung der Sprachelemente in Klassen und den neuen, allgemeiner gehaltenen Skript-Parser Zend, der nicht nur für PHP eingesetzt werden kann, mitbringt. Aber auch Verbesserungen in Sachen Performance und Sprachkern werden angestrebt. Des Weiteren sind Funktionsklassen für die Online-Bildmanipulation (ImageMagick) für XML, COM und CORBA in Planung.

1.6      Freie Software in der Wirtschaft

Bereits seit vielen Jahren wird freie Software in der Industrie eingesetzt. Sehr häufig wurde sie von den Technikern, die ihre Stabilität und Sicherheit sehr schätzten, in den Unternehmen inoffiziell eingeführt. Manager und einflussreiche Entscheidungsträger wussten davon meistens nichts. Und wenn doch, dann gaben sie es nur ungern zu. Mit der erfolgreichen Marketingkampagne der Open Source Initiative, die auf die Führungsriege der Firmen, die CEOs (Chief Executive Officer) und CTOs (Chief Technical Officer), gerichtet ist, hat sich das Bild dramatisch verändert. Man bekennt sich zu Linux und Co.: Oracle korrigierte seine Haltung zur Linux-Unterstützung in kurzer Zeit von „auf keinen Fall“ zu „in ein paar Monaten gibt es unsere Datenbank für Linux“. Apple öffnete Teile seines Server-Betriebssystems MacOS X, IBM beteiligt sich momentan an der Entwicklung des Apache usw.

Der Gebrauchswert von freier Software ist sehr hoch und wurde in den vorhergehenden Kapiteln bereits ausführlich behandelt. Nachdem sie schon lange Zeit als IT-Infrastruktur auf Servern in kritischen Produktionsumgebungen von Firmen eingesetzt wird, findet sie mittlerweile auch auf dem PC des Privatanwenders Gebrauch. Die freie Verfügbarkeit und die sich daraus ergebenden Möglichkeiten zur Modifikation und Integration führen zu einem abgestimmten System. Dass Unternehmensabläufe oft an eine einzuführende (proprietäre) Software angepasst werden müssen und nicht umgekehrt, ist leider immer noch Alltag. Hier kann freie Software Abhilfe schaffen.

Ähnlich den beliebten Multifunktions-Heimwerker-Geräten können freie Programme auf spezielle Einsatzgebiete abgestimmt und angepasst werden, ohne so funktionsüberladen wie manche nicht-freie Software zu sein. Aber auch ohne Anpassungen wird ein sehr breites Anwendungsspektrum abgedeckt.

Freie Software kann ohne zeitliche oder andere Benutzungseinschränkungen angewendet werden, ohne dabei gekauft werden zu müssen. Kostenfreie Direktvergleiche zwischen einzelnen Programmen inklusive Tests sind möglich. Statt Preis oder Marktmacht des Herstellers wird die Qualität und der Funktionsumfang zum Hauptargument der Entscheidung für oder gegen eine Software.

 


 

[i] Tim O’Reilly: The Open Source Revolution http://www.edventure.com/release1/1198.html

[ii] Netcraft Web Server Survey http://www.netcraft.com/survey/

[iii] Steven J. Vaughan-Nichols; Eric Carr: Samba 2.0: A License To Kill NT?, http://www.zdnet.com/products/stories/reviews/0,4161,396321,00.html, ZDNet, 1999

[iv] Chris Hertel: Samba: An Introduction, http://de.samba.org/samba/docs/SambaIntro.html 1999

[v] Farid Hajji: Perl – Einführung, Anwendung, Referenz, Addison-Wesley 1998