Μετάβαση στο περιεχόμενο | Μετάβαση στην περιήγηση

Περιήγηση στην ιστοσελίδα

Ο πυρήνας Linux και το έργο GNU

του Richard Stallman

Αν θέλετε να μάθετε περισσότερα σχετικά με αυτό το θέμα μπορείτε να διαβάσετε επίσης το GNU/Linux FAQ καθώς και το άρθρο Χρήστες του GNU που δεν γνωρίζουν τίποτα για το GNU.

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

Όντως υπάρχει ο Linux, και αρκετοί άνθρωποι τον χρησιμοποιούν, αλλά δεν είναι από μόνος του λειτουργικό σύστημα. Ο Linux είναι απλός ένας πυρήνας. Δηλαδή, το πρόγραμμα εκείνο του λειτουργικού συστήματος που δεσμεύει και αποδίδει τους πόρους του Η/Υ σε όλα εκείνα τα προγράμματα που εκτελούν οι χρήστες. Ο πυρήνας θεωρείται αναπόσπαστο κομμάτι του λειτουργικού συστήματος, αλλά από μόνος του είναι παντελώς ανίκανος. Ο μόνος τρόπος που μπορεί να λειτουργήσει είναι να τοποθετηθεί μέσα σε ένα λειτουργικό σύστημα. Ο Linux, συνήθως χρησιμοποιείται σε συνδυασμό με το λειτουργικό σύστημα GNU. Έτσι λοιπόν, το σύστημα GNU χρησιμοποιεί τον Linux ως πυρήνα του.

Πολλοί χρήστες έχουν πλήρη άγνοια όσο αφορά την διάκριση μεταξύ του πυρήνα, τον Linux δηλαδή, και το υπόλοιπο σύστημα GNU, στο οποίο επίσης αναφέρονται ως “Linux”. Η αμφιλεγόμενη χρήση της λέξης δεν βοηθάει στο να υπάρχει πλήρης κατανόηση. Επίσης αρκετοί χρήστες, πιστεύουν πως ο Linus Torvalds με την υποστήριξη που είχε από όλο το κόσμο ήταν αυτός που κατασκεύασε ολόκληρο το λειτουργικό σύστημα το 1991.

Γενικότερα, οι προγραμματιστές γνωρίζουν ότι ο Linux είναι απλός ένας πυρήνας. Από τότε που άκουσαν όμως να αποκαλείται το όλο σύστημα “Linux”, προβλέπουν συχνά μία ιστορία που θα δικαιολογούσε την ονομασία ολόκληρου του λειτουργικού συστήματος προς χάριν ενός πυρήνα. Για παράδειγμα, υπάρχουν αρκετοί προγραμματιστές που νομίζουν πως αφού ο Linus Torvalds ολοκλήρωσε την συγγραφή του πυρήνα Linux, οι χρήστες που τον χρησιμοποιούσαν τότε, αναζήτησαν για περαιτέρω ελεύθερο λογισμικό έτσι ώστε να θέσουν τον πυρήνα σε λειτουργία και ότι ως αποτέλεσμα βρήκαν αρκετό ώστε να ολοκληρώσουν το τότε ελεύθερο συμβατό με το σύστημα Unix.

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

Τα περισσότερα έργα ελεύθερου λογισμικού κατασκευάζονται για να εξυπηρετήσουν τις ανάγκες του καθενός. Δηλαδή, κατασκευάζονται για μια συγκεκριμένη δουλεία. Για παράδειγμα, ο Linus Torvalds κατασκεύασε τον συμβατό με το Unix πυρήνα Linux. Ο Donald Knuth κατασκεύασε ένα σύστημα διαμόρφωσης κειμένου (TeX). Ο Bob Scheilfler κατασκεύασε ένα παραθυρικό περιβάλλον (X Window System). Είναι πολύ φυσικό το να μετράμε την συνεισφορά τέτοιου είδους εργασιών με συγκεκριμένα προγράμματα που βγαίνουν από τα έργα αυτά.

