Linux: Fork Off

Στην ανάπτυξη λογισμικού ένα Fork συμβαίνει όταν οι προγραμματιστές παίρνουν τον πηγαίο κώδικα του έργου και ξεκινούν μια ανεξάρτητη ανάπτυξη με βάση τον αρχικό κώδικα.


Τον όρο, ειδικά στο Linux, τον χρησιμοποιούμε περισσότερο όταν θέλουμε να επισημάνουμε έναν διαχωρισμό, κάτι σαν σχίσμα, από την ανάπτυξη του αρχικού έργου.
Δεν αναφερόμαστε εδώ στο Fork ως κλήση συστήματος (system call) απ’ όπου προκύπτει και το γνωστό Fork Bomb.

ΦΥΣΗ ΤΟΥ ΑΝΟΙΧΤΟΥ ΚΩΔΙΚΑ

Από τη φύση του ο ανοιχτός κώδικας επιτρέπει, μερικές φορές προτρέπει κιόλας, τη λήψη, προσαρμογή και αναδιανομή του πηγαίου κώδικα ενός έργου λογισμικού. Το Fork λοιπόν, δεν είναι κάτι που συμβαίνει σπάνια, αλλά ίσως συχνά, στις κοινότητες του ανοιχτού-ελεύθερου λογισμικού. Το πως αντιμετωπίζονται τέτοιες ενέργειες, εξαρτάται από διάφορους παράγοντες.

VERSION CONTROL SYSTEMS

Μιας και μιλάμε για το Fork ως παράγωγο της ίδιας της φύσης του Ανοιχτού Κώδικα, θυμηθείτε τα γνωστά VCS, όπως Github, Bitbucket … κλπ, όπου ακόμη και αν κάποιος θέλει να συνεισφέρει σε ένα έργο ανοιχτού λογισμικού, ο εύκολος τρόπος είναι το Fork του έργου. Έπειτα ενσωματώνει τις αλλαγές που θέλει και στέλνει το Forked έργο πίσω στο δημιουργό. Από εκεί και μετά είναι βέβαια θέμα του αρχικού δημιουργού εάν θα ενσωματώσει αυτές τις αλλαγές ή όχι.

Σε τέτοιες περιπτώσεις, όπως είναι τα VCS, το Fork είναι ένα click μακριά.

ΔΗΜΟΦΙΛΗ FORKS

Στο κόσμο του Ανοιχτού Κώδικα θα χρειαζόταν μια τεράστια λίστα, εάν θέλαμε να καταγράψουμε όλα τα Forks έργων λογισμικού τα οποία έχουν γίνει κατά καιρούς. Εδώ θα αναφέρουμε μερικά από τα πιο γνωστά, ενώ η λίστα μπορεί να συμπληρωθεί από αξιοσημείωτα Forks, που τυχών θα παραλείψουμε, μέσω των δικών σας σχολίων.

UBUNTU

Το Ubuntu είναι η πιο δημοφιλής διανομή Linux σήμερα. Έχει προκύψει από το Debian Linux και το αν είναι καθαρό Fork ή όχι, είναι θέμα προς συζήτηση.
Η διαδικασία που ακολουθήθηκε πάντως παραπέμπει σε Fork, δηλαδή:

Το Ubuntu πήρε τον κώδικα του Debian και άλλαξε όλα εκείνα τα οποία θεωρούσε περιττά ή εσφαλμένα.

Πρόσθεσε ή αφαίρεσε χαρακτηριστικά και δημιούργησε τη διανομή Ubuntu Linux, έτσι όπως οι προγραμματιστές του θεωρούσαν καλύτερο.

LINUX MINT

Ήρθε και η σειρά του Ubuntu να γίνει fork και αυτό έγινε από μια ομάδα προγραμματιστών η οποία έβλεπε τα πράγματα κάπως διαφορετικά από τους προγραμματιστές του Ubuntu. To Linux Mint ανέπτυξε το δικό του γραφικό περιβάλλον (Cinnamon) και συντηρεί τα πακέτα της διανομής με τον δικό του τρόπο, τον οποίο θεωρεί περισσότερο αποτελεσματικό.

CentOS

Το CentOS δημιουργήθηκε από τη βάση του RHEL (Red Hat Enterprise Linux) και ο λόγος γι’ αυτό ήταν η δημιουργία ενός αξιόπιστου, στιβαρού, λειτουργικού συστήματος κυρίως για εξυπηρετητές (servers), χωρίς την ανάγκη πληρωμής των υπηρεσιών. Κάτι το οποίο το RHEL απαιτούσε.

