2. Ελεύθερο Λογισμικό και Linux

2.1. Ορισμός

Σύμφωνα με τη Wikipedia. Το λογισμικό των υπολογιστών (ή απλά λογισμικό) είναι το μέρος αυτό ενός υπολογιστικού συστήματος το οποίο εμπεριέχει κωδικοποιημένες πληροφορίες (ή εντολές υπολογιστή). Ο όρος "λογισμικό" χρησιμοποιείται συνήθως για ένα πρόγραμμα ενος υπολογιστή και αντίστροφα. Το λογισμικό απαρτίζεται απο ένα πρόγραμμα υπολογιστή, ειδικά στην πρόσφατη μικρο-υπολογιστική επιστήμη, όπου μόνο η επίδοση ενός επεξεργαστή και η φτηνή χωρητικότητα μνήμης επιτρέπουν το τρέξιμο μεγάλων προγραμμάτων. Τέλος πάντων, το λογισμικό είναι συγκροτημένο σε μεγάλο ποσοστό απο το σύνολο ενός ή περισσοτέρων προγραμμάτων, αλλά ακόμη και απο δεδομένα που θα του επιτρέψουν να λειτουργήσει. Αυτά τα προγράμματα μπορούν μπορούν να έχουν διαφορετική μορφή: εκτελέσιμα, δυναμικές βιβλιοθήκες ('dll' στα Windows ή 'so' στα GNU/Linux), ή απλά αρχεία πηγαίου κώδικα για έναν διερμηνέα/μεταγλωτιστή (e.g. Perl ή PHP scripts). Τα δεδομένα έρχονται και σε διαφορετική μορφοποίηση ακόμα: κλασσικά αρχεία, βάσεις δεδομένων (σχεσιακές, ιεραρχικές κ.λ.π.)... Στην μικρο-υπολογιστική επιστήμη, εικόνες, ειδικά τα εικονίδια, είναι συχνά ενσωματωμένες στα εκτελέσιμα αρχεία.

2.2. Γενικός Ορισμός του "Λογισμικού"

Το Λογισμικό περιέχει εντολές οι οποίες εκτελούνται απο έναν υπολογιστή, σε αντίθεση με μία φυσική συσκευή η οποία λειτουργεί (το "υλικό"). Ένα "προγραμμα" είναι μια λίστα απο οδηγίες, γραμμένες απο έναν προγραμματισή σε μια γλώσσα προγραμματισμού (π.χ. γλώσσα C , C++, Java, Python). Συνήθως είναι αποθηκευμένο σαν ένα απλό αρχειο. Ως "Λογισμικό" ακόμα, αναφερόμαστε και σε μια σειρά οδηγιών που συγκροτούν αρκετά προγράμματα. Ένας άνθρωπος με τις κατάλληλες γνώσεις μπορεί να διαβάσει το πρόγραμμα. Αυτό αποκαλειται "πηγαίος κώδικας" και είναι η τεκμηρίωση του προγράμματος. Προγραμματιστές λογισμικού κλειστού κώδικα κρατούν αυτά τα μυστικά καλά κρυμμένα. Μόνο λογισμικό Ανοιχτού κώδικα διατίθεται στο κοινό. Τα χαρακτηριστικά του λογισμικού περιγράφονται ξεκάθαρα στον πηγαίο κώδικα (μετάφραση του δυαδικού 0 και 1, τα οποία είναι οι μόνες οδηγίες οι οποίες καταλαβαίνει το μηχάνημα). Οι μεταγλωτιστές συνήθως χρησιμοποιούνται για να μεταφράσουν τον πηγαίο κώδικα σε γλώσσα μηχανής. Μετά απο αυτή τη μετατροπή έχουμε αυτό που καλούμε "δυαδικά αρχεία", και μπορούν αν αναγνωσθούν απο μια μηχανή. Ακόμα χρειάζεται να προσαρμοστούν στο λογιστικό συστήματος (MS Windows, Mac OS, GNU/Linux, BSD, etc.) για να τα κάνουμε να λειτουργήσουν. Όταν θα προσαρμοστεί στο σύστημα οικοδεσπότη (host), το λογισμικό είναι έτοιμο να εγκατασταθεί και να εκτελεστεί.

Το λογισμικό μπορεί να ταξινομηθεί όπως παρακάτω:

  • Ανοιχτού κώδικα: ο καθένας μπορεί να διαβάσει τον κώδικα; αυτό δεν είναι όμως το ίδιο με το δωρεάν λογισμικό!

  • Κλειστού κώδικα: Ο κώδικας είναι διαθέσιμος μόνο σε μια μικρή ομάδα ανθρώπων.

  • Ελεύθερο Λογισμικό: ο καθένας μπορεί να μελετήσει, αντιγράψει, διανέμει και επεξεργαστεί το λογισμικό (αυτός είναι ο ορισμός του Ιδρύματος Ελεύθερου Λογισμικού. Το Ελέυθερο λογισμικό συχνά προστατέυεται μέσω της χρήσης μιας ελεύθερης άδειας πνευματικής ιδιοκτησίας).

  • Ιδιωτικό Λογισμικό: τουλαχιστον ένα απο τα παραπάνω δικαιώματα δεν εξασφαλίζονται για τον χρήστη. Τις περισσότερες φορές, κάποιος χρειάζεται να αποκτήσει μία άδεια πληρώνοντας τους δημιουργους του λογισμικού.

  • Εμπορικό Λογισμικό: το συγκεκριμένο λογισμικό δημιουργήθηκε για πώληση. Μπορεί να είναι είτε ελεύθερο είτε ιδιωτικό.

