Προγραμματισμός

Τι είναι το λογισμικό ανοιχτού κώδικα; Ανοιχτός κώδικας και εξήγησε το FOSS

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

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

Τι είναι το λογισμικό ανοιχτού κώδικα, τι είναι το ελεύθερο λογισμικό - και είναι διαφορετικά;

Ένας σύντομος ορισμός του λογισμικού ανοιχτού κώδικα είναι ότι είναι λογισμικό του οποίου ο υποκείμενος κώδικας μπορεί να εξεταστεί, να τροποποιηθεί και να αναδιανεμηθεί. (Υπάρχει ένας μακρύτερος και πιο επίσημος ορισμός στον οποίο θα φτάσουμε λίγο.) Τα "αλλαγμένα και αναδιανεμημένα" μέρη είναι πραγματικά κλειδί για τη φιλοσοφία ανοιχτού κώδικα. Παρά το τι μπορεί να σημαίνει το όνομα, απλώς ανοίξτε τον πηγαίο κώδικα, ώστε οι χρήστες να το δουν, δεν το κάνουν ανοιχτό.

Με κάποιους τρόπους, ο όρος «λογισμικό ανοιχτού κώδικα» είναι ένα ρετρονόμιο: Στις πρώτες δεκαετίες της επιστήμης των υπολογιστών, ο πηγαίος κώδικας του λογισμικού ήταν φυσικά διαθέσιμος και ανταλλάχθηκε ελεύθερα μεταξύ ερευνητών και επιστημόνων της βιομηχανίας. Οι υπολογιστές ήταν λίγοι και πολύ μεταξύ τους και αναμενόταν να τροποποιηθούν εκτενώς από τους χρήστες τους, οπότε τα άτομα χρειάζονταν πρόσβαση στον κώδικα. Με πολλούς τρόπους το λογισμικό θεωρήθηκε ως πρόσθετο στο υλικό του υπολογιστή. μέχρι το 1974 διαπιστώθηκε ακόμη και ότι το λογισμικό υπόκειται σε πνευματικά δικαιώματα. Αλλά καθώς η εποχή των μικροϋπολογιστών έφτασε στα τέλη της δεκαετίας του 1970, η βιομηχανία άρχισε να μετατοπίζεται στη θέση ότι το λογισμικό ήταν κάτι που έχει νομισματική αξία από μόνο του, και ότι η πρόσβαση στον υποκείμενο κώδικα θα μπορούσε και πρέπει να περιοριστεί για την προστασία των δημιουργών λογισμικού «δικαιώματα. Η διάσημη ανοιχτή επιστολή του Bill Gates του 1976 σε χομπίστες που διαμαρτύρονται για την εκτεταμένη πειρατεία του πρώτου προϊόντος της Microsoft, του διερμηνέα Altair BASIC, είναι ένα παραστατικό έγγραφο αυτής της αλλαγής.

Ενώ αυτές οι νέες ιδέες υιοθετήθηκαν γρήγορα από την ταχέως αναπτυσσόμενη βιομηχανία λογισμικού, μερικοί άνθρωποι στράφηκαν πίσω τους. Ένας από τους πρώτους αντιπάλους ήταν ο Richard Stallman, ο οποίος ίδρυσε το Ίδρυμα Ελεύθερου Λογισμικού (FSF) το 1985. Το «ελεύθερο» στο ελεύθερο λογισμικό προορίζεται να υποδηλώσει την ελευθερία των χρηστών να αλλάζουν και να διανέμουν κώδικα όπως θέλουν. δεν υπάρχει κανένας κανόνας κατά της χρέωσης χρημάτων για δωρεάν λογισμικό υπό αυτήν την έννοια. Η διάκριση γίνεται συχνά μεταξύ «δωρεάν όπως στην ελεύθερη μπύρα» και «ελεύθερη όπως στην ελεύθερη ομιλία», με το ελεύθερο λογισμικό να βρίσκεται στο τελευταίο στρατόπεδο.

