Christian Galetzka - Praxishandbuch Open Source

Здесь есть возможность читать онлайн «Christian Galetzka - Praxishandbuch Open Source» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: unrecognised, на немецком языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Praxishandbuch Open Source: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Praxishandbuch Open Source»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Dieses Praxishandbuch erläutert die legalen Voraussetzugen für einen Einsatz von «Free and Open Source Software» (FOSS) in der Unternehmenspraxis, sei es bei der Entwicklung eigener wie beim Einkauf fremder Software, sei es auch bei intelligenten Geräten. Bedingungen aus Lizenztexten der 90er Jahre für Programmiersprachen der 80er Jahre in Steuergeräten der Zukunft gefährden die Timelines aktueller Projekte; die Lösung damit verbundener Probleme erfordert gleichzeitig technisches wie rechtliches Verständnis. Das Praxishandbuch Open Source stellt alle notwendigen Materialien für einen lizenzkonformen Einsatz von Open-Source-Software zusammen, bietet praktische Lösungen an und hilft, einen Compliance-Prozess zu etablieren und den lizenzkonformen Einsatz von FOSS zu meistern.

Praxishandbuch Open Source — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Praxishandbuch Open Source», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

3. Juristen müssen diese Verlinkung verstehen

103

– Für das Auslösen eines Copyleft kommt es auf die Verbindungen des FOSS Code mit eigenen Programmbestandteilen an.

– Daher sollte die konkrete Art der Verlinkung (statisch, dynamisch oder andere Formen der Interaktion von Code) ermittelt und korrekt anhand der Lizenzvorgaben eingeordnet werden.

– Die Art der Verlinkung von FOSS mit eigenen Programmbestandteilen ist abhängig von der verwendeten Programmiersprache, da nicht alle Programmiersprachen alle Arten der Verlinkung zulassen.

104

Zahlreiche FOSS Lizenzen – insbesondere solche mit einem beschränkten Copyleft – knüpfen unterschiedliche Anforderungen und Konsequenzen an den Einsatz der jeweiligen FOSS Komponente, je nachdem wie diese mit dem übrigen, meist proprietären Code der Software interagiert. Es kommt dabei in der Regel darauf an, wie stark die FOSS Komponente in die eigene Software eingebunden wird. Wir sprechen hier von statischer oder dynamischer Verlinkung, um zu beschreiben, wie eng die FOSS Komponente mit proprietärem Code verbunden ist. Um diese Differenzierung besser nachvollziehen zu können, möchten wir an dieser Stelle zum einen erklären, wie wir die Begriffe der statischen und dynamischen Verlinkung grundsätzlich verstehen und in diesem Buch Bezug darauf nehmen. Zum anderen soll kurz dargestellt werden, wie sich die unterschiedlichen Arten der Verlinkung in diversen Programmiersprachen manifestieren können. Denn je nachdem, in welcher Programmiersprache die jeweilige Software geschrieben wurde, kommen bereits nur bestimmte Arten der Verlinkung überhaupt in Frage bzw. wird der Begriff der Verlinkung möglicherweise anders genutzt und kann so zu Missverständnissen führen.

a) Statische vs. dynamische Verlinkung

105

Zunächst betrachten wir einmal grundsätzlich die Verlinkung von Software-Bestandteilen. Bei einer Verlinkung handelt es sich um eine Verbindung zweier Software-Bestandteile, so dass diese – ggf. noch mit mehreren anderen Software-Komponenten – ein komplettes Programm bilden. Eine solche Verbindung ist auf verschiedene Weisen möglich, je nachdem wie eng die beiden Software-Bestandteile dabei miteinander verknüpft werden. In der Regel wird hier nach statischer und dynamischer Verlinkung unterschieden.

106

Unter einer statischen Verlinkungversteht man allgemein eine feste Verbindung von zwei Software-Komponenten. Hier wird bei der Erstellung des Programms durch Kompilieren die FOSS Komponente mittels des Linkers mit dem restlichen (proprietären) Code der Software zu einer einzigen Datei zusammengefügt.22 Im Anschluss an den Kompilierprozess existiert daher nur noch ein ausführbares Programm, in dem sowohl der eigene Programmcode als auch der Code der verwendeten FOSS – oder anderer Software-Komponenten – als eine Einheit enthalten sind. Auf diese Weise ist die FOSS Komponente untrennbar mit dem restlichen Code verbunden, so dass hier im Nachhinein die FOSS Komponente weder entfernt oder ausgetauscht werden kann.

107

Eine dynamische Verlinkungist dagegen eine lose Verbindung zwischen zwei Software-Komponenten. Die beiden Software-Komponenten werden hierbei bei der Kompilierung nicht durch den Linker zu einem einzigen gemeinsamen Programm zusammengefügt, sondern bleiben weiterhin als einzelne Bestandteile bestehen. Die proprietäre Software greift hier erst zur Laufzeit – also im Zeitpunkt der Ausführung des Programms – auf die FOSS Komponenten und deren Funktionen zu.23 Dies ermöglicht es, die FOSS Komponente auch im fertigen Programm noch zu entfernen oder zu ersetzen.

108

