Open-Source Software -- Gliederung

1   Einleitung

1.1   Was ist Open-Source Software?

  • Überbegriff zu allen Verteilungsarten von Software, bei denen der Quelltext als Teil des Produktes mitgeliefert wird. Man spricht dann auch von "offenen Programmen". Die genauen Regeln zur Verteilung der Software werden mit einer Lizenz festgelegt, die vom Dachverband der "Open Source Initiative" akzeptiert sein muss (siehe http://opensource.org). Diese Regeln erlauben unter anderem, dass der Quelltext von beliebigen Menschen verändert und weiter verteilt werden darf. So können sich selbst organisierte Vereinigungen von Freiwilligen ausbilden, die sich um die Weiterentwicklung von offenen Programmen kümmern.

  • "Freie" Software (engl. free software) ist eine spezielle Form der Open-Source Software, bei der man es mit der GPL Lizenz zu tun hat (Copyleft).

    Menschen, die naiv den Begriff "Freie Software" hören, bringen ihn in Zusammenhang mit "kostenlos" und "ohne Quelltext". Das stimmt aber nicht. Im Vordergrund steht, wie es Richard Stallman sagt "free as in freedom", nicht "free as in free beer".

    Freie Software bitte auch nicht mit "Freeware" verwechseln, letztere ist kostenlos aber fast immer nur ohne Quelltext erhältlich.

1.2   Wo wird freie Software verwendet?

  • In vielen modernen Smartphones.

  • Auf Servern (z.B. Apache Web-Server).

  • Auf vielen eingebetteten Systemen.

  • Überall da, wo Geld für Lizenzen fehlt

    • Kommerzielle Software oft mit jährlichen Nutzungskosten (SAP, Matlab, ...)
    • Aber: Andere Art von Kosten bei freier Software, z.B. Schulungen
  • In armen Ländern

    • "Digital Divide"

    • Medizinisches Projekt auf Kuba. Trotz des US-Embargos kann man eine CDROM mit aktuellen Open-Source Programmen hinschicken, so dass 1600 Ärzte nun auf alten 386 PCs arbeiten können.

    • Nordvietnam, US-Embargo von Clinton Regierung. John "Maddog" Hall bringt auch hier den aktuellen Stand der freien Software per Kurzbesuch auf CD vorbei.

    • Brasilien

      Ist Software proprietär, so könnte eine Softwarefirma gezwungen werden, ein Embargo mitzumachen.

  • In der Wissenschaft (häufig)

    • Textsatzsystem Latex
    • Simulation, Visualisierung, Numerik, Computeralgebra
  • In den öffentliche Verwaltungen und in Behörden (selten -- die meisten Vorhaben sind gescheitert)

    In der Schule:

  • Im privaten Bereich

Gegenfragen

  • Wo wird freie Software nicht eingesetzt?
  • Warum wird so viel (geschlossene) Software von Microsoft verwendet?

1.3   Ein paar Beispiele

  • The GNU Project

    Richard Stallman

  • Linux Kernel

    Linus Torvalds

  • Python

    Guido van Rossum

  • Perl

    Larry Wall

  • Apache

    Rob McCool, Brian Behlendorf

  • KDE

    Matthias Ettrich

  • Gnome Desktop Environment

    Miguel de Icaza

Literatur: [WILLIAMS], [VOICES], [AOSABOOK], [BIANCUZZI]

1.4   Wie verdient man damit Geld?

Literatur

[GRASSMUCK] Kapitel Was ist freie Software, wie entsteht sie, wer macht sie?, im Buch von S. 233 bis 258.

2   Geschichte

  • Entwicklung des Internet
  • Das World Wide Web
  • Die Entwicklung des UNIX Betriebssystems
  • Der Mikroprozessor
  • Geschichte des PC
  • Linux
  • Zusammenfassung: Die sechs Prinzipien

2.1   Entwicklung des Internet in den 60er Jahren

Der Grundstein für das heutige Internet wurde in den 50er Jahren des vergangenen Jahrhunderts gelegt. In dieser Zeit wurde in den USA die Advanced Research Projects Agency (ARPA) 1958 gegründet, die als Eliteforschungseinrichtung das Wissen auf verschiedenen technologischen Gebieten mehren sollte. Zumindest einen kleinen Anteil an der Gründung der ARPA hatte der enorme Erfolg des sowjetischen Sputnik Projektes (siehe [wikipedia]), bei dem es Wissenschaftlern der "gegnerischen" Supermacht gelang, Satelliten in die Erdumlaufbahn zu schiessen. In politischen Kreisen der USA löste dieses Ereignis Panik aus (man sprach auch vom "Sputnik Schock"), so dass plötzlich sehr viel Geld in die amerikanische Forschung gesteckt wurde, um diesen vermeintlichen Rückstand wieder aufzuholen. Eine goldene Zeit für Research and Development bricht an.

Das amerikanische Verteidigungsministerium (DoD -- Department of Defense) bekommt die ARPA-Abteilung IPTO (Information Processing Techniques Office) 1962 zugeordnet, die den Auftrag hat, die modernste Forschungseinrichtung für Computertechnik zu werden. Der erste Leiter des IPTO wird J.C.R. Licklider, der später bekannt werden sollte für seine Antizipation des interaktiven und vernetzten Rechnens und für den Begriff "Netizen". Licklider verlässt dazu seine Stelle bei der Firma BBN (Bolt, Beranek and Newan), die ebenfalls wie das Pentagon an der Ostküste der USA liegt. BBN liegt in der Nähe des MIT (Massachusets Institute of Technology) und konnte dadurch viele hoch qualifizierte MIT Abgänger rekrutieren.

Die Veröffentlichungen von Prof. Licklider sind frei im Internet zu finden. Es folgt ein Zitat aus "Human Computer Symbiosis" von 1960:

Man-computer symbiosis is an expected development in cooperative interaction between men and electronic computers. It will involve very close coupling between the human and the electronic members of the partnership. The main aims are 1) to let computers facilitate formulative thinking as they now facilitate the solution of formulated problems, and 2) to enable men and computers to cooperate in making decisions and controlling complex situations without inflexible dependence on predetermined programs. In the anticipated symbiotic partnership, men will set the goals, formulate the hypotheses, determine the criteria, and perform the evaluations. Computing machines will do the routinizable work that must be done to prepare the way for insights and decisions in technical and scientific thinking. Preliminary analyses indicate that the symbiotic partnership will perform intellectual operations much more effectively than man alone can perform them. Prerequisites for the achievement of the effective, cooperative association include developments in computer time sharing, in memory components, in memory organization, in programming languages, and in input and output equipment.
licklider.jpg

J.C.R. Licklider begründete in den 50er Jahren die Arbeitsgruppe bei der Firma BBN, die später den Grundstein zum heutigen Internet legte.

Das IPTO ist im Pentagon untergebracht und kann mit einem riesigen Budget unabhängig agieren, etwa 250 Millionen jährlich.

Ziel ist es, ein Kommunikationsnetzwerk zu konstruieren, das fehlertolerant ist, d.h. das nicht durch den Defekt von einzelnen Knoten im Ganzen lahmgelegt werden kann. Die Lösung dieses Problems ist die Technik des Packet Switching, die von Paul Baran (1964/USA) und Donald Davies (1966/England) unabhängig voneinander entwickelt wurde.

Die erste Veröffentlichung über das geplante ARPAnet wurde 1967 auf einer ACM Konferenz in Tennessee vorgestellt.

Das ARPAnet beginnt etwa 1969 zu existieren. Der erste Rechner am ARPAnet war ein Honeywell DDP-516 (siehe Abb.); die Premiere der Datenübertragung war am 20 Oktober 1969 als zwischen zwei Knoten das Wort LOGIN übertragen wurde. Der eine Knoten war bei der UCLA (University of California at Los Angeles), der andere an der Stanford University (SRI - Stanford Research Institute). Zur Ankopplung an das ARPAnet werden modifizierte kommerzielle Rechner verwendet, am Anfang war es der Honeywell DDP-516 in Rack-Bauweise (ein Rack ist ein Schrank der Einschübe aufnehmen kann), siehe Abb.

honeywell.jpg

