Infos zu Open-Source-Software
|
|
Das Konzept von Open-Source-Software
In der Anfangszeit der Rechnertechnik war fast alle Software in ihren Quellen zugängig, bedingt durch den begrenzter Kreis der Benutzer aber i.a. nur wenigen bekannt. Beispielhaft seien hier genannt die in Filme gestanzten Programmcodes zur Programmierung der von K. Zuse entwickelten Computer von denen die Z3, deren Nachbau im Detschen Museum in München zu sehen ist, die wohl bekannteste ist. Software zur Steuerung von Eniac, Colossos und weiteren Computern der 40er und 50er Jahre war ebenfalls für jeden Bediener zwar einsehbar, aber aufgrund ihrer maschinennahen Codierung i.a. einen Abfolge nicht nachvollziehbarer Programmschritte.
Betriebssysteme der 60er und 70 Jahre, konzipiert für spezielle Rechnergenerationen der kommerziellen Datentechnik war und ist i.a. hochkomplex und wurde und wird von den marktführenden Firmen den Kunden nicht im Quelltext bekannt gegeben. Ebensolches gilt für die Betriebssysteme der Personalcomputer (PC), die in den 80er Jahren auf den Markt drängten.
Offene Software entwickelte sich auf der Basis der Automatisierung von Betriebssystemfunktionen durch sogenannte Stapelverarbeitungsdateien (Batch-Files) und shell-Scripte. Auf dieser Ebene entstanden eine große Zahl von kleinen Programm-Paketen, mit denen sich ständig wiederkehrende Abläufe elegant automatisieren liessen.
Mit der in PC-Systemen vielfach zum Lieferumfang gehörenden Programmiersprache Basic konnten zeilenorientierte Programme geschrieben werden. Diese wurden zur Laufzeit des Programms interpretiert und wurden im Quelltext gespeichert.
Batch-Dateien, shell-Scripte, Basic Programme sind in vielen Computer-Zeitschriften, Computer-Büchern und über Mail-Box-Systeme verbreitet und bekannt gemacht worden. Lösungen einzelner Autoren konnten nachvollzogen werden und ggf. nach eigenen Wünschen und Vorstellungen und Anforderungen angepasst werden.
Programme, die mit höheren Programmiersprachen entwickelt wurden, werden in Binärcode übersetzt (compiliert) und dabei für die jeweilige Zielplattform optimiert. Mit der Weitergabe bzw. dem Verkauf der (übersetzten) Programme ist i.a. nicht der Erwerb des Quellcodes verbunden. Da die Compilierung ein im wesetlichen irreversibler Prozeß ist, kann aus dem Binärcode allenfalls mit grossen Anstrengungen der zugrundeliegende Quelltext rekonstruiert werden. Erläuternde Kommentare, die vor der Compilierung automatisch vom Compiler entfernt wurden, sind somit nicht rekonstruierbar und die Lesbarkeit eines solchen recompilierten Quellcodes ist entsprechend beschwerlich.
Die Kommerzialisierung von Software ist neben dem verständlichen Wunsch als Eigentümer einer Idee oder Eigentümer der Lösung einer Programmierungs-Aufgabe eine der Ursachen für den "Verschluss" der Programmquelltexte.
Freie Software verfolgt einen anderen Ansatz.
Das Betriebssystem Unix spielt eine zentrale Rolle bei der Entwicklung freier Software. Unix sollte aus kleinen, effizienten, einfachen Werkzeugen bestehen, die miteinander bekliebig kombiniert werden können um komplexe Aufgabenstellungen zu erledigen. Eine Forderung bei der Entwicklung von Unix lautete, dass dieses System auf unterschiedlichen Plattformen einsetzbar sein sollte. Erreicht wurde dieses durch die von Dennis Ritchie neu entwickelte Programmiersprache C.
Der Quellcode von Unix wurde zum Selbstkostenpreis an Universitäten weitergegeben, von Informatikern studiert und weiterentwickelt. Bei Studium und Analyse der Quelltexte wurden verschiedentlich Fehler aufgedeckt, eigene Ideen eingebaut und das System damit weiterentwickelt. Parallel dazu entstand der Vorläufer des Internet und Unix fand damit eine entsprechende Verbreitung und die Computer wandelten sich von einer Rechen- zu einer Kommunikationsmaschine.
Der frei verfügbare Quelltext des Betriebsystems führte zu unterschiedlichen Weiterentwicklungen (Sinix, Minix, ...); zu erwähnen ist hier die Aufforderung des Finnen Linus Torvalds, der 1991 mit einer Frage im Internet die Entwicklung von Linux anstiess.
Quelloffene Software ist die ideale Grundlage für eine maßgeschneiderte Anpassung. Die Wiederverwendung von Modulen und deren Weiterentwicklung ist die Stärke dieses Ansatzes. Nicht jede Teilaufgabe ist neu zu lösen, in Code zu fassen und zu testen. Gleichzeitig entsteht durch die individuelle Weiterentwicklung ind Anpassung ein Mehrwertmarkt, an dem viele partizipieren können. Neben den Programmier- und Entwickleraufgaben netstehen neue Aufgabenfelder im Bereich der Dokumentation und Schulung für neue Leistungsmerkmale der Programme.
Unter Verwendung standardisierter Software-Werkzeuge kann im Prinzip jeder kreativ in den verschiedensten Bereichen tätig werden. Ob als Programmentwickler, Buchautor, Moderator, ... direkt im Prozess der Weiterentwicklung und Weiterverbreitung von freier Software tätig oder als Anwender freier Software bei der Nutzung der vielschichtigen Anwendungen des Internet von E-Mail über News bis hin zur Gestaltung eigener Internetseiten, freie Software mit offenen Quellen ist die Basis für die gemeinsame Weiterentwicklung, die gemeinsame Kontrolle auf Fehler, die gemeinsame Nutzung standardisierter Verfahren.
Freie Software ist die Basis für eine freiheitliche Gesellschaft, jeder sollte prinzipiell nachvollziehen können, wie die Software arbeitet. Das bedeutet, dass die Software lesbar, quelloffen sein muss. Nur auf diesem Weg kann Vertrauen geschaffen werden in die Transaktionen die mittels vernetzter Rechnersysteme über das Internet stattfinden. Als ein Beispiel sei hier der neue Verschlüsselungsalgorithmus AES genannt; dessen Vorgänger DES wurde mit geheimengehaltenen Algorithmen ergänzt und ist nicht quelloffen.
Proprietäre Software-Lösungen, oft in Verbindung mit nicht genormten Datenschnittstellen, behindern den Austausch von Information sowie den Erwerb und die Verbreitung von Wissen und Know How.
"Die Notwendigkeit ist die Mutter aller Erfindungen",
Zeitschriftenartikel zum Thema
<zurück>