Zum Inhalt springen

Fork

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 7. Oktober 2004 um 12:21 Uhr durch Duesentrieb (Diskussion | Beiträge) (Fork in der Programmierung: Nebenläufigkeit). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Wörtlich übersetzt ist Fork das englische Wort für Gabel. In der EDV wird dieser Begriff dann verwendet, wenn sich ein Projekt bzw. ein Programm, ab einer bestimmten Stelle (bzw. eines bestimmten Zeitpunktes) aufsplittet und zwei getrennte Wege verfolgt.

Fork in der Programmierung

In der Programmierung bezeichnet man als Fork einen durch das Betriebssystem bereitgestellten Systemaufruf, durch den ein zweiter Prozess gestartet wird. Dabei läuft der zweite - auch Kind genannte - Prozess, an genau der Stelle weiter, an der auch der Ursprungsprozess (auch Elternprozess genannt) weiterläuft. Die Daten des ersten Prozesses werden für den zweiten Prozess kopiert und stehen für diesen nun getrennt zur Verfügung. Der geforkte Kinds-Prozess ist immer ein vollwertiger Prozess ohne Einschränkung. Forking ist ein ähnliches Konzept wie Threading, beide Konzepte dienen der Parallelisierung von Abläufen. Ein gutes Beispiel für Forking innerhalb eines Programmes, wäre das Samba-Serverprojekt, dessen Grundlage lautet: "Jeder Client ein Prozess".

Siehe auch: Nebenläufigkeit

Fork im Kontext von Softwareprojekten

In der Softwareentwicklung bezeichnet ein Fork die Aufspaltung eines Projektes. Dabei fertigt ein Entwickler, bzw. eine Gruppe von Entwicklern eine Kopie des Projektes an, die dann unabhängig von dem ursprünglichen Projekt weiterentwickelt wird. Gründe für einen Fork können verschiedene Ziele für das Projekt, Uneinigkeiten in der technischen Ausführung und persönliche Unstimmigkeiten zwischen den Entwicklern sein.

Zum Zeitpunkt eines Forks erhalten beide Gruppierungen die gleichen intellektuellen Rechte. Typischerweise erhält jedoch nur die größere Gruppe oder die, in der der ursprüngliche Cheftentwickler verbleibt den Originalnamen des Projektes und das damit verbundene soziale Kapital.

In der Regel führt ein Fork zu zwei verschiedenen, untereinander inkompatiblen Produkten. Manchmal werden die beiden Projekte später wieder zusammengeführt, manchmal werden gute Ideen ausgetauscht, manchmal besteht nach dem Fork keine Verbindung mehr zwischen den Projekten. Ein Fork kann sein Ursprungsprojekt überdauern und an Popularität übersteigen.

Forks tauchen überwiegend in freie Software-Projekten auf, da bei diesen jeder das Recht zur Weiterentwicklung und Veränderung besitzt. Manche sehen die Bildung von Forks als Schwäche der freien Software, da die einen Fork üblicherweise begleitenden Diskussionen viel menschliche Arbeitszeit und Nerven kosten, die somit nicht mehr dem eigentlichen Projekt gewidmet werden können. Es kann auch bei closed Source-Projekten zu Forks kommen, wenn mehrere Firmen zusammenarbeiten und sich die Rechte an dem Produkt teilen.


Siehe auch: Derivat (Software)