Der Honeywell DDP-516 wurde in der Rack-Bauform als IMP verwendet. (Die Quelle http://starfish.osfn.org/~mikeu/h316/ existiert nicht mehr)

Diese Rechner werden auch als Interface Message Processor (IMP) bezeichnet. Auf den IMPs wurde die Ankopplung an das Übertragungsmedium realisiert, meist eine Standleitung mit ca. 60 kbit/sec Bitrate, als auch das eigentliche Netzwerkprotokoll abgearbeitet. An den IMP wurde der zu nutzende Rechner verbunden, der auch als Host bezeichnet wurde. Wenn man sich ansieht, wie heute Rechner an das Internet gekoppelt werden, dann sieht man, dass der Host-Rechner auch das Netzwerkprotokoll abarbeitet (den TCP/IP Stack) und über eine im Vergleich zum IMP winzige Einsteckkarte (die Netzwerkkarte) mit dem Ethernet verbunden ist. Das Netzwerkprotokoll war in der Anfangszeit des ARPAnet das Network Control Protocol NCP. Später wurde NCP durch das Transmission Control Protocol (TCP) und das Internet Protocol (IP) abgelöst.

Im Dezember 1969 besteht das ARPAnet bereits aus vier Knoten: UCLA, Stanford, University of Utah in Salt Lake City und University of California at Santa Barbara (UCSB).

Im Oktober 1972 wird das bis dahin aus ein paar Knoten bestehende ARPAnet in einer öffentlichen Demo im Rahmen einer Konferenz über Computerkommunikation gezeigt. Der Erfolg dieser Demonstration stärkt den Willen, auch viele andere Rechnermodelle wie z.B. PDP-8, PDP-11, IBM 360 an das ARPAnet anzubinden.

Der eingeschlagene Weg zur Dokumentation des ARPAnet ist für die spätere Entwicklung der freien Software sehr wichtig. Das ARPAnet Team entschied sich für eine freie Veröffentlichung der Standardentwürfe, um diese in einem demokratischen Prozess zu beurteilen. Diese Entwürfe heissen Request For Comment (RCS). Bei der Internet Engineering Task Force (http://www.ietf.org) kann man alle RFCs von Nr. 1, den Steve Crocker 1969 schrieb, bis zum aktuellen RFC, der etwa die Nummer 2600 hat, nachlesen. Die RFCs sind bis heute die entscheidenden Dokumente, wenn es um die exakte Programmierung eines Internet-Protokolles geht.

Die erste E-mail wird 1972 verschickt. Ray Tomlinson (Abb.) verwendet das @-Zeichen, um den Namen vom Rechner zu trennen.

tomlinson.jpg

Ray Tomlinson, der das @-Zeichen in E-mail Adressen zum ersten mal verwendet hat [entnommen aus Stefan Kornelius, "Wenn der Postmann zweimal klingelt. Der Mann der das @ erfand." SZ, 24./25. Juli 1999 (Seite 3).

Stephen Lukasik, der zwischen 1971 und 1975 Direktor der ARPA war, begann als erster, eine Organisation "virtuell" über E-mail zu steuern.

Bob Metcalfe erfindet etwa 1972 Ethernet. Er verwendet dazu die Ideen des ALOHA Netzwerkes der Universität Hawaii. ALOHA wurde ursprünglich als drahtloses Netzwerk für mobile Geräte geplant. Später gründet Metfalfe die Firma 3COM.

Mitte der siebziger Jahre beginnt der Student Eric Allman das Programm sendmail zu schreiben, um die zunehmenden Anzahl von Emails in der heterogenen Landschaft des ARPAnet in den Griff zu bekommen.

eric_allman.jpg

Die Protokolle TCP (RFC 793) und FTP (RFC 959) entstehen Anfang der 70er Jahre. Das TCP Protokoll wurde an drei Plätzen entwickelt: Stanford (Cerf), BBN und am Univerity College in London. Die erste Spezifikation war 1974 fertig. Vier Iterationen wurden bis 1978 durchlaufen.

Im Oktober 1972 sind es bereits 29 Knoten. Der erste internationale Knoten ist 1972 in Paris, 1977 heuert ARPA Vinton Cerf und Bob Kahn an um das ARPAnet mit dem IP Protokoll zu betreiben. Im Jahr 1981 wird das Internet von NCP auf TCP/IP "umgeschaltet". Bis 1985 wuchs das mit TCP/IP betriebene Internet wegen einer fehlenden breit verfügbaren TCP/IP Implementierung nur langsam. Ein signifikanter Anstieg war erst durch den TCP/IP Stack im Berkeley UNIX zu spüren.

Ende der 70er Jahre wandelt sich das Internet von der militärischen zur akademischen Forschungsförderung -- die Förderung erfolgt nicht mehr durch die DARPA (die ARPA wurde irgendwann in DARPA umbenannt) sondern durch die National Science Foundation (NSF).

1990 wird das ARPAnet abgeschaltet. Die kommerzielle Phase des Internet beginnt.

Bei der ursprünglichen Planung des ARPAnet ging man davon aus, dass es nicht mehr als 256 Netze geben wird. Dazu reichte die erste Zahl bei einer Internet-Adresse, z.B. 141.82.31.16. Später führte man das Konzept der Class A, B und C Adressen ein. Auch diese Aufteilung kann den enormen Zuwach an Internet-Adressen nicht mehr unterbringen, so dass eine neue Version des IP-Protokolles notwendig ist (IPv6).

Das Internet wird auch oft als "Netz aus unterschiedlichen Netzen" bezeichnet, da es sehr viele andere Netze unter einem Dach vereint.

Einige wichtige Protokolle des Internet sind:

  • IP
  • TCP, UDP
  • FTP
  • TELNET
  • NNTP (Usenet, Netnews)
  • SMTP, POP
  • HTTP

Der unaufhaltbare Erfolg des Internet ist auch ein Erfolg des Teilens (shared ethic). Dazu schreibt [FREYERMUTH]:

Software-Fundament des Internet legten technisch Begeisterte, die sich das Ergebnis ihrer Brillianz nicht im Interesse individuellen Profits patentieren liessen. Über Jahrzente wurde der freie Austausch gepflegt, so konnte die Software perfektioniert werden. John Katz (Slashdot): Diese Zehntausende Handwerker und Bastler, denen es primär nicht um Tausch- sondern Gebrauchswert ging, waren die wahren Architekten der neuen "Ökonomie".

2.2   Das World Wide Web

Anfang der 90er Jahre (genau 1992) entwickelt Tim Berners-Lee das World Wide Web (WWW) mit den Hyperlinks am Cern, dem Zentrum für Elementarteilchenphysik in der Schweiz.

tbl.jpg

Tim Berners Lee, der Erfinder des World Wide Web (entnommen aus dem Artikel Ein leiser Computermensch -- Später Geldsegen für den Erfinder des World Wide Web von Patrick Illinger in der SZ Nr. 135, Juni 2004).

Das Konzept der Hyperlinks ist aber viel älter. Bereits 1950 sieht Vannevar Bush in seinem prophetischen Artikel "As We May Think" die Explosion der Informationsmenge voraus. Mit seinem "Memex" System nimmt er das Konzept des Hypertext vorweg. Bush war zu dieser Zeit Direktor der National Science Foundation (NSF). Ein Zitat:

The Memex was a conceptual machine that can store vast amounts of information, in which users have the ability to create information trails, links of related texts and illustrations, which can be stored and used for future reference.

Später stützt sich Ted Holm Nelson (geb. 1937) auf die Arbeiten von Vannevar Bush. Er kreiert 1965 das Wort "Hypertext", am besten ist er bekannt für das Xanadu Hypertextsystem (siehe http://www.aus.xanadu.com/xanadu).

ted_nelson_1995.jpg

Ted Nelson

Das Konzept der Hyperlinks und des Hypertextes wurde von Ted Nelson im Xanadu Projekt etwa 1965 entwickelt. Nelson ist ausserdem bekannt für Hypertext, Hypermedia, Verbunddokumente (compound documents), Pixel-Grafik, Vektor-Grafik, Video, Sound, Virtualität, Micro-Payment und so weiter. Xanadu hat er 1967 vorgestellt (siehe http://www.udanax.com). Er hat Ray Ozzie bei der Entwicklung von Lotus Notes beeinflusst sowie Bill Atkinson bei der Entwicklung von Apple HyperCard. Xanadu ist durch die Konzepte der Notizen, Annotationen, Copyrights und Revisionen wesentlich leistungsfähiger als das heutige World Wide Web. Veröffentlicht u.a. 1982 das Buch "Literary Machines" und 1987 "Computer Lib".

Schlachtruf von Ted Nelson Anfang der 70er Jahre: "Computer Power to the People".

Mitte der 60er Jahre werden auch bereits die ersten Hypertextsysteme HES und FRESS an der Brown-University entwickelt.

Die Firma Netscape formiert sich 1994 aus Mitgliedern des NCSA (National Center for Supercomputing Applications). Marc Andreessen und fünf andere Teammitglieder. Beim NCSA habe diese Leute am Mosaic Browser gearbeitet. In ihrer eigenen Firma möchten sie Mozilla schreiben ("Mosaic-Killer"), die eine Killer-Applikation für das Internet werden soll. Nach dem ersten grossen Erfolg von Netscape kreuzt Bill Gates auf -- Microsoft entwickelt in der Rekordzeit von nur 18 Monaten den Internet Explorer. Das alles, nachdem Bill Gates 1996 die Richtung von Microsoft um 180 Grad umpolt: bis dahin hat die Firma auf ein proprietäres Netzwerk gesetzt, das nicht mit dem Internet verbunden ist.

Zum ersten Mal werden offene Standards durch kleine proprietäre Änderungen modifiziert. Das bringt dem Monopolisten Microsoft auch die Kontrolle von Bereichen, die vorher durch strenge Standardisierung geprägt war. Damit steigt auch die Verkaufszahl von Windows NT Server: 1997 werden mehr NT Server verkauft als Unix Server.

2.3   Die Entwicklung des UNIX Betriebssystems

aus [GOODHEART]: MIT, GE (General Electric) und Bell Labs 1965: Projekt MULTICS mit dem Ziel, ein innovatives Betriebssystem zu schaffen, das die interaktive Arbeit von mehreren Usern erlauben sollte. Bell Labs steigen aus dem Projekt aus, da die Entwicklung zu lange dauert.

Der Honeywell 635 Rechner, auf dem MULTICS entstehen sollte, dient Thompson als Plattform für das Spiel "Space Travel". Nachdem er seine Software auf eine GE-645 portiert hatte und seine Quelltext Files der Spiele-Sourcen in ein hierarchisches Filesystem speicherte, das er während des MULTICS Projekts schrieb, war die Performance wegen des Timesharing-Systems schwach und teuer (es wird berichtet, dass ein Spiel etwa 70 US-Dollar kostete). Als Ausweg hat er eine kaum benutzte PDP-7 als Plattform für sein Spiel verwendet.

pdp-7.jpg

Eine PDP-7. Das Bild ist von http://www.pixagogo.com/4166305601.

ken_dennis.jpg

Ken Thompson (sitzend) und Dennis Ritchie an einem PDP-7 Rechner. Sie beschäftigen sich gerade mit "nroff". Das Bild stammt von http://cm.bell-labs.com/cm/cs/who/dmr/index.html.

Der nächste Rechner war eine PDP-11/20. Im November 1971 "First Edition" UNIX -- kommt von Versionsstand der Dokumentation. 1972 bereits "Second Edition". 1973 Fourth Edition mit in C geschriebenen Kernel. Die "Fifth Edition" 1974 ist frei und wird an Universitäten, z.B. Berkeley, verteilt. Sixth Edition ("V6") 1975; Seventh Edition ("V7") 1979.

Eine Dokumentation fast des ganzen Quelltextes der Version 6 (V6) ist im Buch von John Lions, A Commentary on the UNIX Operating System von 1977 zu finden. Erstaunlich ist, wie klein aus heutiger Sicht das damalige UNIX noch war.

Aus heutiger Sicht ist es reizvoll sich die Hardware-Resourcen einer PDP-11 anzusehen. Es war ein 16-Bit Rechner mit einer durchschnittlichen Programmgrösse von 8 KByte. Die maximale Programmgrösse war 64 KByte. Der Übergang von 16-Bit auf 32-Bit Rechnern passierte in etwa zwischen V6 und V7. Dazu musste der im Kernel verankerte PDP-11 Code verallgemeinert werden. Typische Beispiele für die ersten 32-Bit Rechner sind die Interdata 8/32 und die VAX-11/780.

Nach Version 7 gibt die Forschungsgruppe an den Bell Labs UNIX an die UNIX Support Group (USG) ab. 1982 kommt es zum ersten Release "System III". Später wurde aus der USG die UNIX System Development Labs (USDL), die das System V, Release 2 (SVR2) veröffentlichen (1984). Zu der Zeit gibt es bereits 100.000 UNIX Installationen auf der Welt. SVR3 folgt im Jahr 1987. In diesem Jahr erreicht man etwa 750.000 Installationen. SVR4 folgt im Jahr 1989. SVR4 hat viele Neuerungen von BSD 4.3 übernommen, so dass sich der AT&T- und der Berkeley-Zweig mischen. Eine ausführliche Beschreibung von System V Release 4 ist in [GOODHEART] zu finden.

Ende der 70er Jahre nimmt auch das kommerzielle Interesse an UNIX zu. Die Geschäftsidee ist einfach: Nimm eine neue Hardware-Plattform und portiere UNIX drauf. Dadurch entstanden einige Firmen, die sich auf die Portierung von UNIX auf unterschiedliche Prozessoren wie z.B. Zilog Z8000, Intel 8088 und Motorola 68000 spezialisiert hatten. Wichtig ist hier auch XENIX, das in einer Kooperation zwischen Microsoft und SCO (Santa Cruz Operation) entstand, SCO machte die Portierung auf Intel x86.

Im Jahr 1993 hat AT&T USDL an Novell verkauft.

Brian Kernighan hat den Namen "UNIX" geprägt, zu dem er über MULTICS und UNICS kam.

Berkeley Unix

Siehe [CHEEK].

Unix entstand 1969, als Dennis Ritchie und Ken Thompson bei AT&T Bell Labs in Murray Hill ein System zu entwickeln begannen, das Online-Programmierung und Textbearbeitung unterstützen sollte. Unix wurde bis 1973 in C neu programmiert, um es portabler zu machen.

1975 stellte AT&T das System einigen Universitäten für 150$ zur Verfügung. Thompson hatte zu dieser Zeit ein Forschungsfreisemester an der Universität Berkeley und brachte die damalige Version 6 mit, die dann auf einer PDP-11/45 und einer PDP-11/70 genutzt wurde. Bereits vorher hatte Berkeley mit der Version 4 gearbeitet. McKusick: "Thompson hat regelrecht einen Kader von Akademikern herangezogen, die sich für Unix interessieren". Dadurch brachten die Studenten ihr Wissen in die Industrie. Zu dieser Zeit interessierte sich auch Bill Joy (Abb.) für den Unix Kernel. Er ist später einer der Mitgründer der Firma Sun Microsystems.

joy_1999.jpg

Bill Joy. Berkeley UNIX, TCP/IP, vi, Mitgründer von Sun Microsystems (aus einem Artikel der Zeitschrift COMPUTERWOCHE entnommen).

Im Interview Joy of Unix erzählt Bill Joy, wie der vi Editor ca. 1976/77 entstand: Zuerst war 'ed', dann hat ein gewisser George Coulouris vom University College in London 'em' geschrieben (Editor for Mortals). Der em wurde modifiziert, woraus dann eo entstand, dann kam ex. Mit ex hat BJ dann in ein paar Monaten über ein 300 Baud Modem den vi geschrieben. Die Kommandos wurden so gewählt wie sie sind, damit der Editor über 300 Baud bedienbar bleibt. "... the editor was optimized so that you could edit and feel productive when it was painting slower than you could think." Die Grenze ist zum "Mitdenken" liegt irgendwo zwischen 1200 und 9600 Baud.

2BSD (1977) mit vi und termcap; zur gleichen Zeit Digital VAX11/780 (Abb.), die einen grösseren Adressraum zur Verfügung stellt als die PDP-11; schnellt kommt es zu einer "quick-and-dirty" Fassung von Unix Version 7 für die VAX, damit man nicht mit VMS arbeiten musste. Aufgrund von Speicherproblemen arbeiteten die Studenten in den Weihnachtsferien 1979 an einem Kernel mit virtuellem Speicher, das "richtige" Berkeley-Unix 3BSD war entstanden.

vax11-780.jpg

Eine DEC VAX11-780. Das Bild habe ich auf http://histoire.info.online.fr/vax.html gefunden.

1980 wurde eine schnellere 4BSD Distribution herausgegeben (incl. Franz Lisp); DARPA wird auf BSD aufmerksam; im April 1980 macht die DARPA das Berkeley-Unix zu ihrem standardmässigen Forschungssystem, mit dem Ziel, eine Netzwerkschnittstelle und ein schnelleres Dateisystem zu entwickeln. Joy propagiert "offene Systeme" und die Philosophie "lieber Ruhm als Geld"; das Geld der DARPA floss bis 1988; seiter erhielt BSD Geld von Hewlett-Packard, Cray Research, Open Software Foundation (OSF: Apollo, Bull, DEC, HP, IBM, Siemens) und NASA. Mt. Xinu, eine kleine Firma in Berkeley bringt 1982 MORE/BSD heraus.

1983 kommt 4.2BSD mit der ersten TCP/IP Implementierung, die heute immer noch die Grundlage vieler Netzwerke bildet. Mit dieser Version geht auch der signifikante Anstieg der Anzahl an Internet-Knoten einher.

1985 entwickelt Sun das Network File System (NFS).

1986 kommt 4.3BSD mit neuer Netzwerkfunktionalität; 1988 dann Net/1 (siehe Geschichte von FreeBSD).

4.4BSD erweitert die Möglichkeiten zur Interprozesskommunikation.

Die ersten Versionen BSD1, BSD2 und BSD3 wurden nicht extern finanziert. BSD4 mit 4.1, 4.2 und 4.3 wurde von der DARPA finanziert. Später wurde Berkeley UNIX von HP, OSF und Cray Research finanziert.

Eine kurze Darstellung des Berkeley UNIX findet man in [BOSTIC], [CHEEK] und [MCKUSICK]. Die Versionen 4.2 und 4.3 werden knapp in [QUARTERMAN] beschrieben.

Die Geschichte von FreeBSD

Ursprung in der Berkeley Software Distribution (BSD), die von einigen Entwicklern am CSRG (Computer Systems Research Group) an der UCB ins Leben gerufen wurde. Zunächst nur eine Sammlung von Ergänzungen und Erweiterungen zum Original-Unix von AT&T, im Laufe der Zeit jedoch ein eigenständiges OS. Ausschliesslich im Quellcode verfügbar, war es Entwicklern, Firmen und Universitäten zugänglich.

Die CSRG entschloss sich 1989, den TCP/IP Code und die in Berkeley entwickelten Hilfsprogramme als das "Network Release 1" (Net/1) unter der liberalen BSD Lizenz frei verfügbar zu machen -- als Antwort auf die restriktive Lizenz der Bell Labs. Die guten Reaktionen auf Net/1 bewogen viele Entwickler, gemeinsam mit Freiwilligen möglichst alle Systembestandteile frei verfügbar zu machen. Bis auf sechs Dateien, die noch das AT&T Copyright enthielten, und daher nicht verteilt werden durften, wurde ein BSD Net/2 im Juni 1991 freigegeben. Die restlichen Dateien wurden von Bill Jolitz ersetzt, der Net/2 auf i386 portiert hat. Siehe seine Veröffentlichungen im Dr. Dobbs Journal. Das war das 386BSD. Am Anfang übernahm er die Bugfixes aufgrund der Reports aus der ganzen Welt, später waren das ein paar andere Leute. Diese Leute haben dann NetBSD herausgegeben, mit dem Ziel, ein plattformunabhängiges BSD zu schaffen. Einige Jahre später hat sich aus NetBSD dann OpenBSD abgespalten. Die Pfleger des Patch-Kit und einige andere aus der 386BSD Szene haben dann 1994 FreeBSD herausgebracht.

1981 bekommt die Universität Berkeley von der ARPA Fördergelder um TCP/IP in BSD Unix einzubauen. Bill Joy, der spätere Mitgründer von Sun, wirkt massgeblich an der Arbeit mit.

Abb. [unixchron] zeigt die zeitlichen Zusammenhänge zwischen AT&T UNIX, Berkeley UNIX und SunOS/Solaris. Neben diesen UNIXen gibt es auch noch Varianten von SCO (SCO steht für Santa Cruz Operation, die Produkte waren Xenix und SCO UNIX, IBM (AIX), Siemens Nixdorf (SINIX), DEC (Ultrix), HP/Apollo (HPUX), Silicon Graphics (Irix), Novell (Unixware) und anderen.

unixchron.jpg

Vereinfachte Unix Chronik.

Weitere Informationen über UNIX kann man der Website http://www.unix.org entnehmen.

freebsd-logo.jpg

FreeBSD

netbsd-logo.png

NetBSD

openbsd-logo.png

OpenBSD

2.4   Der erste Mikroprozessor

entnommen aus: [FRITSCH]

Silicon Valley (1971); Ende der 40er Jahre verpachtet Prof. Frederick E. Terman das Land der Stanford University für 99 Jahre an Firmen; Hewlett-Packard wird 1954 im Silicon Valley gegründet; William Shockley, John Bardeen und Walter Brattain erfinden 1947 den Transistor (Nobelpreis 1956) ; Anfang der 50er wird der Transistor bereits in Massen für das Militär produziert; Shockley gründet Firma Shockley Semiconductor Laboratory in Palo Alto; 1957 verliessen einige Mitarbeiter Shockley und gründeten die Firma Fairchild, die ausschliesslich Siliziumhalbleiter produzierten. Die Gründer waren Robert Noyce und Gordon Moore. Bei Fairchild wurde auch der Planarprozess erfunden. Auch die Anfänge von AMD (Advanced Microcomputer Devices) und National Semiconductors sind bei Fairchild zu finden. Im Jahr 1968 zieht sich Robert Noyce aus Fairchild zurück und gründet Intel (Integrated Technology). Nicht im Silicon Valley entstanden sind die Firmen Texas Instruments und Motorola.

Intel ist der Erfinder des Mikroprozessors; am Anfang stand die Herstellung von Schaltkreisen für Rechenmaschinen (ohne freie Programmierbarkeit), z.B. 1968 der HP9100A von Hewlett-Packard für 4900 Dollar oder 1972 der HP35A für 500 Dollar; 1969 bekommt Intel von einer japanischen Firma den Auftrag, einen Chipsatz für Taschenrechner zu bauen; vorher hat Intel nur Speicherbausteine gebaut; Marcian Ted Hoff entwirft den frei programmierbaren Chip, der am Anfang auf keine grosse Begeisterung stoss; Mitte 1969 kam Stan Mazer von Fairchild zu Intel und unterstützte Hoff; die Auftraggeber konnten schliesslich von der Nützlichkeit überzeugt werden und bekamen den Exklusivvertrag für die Nutzung für etwa 60.000 Dollar. Der Schaltkreis bekam die Nummer 4004, weil er etwa 4000 Transistorfunktionen hatte und weil es der vierte Prototyp des Bausteines war.

Ende 1970 erbat die japanische Firma eine Preissenkung für den 4004, wodurch Intel sich die Rechte am Mikroprozessor wieder zurückkaufte. Eine weitere Firma meldete sich bei Intel, die einen Schaltkreis haben wollte, der ein Terminal steuern kann. Ted Hoff und Kollegen fingen an, den 8008 zu entwerfen. Der Auftraggeber sprang ab, so dass Intel für den Chip 1972 Werbung machen musste ("a computer on a chip"). Intel stellt zwei neue Leute ein, Adam Osbourne für die Dokumentation und Gary Kildall als Berater ohne Festanstellung, der einen PL-1 Compiler und das CP/M Betriebssystem entwickelt.

In den folgenden Jahren enstanden weitere Mikroprozessoren:

  • 1971 : 4004 (Intel)
  • 1972 : 8008 (Intel)
  • 1974 : 8080 (Intel), 6800 (Motorola)
  • 1976 : Z80 (Zilog), 6502 (MOS)
  • 1978 : 8086 (Intel)
  • 1982 : 80286
  • 1985 : 80386
  • 1989 : 80486
  • ...

Linux kann man ab dem 80386 laufen lassen.

2.6   Linux

  • Es ist 1989

  • Linus Torvalds studiert in Finnland an der Uni Helsinki. Linus kann sich keinen 386er leisten und liest Tanenbaum's Operating Systems: Design and Implementation und experimentiert mit MINIX. Kommt auf die Idee, selber einen Kernel zu schreiben. Implementiert zuerst etwa 25 Systemaufrufe, open() allein dauerte Monate; dann bash Shell als erste Anwendung; nach der Shell ging alles schneller vorwärts. Im Frühjahr 1991 Terminal Emulation um Newsgruppen zu lesen. Im August 1991 das legendäre Posting von Linus Torvalds auf comp.os.minix zum Linux Kernel 0.01. Ein Hacker namens Orest Zborowski hat im Frühjahr 1992 das X-Window System nach Linux portiert. Im März 1992 hätte 0.13 folgen sollen, da Linus das Gefühl hatte, zu 95% fertig zu sein, wählte er Version 0.95. Innerhalb zwei Jahren 0.99 Patch Level 15A bis 15Z. Patch-Level 16 war dann 1.0 (März 1994), endlich mit Netzwerkfähigkeit.

    Als Lizenz wählt Linus die GPL.

  • Linux wird der noch fehlende Kernel für das GNU Projekt

  • GNU + Linux = GNU/Linux

  • Niedergang der traditionellen kommerziellen UNIXe (HP-UX, AIX, Irix, Ultrix, ...)

  • Linux und die freien BSD UNIXe (Open-, Free-, Net-BSD)

  • Was ist eine "Linux Distribution"?

    Beispiele für Distributionen

    • Debian (siehe auch weiter unten)
    • Suse
    • Redhat
    • Gentoo
    • Arch
    • viele weitere...
  • Linux Verwandte

    • Android
    • OS-X (BSD)
  • Debian

    • http://www.debian.org

    • Gegründet 1993 von Ian A. Murdock

      1994: The Debian Manifesto

      http://www.debian.org/doc/manuals/project-history

    • Demokratischer Prozess

    • Nur freie Software (Debian Free Software Guidelines DFSG im Social Contract von Bruce Perens)

      /usr/share/doc/debian/social-contract.txt

    • In der "Konstitution" steht, welche Rollen die Personen im Debian Projekt haben.

      /usr/share/doc/debian/constitution.txt

    • Viele Abkömmlinge: Ubuntu, Sidux, Debian Mint, ...

  • Organisationen um Linux

  • Literatur

    • [TORVALDS] Linus Torvalds und David Diamond, Just for Fun: The Story of an Accidental Revolutionary, 2001
    • [MOODY], Glyn Moody, Rebel Code: Linux and the Open Source Revolution,

2.7   Die sechs Prinzipien

Als Zusammenfassung möchte ich hier die sechs Prinzipien wiedergeben, die gemäss [FREYERMUTH] zur Entstehung der Open-Source Bewegung beigetragen haben:

  1. Die Selbstermächtigung der Anwender

    Zeit der Mainframes / Mangel an interaktiver Nutzung der wenigen teuren Rechner / Entwicklung von Time-Sharing Verfahren an den amerikanischen Universitäten / einfachere Programmiersprachen / Computerspiele / erste PCs in den digitalen Gründerjahren in den 70ern / Lehre: Nichts beschleunigt technischen und dann auch ökonomischen Erfolg so sehr wie die Einbeziehung derjenigen, die mit den jeweiligen Produkten arbeiten und leben müssen. Mit dem Aufkommen von digitaler Kommunikationstechnologien können Anwender plötzlich zu gleichberechtigten Mitentwicklern an professionellen Projekten jeder Grössenordnung avancieren - in Echtzeit und unabhängig von geografischen Beschränkungen.

  2. Evolution der Standards

    Erste Phase freier Software-Entwicklung endete in den 60er Jahren / die Initiative einzelner Anwender war entscheidend und nicht Institutionen und Konzerne.

    • Erste Knoten des Arpanet, später TCP/IP, das wichtigste Produktionsmittel für Open-Source.

    • Bastler zweckentfremdeten die für digitale Taschenrechner entwickelten Chips, ca 1969.

    • Der Programmierer Ken Thomson nahm sich 1969 eines Projektes an, das Bell Labs, MIT und General Electric nach hohen Investitionen aufgegeben hatten. Aus dem Mehrplatzsystem Multix entwickelte er mit Dennis Ritchie ein Einplatzsystem, das er UNIX nannte. 1975 wurde die erste Version auf Bändern vertrieben. Der Erfolg von UNIX brachte bald proprietäre Unix-Versionen auf den Markt: Unix Version 7 und Xenix, die erste Portierung von Unix auf einen Intel-Prozessor (1979). Auch Microsoft hat Xenix mit AT&T-Lizenz vertrieben.

    • Stallman gründete 1984 das GNU Projekt.

      Offene Standards / Beispiel ASCII aus den 50er Jahren / dauerte fast 10 Jahre bis ASCII Standard akzeptiert und weitere 15 Jahre bis er implementiert wurde - vorher war der Austausch von Dateien, sogar simplen Texten, nicht möglich.

    • Open Source dehnt Marktmechanismen auf den Entwicklungsprozess aus, wodurch der Standardisierungsdruck eskaliert / primär ist der Gebrauchswert von Interesse / daher opponieren sie allem, was eine effektive Nutzung beschränkt / Closed-Source: finanzielle Belohnung, Suche eines besser bezahlten Projektes anstatt eines besseren Projektes, Diskontinuität, Fluktuation, kurze Halbwertszeit der Produkte / Open-Source: kollektives Design neigt zu Kontinuität und statt zu Diversifikation zur Standardisierung.

  3. Produktionsgemeinschaft der Gleichen

    Vernetzung beschleunigt die wissenschaftliche Basistechnik des peer review, bei dem Fachleute die Arbeit von Kollegen begutachten. Dieser organisierte Skeptizismus garantiert die Qualität auf dem Markt des Wissens. Hinderlich für breite peer review ist die Verweigerung vieler Firmen, ihr Wissen mit Aussenstehenden zu teilen. Ohne freien Informationsfluss konnte peer review nicht produktiv werden. Die Open-Source Praxis überwindet diese Einschränkung.

    Eric Raymond nennt es den "Delphi-Effekt": Den Umstand, dass die Zuverlässigkeit von Expertenentscheidungen mit der Zahl der Entscheidungen steigt.

    Ausbildung virtueller Gemeinschaften; peer recognition das Lösen von dringenden anstehen Problemen bei Open-Source Projekten bringt hochqualitative Software und soziale Anerkennung durch Gleichgesinnte und Gleichqualifizierte, die ihre Leistungen angemessen zu würdigen verstehen.

  4. Geistiges Gemeineigentum

    Richard Stallman nimmt sich Anfang der 80er Jahre mit dem GNU-Projekt vor, ein freies Unix für den Personal Computer zu schreiben (vorher seit 1975 Emacs). 1985 Gründung der FSF. Vorrangiges Ziel seiner Arbeit ist es, die Freiheit von Software zu gewährleisten -- worunter primär die Freiheit der Nutzer zu verstehen ist, Programme zu kopieren, weiterzuverteilen und zu den eigenen Bedürfnissen gemäss zu verändern. Dies hält die GPL fest. Sie ist eine juristische Anleitung zur Veröffentlichung von freier Software. Ihr Grundgedanke ist das dem Copyright durchaus ironisch entgegengesetzte Copyleft. Es erlaubt, geistiges Eigentum anderer beliebig zu modifizieren und auch profitabel zu vertreiben, solange das neue Produkt freien Zugang zum Quelltext gewährt.

    Larry Lessig: "In der Wissensgesellschaft gehört eine demokratische Kontrolle über die digitale Infrastruktur unabdingbar zur Erhaltung von intellektueller und wirtschaftlicher Freiheit. Was den Alltag so nachhaltig prägt und wovon auch das Überleben unzähliger Unternehmen abhängt, kann nicht auf Dauer Privatbesitz und ausserhalb des Einflusses der Mehrheit der Anwender bleiben."

    Eric Raymond (in The Magic Cauldron): "Wenn die entscheidenden Vorgänge in deinem Geschäft von undurchsichtigen Bits abhängen, in die du keinerlei Einsicht hast (mal abgesehen davon, dass du sie nicht verändern kannst), dann hast du die Kontrolle über deinen eigenen Laden verloren. Du brauchst deinen Lieferanten mehr, als er dich braucht -- und du wirst für dieses Ungleichgewicht der Kräfte bezahlen, mehr und immer mehr."

    Open-Source bietet einen Ansatz zur demokratischen Kontrolle der digitalen Infrastruktur.

  5. Die neue Hackordnung

    GNU ist Anfang der 90er Jahre noch nicht so weit, dass der Kernel ("The Hurd") fertig ist. Das Internet feiert bereits seinen Siegeszug. Das WWW verdrängt alle anderen Ansätze, das Netz besser benutzbar zu machen. Zu der Zeit allerdings noch verhaltene kollaborative Entwicklung von Software.

    Torvalds gibt eine ganz andere Art der Entwicklung vor: Abwerfen aller Zwangsjacken wie Abschnitts- und Terminplanungen, keine hierarchischen Vorgaben, Abbau restriktiver Zugangskontrollen, jeder konnte sich beteiligen, sehr schnelle Veröffentlichung von neuem Code. Zunehmende Projektkomplexität führt zur modularen Aufteilung in Subgruppen, an jeder Aufgabe arbeiten Menschen, denen die Arbeit nicht zugeteilt wurde, sondern die ihn sich ihren Qualifikationen und Motivationen entsprechend ausgesucht hatten.

    Richard Gabriel von Sun: "eine Art semi-chaotische, selbst-organisierende Verhaltensstruktur, in der zahlreiche kleine Reparatureingriffe schnell zum Aufbau komplexer und massiver Kreationen führen können."

    Hinzu kommt: Hoher Grad an Befriedigung der Mitarbeiter durch Eigenbestimmung, hohes Selbstwertgefühl, Ansehen in der Gemeinschaft.

  6. Geschäftsmodelle konkurrierender Kollaboration

    "Coopetition": Zusammenarbeit in technologischer Hinsicht; Konkurrenz im service-orientierten Wettbewerb um die Kunden; Suse 1992, RedHat und Caldera 1994.

    Intellektuelles Kapital im Wandel der Jahrhunderte (17. und 18. Jhdt.); tendenzielle Gleichstellung von materiellem und geistigen Besitz; Patente. Die gegenwärtige Ersetzung analoger Technologien durch digitale stellt wesentliche Elemente des damals etablierten industriellen Umgangs mit geistigem Besitz wieder in Frage. Beispiel aus der Frühzeit der Industrialisierung: Ver-Öffentlichung der privaten Bibliotheksbestände von Adel und Kirche als früher Vorfahre der GPL. Entprivatisierung und Umorganisation des Buchbestandes im 19. Jahrhundert.

    Taylorismus (von Frederick Winslow Taylor), hierarchisches Managementsystem, nimmt dem Einzelnen Bewegungsfreiheit und Eigenzeit, um ihn zum Anhängsel der Maschine und des Fliessbandes zu machen. Steigert die mechanische Effizienz, vernicht psychische Motivation und auf Selbständigkeit basierende Kreativität. ... Erst mit der Digitalisierung schuf sich die Menschheit die nötigen Voraussetzungen, um das Joch industrieller Arbeit abzuschütteln. Das Linux-Projekt war in den 90er Jahren dafür wegweisend, indem es die globale Vernetzung nicht länger nur zur Kommunikation, sondern für eine prinzipielle Umorganisation der Arbeit nutzte.

2.8   Vertiefende Literatur

3   Das GNU Projekt

  • GNU = Gnu's Not Unix (1984)

  • Gründung durch Richard M. Stallman ("RMS")

    stallman.jpg
  • MIT/AI-Lab seit 1971: "It was a breath of fresh air... At the AI Lab, people seemed more concerned about work than status"

  • "the last true hacker" und "hacker ethics"

    In [LEVY] wird Stallman als letzter echter Hacker bezeichnet. Vor ihm waren Richard Greenblatt, Gerald Sussman, Bill Gosper und andere.

  • Incompatible Time Sharing System (ITS)

  • Initiale Email an Thanksgiving 1983

  • Gegen fortschreitende Kommerzialisierung von Software

  • Programme als Gemeineigentum bzw. "öffentliches Gut".

  • Steht für free software: free as in freedom, not as in free beer!

    "Der fundamentale Akt von Freundschaft unter denkenden Wesen besteht darin, einander etwas beizubringen und Wissen gemeinsam zu nutzen. Dies ist nicht nur ein nützlicher Akt, sondern es hilft die Bande des guten Willens zu verstärken, die die Grundlage der Gesellschaft bilden und diese von der Wildnis unterscheidet. Dieser gute Wille, die Bereitschaft unserem Nächsten zu helfen, ist genau das, was die Gesellschaft zusammenhält und was sie lebenswert macht. Jede Politik oder jedes Rechtssystem, das diese Art der Kooperation verurteilt oder verbietet, verseucht die wichtigste Ressource der Gesellschaft. Es ist keine materielle Ressource, aber es ist dennoch eine äusserst wichtige Ressource."

  • Sagen Sie nicht Open-Source Software dazu!

  • GNU Manifest http://www.gnu.org/gnu/manifesto.html

  • Copyleft Lizenzen: GPL, LGPG, GFDL.

  • Free Software Foundation (USA, Europa)

    Free Software Definition: http://www.gnu.org/philosophy/free-sw.html

    Anerkannte Lizenzen für "freie Software". Diese müssen weder Copyleft haben noch kompatibel mit GPL sein:

    http://en.wikipedia.org/wiki/List_of_FSF_approved_software_licenses

  • GNU Project Information http://www.gnu.org/prep

    Ein paar beispielhafte Projekte (umfassendes Verzeichnis https://www.gnu.org/software)

    • Emacs (von TECO Editor, "Text Editor and COrrector", anfangs pet project, später EMACS "Editing MACroS")

    • GCC (jetzt: GNU Compiler Collection, damals: GNU C Compiler)

      Nicht ausrottbare Falschinformationen

      • Falsch: Die mit GCC erzeugten Programme dürfen nicht kommerziell verwendet werden.
      • Richtig: Die mit GCC erzeugten Programme dürfen wie mit einem kommerziellen Compiler zu beliebigen Zwecken und Bedingungen verwendet werden.
    • GDB (GNU Debugger)

  • GNU macht einen Grossteil des Linux Betriebssystems aus, deshalb soll man mit Linux nur den Kernel bezeichnen, für das ganze Betriebssystem ist eher der Name GNU/Linux passend.

  • "GNU Hurd" Microkernel, Alternative zum monolithischen Linux Kern

    http://web.cecs.pdx.edu/~trent/gnu/hurd

  • Weitere Errungenschaften von RMS:

    • Anwendung eines kollaborativen Software-Entwicklungsmodells, obwohl der Zugang zum Internet damals nur auf der Kommandozeile stattfand.
    • Formung von Gruppen aus Programmierern, die über das Internet mit den damaligen bescheidenen Mitteln kooperierten.
  • Kollaborationsplattform http://savannah.gnu.org

  • Videos

  • Logos

    gnu-type.jpg

    Mehr GNU Logos findet man hier: http://www.gnu.org/graphics/graphics.html

  • Zeitschrift "Free Software Magazine, http://www.freesoftwaremagazine.com

Literatur

  • [GRASSMUCK], Kapitel "Geschichte der Softwareentwicklung", S. 202 bis 230.
  • [LEVY]
  • [WILLIAMS]

4   Die Open-Source Bewegung

opensource-logo.png

Das Open-Source Logo (http://opensource.org)

  • Entstehung des Begriffes
  • Die Rolle von Eric S. Raymond ("ESR")
  • Open-Source Definition, abgeleitet von Debian Free Software Guidelines (siehe Debian Social Contract).
  • Viele Lizenzen (zu viele?): http://opensource.org/licenses
  • Open Source in anderen Bereichen. Siehe das Kapitel "OSS in anderen Bereichen" weiter unten.

Literatur

  • [VOICES]
  • [RAYMOND1]
  • [RAYMOND2]
  • [RAYMOND3]
  • [RAYMOND4]

5   Produktion freier Software

5.1   Open-Source Software Engineering

  • Grosse Variabilität beim Entwicklungsrechner in der Hardware und der Software (meist Linux als Betriebssystem). Deshalb Konfigurationsprogramme notwendig.
  • Es sollen keine kommerziellen Tools verwendet werden. Alle Werkzeuge müssen frei sein.
  • Kodierstandards, z.B. GNU Coding Standards.
sw-kreis.png

Die eigentliche Software macht bei einem Paket nur einen kleinen Teil aus.

  • Internationalisierung. Damit wird ausgedrückt, dass man Programme für unterschiedliche Sprachräume "lokalisiert". Das klassische Werkzeug für diese Aufgabe ist GNU gettext.
  • Häufig werden die Programme in rein textuellen Umgebungen geschrieben, d.h. man kann die Programme auf der Kommandozeile editieren, kompilieren und testen. Grafische integrierte Entwicklungsumgebungen sind eher die Ausnahme.
  • Häufig verwendete Werkzeuge:
    • GNU Compiler Collection gcc
    • Debuggen mit gdb
    • Vim/Emacs
    • Terminal Multiplexer tmux, screen
    • ctags, cscope zur Navigation im Quelltext
    • Lokalisierung mit gettext
    • Eingabeaufforderung mit readline
    • Kommandozeilenargumente lesen mit getopt
    • Versionsverwaltung mit git
    • Patches erzeugen und anwenden mit diff und patch
    • Unit-Tests mit check

5.2   Produktion in der Gemeinschaft

  • Ca. seit den 80er Jahren erste Zusammenarbeit bei der Softwareentwicklung durch das Internet. RMS gilt als einer der Ersten, die durch den Austausch von "Patches" per E-mail Programme gemeinschaftlich entwickelt haben.
  • Heute fast nur noch git in Verwendung.
    • Dezentrales Versionsverwaltungssystem (DVCS = distributed version control system)
    • Erfunden von Linus Torvalds zur Verwaltung des Linux Kernel
    • Sehr schnelles Arbeiten mit branches möglich (Zweige)
    • Viele workflows möglich (z.B. "shared repo workflow", "fork/pull repo workflow")
  • Es gibt jedoch Alternativen, die oft einfacher zu bedienen sind:
  • Ein workflow beschreibt die Regeln der Zusammenarbeit von vielen.
  • Dienste im Netz zur Kommunikation
    • Mailingliste
    • Newsgroup(s) (Usenet)
    • Forum
    • Wiki
    • Website
    • git
    • Bug/Issue Tracker
    • Umfangreiche Entwicklungsplattformen: github, gitlab, launchpad, bitbucket, ...

Literatur

  • [FOGEL]
  • [TOSW]
  • [TEACHING]

6   Community Building

Literatur

  • Matthias Stürmer, Thomas Myrach, Open Source Community Building, 2005, 14 Seiten.

  • Jono Bacon, The Art of Community Building

  • [FOGEL]

  • Charles Severance, Sakai: Building an Open Source Community

    http://www.dr-chuck.com/sakai-book

7   Rechtliches

7.1   Ein wenig Urheberrecht

Lit.: [GOLDHABER], [HAAR], [LESSIG], [SIETMANN], [SPIELKAMP], [GRASSMUCK]

[GRASSMUCK] Teil 1: Die Rechtliche Ordnung des Wissens

  • Fürsten gewähren Autorenprivilegien an Autoren und Verlegern.
  • Nach der Erfindung des Buchdruckes: Werke können nachgedruckt werden, nachdem ein einziges Exemplar erworben wurde.
  • Schutz durch Autorenprivileg wird immer schwächer.
  • Lösung durch Kant: Er gibt dem Verfasser ein unveräusserliches Recht, das Urheberrecht.

Auszüge aus [GOLDHABER]:

Das Copyright begann als eine Form der Machtausübung des starken Staates / Die Durchsetzung des Urheberrechts unterstützt den Kapitalismus auf besonders einfache Art. Es verhindert echten Wettbewerb, schafft staatlich sanktionierte Monopole für Markenwaren, neue Gerätschaften, Software, Medikamente, Designer-Kleidung, Turnschuhe, Fastfood-Ketten, und viele andere Dienstleistungen und, natürlich, fast alle Texte, Filme, Bilder und Musik, die den ganz besonderen Schutz des Urheberrechts geniessen. ... Im 20. Jahrhundert besassen Komponisten, Sänger und Musiker als Sonderform des 'Autors' nur selten das Copyright auf ihre Arbeiten, weil sie, um ihre Platten hergestellt, beworben und vertrieben zu bekommen, die Rechte an Plattenfirmen verkaufen mussten. Heute bestehen die Plattenfirmen darauf, dass Musikaufnahmen Werkverträge: sind -- eine besondere Form, die ausschliesst, dass die Musiker ihre Rechte jemals wieder zurückbekommen. ... Um es anders zu sagen: Filmschauspieler, Computerspieleprogrammierer, Schriftsteller, Musiker und andere Hersteller von Aufmerksamkeit auf sich ziehenden Produkten werden vom gegenwärtigen System betrogen. Anstatt einen wirklichen Nutzen aus dem Copyright zu ziehen, erleben sie, wie das gegenwärtige System ihre Macht an die Konzerne und deren Bosse durchreicht.

Goldhaber erwähnt das Buch The Nature of the Book von Adrian John. Darin wird erklärt, dass das Copyright zum ersten Mal von englischen Monarchen im 17. Jahrhundert eingeführt wurde, kurz nachdem die Buchdruckerei sich als Geschäftszweig zu etablieren begann. Das Copyright gehörte nicht den Autoren, sondern bestimmten Druckermeistern oder Buchhändlern, die damit das Recht erwarben, gewisse Werke durch die Buchdruckerzunft, die Gilde, drucken zu lassen. Es ging auch Hand in Hand mit königlicher Machtausübung, der Zensur. Sogar in seiner modernen Form kann das Copyright bzw. geistiges Eigentum nur durch die Macht und das Eingriffspotential des Staates gesichert werden. ... Der Kapitalismus wäre schon längst ohne Patente, Geschmacksmuster, Warenzeichen, Geschaeftsgeheimnisse, Copyright zusammengebrochen.

7.2   Wie funktionieren Lizenzen?

  • Ein Programm (Software) ist ähnlich zu anderen Werken in Textform, z.B. einem Roman oder einem Fachbuch.

  • Der Schöpfer eines Werkes ist der Urheber. Ein Werk kann auch mehrere bis zu sehr vielen Urhebern haben, was für Open-Source Software gar nicht untypisch ist.

  • Der Urheber bestimmt die Rechte und Pflichten des Nutzers. Die Lizenz enthält die Nutzungsrechte.

  • Die Lizenz wird vom Urheber vergeben. Der Urheber kann auch mehrere verschiedene Lizenzen für ein Werk vergeben (Mehrfachlizenzierung, siehe unten).

  • Die Lizenz wird dem Werk sichtbar hinzugefügt.

  • Eine Lizenz kann so gestaltet sein, dass sie von beliebigen anderen Personen für beliebige Projekte wiederverwendet werden darf, z.B. ist das so bei der GPL oder der BSD Lizenz und bei vielen anderen. Lizenzen die nicht wiederverwendet werden dürfen sind z.B. die Python Software Foundation License oder die Nokia Open Source License.

  • Nur der Urheber (oder alle Urheber miteinander) kann/können die Lizenz eines Werkes für zukünftige Ausgaben ändern. Die Lizenz von älteren Ausgaben kann nicht rückwirkend geändert werden.

  • Die Kosten für kommerzielle Software entstehen häufig durch das Nutzungsrecht, das oft zeitlich befristet ist. Anwender von SAP Software (Warenwirtschaft) oder von Matlab (wissenschaftliches Rechnen) haben in der Regel jährliche Ausgaben für die Erneuerung der Lizenzen.

  • Lizenzen können eine kommerzielle Nutzung erlauben oder ausschliessen. Beispiele: Software unter der GPL darf man jederzeit auch kommerziell vermarkten. Die Qt Public License (QPL) von 1999 hat es verboten, kommerzielle Produkte damit zu machen. Wer kommerzielle Software mit Qt anbieten möchte, der muss eine kommerzielle Qt Lizenz wählen.

  • Lizenzen die zueinander kompatibel sind erlauben die Kombination und Distribution von Quelltext.

    Beispiele:

    Kompatibel:

    • GPL und MIT Lizenz
    • GPL und PSFL (Python Software Foundation License)

    Nicht kompatibel:

    • GPL und BSD 4-Klausel Lizenz (wegen der Werbungsklausel)
    • GPL und MPL Lizenz
    • GPL und Microsoft Public License (MS-PL)

    Wenn man Software mit nicht kompatiblen Lizenzen kombiniert, kann man das gesamte Programm nicht legal verteilen.

    Häufig in der Praxis: Software ist ein Konglomerat aus verschiedenen offenen Einzelteilen, die man irgendwo im Internet gefunden hat zuzüglich einem selbst geschriebenen Anteil. Die einzelnen Teile haben jeweils eigene Lizenzen. Die Frage ist nun, ob sich die Summe aus den einzelnen Lizenzen verträgt. Es kann auch sein, dass sich manche der Lizenzen gegenseitig ausschliessen, also nicht kompatibel sind.

  • Mehrfachlizenzierung

    Beispiel: Qt Framework https://www.qt.io/qt-framework

    1. Qt GNU LPGP v2.1

    2. Qt GNU GPL v3.0

    3. Qt Commercial Developer License

    Klären Sie folgende Fragen:

    • Bei welcher Variante entstehen Lizenzkosten?
    • Bei welcher Variante muss man den Quelltext herausrücken?
    • Bei welcher Variante gibt es kommerzielle Unterstützung (support)?
    • Warum ist die GFDL Lizenz nicht konform mit den DFSG Richtlinien?
    • Warum ist der Mail-Reader pine nicht bei Debian dabei?
  • Freie/offene Software und Haftung bzw. Haftungsausschluss

7.3   Kategorien von Lizenzen

  • Liberale Lizenzen (copycenter)
    • BSD (einfach)
    • MIT (einfach)
    • Apache - 1.1 (einfach) - 2.0 (komplex, 2004, CLA, Schutz vor Patentansprüchen)
  • Beschränktes Copyleft
    • MPL
  • Strenges Copyleft
    • GPL, LGPL, GFDL
    • Symbol: Gespiegeltes C
  • Sonstiges
    • Vergleiche: all rights reserved (Copyright) --- no rights reserved (PD)
    • Creative Commons - some rights reserved
    • Der öffentliche Raum public domain
      • no rights reserved
      • CC0 (PD)
      • the unlicense
    • Keine FOSS: Freeware, Shareware

Wer es ganz genau wissen will: http://www.ifross.org/lizenz-center

7.4   Häufig verwendete Lizenzen

7.4.1   BSD Lizenz
  • Ursprüngliche Lizenz, bis ca. 1990
  • BSD Lizenz mit 4 Klauseln, ab 1990
  • Modifizierte (3 Klausel) BSD Lizenz, 1999, GPL kompatibel
  • Vereinfachte BSD Lizenz (2 Klauseln): FreeBSD, GPL kompatibel
  • http://en.wikipedia.org/wiki/BSD_licenses
7.4.2   Apache License, 2.0
  • Apache Software Foundation (ASF)
  • Copyright-Notiz und Haftungsausschluss müssen erhalten bleiben
  • Kein Copyleft, d.h. Änderungen müssen nicht freigegeben werden
  • Freie, open-source und proprietäre Software möglich
  • kompatibel mit GPL 3 (ab 2.0)
  • optionale NOTICE Textdatei
  • http://www.apache.org/licenses/LICENSE-2.0
7.4.3   MPL Lizenz, 2.0
  • Schwaches Copyleft; zwischen GNU Lizenzen und Apache Lizenz.
  • Quelltextdateien können individuell unter MPL oder anderer Lizenz stehen.
  • Covered Software / larger work
7.4.4   GNU General Public License (GPL)
7.4.5   GNU Lesser General Public License 1.1 (LGPL)

7.5   Patente

  • Patentierte Software: Schutz der durch den Programmcode realisierten Funktion. Vgl. mit Urheberrecht: Schutz des Wortlautes des Programmes.

    Früher: Patente sollten der Gesellschaft nützlich sein.

  • Software war lange Zeit nicht patentierbar, das soll sich aber ändern im Rahmen der Harmonisierung des europäischen Urheberrechts. Patentierbar waren lediglich Erfindungen (Erst-Umsetzungen), die ein Software-Programm enthalten.

  • Registriert werden Patente beim Deutschen Patent und Markenamt (http://www.dpma.de/).

  • Das Patentgesetz (PatG): siehe den Gesetzestext auf https://www.jusline.de

  • Gefahr für Open-Source:

    Allein der Patentinhaber ist befugt, die patentierte Erfindung zu benutzen, über sie zu verfügen und über ihre Verwertung zu entscheiden.

    Es ist jedem Dritten verboten, ohne Zustimmung des Patentinhabers das patentierte Erzeugnis oder Verfahren herzustellen, anzubieten, in Verkehr zu bringen oder zu gebrauchen oder zu den genannten Zwecken entweder zu importieren oder zu besitzen (vgl. § 9 PatG; Art. 64 EPÜ). Alle denkbaren Nutzungsalternativen stehen allein dem Patentinhaber zu.

  • Triviale Patente vs. ehrliche Patente

    • Trivial: Fortschrittsbalken, for-Schleife, Mauszeiger, one-click (Amazon), ...
    • Ehrlich: MP3 Kodierungsalgorithmus
    • GIF
  • Die GPL v3 enthält einen Absatz, der sich auf Software-Patente bezieht.

  • Rolle der europäischen Kommission

    ssp-732-121.jpg

    Petition: Stopp von Software-Patentierung in Europa

  • Literatur

7.6   Neuordnung des digitalen Eigentums

Stichpunkte

  • Neu: Kollektive Produktion, digitale Distribution

  • Neoliberalismus

  • Strukturwandel von der Industrie- zur wissensbasierten Gesellschaft. Wissen als vierter Produktionsfaktor neben Arbeit, Boden und Kapital (Jean Fourastie).

  • Doppelrolle der Information: Als handelbares Gut dürfen Informationen nicht frei verfügbar sein, sonst würde niemand dafür zahlen wollen. Andererseits müssen Informationen frei verfügbar sein, damit vollständig informierte Individuen frei entscheiden können, wie es Angebot und Nachfrage verlangt. In ähnlicher Weise schaffen die durch Patente und Urheberrechte gewährten Monopole Asymmetrien, die den Wettbewerb behindern.

  • Reform des Urhebergesetzes: Richtlinie zur Harmonisierung bestimmter Aspekte des Urheberrechts und der verwandten Rechte in der Informationsgesellschaft

    Vorbild USA:

11   Das Open-Source Prinzip in anderen Bereichen

Hier sind ein paar Beispiele für "open source" ausserhalb der Software-Entwicklung:

12   Literatur

[AOSABOOK] Amy Brown, Gregory Wilson, The Architecture of Open Source Applications, http://aosabook.org/en/index.html

[BIANCUZZI] Federico Biancuzzi, Shane Warden, Masterminds of Programming, O'Reilly 2009. http://proquest.safaribooksonline.com/book/-/9783868993288

Deutsch: Visionäre der Programmierung - Die Sprachen und ihre Schöpfer http://proquest.safaribooksonline.com/book/software-engineering-and-development/9780596801670

[BOSTIC] Keith Bostic, Marshall Kirk McKusick, Michael J. Karels, Berkeley UNIX Yesterday, Today and Tomorrow, Computer Systems Research Group, University of California, Berkeley (frei im Internet).

[CHEEK] Martin Cheek, Feudaler Abschied. Die Geschichte des Berkeley-Unix, iX 9/1992, S. 72-74.

[FOGEL] Karl Fogel, Producing Open Source Software. How to Run a Successful Free Software Project, O'Reilly 2005, 302 pages. Das Buch erschien unter der Creative Commons Attribution-ShareAlike Lizenz und ist somit auch frei erhältlich.

http://producingoss.com

[FREYERMUTH] Gundolf S. Freyermuth, Aus der Open-Source Geschichte lernen, Teil 1 und Teil 2. c't 20 und 21, 2001.

[FRITSCH] Lothar Fritsch, Die Geschichte des Personal Computers, Seminar Geschichte der Informatik, Uni Saarbrücken, 1992.

http://www.klammeraffe.org/~fritsch/uni-sb/fsinfo/Papers/PC/PC.html

[GAFFIN] Adam Gaffin, Jörg Heitkötter, EFF's (Extended) Guide to the Internet, 1994. Diesen Text hat die Electronic Frontier Foundation publiziert (netguide.txt).

[GILLIES] James Gillies, Rober Cailliau, How The Web Was Born, Oxford Press 2000.

[GOLDHABER] Michael H. Goldhaber: Napster und das Feudalrecht, c't 23 2000, S. 311 - 314.

http://www.heise.de/tp/deutsch/kolumnen/gol/8828/1.html

[GOODHEART] Berny Goodhart, James Cox, The Magic Garden Explained. The Internals of Unix System V Release 4, Prentice Hall 1993.

[GRASSMUCK] Volker Grassmuck, Freie Software zwischen Privat- und Gemeineigentum, Bundeszentale für politische Bildung. Dieses Buch gibt es auch als kostenlose PDF-Datei unter dem URL http://freie-software.bpb.de.

[HAAR] Tobias Haar, Was Softwareentwickler über das Urheberrecht wissen müssen, iX, 6/2010.

https://www.heise.de/resale/artikel/Uebertragbar-1047771.html

[HAFNER] Katie Hafner, Matthew Lyon, Where Wizards Stay up Late. The Origins of the Internet, Touchstone Books, 1998.

[LESSIG] Larry Lessig, Free Culture, http://www.free-culture.cc, http://www.freeculture.org.

[LEVY] Steven Levy, Hackers. Heroes of the Computer Revolution. Penguin Books. Teile des Buches kann man hier nachlesen:

http://en.wikipedia.org/wiki/Hackers:_Heroes_of_the_Computer_Revolution

[MOODY] Glyn Moody, Rebel Code. Inside Linux and the Open-Source Revolution, Perseus Publishing 2001.

[MCKUSICK] Marshal Kirk McKusick, Twenty Years of Berkeley Unix. From AT&T-Owned to Freely Redistributable, in: Voices from the Open Source Revolution, O'Reilly 1999.

http://oreilly.com/openbook/opensources/book/kirkmck.html

[OSSDATA] http://elk.informatik.hs-augsburg.de/oss

[QUARTERMAN] John S. Quarterman, Abraham Silberschatz, James L. Peterson, 4.2BSD and 4.3BSD as Examples of the UNIX System, Computing Surveys, Vol. 17, No. 4, December 1985, Department of Computer Science, University of Texas, Austin, 41 Seiten.

[RAYMOND1] Eric S. Raymond. A Brief History of Hackerdom Eine 9-seitige Einführung in die Geschichte des Computerhackens. Vom MIT Eisenbahnclub bis zum World Wide Web.

http://www.catb.org/~esr

[RAYMOND2] Eric S. Raymond, The Cathedral and the Bazaar

http://www.catb.org/~esr

[RAYMOND3] Eric S. Raymond, Homesteading the Noosphere, 1998.

Abstract: I anatomize a successful open-source project, fetchmail, that was run as a deliberate test of some surprising theories about software engineering suggested by the history of Linux. I discuss these theories in terms of two fundamentally different development styles, the cathedral model of most of the commercial world versus the bazaar model of the Linux world. I show that these models derive from opposing assumptions about the nature of the software-debugging task. I then make a sustained argument from the Linux experience for the proposition that given enough eyeballs, all bugs are shallow, suggest productive analogies with other self-correcting systems of selfish agents, and conclude with some exploration of the implications of this insight for the future of software.

http://www.catb.org/~esr

[RAYMOND4] Eric S. Raymond, The Magic Cauldron, 1999.

Abstract: This paper analyzes the evolving economic substrate fo the open-source phenomenon. We first explode some prevalent myths about the funding of program development and the price structure of software. We present a game-theory analyis of the stability of open-source cooperation. We present nine models for sustainable funding of open-source development; two non-profit, seven for-profit. We continue to develop a qualitative theory of when it is economically rational to be closed. We then examine some novel addition mechanisms the market is now inventing to fund for-profit open-source development, including the reinvention of the patronage system and task markets. We conclude with some tentative predicitons of the future.

http://www.catb.org/~esr

[RITCHIE] Dennis M. Ritchie, The Evolution of the Unix Time-Sharing System, Bell Laboratories Technical Journal 63 No. 6 Part 2, October 1984 (frei im Internet).

[SIETMANN] Richard Sietmann, Wissen ist Geld. Urheberschutz, 'Geistiges Eigentum' und die Rechteverwerter, c't 24 2002, S. 108-117.

http://www.heise.de/ct/artikel/Wissen-ist-Geld-288570.html

[SPIELKAMP] Matthias Spielkamp, Wem gehört das Recht?

http://www.brandeins.de/magazin/2004-und-weiter/wem-gehoert-das-recht.html

[TEACHING] Greg DeKoenigsberg, etal., Teaching Open Source, Practical Open Source Software Exploration

http://teachingopensource.org

[TORVALDS] Linus Torvalds, David Diamond: Just for Fun. Wie ein Freak die Computerwelt revolutionierte, Hanser Verlag.

[TOSW] Redhat, The Open Source Way (TOSW). Creating and nurturing communities of contributors

http://theopensourceway.org

[VOICES] Open Sources: Voices from the Open Source Revolution, O'Reilly, January 1999, 280 pages.

http://www.oreilly.com/catalog/opensources/book/toc.html

[WILLIAMS] Sam Williams, Free as in Freedom, O'Reilly, March 2002. Das Buch findet man Online unter http://www.oreilly.com/openbook/freedom

OssGliederung (last edited 2020-04-08 13:56:30 by HubertHoegl)

|| Kontakt