Εάν προσπαθήσουμε να μετρήσουμε τη συνεισφορά του έργου GNU κατά τον ίδιο τρόπο, που θα καταλήξουμε; Ένας διανομέας συμπαγών δίσκων (CD-ROM vendor) διαπίστωσε ότι σε μία διανομή “Linux”, το λογισμικό GNU ήταν ο μεγαλύτερο αντιπρόσωπος, αφού αποτελούσε περίπου το 28% του συνολικού πηγαίου κώδικα, συμπεριλαμβανομένων των σημαντικών συστατικών ελλείψει των οποίων δεν θα μπορούσε να υπάρξει σύστημα που μπορεί να αξιοποιηθεί. Ο Linux αποτελούσε περίπου μόνο το 3%. Οπότε καταλαβαίνουμε τελικά, πως εάν χρειαστεί να διαλέξουμε κάποιο όνομα για να αναφερόμαστε στο ποιος κατασκεύασε τα προγράμματα του συστήματος, τότε το μόνο κατάλληλο όνομα είναι το “GNU”.

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

αρκετοί άνθρωποι έχουν κάνει ανεκτίμητες συνεισφορές όσο αφορά το ελεύθερο λογισμικό που υπάρχει στο σύστημα, και φυσικά όλοι τους αξίζουν συγχαρητήρια. Όμως ο μόνος λόγος για τον οποίο το σύστημα είναι ολοκληρωμένο --και όχι απλά μια συλλογή προγραμμάτων--είναι επειδή το έργο GNU προσπάθησε αρκετά. Δημιουργήσαμε μια λίστα με όλα τα αναγκαία προγράμματα που χρειαζόμασταν έτσι ώστε να κατασκευάσουμε ένα ολοκληρωμένο ελεύθερο λειτουργικό σύστημα. Επίσης, βρήκαμε, γράψαμε, και ήρθαμε σε επαφή με άλλους που ήθελαν να γράψουν τα προγράμματα που είχαμε καταγράψει στην λίστα. Κατασκευάσαμε πολύ σημαντικά (1) συστατικά που δεν κινούν το ενδιαφέρον ενός τελικού χρήστη, όμως πρέπει να τονίσουμε πως δίχως αυτά το σύστημα δεν θα μπορούσε να λειτουργήσει. Μερικά από αυτά τα συστατικά, όπως τα προγραμματιστικά εργαλεία, έγιναν διάσημα από μόνα τους ανάμεσα στους προγραμματιστές. Κατασκευάσαμε πολλά συστατικά τα οποία δεν ανήκουν στην κατηγορία των εργαλείων (2). Παράλληλα δημιουργήσαμε ένα αρκετά έμπειρο σκάκι, το GNU Chess, επειδή ένα ολοκληρωμένο σύστημα χρειάζεται και παιχνίδια για την ψυχαγωγία των χρηστών.

Στις αρχές του '90 είχαμε ολοκληρώσει όλο το λογισμικό του συστήματος, εκτός αυτό του πυρήνα (όμως δουλεύαμε το GNU Hurd, το οποίο τρέχει στην κορυφή του μικρο--πυρήνα Mach). Η αποσφαλμάτωση του GNU Hurd τελικά φάνηκε πως ήταν μια αρκετά πολύπλοκη και επίπονη διαδικασία. Το GNU Hurd άρχισε να λειτουργεί αξιόπιστα το 2001. Αυτή τη περίοδο προσπαθούμε να ετοιμάσουμε την νέα έκδοση του GNU συστήματος που κάνει χρήση του GNU Hurd.

