Christian Galetzka

Praxishandbuch Open Source


Скачать книгу

stellen den Object Code daher mit dem Binärcode gleich und stellen in der Regel identische Anforderungen an die Weitergabe im Object oder im Binärcode.

       c) Binärcode

      83

       d) Executables

      84

      85

       Backup: Erkennen von Code Formen anhand der Dateiendung

      Anhand von Dateiendungen lässt sich bereits auf den ersten Blick erkennen, um welche Art von Code es sich bei einer Datei handelt. Mit dem Blick auf die Dateiendung kann man also direkt feststellen, ob es sich um Source Code oder um ausführbare Dateien handelt. Damit sehen Sie auch auf den ersten Blick, ob sich aus der jeweiligen Datei ggf. noch weitere Informationen für die FOSS Bewertung ziehen lassen (wie Angaben zu Copyrights und Lizenzierung in den Datei-Headern von Source Code Dateien) oder ob für die vorliegende Datei ggf. andere und/oder strengere Lizenzbedingungen gelten (für den Fall, dass die Lizenz unterschiedliche Vorgaben für die Weitergabe als ausführbare Datei macht).

      Dateiendungen, die darauf hinweisen, dass es sich um Source Code handelt, sind beispielsweise .c, .h, .src oder .java. Hierbei handelt es sich jeweils um Textdateien, die Source Code oder Deklarationen zum Source Code enthalten. Auch bei Dateien, die auf .txt enden, handelt es sich um Textdateien. Solche im Code enthaltenen .txt Dateien enthalten häufig Informationen zur Lizenzierung, den Rechtsinhabern oder weitere hilfreiche Informationen zur Software (z.B. als LICENSE.txt, COPYING.txt oder README.txt).

      Bei Dateiendungen wie .html oder .js handelt es sich zwar um Dateien, die von der Maschine direkt ausgeführt werden können, bei denen aber dennoch der Source Code direkt vorliegt und – z.B. mittels eines Texteditors – betrachtet werden kann. Da hier alle Informationen für den Betrachter lesbar vorhanden sind, können diese wie Source Code behandelt werden.

      Hinsichtlich der ausführbaren Dateien und somit des Binärcodes dürfte die Dateiendung .exe wohl die bekannteste sein. Allerdings gibt es auch noch zahlreiche andere Dateiendungen, die auf Binärcode hindeuten, wie beispielsweise .dll oder .so, die auf Programmbibliotheken hindeuten, aber z.B. auch .msi, .bin oder .dat.

      Bei der Endung .jar ist die Einordnung nicht immer auf den ersten Blick möglich. Denn hierbei kann es sich entweder um eine Java-Anwendungsdatei handeln, die durch Anklicken ausgeführt werden kann, oder aber um ein Java Archiv, das mehrere Java Dateien und auch andere Dateien enthalten kann. Diese Archive können dann mittels eines Packprogramm (wie WinZip, 7-Zip, o.ä.) geöffnet werden, um zu ermitteln, welche Art von Dateien sich darin befinden.

      1 https://de.wikipedia.org/wiki/Quelltext. 2 https://en.wikipedia.org/wiki/Object_code. 3 https://de.wikipedia.org/wiki/Binärcode. 4 https://de.wikipedia.org/wiki/Ausführbare_Datei.

       2. Von welchen Tools die Entwickler sprechen

      86

       – Entwicklung und Build sind unterschiedliche Bereiche; Entwicklung betrifft die Erstellung von Code, Build den Kompilierprozess, also die Erzeugung der Executables.

       – Entwicklungsumgebungen, SDKs und Package Manager unterstützen bei der Verwaltung und Erzeugung von Code.

       – Der Compiler erzeugt aus Source Code zusammen mit einem Linker ein ausführbares Programm, das nur noch in maschinenlesbarer Form vorliegt.

      87

      Zur Erstellung von Code bzw. Software werden unterschiedliche Werkzeuge – sogenannte Programmierwerkzeuge oder Entwicklungstools – benötigt. Dabei handelt es sich um Computerprogramme, die es ermöglichen, Code zu erzeugen und diesen anschließend weiter zu be- und verarbeiten. Um besser zu verstehen, wie Software entsteht und bei welchen Entwicklungsschritten z.B. welche Formen von Code entstehen, wollen wir hier einen kurzen Überblick über die gängigen Werkzeuge zur Erstellung und Bearbeitung von Code geben, insbesondere dort, wo diese auch im Zusammenhang mit der Bewertung von FOSS relevant sein können.

      88

      Es gibt grundsätzlich unterschiedliche Herangehensweisen bei der Erstellung und Bearbeitung von Code. So können entweder einzelne Programmiertools verwendet werden, die sich der Entwickler nach Bedarf selbst zusammenstellt, oder es wird auf sogenannte Entwicklungsumgebungen zurückgegriffen, die bereits alle notwendigen Hilfsprogramme mitbringen.

IMG

       Abbildung 1: Software-Entwicklung/Build-Prozess© Jun Rechtsanwälte (CC BY-SA 4.0)

       a) Entwicklungsumgebungen und Build-Tools

      89

      Bei dem Begriff „Entwicklungsumgebung“ handelt es sich um einen Oberbegriff für unterschiedliche Arten von Hilfsmitteln zur Erzeugung und Bearbeitung von Code. So fallen unter diesen Begriff beispielsweise IT-Plattformen bzw. Systemumgebungen, auf denen Software entwickelt wird, oder Sammlungen von Computerprogrammen zur Software-Entwicklung, z.B. die sogenannten integrierten Entwicklungsumgebungen oder Software Development Kits. Der Begriff „Build-Umgebung“ bezieht sich dagegen nicht auf die Erstellung von Code, sondern den darauf folgenden Schritt, nämlich das Erzeugen von Executables. Build-Tools sind also die Programme, die beim Kompilieren eingesetzt werden.

      90

      Bei der Systemumgebung handelt es sich einfach um eine Plattform, mit der ein informationstechnisches System betrieben wird. Ein solches System hat dabei häufig einen dreistufigen Aufbau, der aus einer Entwicklungsumgebung besteht, auf der der