Öffentlicher Quellcode

From distributed.net
Jump to: navigation, search

Der veröffentlichte distributed.net Quellcode!

distributed.net hat jetzt Teile des SQL und verarbeitung-Codes der von unseren Statisk-Servern verwendet wird veröffentlicht. Du kannst dir den Statistik-Quellcode ansehen (sowie die Quellen für einige andere utilities) unter cvs.distributed.net

Viele Dinge haben sich seit dem letzten Update geändert aber die offensichtlichste Änderung ist wahrscheinlich der neue MaxOS code und Dan Oetting's neuester Altivec cores. Happy compiling :)

Hier ist der Quellcode zu ein paar der anderen, schon veröffentlichten distributed.net-Programmen:

Teile der oben aufgelisteten Quellen, sowie der Statistik SQL/PHP Code, gibt es auch im cvs format unter http://cvs.distributed.net/ .

Ein paar häufig gestellte Fragen:

Kann ich einen funktionierenden distributed.net Client aus diesem Quellcode erstellen?

Nein. Selbst wenn diese Quellen die Puffer-Füllungsroutinen enthielten, wären sie auf jeden Fall nicht kompatibel mit den Puffern, die der vollwertige Client erzeugt.

Ok, runtergeladen habe ich es, und jetzt?

Wenn Du an einer Unix-Maschine sitzt, tippe "./configure list". Das zeigt Dir eine Liste mit unterstützten Umgebungen. Wenn Deine Hard-/Software nicht aufgeführt ist, schaue Dir das Konfigurations-Skript an und schreibe Deinen eigenen Eintrag, das ist nicht sehr schwierig. Sobald configure für Dich ein Makefile erstellt hat, musst Du nur noch "make" eintippen und das Ganze wird kompiliert.

Wenn Du das grosse Pech hast, keinen Zugriff auf die wundervolle Welt des Unix zu besitzen, mußt Du nach einem Makefile/einer Project-Datei suchen, die zu Deinem Rechner passt. Schaue nach makefile.vc (MS Visual C++), makefile.wat (Watcom fuer DOS, NetWare, Win16, OS/2, Win32cli), smakefile (Amiga), Platforms/beos/* (BeOS mit CodeWarrior, glaube ich), make-vms.com (VMS).

Was ist denn dieses NASM?

Das steht fuer Network-wide Assembler. Das ist ein portierbarer x86 Assembler, mit einer MS/Intel-artigen Syntax. Die NASM-Homepage befindet sich hier .

Ok, jetzt habe ich eine ausführbare Datei, wie funktioniert die?

Tippe einfach "./dnetc --help" und Du bekommst eine kurze Aufzählung der vorhandenen Optionen und Befehle.

Wenn ich es schaffe, meinen Quellcode zu kompilieren, heißt das, da es für mein System jetzt einen Client gibt?

Schaue Dir die Seite für Portierungen an und befolge die Anweisungen dort.

Ich bekomme [Name-deines-Lieblings-Compilers/OS/Hardware-einfügen] nicht zum Laufen mit diesem Quellcode!

Bitte schicke eine Mail an bovine@distributed.net or email submission form, und wir werden versuchen, gemeinsam eine Lösung zu finden.

Ich möchte Teile des Quellcodes im meinem eigenen Projekt benutzen.

Bitte schicke eine Mail an bovine@distributed.net or email submission form über Dein Projekt. Meistens wollen wir eine Anerkennung der Arbeit von DCTI (und des Ursprungsautors, sollte es einen geben) in Deinem Quellcode und der ausführbaren Datei, und das zukünftige Verbesserungen an uns zurückgeschickt werden.

Ich habe meinen eigenen Programmkern für einen anderen Prozessor geschrieben, oder einen, der schneller ist als eurer!

Hervorragend! Wir würden es sehr begrüssen, wenn Du Deine Änderungen beisteuern würdest, so dass wir sie in zukünftige Versionen des Clients einbauen können. Auerdem solltest Du, wenn Du glaubst, daß Du den Code, der hier veröffentlicht wird, verstehst und Spaß daran hast, an diesem Code herumzubasteln, den obenstehenden Leuten schreiben und es ihnen sagen! Wir suchen immer nach Leuten mit guten Programmierkenntnissen, die bereit sind, an bestimmten Teilen des Client-Codes zu arbeiten.

Warum ist distributed.net immer noch nicht mit allen Teilen seines Quellcodes open-source?

Obwohl wir allen Code, der über die Links auf dieser Seite zu erreichen ist,der Öffentlichkeit zur Einsicht bereitstellen, ist es immer noch notwendig, bestimmte Teile der Codebasis nicht der Allgemeinheit zur Verfügung zu stellen. Tatsächlich ist das ein Gesichtspunkt unserer Arbeit, den wir sehr gerne aus der Welt schaffen würden.

Ehrlich gesagt räumt die Veröffentlichung nur von binären Clients immer noch nicht die Möglichkeit von Sabotage aus, da es relativ einfach für jemanden mit dem entsprechenden Wissen ist, die Binaries zu disassemblen oder zu patchen. Eigentlich ist das eine recht einfache Aufgabe, deswegen möchten wir euch bitten, dies nicht zu probieren. Und offen gesagt ist die Sicherheit durch Verschleierungen ('security by obscurity') überhaupt nicht sicher, und wir behaupten auch nicht, daß sie das wäre.

Der Quellcode, der von dieser Seite aus verfügbar ist, ist eigentlich alles an Algorithmen-Code, der von Interesse sein koennte. Der einzige Code, der nicht aufgeführt wird, ist der Dateizugriffs- und Netzwerk-Socket-Code, der auch nicht besonders interessant (oder gut zu verstehen) ist. Die Rechenkerne und plattformspezifischen Optimierungen, die sich in diesem Paket befinden, sind eigentlich alles, was für euch interessant wäre, wenn ihr euch die Arbeitsweise des Clients ansehen oder rausfinden wollt, wie ihr die Geschwindigkeit des Clients auf eurem Prozessor erhöhen könnt.

Ein Dokument, das viele dieser Probleme in viel gr?sserem Detail angeht, ist ebenfalls vorhanden und diskutiert die allgemeinen Probleme mit Operational Code Authentication .