2.3. Παρουσίαση του ελεύθερου λογισμικού (βασισμένο στο άρθρο του Marc Poiroud)

2.3.1. Η προέλευση του ελεύθερου λογισμικού

Η ιστορία ξεκινάει στις αρχές της δεκαετίας του 80, όταν ο Richard Stallman, ένας ερευνητής του MIT (Massachusetts Institute of Technology, U.S.A.), αντιμετώπισε ένα ηθικό δίλλημα. Ο τομέας Τεχνολογίας της Πληροφορίας της όπου έκανε έρευνα είχε κλείσει. Για χρόνια, μοιραζόταν τις γνώσεις του με τους συνεργάτες του. Τώρα, θα πουλούσε τη γνώση του σε αυτόν που θα έκανε τη μεγαλύτερη προσφορά, ή θα αξιοποιούσε το ενδεχόμενο στο οποίο θα μοιραζόταν τη γνώση με τον υπόλοιπο κόσμο; Για να κατευνάσει τη συνέιδησή του, δημιούργησε την αρχή του "ελεύθερου λογισμικού - free software". Αυτή η έννοια καθορίζεται απο τις ακόλουθες τέσσερις αρχές:

  • 1° Την ελευθερία να τρέξεις ένα πρόγραμμα, χώρις περιορισμούς στη χρήση του.

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

  • 3° Την ελευθερία να διανέμεις αντίγραφα.

  • 4° Την ελευθερία να βελτιώνεις το πρόγραμμα και να εκδίδεις τις βελτιώσεις του, έτσι ώστε να ωφελείται όλοκληρη η κοινότητα απο αυτό. Για αυτό επίσης, η πρόσβαση στον πηγαίο κώδικα είναι προαπαιτούμενο στοιχείο.

2.3.1.1. Το Εργο GNU

Μέτα τη σύγγραφη αυτής της δήλωσης, ο Stallman δημιούργησε τον "Free Software Foundation (Ίδρυμα Ελεύθερου Λογισμικού)" Ο στόχος αυτού του οργανισμού ήταν η προώθηση και ανάπτυξη ελεύθερου λογισμικού. Για αυτόν τον οργανισμό, ο Stallman ξεκίνησε να γράφει εφαρμογές. Ο απώτερος σκοπός: η δημιουργία ενός εντελώς ελεύθερου λειτουργικού συστήματος. Για να προστατέψει το λογισμικό GNU απο εμπορικές επιχειρήσεις, ο Stallman δημιούργησε μια άδεια, την "GNU Public License". Η άδεια ενσωματώνει τις τέσσερις στοιχειώδεις αρχές που προαναφέρθηκαν, σε ένα σταθερό νομικό πλαίσιο. Η πρώτη αληθινή δοκιμασία για την GPL ήταν μια Γερμανική δίκη το 2004, όπου ένας δικαστής επέβαλλε ποινή σε μία εταιρία που την παραβίασε. Η GNU, όπως πολλά ακρωνύμια στον κόσμο "*nix", είναι συντομογραφία του GNU's Not Unix (Η πρώτη λέξη, GNU, δεν σημαίνει ουσιαστικά τίποτα). Τη δεκαετία του 80, όταν η Microsoft και τα Windows ήταν ακόμα νάνοι, το Unix ήταν το ιδιωτικό σύστημα νούμερο ένα.

2.3.1.2. Η Πρωτοβουλία του Ανοιχτού Κώδικα (OSI)

Ένα άλλο κίνημα ξεπρόβαλλε στη δεκαετία του 90. Οι πρωτοστάτες αυτής, θεώρησαν τους εαυτούς τους πιο ευπροσάρμοστους απ'ότι το ΙΑΛ (FSF). Η πρωτοβουλία πηρε μορφή όταν το 1998 Netscape έγινε ελεύθερο λογισμικό. Εκείνο τον καιρό, μια ομάδα ανθρώπων αποφάσισαν να υποστηρίξουν τη κίνηση της Netscape. Ακολουθούν την Debian concept of free software. Μπορείτε να βρείτε να δέκα κριτήρια εδώ: original version of the OSI license (version 1.9).

2.3.2. Κατανοώντας το ελεύθερο λογισμικό

2.3.2.1. Απο που προέρχεται το ελεύθερο λογισμικό;