Ωστόσο, η ιδέα του ελεύθερου λογισμικού έκανε πολλούς ανθρώπους στην ιδιωτική βιομηχανία, οι οποίοι, τελικά, δεν ήταν οπαδοί του να δίνουν πράγματα, νευρικοί. Το 1998 η Christine Peterson επινόησε εν μέρει τη φράση «open source» ως μια προσπάθεια να καταστήσει την ιδέα πιο προσιτή στους νεοεισερχόμενους, ιδιαίτερα σε αυτούς που εργάζονται σε κερδοσκοπικές εταιρείες. Αν και ο Stallman αντιστάθηκε στον όρο open source, λέγοντας ότι απομακρύνεται από τις αρχικές πολιτικές και φιλοσοφικές ιδέες του ελεύθερου λογισμικού, έχει γίνει η κυρίαρχη φράση που περιγράφει αυτήν την έννοια. Το διάγραμμα Venn του λογισμικού ελεύθερου και ανοιχτού κώδικα αλληλεπικαλύπτεται αρκετά ώστε μερικές φορές τα δύο συνδυάζονται με το ακρωνύμιο FOSS (λογισμικό ελεύθερου και ανοιχτού κώδικα). Σε γενικές γραμμές, όλο το ελεύθερο λογισμικό είναι ανοιχτού κώδικα, αν και ένα μικρό μέρος του λογισμικού ανοιχτού κώδικα έχει όρους άδειας που σημαίνει ότι δεν είναι δωρεάν (περισσότερα σχετικά με την αδειοδότηση ανοιχτού κώδικα σε μια στιγμή).

Η έννοια του λογισμικού ελεύθερου και ανοιχτού κώδικα προκάλεσε έναν άλλο ορισμό για το retronym: «ιδιόκτητο λογισμικό,” οποιοδήποτε λογισμικό που δεν είναι ανοιχτού κώδικα.

Άδειες λογισμικού ανοιχτού κώδικα

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

Οι άδειες λογισμικού υπήρχαν αρχικά για τον περιορισμό της συμπεριφοράς των χρηστών και την προστασία των δικαιωμάτων του κατασκευαστή του λογισμικού. Ωστόσο, οι υποστηρικτές του ελεύθερου λογισμικού συνειδητοποίησαν ότι μπορούσαν να αντιστρέψουν τον αρχικό σκοπό των αδειών: Η άδεια ενός πακέτου λογισμικού θα μπορούσε αντ 'αυτού να απαιτεί ο υποκείμενος κώδικας να είναι διαθέσιμος σε οποιονδήποτε χρησιμοποιεί το λογισμικό και ότι οι χρήστες είχαν το δικαίωμα να επεξεργαστούν και να αναδιανείμουν αυτόν τον κώδικα. Η πρώτη άδεια λογισμικού ανοιχτού κώδικα (αν και προηγείται του όρου) είναι πιθανώς η ειδοποίηση άδειας αντιγραφής GNU Emacs, που κυκλοφόρησε το 1985 για την έκδοση του προγράμματος επεξεργασίας κειμένου Emacs που γράφτηκε από τον Stallman του FSF.

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

  • Επιτρεπτές άδειες σας επιτρέπουν να αναδιανείμετε οποιονδήποτε πηγαίο κώδικα, όσο θέλετε. Θα μπορούσατε, για παράδειγμα, να πάρετε τον πηγαίο κώδικα που κυκλοφόρησε με άδεια χρήσης, να τον ενσωματώσετε στο δικό σας λογισμικό και, στη συνέχεια, να αποδεσμεύσετε το λογισμικό με άδεια χρήσης. Η άδεια BSD είναι μία από τις πιο διάσημες άδειες.
  • Άδειες Copyleft απαιτούν οποιονδήποτε αναδιανεμημένο κώδικα που ενσωματώνει τον αδειοδοτημένο κώδικα για να κυκλοφορήσει επίσης με παρόμοια άδεια. Οι διάφορες εκδόσεις της δημόσιας άδειας GNU (GPL) από το FSF είναι άδειες copyleft και στόχος τους είναι να απαιτήσουν από τους προγραμματιστές να το πληρώσουν προωθώντας κοινοποιώντας τα οφέλη που έλαβαν από την ενσωμάτωση κώδικα ανοιχτού κώδικα στο έργο τους.

Είναι ενδιαφέρον να σημειωθεί ότι οι ιδέες πίσω από αυτές τις άδειες έχουν εξαπλωθεί πέρα ​​από τον κόσμο του λογισμικού. Το Creative Commons είναι μια νομική υποδομή για την εφαρμογή παρόμοιων όρων σε γραπτά ή εικαστικά καλλιτεχνικά έργα.

Ο ορισμός ανοιχτού κώδικα και η πρωτοβουλία ανοιχτού κώδικα