Backup:Für den Anfang mag ein grundsätzliches Verständnis dafür genügen, was dynamische Verlinkung bedeutet. Nämlich eine Verbindung zweier Software-Komponenten, die es ermöglicht, eine der Komponenten auch später auszutauschen (z.B. gegen eine neuere Version der Komponente oder gegen eine an die eigenen Bedürfnisse angepasste Komponente).

Die konkreten technischen Anforderungen an eine dynamische Verlinkung– so wie sie beispielsweise auch von der LGPL-2.1 ausdrücklich vorausgesetzt werden – zu kennen, ist aber relevant, um den konkreten Einsatz einer Software auf Lizenzkonformität zu überprüfen und sicherzustellen, dass der Copyleft Effekt sich nicht auf eigene, proprietäre Bestandteile der Software auswirkt.

Im Folgenden werden daher im Überblick die konkreten technischen Anforderungen an eine dynamische Verlinkung dargestellt, so wie sie von der LGPL-2.1 vorausgesetzt wird. Dies sind auch die Kriterien, von denen wir ausgehen, wenn wir in diesem Buch auf eine dynamische Verlinkung Bezug nehmen:

– Die FOSS Komponente bleibt als eigenständiges File im File System identifizierbar,

– sie interagiert nur über Standardschnittstellen mit anderer (insbesondere proprietärer) Software

– und ist zumindest theoretisch, wenn auch mit einigem Aufwand, durch den Nutzer austauschbar.

109

Die Unterscheidung der dynamischen und statischen Verlinkung für die FOSS Compliance beruht hauptsächlich auf der LGPL, da diese Lizenz spezielle Ausnahmen für eine dynamische Einbindung von unter der LGPL stehenden Programmteilen (hauptsächlich Bibliotheken) enthält. Dabei enthält die LGPL jedoch an keiner Stelle den Begriff der dynamischen Verlinkung, sondern lediglich eine Beschreibung der Voraussetzungen für eine zulässige Einbindung (siehe Rn. 108). Die LGPL hat damit zwar die Voraussetzungen der dynamischen Verlinkung, nicht aber den konkreten Begriff geprägt. Dieser wurde vielmehr durch die Anwender geprägt.

b) So linken die verschiedenen Programmiersprachen

110

Als nächstes betrachten wir nun, wie diese Arten der Verlinkung sich in der Praxis in diversen gängigen Programmiersprachen manifestieren. Denn je nachdem, welche Programmiersprache vorliegt, sind verschiedene Arten der Verlinkung möglich.

111

Programmiersprachen sind formale Sprachen, mit denen Datenstrukturen und Algorithmen, also Rechenvorschriften, formuliert werden können, die dann von einem Computer ausgeführt werden können. Sie folgen dabei einem bestimmten Regelsystem, nach dem die unterschiedlichen Anweisungen an den Computer formuliert werden können.24 Es existieren zahlreiche Programmiersprachen, die alle ihre eigenen Anwendungsgebiete haben. Hier wollen wir einige der gängigsten Sprachen vorstellen und zeigen, wie sich in diesen die Verbindung von einzelnen Programmbestandteilen unterscheiden kann.

aa) C und C++

112

Programmiersprachen, die sowohl statische als auch dynamische Verlinkungen einzelner Programmteile zulassen, sind beispielsweise Csowie die darauf aufbauende Programmiersprache C++. Die Anwendungsbereiche dieser beiden Programmiersprachen sind groß, da sowohl C als auch C++ jeweils für System- und Anwenderprogrammierung verwendet werden können. Daher tauchen diese Programmiersprachen im Bereich der FOSS auch häufig auf. In C, C++ oder anderen Programmiersprachen dieser Art, können FOSS und andere Software-Komponenten entweder mittels des Linkers bei der Kompilierung statisch mit dem restlichen Programmcode verbunden werden. Es ist aber auch möglich, mittels einer entsprechenden Schnittstelle dafür zu sorgen, dass andere, separat kompilierte FOSS und Software-Komponenten erst während der Laufzeit durch das eigene Programm aufgerufen werden.25

bb) Python

113

Eine weitere Programmiersprache, die grundsätzlich sowohl statische als auch dynamische Verlinkungen zulässt, ist Python. Ähnlich wie bei C handelt es sich hier ebenfalls um eine Programmiersprache, die sehr vielseitig einsetzbar ist, da sie mehrere Paradigmen der Programmierung unterstütz. Die meisten Python Distributionen basieren auf dynamischen Verlinkungen. Es stehen viele eigenständige Libraries zur Verfügung, auf die im eigenen Code referenziert und deren Funktionalität dann während der Laufzeit aufgerufen werden kann. Diese Libraries werden von dem System bereitgestellt, auf dem Python läuft (dies kann z.B. das Linux Betriebssystem sein). Python ermöglicht es aber auch, entsprechend benötigte Libraries statisch einzubinden. Dabei steht der Code der verwendeten Library dann nicht mehr separat auf dem System zur Verfügung, sondern wird direkt zusammen mit dem übrigen Python Code mittels des Linkers zu einer einzigen Binärdatei zusammengefügt.26

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Praxishandbuch Open Source»

Представляем Вашему вниманию похожие книги на «Praxishandbuch Open Source» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Praxishandbuch Open Source»

Обсуждение, отзывы о книге «Praxishandbuch Open Source» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x