Βέβαια το 2014 η Red Hat σε μια έξυπνη επιχειρηματική κίνηση, απόκτησε το CentOS. Σεβάστηκε όμως τη βάση των χρηστών που είχε ήδη αποκτήσει και αποκόμισε όλο το Market Share που το CentOS είχε χτίσει μέχρι τότε.

Φυσικά και θα μπορούσαμε να αναφέρουμε τουλάχιστον άλλες 10 γνωστές διανομές, αναφέρουμε όμως τις περιπτώσεις εκείνες όπου το δημιουργημένο Fork ξεπέρασε σε δημοφιλία το αρχικό έργο στο οποίο βασίστηκε.

LIBREOFFICE

Το LibreOffice είναι ένα Fork του OpenOffice, όταν το τελευταίο έπεσε στα χέρια της Oracle μετά την εξαγορά της Sun Microsystems. Τότε ήταν που πολλοί προγραμματιστές του OpenOffice αποφάσισαν να φύγουν και να δημιουργήσουν τη δική τους εκδοχή, που αποδείχτηκε στη πορεία αρκετά επιτυχημένη σε βαθμό τέτοιο ώστε το LibreOffice να έρχεται προεγκατεστημένο στο 99,99% των διανομών Linux.

NEXTCLOUD

Μετά από διαφωνία του Co-Founder του OwnCloud με τον άλλο συνιδικοκτήτη, παίρνοντας μαζί του πλειάδα προγραμματιστών o Frank Karlitschek δημιούργησε το NextCloud. Αμέσως μετά τη δημιουργία του NextCloud ανακοινώθηκε και το κλείσιμο των γραφείων του OwnCloud στην Αμερική, λόγω της απόσυρσης κεφαλαίων από τους επενδυτές.

ΓΙΑΤΙ ΠΡΟΚΥΠΤΟΥΝ ΤΑ FORKS ;

Τα Forks προκύπτουν συνήθως διότι υπάρχει ανάγκη. Όταν οι αρχικοί δημιουργοί είτε παρατήσουν το έργο, είτε δεν αφουγκράζονται τη βάση των χρηστών τους, είτε υπάρχει διαφωνία σε κάτι, τότε προκύπτει η ανάγκη για ένα Fork.

Τα παραπάνω που αναφέραμε είναι μερικά από τα πιο επιτυχημένα και δημοφιλή Forks. Υπάρχουν εκατοντάδες άλλα τα οποία δε θα τα χαρακτηρίζαμε και τόσο επιτυχημένα.

Τι είναι αυτό που μπορεί να κάνει ένα Fork να αποτύχει;

Η έλλειψη πραγματικής ανάγκης για την εξ αρχής δημιουργία του. Όταν για παράδειγμα θες να κάνεις Fork μια ολόκληρη διανομή μόνο και μόνο για να προσθέσεις 1-2 προγράμματα ως τα προεπιλεγμένα ή να αλλάξεις τα Wallpapers, μάλλον δεν θα δημιουργήσεις ένα επιτυχημένο Fork. Το αποτέλεσμα τέτοιων ενεργειών είναι συνήθως το κλείσιμο του έργου μετά από λίγο καιρό.

ΕΙΝΑΙ ΤΑ FORKS ΚΑΤΙ ΚΑΛΟ ;

Είναι σαν να ρωτάει κάποιος, «Είναι ο Ανοιχτός Κώδικας κάτι καλό;». Εξαρτάται από το πως θα τον χρησιμοποιήσεις.

Υπάρχει η άποψη που λέει ότι αν με κάποιο τρόπο απαγορευόταν το Fork, τότε θα υπήρχαν πολύ λιγότερα έργα στα οποία θα μπορούσαν να επικεντρωθούν οι προγραμματιστές με αποτέλεσμα κάτι άρτιο, στιβαρό και ίσως bugless.

Ας αναρωτηθούμε όμως, που πάει η «πολύ-διαφημιζόμενη» ελευθερία του ΕΛ/ΛΑΚ τότε;

Σίγουρα δεν είναι ότι καλύτερο να υπάρχουν διαφωνίες, διαμάχες και σχίσματα, αλλά αυτή είναι η φύση του ανθρώπου. Η διαφορετικότητα δεν αποτελεί εξαίρεση για τους προγραμματιστές, άσχετα αν γράφουν στην ίδια βάση (πχ γλώσσας προγραμματισμού), ο κάθε ένας (ή το κάθε γκρουπ) βλέπει τα πράγματα με το δικό του τρόπο.

Εμπνευσμένο από: Linux.com

Απορίες, παρατηρήσεις, ιδέες... Ελεύθερα ! Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s