Φυσικά, δεν ήμασταν σε θέση να αναμένουμε την ολοκλήρωση του Hurd, επειδή ο Linux ήταν διαθέσιμο. Όταν ο Linus Torvalds έγραψε τον Linux, τότε εκείνο το βασικό κενό του συστήματος έπαψε να υπάρχει. Οι χρήστες τότε μπορούσαν να συνδυάζουν τον Linux μαζί με το GNU σύστημα, για να έχουν ένα πλήρες ελεύθερο λειτουργικό σύστημα: μια έκδοση του GNU συστήματος βασισμένη στον πυρήνα Linux, εν συντομία το GNU/Linux σύστημα. Τελικά, τα πιο πρόσφατα έγγραφα τεκμηρίωσης του Linux, μαρτυρούν πως τελικά ο Linux είναι ένα πυρήνας που χρησιμοποιήθηκε σε συνδυασμό με το σύστημα GNU: “Τα περισσότερα εργαλεία που χρησιμοποιούνται με τον Linux είναι λογισμικό GNU και συνοδεύονται υπό την άδεια αντιγραφής (copyleft) του GNU. Αυτά τα εργαλεία δεν βρίσκονται στην αναμονή - ρωτήστε εμένα (ή το GNU) για περισσότερες πληροφορίες.”

Ο συνδυασμός τους (του συστήματος GNU και του πυρήνα Linux) μπορεί να ακούγεται απλή διαδικασία, στην πραγματικότητα όμως δεν ήταν και τόσο απλή. Μερικά από τα συστατικά (3) του GNU χρειαζόταν ουσιαστική αλλαγή για να λειτουργήσουν με τον Linux. Αναπτύσσοντάς ένα ολοκληρωμένο λειτουργικό σύστημα ως διανομή όπου θα μπορούσε να τρέχει αξιόπιστα “εκτός του κουτιού” ήταν επίσης αρκετά μεγάλη διαδικασία. Χρειαζόταν να διευθετήσουμε το θέμα που αφορά την εγκατάσταση και την εκκίνηση του συστήματος. Αυτό ήταν ένα πρόβλημα που δεν είχαμε προ μελετήσει διότι δεν είχαμε φτάσει ακόμα εκεί. Πάντως, οι χρήστες που κατασκεύασαν τις διάφορες διανομές συνείσφεραν ουσιαστικά σε αυτό το πρόβλημα.

Το έργο GNU υποστηρίζει και τα συστήματα GNU/Linux και το σύστημα GNU (ακόμη και με χρήματα). Χρειάστηκε να δοθούν χρήματα έτσι ώστε να ξαναγραφτούν οι σχετιζόμενες επεκτάσεις του Linux στην βιβλιοθήκη GNU C, έτσι ώστε να είναι τέλεια αναπτυγμένη, και τα πιο πρόσφατα GNU/Linux συστήματα να χρησιμοποιούν την τρέχουσα έκδοση της χωρίς να χρειάζονται αλλαγές. Επίσης χρειάστηκε να δοθούν χρήματα για την ανάπτυξη τις διανομής Debian GNU/Linux

Σήμερα, χρησιμοποιούμε GNU συστήματα βασισμένα στον Linux, και ελπίζουμε στο μέλλον να χρησιμοποιήσετε και εσείς. Επίσης, υπάρχουν πολλές διαφορετικές εκδόσεις του συστήματος GNU/Linux (συνήθως ονομάζονται “διανομές”). Πολλές όμως από αυτές συμπεριλαμβάνουν μη-ελεύθερο λογισμικό. Δυστυχώς, οι κατασκευαστές αυτών έχουν υιοθετήσει την φιλοσοφία του Linux και όχι του GNU. Ευτυχώς υπάρχουν και απόλυτα ελεύθερες διανομές GNU/Linux.

Είτε χρησιμοποιείτε το GNU/Linux, είτε όχι, σας παρακαλούμε να μην μπερδεύεται τον υπόλοιπο κόσμο χρησιμοποιώντας το όνομά “Linux”. Ο Linux είναι πυρήνας, το πιο αναπόσπαστο κομμάτι του συστήματος. Αν δούμε όλο το σύστημα ως σύνολο τότε πάνω κάτω όλο είναι λογισμικό GNU και κάνει χρήση του πυρήνα Linux. Όταν μιλάτε για αυτόν το συνδυασμό παρακαλούμε αναφέρετε τον όρο “GNU/Linux”.