Το πρώτο ελεύθερο λογισμικό αναπτύχθηκε απο τον ίδιο τον Stallman. Για να ξεκινήσεις να χτίζεις ένα λειτουργικό σύστημα, χρειάζεσαι πραγματικό βασικό λογισμικό (όπως η συλλογή του μεταγλωτιστή GNU). Αλλά αφού το ΙΕΛ έγραψε ολόκληρη τη βάσή του Λ.Σ., έλειπε ένα πράγμα: ο πυρήνας. Ο Stallman διάλεξε μια φιλόδοξη εκδοχή για τον καινούριο πυρήνα: θα έπρεπε να ήταν ένας μικρο-πυρήνας (τα Windows γαι παράδειγμα χρησιμοποιούν ένα μάκρο-πυρήνα; το Linux, σε αντίθεση, χρησιμοποιεί έναν μικρο-πυρήνα). Ωστόσο, στην ανάπτυξή του πυρήνα δεν πήγαν όλα όπως είχαν σχεδιαστεί. Ακόμα και τώρα, το σύστημα (που λέγεται GNU/Hurd) δεν λειτουργεί. Στο σημείο αυτό έρχεται ο Linus Torvalds. Ο φοιτητής απο την Φινλανδία, μελετούσε τις εσωτερικές λειτουργίες των επεξεργαστών x386 CPUs και είχε ξαναγράψει ένα POSIX συμβατό πρόγραμμα για να καταλάβει τις λειτουργίες αυτής της γενιάς επεξεργαστών. Απλά για πλάκα, γράφει ένα πυρήνα, χρησιμοποιώντας λογισμικό GNU. Και τέλος, διανέμει τον πυρήνα κάτω απο την άδεια GNU Public License. Ο νεόφερτος συνδυασμός GNU/Linux θύμιζε με ένα τέλειο ζευγάρι. Η ανάπτυξή του αυξήθηκε απίστευτα γρήγορα, χάρη στις συνεισφορές τις κοινότητας των χάκερ (ο όρος "hacker" σημαίνει παθιασμένος με την Τεχνολογία της Πληροφορίας, σε αντίθεση με τον όρο "cracker", ο οποίος αναφέρεται σε έναν άνθρωπο που στοχεύει στην καταστροφή άλλων συστημάτων - όμως, ο ευρύς ορισμός του όρου "hacker" χρησιμοποιέιται απο το γενικό κοινό με την έννοια του "cracker", δίνοντας έτσι μια αρνητική σημασία). Όταν ανακοινώθηκε επίσημα (η έκδοση 1.0 γεννήθηκε στις 14 Μάρτιου 1994), το σύστημα GNU/Linux έχει ήδη ισχυρή φήμη. Παρ'ότι ήταν χρήσιμο μόνο σε ελίτ χάκερς, μοιάζει πολλά υποσχόμενο. Πολλοί πυρήνες ακολούθησαν. Το 1996, ο πυρήνας 2.0 εκδίδεται, το 1999, ακολουθεί ο 2.2. Ενώ ο 2.2 ήταν ακόμα προβληματικός, με την εμφάνιση του 2.2.13 ανοίγει ο δρόμος στον εμπορικό/επιχειρηματικό κόσμο, χάρη στις προσθήκες (patches) της κεντρικής υπολογιστικής μονάδας της IBM. Το 2001, βγαίνει ο 2.4 πυρήνας. Στο τέλος του 2006 ακολουθεί ο πυρήνας 2.6. Εν τω μεταξύ ο 2.6 είναι ο μοναδικός πυρήνας ο οποίος διατηρείται ενεργά, ενώ ο 2.4 ακομά δέχεται αναβαθμίσεις ασφαλείας. Το σημείο αναφοράς της ανάπτυξης του Linux είναι το διαδίκτυο. Είναι η ζωή της κοινότητας ελεύθερου λογισμικού. Το σύστημα GNU/Linux είναι ένα απο τα μεγαλύτερά του επιτεύγματα, θα μπορούσε να μην έβλεπε φως ποτέ χωρίς την ανταλλαγή πληροφοριών μεταξύ των προγραμματιστών που βρίσκονται διάσπαρτοι σε όλο το κόσμο. Το ελεύθερο λογισμικό προσφέρει πολλές ποιοτικές εφαρμογές: σχεδόν όλος ο παγκόσμιος ιστός τρέχει σε Linux διακομιστές, χρησιμοποιώντας λογισμικό όπως Apache και PHP... Πολλές εφαρμογές δεν είναι μόνο διαθέσιμες στο Linux, αλλά έχουν μεταφερθεί στοα BSD, Windows, ακόμα και στο Mac OS X. Μια γρήγορη περίληψη μερικών γνωστών εφαρμογών:

  • Η σουίτα γραφείου OpenOffice.org

  • Ο διαδικτυακός πλοηγητής Mozilla Firefox

  • Το Gimp (GNU Image Manipulation Program)

  • Avidemux, ένας εξαίρετος επεξεργαστής βίντεο

  • Το Gaim instant messenger

  • Ο Apache διακομιστής ιστού

  • Η γλώσσα PHP