Keine Software ist 100% Open Source.

11 Antworten

GCC.

Die erste Version wurde von Stallman in Assembler geschrieben -> Open Source

Jede weitere Version wurde mit einer Version von GCC compiliert, von der die Abstammung klar ist. Du solltest also von der ersten Version ausgehend, jeweils die nächste Version compilieren können, und solltest damit das exakt gleiche Binary der aktuellen Version erzeugen können.

Woher ich das weiß:Studium / Ausbildung – Informatik

Compiler, lustig ;) du musst paar Stufen weiter unten anfangen.

Bereits das Betreibsystem ist Fremder Code. Also benötigst du ein eigenes Betriebssystem bevor du irgendwas anderes machst.

Open Source heißt nur das der Code einsehbar ist nicht mehr und nicht weniger. Im Übrigens nur so am Rande, nur weil etwas Open Source ist heißt das nicht das es kostenlos ist ;)


DummeStudentin 
Beitragsersteller
 09.06.2025, 00:14

Um ein Betriebssystem zu kompilieren, braucht man einen Compiler. Und da wären wir wieder beim alten Problem.

Osterkarnigel  09.06.2025, 00:16
@DummeStudentin

Tja dann musst du das wohl auch selber Programmieren. Ach und wenn wir dabei sind. Hardware kann auch Einfluss auf die Software nehmen also musst du auch deine eigene Hardware bauen um sicher zu sein.

Aber alles das hat nichts mit open Source zu tun. Es geht nur darum das der Code des Programm zugänglich und Veränderbar ist.

Und das ist auch mit einem nicht open source compiler

Joa, willkommen in der Realität, irgendwem musst Du immer vertrauen.

Du könntest einen eigenen Compiler mit Assembler-Code entwickeln und dann im Maschinencode einen Assembler entwickeln, der deinen Compiler in Maschinencode übersetzt. Ggf. gibt es sowas auch schon, würde mich nicht wundern.

Dnach kannst Du diesen Compiler für alles weitere nutzen.

Aber auch dann musst Du irgendwem vertrauen, z.B. läuft alles durch dein Betriebssystem, das eingreifen könnte, oder die CPU manipuliert irgendwie. Es könnte auch sein, dass das Betriebssystem oder ein anderes Programm (das Betriebssystem besteht aus 100en Programmen) nachträglich dein Programm manipiliert.

Fakt ist:
Die gesamte Menschheit basiert seit Jahrtausenden auf Vertrauen.
Wer niemandem vertraut, hat effektiv verloren.

Viel eher solltest Du inhaltlich darüber nachdenken, wie vertrauenswürdig etwas ist, z.B. sind Videospiel-Trailer oder Cracking-Tools ziemlich sicher nicht vertrauenswürdig, in Notepad++ würde es mich aber sehr wundern, wenn darin ein Virus gefunden wird. Und in einem Compiler würde ich als letztes einen Virus vermuten - außer wenn die Person, wie mir ein Programm mit dem Quellcode als "sicher" verkaufen will, aber dazu schreibt, dass es ausschließlich mit den extra bereitgestellten Compiler-Binaries ohne Compiler-Sourcecode funktioniert - das klingt dann doch sehr fischig.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

DummeStudentin 
Beitragsersteller
 09.06.2025, 00:47

Mit Cracking Tools meinst du unseriöse Skriptkiddy Tools, oder? Wenn ich eine Software cracken muss, dann verwende ich dafür bekannte Open Source Software wie ghidra und gdb. Die ist meiner Meinung nach schon ziemlich vertrauenswürdig. ghidra wird sogar von der NSA, der nationalen Sicherheitsbehörde unserer amerikanischen Freunde, entwickelt. 🇺🇸🗽🦅

Palladin007  09.06.2025, 01:02
@DummeStudentin

Ich meine damit z.B. Programme, die versprechen, ein kostenpflichtiges Spiel kostenlos nutzbar macht, oder eben generell alles, was für irgendwelche illegalen Aktivitäten gemacht wurde.

Ich meine damit nicht Reverse Engineering, das ist nicht problematisch (für manche auch täglicher Arbeitsalltag), aber es erfordert einiges an zusätzliches KnowHow, um sozusagen "zu Fuß" ein Spiel zu cracken. Wenn aber ein Programm sowas wie "Klick and Crack" verspricht, sollte man das immer mit sehr viel Vorsicht betrachten.

Also wenn du niemanden vertraust, dann liest du dir auch die zig oder hundert Millionen Zeilen an Code durch, die du da kompilieren willst und verstehst sie, bevor du das tust?

Das betrifft natürlich auch die Abhängigkeiten, denn heute setzt Software oft auf vorhandene Software auf und ist selten völlig self-contained.

Willst du ganz vorne anfangen, dann ist der erste Compiler eben in Assembler geschrieben und gut ist.

Aber um die Paranoia noch ein wenig zu erhöhen, du redest von Software, die du beeinflussen kannst. Was ist denn mit der Hardware. Ggf. hat ja jemand was ganz böses in die Architektur deines CPUs versteckt, mal davon ab dass Sicherheitslücken gerade in den letzten Jahren hier vermehrt aufgetreten sind.

Btw wenn wir weiter gehen zu Themen wie Absichten und co. und die Unterstützung der großen Konzerne, dann muss man sich natürlich auch noch vor Augen führen, dass das meiste Geld für OpenSource auch wieder von den großen Tech-Firmen kommt.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012

Compiler wie bspw. LLVM können sich selbst compilieren (über Clang). Daher wird LLVM mittels Open Source compiliert.

Woher ich das weiß:Berufserfahrung – Entwickle Anwendungen für iOS, iPadOS und macOS beruflich.

DummeStudentin 
Beitragsersteller
 09.06.2025, 00:21

Um LLVM mit LLVM zu kompilieren, braucht man aber erst mal ein kompiliertes LLVM. Woher nimmt man das, wenn man niemandem vertraut?

SikerimAMK31  09.06.2025, 12:53
@DummeStudentin
Woher nimmt man das, wenn man niemandem vertraut?

Das ist dann aber eher ein persönliches als ein technisches Problem.

Babelfish  09.06.2025, 13:03
@DummeStudentin

Schau dir die Versiongeschichte von LLVM an und sieh nach, ob irgendwann mal Closed Source involviert war.

Übrigens wieder die meiste Closed Source Software mit Open Source Compilern übersetzt.