Εάν χρειάζεστε κάποιον σύνδεσμο που να αναλύει το “GNU/Linux”, αυτή η σελίδα καθώς και η http://www.gnu.org/gnu/the-gnu-project.el.html αποτελούν καλές επιλογές. Εάν χρειάζεστε κάποιον σύνδεσμο που να αναλύει τον Linux, ως πυρήνα, τότε ο http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Linux είναι ένας καλός σύνδεσμος.

Υποσημείωση: Πέρα από το έργο GNU, ένα άλλο έργο που λειτουργούσε ανεξάρτητα κατασκεύασε ένα ελεύθερο λειτουργικό σύστημα συμβατό με το σύστημα Unix. Το σύστημα αυτό είναι γνωστό ως BSD και δημιουργήθηκε στο πανεπιστήμιο του Berkeley. Το '80 ήταν μη ελεύθερο, όμως στις αρχές του '90 τελικά έγινε ελεύθερο. Όλα τα ελεύθερα λειτουργικά συστήματα που υπάρχουν σήμερα είναι βασισμένα είτε στο σύστημα GNU είτε στο BSD.

Οι χρήστες μερικές φορές ρωτάνε εάν το BSD είναι κάποια έκδοση του GNU, όπως για παράδειγμα το GNU/Linux. Οι κατασκευαστές του BSD εμπνεύστηκαν από το έργο GNU όσο αφορά την ελευθερία του λογισμικού, και για αυτό ο κώδικας του BSD συστήματος είναι ελεύθερος. Ο κώδικας του συστήματος BSD διαφέρει από τον κώδικα του συστήματος GNU. Τα συστήματα BSD σήμερα χρησιμοποιούν μερικά από τα προγράμματα του GNU, όπως επίσης το σύστημα GNU χρησιμοποιεί μερικά συστατικά από το σύστημα BSD. Ωστόσο, είναι δυο διαφορετικά συστήματα τα οποία αναπτύχθηκαν ξεχωριστά. Οι κατασκευαστές του BSD δεν έγραψαν κάποιον πυρήνα και τον ενσωμάτωσαν στο GNU σύστημα. Για αυτό, το όνομα GNU/BSD δεν θα ταίριαζε σε αυτήν την περίπτωση.(4)

Σημειώσεις:

  1. Μη ενθουσιώδη άλλα απαραίτητα ουσιαστικά συστατικά αποτελούν το πακέτο GNU Binutils , το GNU tar, και άλλα.
  2. Για παράδειγμα, Το Bourne Again SHell (BASH), ο διερμηνέας PostScript Ghostscript, και η βιβλιοθήκη GNU C δεν αποτελούν προγραμματιστικά εργαλεία. Το ίδιο ισχύει και για τα GNUCash, GNOME, και GNU Chess.
  3. Για παράδειγμα, η βιβλιοθήκη GNU C.
  4. Παρόλα αυτά, μερικά χρόνια μετά τη συγγραφή αυτού του άρθρου, η βιβλιοθήκη GNU C μεταφέρθηκε στον πυρήνα FreeBSD, κάτι το οποίο επιτρέπει το συνδυασμό του συστήματος GNU με αυτόν τον πυρήνα. Παρομοίως με το GNU/Linux, αυτά τα συστήματα αποτελούν παραλλαγές του GNU, και επομένως πρέπει να ονομάζονται GNU/kFreeBSD και GNU/kNetBSD ανάλογα με τον πυρήνα που χρησιμοποιεί το εκάστοτε σύστημα. Οι καθημερινοί χρήστες ενός τυπικού συστήματος δύσκολα μπορούν να ξεχωρίσουν αν ένα σύστημα είναι GNU/Linux ή GNU/*BSD.
GPLv3

Translations of this page