... Öffnet in einem neuen Tab
  •    EN
  • Open Source

    Open Source (quelloffene Software, Software mit offenem Quellcode) bezeichnet ein Modell zur Entwicklung und Verbreitung von Software, bei dem der Quellcode eines Programms zur Einsicht, Analyse, Änderung und Weiterverbreitung gemäß den Bedingungen der jeweiligen Lizenz zugänglich ist. Die konkreten Rechte und Einschränkungen werden durch die Open-Source-Lizenz festgelegt, unter der das Projekt veröffentlicht wird.

    Offener Quellcode ermöglicht es Entwicklern, die Funktionsweise eines Programms zu untersuchen, es an eigene Anforderungen anzupassen, Fehler zu finden und sich an der Weiterentwicklung des Projekts zu beteiligen. Open Source bedeutet jedoch nicht, dass keine Urheberrechte bestehen: Die Software bleibt geistiges Eigentum und darf nur im Rahmen der jeweiligen Lizenz genutzt werden.

    Was ist Quellcode?

    Quellcode (Source Code) ist der von Entwicklern in einer Programmiersprache geschriebene Text eines Programms. Er enthält Befehle, Algorithmen, Datenstrukturen und weitere Informationen, die die Funktionsweise einer Anwendung bestimmen.

    Bei vielen Programmiersprachen wird der Quellcode vor der Ausführung in eine Form umgewandelt, die vom Computer ausgeführt werden kann. Nutzer proprietärer Software erhalten in der Regel eine fertige Anwendung, haben jedoch keinen Zugriff auf deren Quellcode.

    Bei Open-Source-Projekten wird der Code veröffentlicht und kann von anderen Entwicklern eingesehen und analysiert werden. Häufig werden dafür öffentliche Repositories und Versionskontrollsysteme wie Git verwendet.

    Grundprinzipien von Open Source

    Die bloße Verfügbarkeit des Quellcodes reicht nicht aus, damit Software als Open Source gilt. Entscheidend sind die Rechte, die durch die jeweilige Lizenz eingeräumt werden.

    Open-Source-Lizenzen erlauben im Allgemeinen:

    • den Zugriff auf den Quellcode;
    • die Nutzung des Programms für unterschiedliche Zwecke;
    • die Untersuchung seiner Funktionsweise;
    • die Änderung des Quellcodes;
    • die Erstellung eigener Versionen des Programms;
    • die Weiterverbreitung der ursprünglichen oder modifizierten Software unter Einhaltung der Lizenzbedingungen.

    Beispielsweise darf ein Unternehmen eine quelloffene Bibliothek an die eigenen Anforderungen anpassen und die geänderte Version weitergeben, sofern es die Bedingungen der Lizenz einhält.

    Die Anforderungen unterscheiden sich je nach Lizenz. Einige Lizenzen erlauben beispielsweise die Integration von offenem Code in proprietäre Produkte, während andere verlangen, dass bei der Weiterverbreitung einer abgeleiteten Version deren Quellcode unter kompatiblen Bedingungen zur Verfügung gestellt wird.

    Open Source und kostenlose Software

    Open Source ist kein Synonym für kostenlose Software. Das wesentliche Merkmal quelloffener Software ist nicht ihr Preis, sondern der Zugang zum Quellcode und die durch die Lizenz eingeräumten Rechte.

    Open-Source-Software kann kostenlos verbreitet oder verkauft werden. Unternehmen können außerdem Einnahmen durch technischen Support, Cloud-Services, Implementierung, die Entwicklung zusätzlicher Funktionen und andere Dienstleistungen erzielen.

    Kostenlose Software (Freeware) ist dagegen nicht zwangsläufig Open Source. Ein Entwickler kann die kostenlose Nutzung einer Anwendung erlauben, den Quellcode jedoch geschlossen halten und dessen Änderung oder Weiterverbreitung untersagen.

    Open Source und proprietäre Software

    Proprietäre Software (Proprietary Software) wird unter den vom Rechteinhaber festgelegten Bedingungen verbreitet und gewährt Nutzern in der Regel weder Zugang zum Quellcode noch das Recht, das Programm frei zu verändern.

    Die wichtigsten Unterschiede lassen sich wie folgt zusammenfassen:

    • Open Source – der Quellcode ist zugänglich und die Lizenz gewährt Rechte zu seiner Nutzung, Untersuchung, Änderung und Weiterverbreitung.
    • Proprietäre Software – der Quellcode ist in der Regel nicht öffentlich zugänglich, während Nutzung und Änderungen durch die Lizenz des Rechteinhabers eingeschränkt werden.
    • Freeware – die Software kann kostenlos genutzt werden, ihr Quellcode kann jedoch geschlossen bleiben.
    • Source-available – der Quellcode kann eingesehen werden, die Lizenz kann jedoch Einschränkungen enthalten, aufgrund derer die Software nicht den Open-Source-Kriterien entspricht.

    Beispielsweise kann ein Anbieter den Code seines Produkts auf einer öffentlichen Plattform veröffentlichen, dessen kommerzielle Nutzung durch Dritte jedoch untersagen — solche Software gilt als source-available, nicht als Open Source.

    Die Veröffentlichung des Quellcodes allein macht ein Projekt somit noch nicht zu Open-Source-Software.

    IT-Sicerheit Dienstleister

     

    Open-Source-Lizenzen

    Die Bedingungen für die Nutzung quelloffener Software werden durch die jeweilige Lizenz festgelegt. Open-Source-Lizenzen werden üblicherweise in zwei große Gruppen unterteilt.

    Permissive Lizenzen sehen vergleichsweise wenige Einschränkungen für die Nutzung und Weiterverbreitung des Codes vor. Dazu gehören:

    • MIT License;
    • BSD-Lizenzen;
    • Apache License 2.0.

    Beispielsweise kann Code unter der MIT License in einem kommerziellen Produkt verwendet werden, sofern der Urheberhinweis und der Lizenztext erhalten bleiben.

    Solche Lizenzen erlauben in der Regel auch die Verwendung des Codes in kommerziellen und proprietären Produkten, sofern die jeweiligen Lizenzbedingungen eingehalten werden.

    Copyleft-Lizenzen verlangen unter bestimmten Voraussetzungen, dass abgeleitete Werke ebenfalls offen bleiben. Das bekannteste Beispiel ist die GNU General Public License (GPL).

    Die Bedingungen einer konkreten Lizenz müssen jeweils gesondert geprüft werden: Verschiedene Lizenzen stellen unterschiedliche Anforderungen an Weiterverbreitung, Urheberhinweise, Veröffentlichung von Änderungen und Kompatibilität mit anderem Code.

    Wie werden Open-Source-Projekte entwickelt?

    Ein Open-Source-Projekt kann von einem einzelnen Entwickler, einer Community, einer gemeinnützigen Organisation oder einem kommerziellen Unternehmen entwickelt werden.

    Der Code wird üblicherweise in einem Repository eines Versionskontrollsystems gespeichert. Beteiligte können Fehler melden, Änderungen vorschlagen, Dokumentation erstellen und neue Versionen überprüfen.

    Ein typischer Ablauf kann folgendermaßen aussehen:

    • Ein Entwickler erstellt eine Kopie des Projekts oder einen separaten Branch.
    • Er nimmt Änderungen am Quellcode vor.
    • Er reicht einen Vorschlag ein, die Änderungen in das Hauptprojekt zu übernehmen.
    • Die zuständigen Entwickler überprüfen den Code.
    • Nach der Prüfung wird die Änderung übernommen oder zur Überarbeitung zurückgegeben.

    Beispielsweise kann ein Entwickler eine Fehlerkorrektur als Pull Request einreichen, die von den Projektverantwortlichen geprüft und erst danach in die Hauptversion übernommen wird.

    Die Möglichkeit, den Code einzusehen, bedeutet dabei nicht, dass jeder Nutzer die offizielle Version des Projekts unmittelbar verändern kann. Die Regeln für die Übernahme von Änderungen werden von den Projektverantwortlichen und dem jeweiligen Governance-Modell bestimmt.

    Beispiele für Open Source

    Open-Source-Software wird in nahezu allen Bereichen der IT eingesetzt. Bekannte Beispiele sind:

    • Linux Kernel – der Kernel von Linux-Betriebssystemen;
    • Kubernetes – eine Plattform zur Container-Orchestrierung;
    • PostgreSQL – ein Datenbankmanagementsystem;
    • Apache HTTP Server – ein Webserver;
    • Nginx – ein Webserver und Reverse Proxy mit einer quelloffenen Version;
    • Git – ein verteiltes Versionskontrollsystem;
    • LibreOffice – eine Office-Suite;
    • Blender – Software zur Erstellung von 3D-Grafiken.

    Beispielsweise läuft ein erheblicher Teil der Serverinfrastruktur im Internet auf einer Kombination aus Linux, Nginx und PostgreSQL — alle drei sind Open-Source-Projekte.

    Auf Basis von Open-Source-Komponenten werden außerdem zahlreiche kommerzielle Produkte und Cloud-Services entwickelt.

    Vorteile von Open Source

    Das offene Entwicklungsmodell kann Nutzern und Unternehmen verschiedene Vorteile bieten:

    • Möglichkeit, den Quellcode einzusehen und zu überprüfen;
    • Möglichkeit, Software an eigene Anforderungen anzupassen;
    • geringere Abhängigkeit von einem einzelnen Anbieter oder Entwickler;
    • Möglichkeit, Fehler selbst zu beheben oder Anpassungen durch Dritte vornehmen zu lassen;
    • Beteiligung einer Community an der Weiterentwicklung des Projekts;
    • Möglichkeit, offene Komponenten in eigene Lösungen zu integrieren;
    • Transparenz der verwendeten Softwaremechanismen.

    Beispielsweise kann ein Unternehmen eine benötigte Funktion selbst entwickeln, anstatt auf die Roadmap eines Anbieters zu warten.

    Die Verfügbarkeit des Quellcodes allein garantiert jedoch weder die Qualität und Sicherheit der Software noch eine aktive Weiterentwicklung des Projekts.

    Einschränkungen und Risiken von Open Source

    Open-Source-Projekte unterscheiden sich erheblich hinsichtlich ihres Reifegrads, der Qualität ihrer Dokumentation und der Aktivität ihrer Entwickler. Einige werden von großen Unternehmen und zahlreichen Mitwirkenden unterstützt, andere hängen faktisch von wenigen Entwicklern ab.

    Beim Einsatz quelloffener Software sollten folgende Aspekte berücksichtigt werden:

    • Verfügbarkeit regelmäßiger Sicherheitsupdates;
    • Aktivität der Entwickler und der Community;
    • Qualität der Dokumentation;
    • Kompatibilität mit der bestehenden Infrastruktur;
    • Lizenzbedingungen;
    • Verfügbarkeit professionellen technischen Supports;
    • Risiken durch Abhängigkeiten von Drittanbieter-Komponenten.

    Beispielsweise kann eine kaum gepflegte Bibliothek, die tief in einer Anwendung verankert ist, zu einem Sicherheitsrisiko werden, wenn Schwachstellen nicht mehr behoben werden.

    Für den Einsatz in Unternehmensinfrastrukturen wird Open-Source-Software daher nicht nur nach ihrem Funktionsumfang bewertet, sondern auch hinsichtlich des Lebenszyklus des Projekts, seiner Sicherheit und der Möglichkeit einer langfristigen Unterstützung.

    FAQ

    Open Source bezeichnet ein Modell zur Verbreitung von Software, bei dem der Quellcode zugänglich ist und die Lizenz den Nutzern bestimmte Rechte zu seiner Nutzung, Untersuchung, Änderung und Weiterverbreitung einräumt.
    Nein. Quellcode kann ausschließlich zur Einsicht veröffentlicht werden und gleichzeitig Einschränkungen unterliegen, die mit den Open-Source-Prinzipien nicht vereinbar sind. Solche Software wird häufig als source-available bezeichnet.
    Die meisten Open-Source-Lizenzen erlauben die kommerzielle Nutzung. Die konkreten Bedingungen hängen jedoch von der jeweiligen Lizenz ab. Daher sollten deren Anforderungen vor der Nutzung und Weiterverbreitung der Software geprüft werden.
    Nicht zwangsläufig. Die Möglichkeit, den Quellcode einzusehen, erlaubt unabhängigen Experten, nach Schwachstellen zu suchen. Die Offenheit allein garantiert jedoch keine Sicherheit. Diese hängt unter anderem von der Entwicklungsqualität, der Codeprüfung, der Geschwindigkeit bei der Behebung von Schwachstellen und der kontinuierlichen Pflege des Projekts ab.

    Füllen Sie den Antrag aus und warten Sie auf einen Anruf unserer Spezialisten