Ο ανοιχτός κώδικας από τη φύση του δεν ελέγχεται από καμία οντότητα ή οργανισμό. Το 1998, μια ομάδα διακεκριμένων προγραμματιστών, συμπεριλαμβανομένων των Bruce Perens και Eric S. Raymond, ίδρυσαν το Open Source Initiative (OSI), έναν μη κερδοσκοπικό οργανισμό αφιερωμένο στην υπεράσπιση του ανοιχτού κώδικα στη μεγαλύτερη βιομηχανία λογισμικού. Το OSI προσπάθησε και απέτυχε να κατονομάσει τον όρο open source το 1999. Παρόλα αυτά, ο επίσημος ορισμός του Ανοιχτού Κώδικα είναι, με συναίνεση, το πλαίσιο που ακολουθούν όλες οι άδειες που αποκαλούνται ανοιχτές πηγές. Εκτός από την ελευθερία εξέτασης, τροποποίησης και αναδιανομής κώδικα που έχουμε ήδη συζητήσει, ο ορισμός ανοιχτού κώδικα απαγορεύει τις άδειες που κάνουν διακρίσεις σε συγκεκριμένες ομάδες ή άτομα, που εμποδίζουν τη χρήση του κώδικα για συγκεκριμένο σκοπό ή πεδίο προσπάθειας, ή από την εκτέλεση σε μια συγκεκριμένη συσκευή ή τύπο συσκευής.

Ανάπτυξη ανοιχτού κώδικα και έργα ανοιχτού κώδικα

Η ανάπτυξη με χρήση κώδικα ανοιχτού κώδικα πραγματοποιείται σε όλα τα είδη περιβάλλοντος, από πανεπιστήμια έως μεγάλες εταιρείες και συχνά ακολουθεί τα ίδια μοτίβα με οποιοδήποτε άλλο είδος ανάπτυξης λογισμικού. Υπάρχει όμως ένα συγκεκριμένο είδος ανοιχτής διαδικασίας κοινοτικής ανάπτυξης που σχετίζεται με το ανοιχτό λογισμικό. Στο δοκίμιο του «Ο Καθεδρικός Ναός και το Παζάρι», ο Eric S. Raymond σκιαγράφησε το όραμά του για αυτήν τη διαδικασία, όπου ο καθένας μπορεί να έχει πρόσβαση στον κώδικα και οι ενημερώσεις προστίθενται στη βάση κώδικα από μια ευρέως διανεμημένη ομάδα προγραμματιστών που βγαίνουν μέσα και έξω ως υπαγορεύει το ενδιαφέρον τους.

Η ανάπτυξη ανοιχτού κώδικα αυτού του τύπου οργανώνεται γύρω από έργα ανοιχτού κώδικα. Αυτές μερικές φορές λειτουργούν σε ένα μόνο λογισμικό και μερικές φορές σε ένα σύνολο σχετικών εφαρμογών. Το λογισμικό ελέγχου έκδοσης διατηρεί τη συνεισφορά όλων. Το GitHub είναι ίσως το πιο δημοφιλές.

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

Παραδείγματα ανοιχτού κώδικα

Το λογισμικό ανοιχτού κώδικα είναι στην πραγματικότητα πανταχού παρόν και δημιουργεί μεγάλο μέρος των θεμελίων του σύγχρονου Διαδικτύου. Ίσως το πιο διάσημο έργο ανοιχτού κώδικα είναι το Linux, η παραλλαγή ανοιχτού κώδικα Unix που τροφοδοτεί εκατομμύρια διακομιστές. Άλλα εξέχοντα και εξαιρετικά κρίσιμα έργα περιλαμβάνουν τον διακομιστή ιστού Apache, τη βάση δεδομένων MySQL και το WordPress. Πολλά πλαίσια ανάπτυξης κυκλοφορούν ως ανοιχτού κώδικα, από το Ruby on Rails έως το .Net Core της Microsoft.

Το λογισμικό ανοιχτού κώδικα ήταν λιγότερο επιτυχημένο στην παραγωγή λογισμικού οικιακού υπολογιστή που προορίζεται για απλούς χρήστες. Παρά το υψηλό κόστος των ιδιόκτητων πακέτων λογισμικού όπως το Microsoft Word και το Adobe Photoshop, οι ανοιχτές πηγές όπως το OpenOffice και το GIMP δεν κατάφεραν ποτέ να βρουν μια θέση πέρα ​​από τους ενθουσιώδεις ενθουσιώδεις, σε μεγάλο βαθμό επειδή η κοινότητα ανοιχτού κώδικα έχει κατά προτεραιότητα προτεραιότητα χαρακτηριστικά και ευελιξία έναντι της ευκολίας χρήση. (Το κλείδωμα μορφής αρχείου από ιδιόκτητους προμηθευτές δεν βοήθησε.) Ακόμα και το Linux, των οποίων οι υποστηρικτές ισχυρίζονται από τα τέλη της δεκαετίας του 1990 ότι το λειτουργικό σύστημα ανοιχτού κώδικα απέχει μόλις ένα χρόνο από την κυριαρχία της επιφάνειας εργασίας, δεν κατάφερε ποτέ να μεταβεί στην καταναλωτικός χώρος. Σε γενικές γραμμές, το ανοιχτό λογισμικό χρησιμοποιείται για την υποδομή πολύ περισσότερο από ό, τι για το λογισμικό τελικών χρηστών. Ωστόσο, η μετακίνηση από το μονολιθικό λογισμικό που εκτελείτε τοπικά στις εφαρμογές SaaS υπήρξε ευλογία για το ανοιχτό κώδικα, καθώς οι υποδομές που βασίζονται σε σύννεφο βασίζονται σε μεγάλο βαθμό σε στοίβες που κυριαρχούνται από ανοιχτό κώδικα.

