13.08.2013

[Teil 1] Open Source - Erklärung. Vergleich von Linux und Android

Wie vielleicht schon einige mitbekommen haben, bin ich großer Fan von Linux. Was mich daran begeistert ist, neben der Weltweiten - freiwilligen - Entwicklung eines "Betriebssystems", der Open Source Aspekt. Immer wieder fliegt einem das Wort in Foren, Blogs, Enzyklopädien oder sonst wo ins Auge. Doch was heißt das eigentlich genau? Vereinfacht gesagt, oder besser in Deutsch übersetzte: Quell Offen. Um zu verstehen, was das überhaupt bedeutet, sollten wir uns erst mal anschauen, wie man Programmiert.
Heute kann jeder sein Lieblings-Texteditor rausholen und anfangen zu tippen. Was man genau eintippt, hängt ganz von der Programmiersprache ab, die man einsetzt. Das Bild oben zeigt Java. Jede Programmiersprache hat seine eigene Syntax. Das bedeutet, dass genau festgelegt wird wann wo und weshalb eine klammer, ein Semikolon oder eine Anweisung angeben wird.
Nachdem wir uns also an die Vorgaben gehalten haben, passiert nun das, was bei "allen Sprachen" gleich ist. Es wird durch einen sogenannten Compiler geworfen und Compiliert. Was passiert? Computer können nur mit 0 und 1 arbeiten. Wie das genau funktioniert will ich hier nicht ausweiten. Aber einfach gesagt, der Quelltext, der die spezielle Syntax hat die wir Menschen verstehen, wird in Maschinencode (also 0 und 1) gewandelt. So, dass der Computer es auch versteht.

Wenn ein Programm an User ausgeliefert wird, die Windows Menschen sprechen von *.exe-Dateien, passiert das in Maschinencode. Diesen können wir dann zwar auch anschauen, verstehen allerdings null. Denn nicht jedes "if" im Programmcode hat jedesmal dieselbe 01/10-Kombination. Da ist viel mehr dahinter. So, dass man wirklich nichts mehr vom Ursprünglichen Quelltext verstehen kann.
Open Source bedeutet nun, dass der Ursprüngliche Quelltext, der in der oben erklärten Syntax geschrieben ist, ebenfalls verfügbar ist. Nicht nur allein in Maschinencode, den man genauso gut versteht wie eine Ziege. Genau das ist beim größten Open Source-Projekt Linux üblich. Neben Maschinencode wird im Netz ein Server bereit gestellt, wo man sich gemütlich den kompletten Code ansehen kann und ggf. bearbeiten.

Warum mir das so gefällt? Keine Ahnung. Ich fühle mich dann nicht Sicherer vor Prism, vor Backdoors oder schlecht programmierten Code, den ich nicht einsehen kann. Ich habe einfach ein besseres Gefühl. Ich selbst habe auch noch nie ein Blick da rein geworfen. Auch als erfahrener Entwickler würde man auf die ersten Blicke kaum etwas verstehen. Aber allein der Gedanke "Ich könnte es", bringt mir ein Gefühl von Geborgenheit. Niemand hat "Macht" über mich. Niemand schreibt mir vor "nutzte es so, oder lass es". Ich habe die Wahl!

Vorteil an der ganzen Geschichte ist auch, dass sich jeder den Code schnappen kann und modifizieren. Er muss ihn dazu auch erst mal nicht verstehen. Man nimmt sich das komplette Konstrukt, jagt es durch den Compiler und es läuft genauso, wie es das vom Hersteller schon vor-Compilierte Programm tut. Jeder Entwickler kann nun irgendwo andocken und seine eigenen Erweiterungen einbringen. Regelmäßig, und nun kommt die Verknüpfung mit Android, passiert das bei den Custom Roms. Denn das Ursprüngliche Android ist Open Source.

Einen zweiten Teil werde ich noch veröffentlichen, in dem erkläre, was seit längerem unter Androids Open Source Projekt falsch läuft und wie es Linux besser macht...