author: Sjoerd Takken company: Sjoerd's Computerwelten title: PresentationOpenSource subtitle: slide_theme: default slide_footer: slide_subfooter: :category: S5-slideshow Open Source, was ist dass ? ============== Open Source, Definition ----------------- Als Open Source wird Software bezeichnet, deren _Quelltext_ öffentlich und von Dritten eingesehen, geändert und genutzt werden kann. Open-Source-Software kann meistens kostenlos genutzt werden.  _<a href="https://commons.wikimedia.org/wiki/File:Opensource.svg">Open Source Initiative official SVG</a>, <a href="https://creativecommons.org/licenses/by/2.5/legalcode" rel="license">CC BY 2.5</a>_ <br> Quelltext und Binärcode ----------------- **Quelltext (Souce Code)** Quelltext oder Source Code liegt in einer für den Menschen lesbaren und verständlichen Form vor. z.B. Wenn Sjoerd großer dann 40, dann gibt es Party <pre><code>if ( Sjoerd > 40 ) { Party() } </code></pre> **Binärcode** Binärcode ist für Menschen nicht lesbar und zu verstehen, es ist aber der Code die der Computer benutzt um Applikationen auszuführen. <pre><code>0010100010010111101001010100101011</code></pre> Kompilieren ----------------- Da der Computer nur mit Binärcode arbeiten kann, braucht es ein _Umsetzung_ der Quelltext in der Binärcode. Dieses umsetzen nennt man **Kompilieren**. <svg width="500" height="200" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:se="http://svg-edit.googlecode.com" se:nonce="24486"> <!-- Created with SVG-edit - https://github.com/SVG-Edit/svgedit--> <title>Kompilieren</title> <g class="layer"> <title>Layer 1</title> <g id="svg_24486_6"> <circle cx="397.999998" cy="94.000002" fill="#FFEEEE" id="svg_24486_2" r="69.78064" stroke="#000000" stroke-width="2"/> <text fill="#000000" font-family="serif" font-size="24" id="svg_24486_4" stroke="#000000" stroke-dasharray="null" stroke-linecap="null" stroke-linejoin="null" stroke-width="0" text-anchor="middle" x="397.5" xml:space="preserve" y="100.5">Binärcode</text> </g> <g id="svg_24486_5"> <circle cx="109.5" cy="100.5" fill="#FFEEEE" id="svg_24486_1" r="72.615417" stroke="#000000" stroke-width="2"/> <text fill="#000000" font-family="serif" font-size="24" id="svg_24486_3" stroke="#000000" stroke-dasharray="null" stroke-linecap="null" stroke-linejoin="null" stroke-width="0" text-anchor="middle" x="111.5" xml:space="preserve" y="105.5">Quelltext</text> </g> <line fill="none" id="svg_24486_7" stroke="#000000" stroke-dasharray="null" stroke-linecap="null" stroke-linejoin="null" stroke-width="2" x1="207.5" x2="305.5" y1="97.5" y2="97.5"/> <line fill="none" id="svg_24486_8" stroke="#000000" stroke-dasharray="null" stroke-linecap="null" stroke-linejoin="null" stroke-width="2" x1="280.5" x2="308.5" y1="66.5" y2="96.5"/> <line fill="none" id="svg_24486_9" stroke="#000000" stroke-dasharray="null" stroke-linecap="null" stroke-linejoin="null" stroke-width="2" x1="285.500001" x2="306.5" y1="123.5" y2="99.5"/> <text fill="#007f00" font-family="serif" font-size="24" id="svg_24486_10" stroke="#000000" stroke-dasharray="null" stroke-linecap="null" stroke-linejoin="null" stroke-width="0" text-anchor="middle" x="248.5" xml:space="preserve" y="49.5">Kompilieren</text> </g> </svg> Open Source ----------------- * Die meiste kommerzielle Applikationen liefern der Quelltext nicht mit. Dadurch kann man ein Applikation nicht selbe ändern. Wenn zum Beispiel ein Fehler in die Applikation aufgetreten ist kann man diese nicht Selbst ändern. Das heißt der Software ist geschlossen oder proprietär * Open Source Applikationen müssen ihrer Quelltext veröffentlichen. Dadurch kann man ein Programm selbst anpassen oder man kann ein Applikation weiter entwickeln. * Weil der Quelltext einsehbar ist sind Open Source Applikationen Prüfbar auf bewusst eingebrachte, Nutzer-ungewollte Ablaufen, die für politische oder wirtschaftliche Spionagezwecke verwendet werden könnten. Open Source Lizenzen - Copyleft -------------------- Das Unterschied zwischen die verschiedene Open Source Lizenzen ist vor allem abhängig von dem so genannte ''Copyleft'' Der ''Copyleft'' sagt uns ob dass Programm nach Anpassungen oder Erweiterungen herausgegeben werden kann als proprietär Software oder ein Open Source Lizenz die weniger oder kein Copyleft enthält.  Open Source Lizenzen - verschiedene Lizenzen -------------------- * **GPL** Die GNU General Public License ist die wichtigste und verbreitetste Open Source Lizenz. Etwa 60 % aller Open Source Software untersteht dieser Lizenz, darunter so bekannte Programme wie Linux, Nextcloud, Wordpress und VLC-Mediaplayer. Die GPL ist das Vorbild für alle Lizenzen mit einem strengen Copyleft und in der Version 2 und Version 3 in Gebrauch. * **AGPL** Diese Lizenz ist aufgebaut auf der GPL Lizenz. Allerdings ist es unten AGPL nicht möglich Kode geschlossen weiter zu entwickeln auf ein Server. Der Server muss dabei immer ein Möglichkeit haben der Quelltext zu downloaden. * **LGPL** Die GNU Lesser General Public License ist speziell für Programmbibliotheken gedacht. Sie hat ein beschränktes Copyleft, dass die Verlinkung der Bibliotheken sowohl mit Open Source Software als auch mit proprietärer Software ermöglicht. z.B. * **Apache License 2.0** Die Apache License liegt inzwischen in der Version 2.0 vor und ist eine Non-Copyleft-Lizenz. Wichtigstes Programme unter diesen Lizenz sind \OpenOffice, Docker, Android. * **BSD** Die BSD-Lizenz ist das Vorbild für zahlreiche Non-Copyleft-Lizenzen wie die MIT License, PHP License oder \OpenLDAP Public License, die sich zumeist nur im Namen unterscheiden. * **MPL** Die Mozilla Public License hat ein „sehr schwache Copyleft“-Lizenz und wird manchmal als Kompromiss zwischen der GPL und der BSD-Lizenz angesehen, auch wenn die MPL Restriktionen hat, die über die beiden Lizenzen hinausgehen. Grundsätzlich müssen geänderte oder kopierte Quelltextdateien weiterhin unter der MPL bleiben, dürfen jedoch zusammen mit proprietärem Code für ein Programm verwendet werden. Somit kann eine proprietäre Version von unter der MPL stehenden Open-Source-Programmen veröffentlicht werden Open Source Lizenzen - Lizenzen ¬ Copyleft -------------------- Art des Copyleft |Starkes Copyleft|Schwaches Copyleft|Kein Copyleft| ---------------- |----------------|------------------|-------------| Kombinationsmöglichkeit mit proprietärer Software|keine Einbindung in proprietären Code möglich|statisches und dynamisches Linken von Code mit proprietärer Software möglich. Eigen-Entwicklungen dürfen als proprietäre Software weitergegeben werden |Keine Vorgaben.|Der gesamte Code darf auch als proprietäre Software weitergegeben werden| Beispiel-Lizenz |GPL,AGPL,EUPL |LGPL, MPL |BSD, Apache, MIT | Beispiele von Open Source Software --------------------------------- Einige Beispiele für Open Source Software sind * Betriebssystem. Der Linux Kernel (GPL) * OpenOffice (Apache License 2.0) und Libreoffice (LGPL) * Datenbank: Mysql (GPL), \MariaDB (GPL, LGPL), \PostgreSQL (\PostgreSQL Lizenz, vergleichbar mit BSD) * Bilder bearbeiten: Gimp (GPL, LGPL) * Cloud: Owncloud (AGPLv3) und Nextcloud ( AGPLv3 ) * Email: Thunderbird (MPL/GPL/LGPL), Evolution (GPL) * Browser: Firefox (MPL), Chromium (BSD), Safari (Proprietär, Teile unter LGPL und BSDL), * Messenger: Telegram (Client: GPL, Server: proprietär), Telegram (Client: AGPLv3, Server: proprietär), Signal (Client: GPLv3, Server: AGPLv3) * Webseite, CMS: Wordpress (GPL), Drupal (GPL), Joomla (GPL), TYPO3 (GPL) Entwicklungen in der Open Source Welt ------------------------------------- ### \MySQL und \MariaDB * \MySQL wird in 2008 verkauft an Sun Microsystems * In 2010 wird \MySQL verkauft an Oracle und danach sind neue Funktionen häufig nur noch in der kommerziellen Version von \MySQL enthalten. * Im Dezember 2012 wurde von den ehemaligen \MySQL-Gründern die unabhängige \MariaDB-Foundation gegründet. Die Stiftung soll die Interessen der Nutzer und Entwickler der \MariaDB schützen und dafür sorgen, dass die freie Datenbank frei bleibt. ### Owncloud und Nextcloud * In 2010 würde Owncloud gegründet. * In 2016 würde Owncloud abgespalten und als Nextcloud weiter entwickelt. * Danach werden Owncloud und Nextcloud separat weiter entwickelt.