Θυμάστε τι είπαμε για κερδοσκοπικές εταιρείες που υποστηρίζουν ανοιχτό κώδικα; Συχνά αυτά τα έργα παράγονται με μια ανεκτική άδεια, οπότε αυτές οι εταιρείες μπορούν να βάλουν κώδικα ανοιχτού κώδικα στον πυρήνα των ιδιόκτητων προσφορών τους, διατηρώντας παράλληλα μια ξεχωριστή βάση κώδικα ανοιχτού κώδικα παράλληλα ως κοινοτικό έργο. Για παράδειγμα, το Android κινητό λειτουργικό σύστημα έχει το Linux στον πυρήνα του. Όλα τα λειτουργικά συστήματα της Apple για κινητά και επιτραπέζιους υπολογιστές βασίζονται στο Darwin, ένα λειτουργικό σύστημα ανοιχτού κώδικα που προέρχεται αρχικά από το BSD Unix. Ακόμη και το Chrome του Google βασίζεται σε ένα πρόγραμμα περιήγησης ανοιχτού κώδικα που ονομάζεται Chromium.

Η κοινότητα ανοιχτού κώδικα και η κίνηση ανοιχτού κώδικα

Ο ανοιχτός κώδικας είναι κάτι περισσότερο από μια διαδικασία ανάπτυξης. Είναι μια φιλοσοφία για την οποία οι άνθρωποι είναι παθιασμένοι και είναι μια κοινωνική κοινότητα στην οποία μπορεί να συμμετέχει οποιοσδήποτε έχει δεξιότητες προγραμματισμού. Στην πραγματικότητα, είναι μια ολόκληρη σειρά κοινοτήτων, όπως το θέτει το Ίδρυμα Linux. (Η ύπαρξη μη κερδοσκοπικών οργανισμών όπως το Linux Foundation και το OSI είναι μια σημαντική πτυχή αυτής της κοινότητας.) Ο Florian Effenberger έχει μια μεγάλη έκθεση για το πώς η κοινότητα ανοιχτού κώδικα εμπλούτισε τη ζωή του.

Θα ακούτε συχνά ανθρώπους να μιλούν για το ανοιχτό λογισμικό ή την ελεύθερη κυκλοφορία λογισμικού, το οποίο έχει μια συνήθεια πολιτικής και συνηγορίας. Πολλά άτομα στην κοινότητα ανοιχτού κώδικα έχουν πιέσει για ευρεία υιοθέτηση λογισμικού ανοιχτού κώδικα για διάφορους λόγους: Πιστεύουν ότι το ανοιχτό λογισμικό παράγει εγγενώς καλύτερο κώδικα ή πιστεύουν ότι η πρόσβαση στον πηγαίο κώδικα είναι θεμελιώδες δικαίωμα που πρέπει να απολαμβάνουν οι χρήστες υπολογιστών, ή κάποιος συνδυασμός των δύο. Αυτή η πτυχή της κοινότητας φαίνεται λίγο λιγότερο ορατή σήμερα, αλλά ίσως αυτό συμβαίνει επειδή, από πολλές απόψεις, το ανοιχτό λογισμικό έχει κερδίσει. Το 2001, ο τότε διευθύνων σύμβουλος της Microsoft, Steve Ballmer είπε ότι, λόγω της άδειας ανοιχτού κώδικα, το Linux ήταν «ένας καρκίνος που συνδέεται με την έννοια της πνευματικής ιδιοκτησίας σε όλα όσα αγγίζει». Σήμερα, η Microsoft είναι ένας εκτενής χρήστης και παραγωγός λογισμικού ανοιχτού κώδικα. Με λίγα λόγια, αυτές είναι οι τελευταίες δύο δεκαετίες ιστορίας ανοιχτού κώδικα.

Λήψη λογισμικού ανοιχτού κώδικα

Θέλετε να ξεκινήσετε την περιήγηση και να παίζετε με έργα ανοιχτού κώδικα; Ρίξτε μια ματιά στη σελίδα Έργα και εφαρμογές του opensource.com, στην καρτέλα Εξερεύνηση του GitHub ή στον χάρτη λογισμικού του Open Source Development Network. Υπάρχουν πολλά για περίεργους ανθρώπους κάθε επιπέδου δεξιοτήτων.