Επόμενο Προηγούμενο Περιεχόμενα
Η ενηλικίωση του GNU project, αλλά και η αποδέσμευση των
εκδόσεων του BSD από τα πνευματικά δικαιώματα της USL,
μετά την αγορά της τελευταίας από τη Novell, συνετέλεσαν
ώστε να δημιουργηθεί μία ικανή βάση στην οποία θα
μπορούσε να στηριχθεί κάθε προγραμματιστής ο οποίος θα
επιθυμούσε να συνεισφέρει στην κοινότητα ανοικτού κώδικα.
Έτσι, μετά τις αρχές της προηγούμενης δεκαετίας,
παρατηρείται εκθετική αύξηση στην συγγραφή open source
προγραμμάτων και η κοινότητα εισάγει ένα νέο μοντέλο
ανάπτυξης, που δίνει διέξοδο έκφρασης σε κάθε νέα ιδέα
και αναγνωρίζει το δικαίωμα του κάθε ατόμου να μετέχει
στην τεχνική πρόοδο.
Το GNU project (GNU's Not Unix)ξεκίνησε το 1983, όταν ο
Richard M. Stallman συνέλαβε την ιδέα της συγγραφής ενός
ελεύθερου λειτουργικού συστήματος δανειζόμενου πολλά
στοιχεία από την προϋπάρχουσα οικογένεια των Unix
συστημάτων, αλλά χωρίς να χρησιμοποιεί πατενταρισμένο
κώδικα. Η ιδέα πίσω από το όλο εγχείρημα είναι ότι η
τεχνική γνώση είναι κτήμα της κοινωνίας και ότι ο
περιορισμός της διάδοσής της είναι ενάντια στον κοινό
συμφέρον. Όσοι προγραμματιστές ανταποκρίθηκαν στην
πρόσκληση του Stallman, δημιούργησαν εκ του μηδενός
πλήθος προγραμμάτων ανάλογα με αυτά των Unix, ώστε το
1985 είχαν διαθέσιμο τον editor emacs, έναν debugger σε
επίπεδο πηγαίου κώδικα, ένα ανάλογο του yacc και περίπου
35 utilities. Ήδη ο gcc είχε κατορθώσει να μεταγλωτίσει
τον εαυτό του και το Bash μπορούσε σχεδόν να
χρησιμοποιηθεί. Όμως ο χρόνος που απαιτήθηκε για να
φτάσει το GNU να περιλαμβάνει αρκετές χιλιάδες
executables, τεκμηρίωση και libraries, ήταν πολλαπλάσιος
(το 1987 πραγματοποιήθηκε η πρώτη beta-release του gcc,
το 1988 έγινε διαθέσιμη η Ghost Script) και τελικά το
Free Software Foundation ήταν, στις αρχές της δεκαετίας
του 90, σε θέση να διαθέσει μία λίγο-πολύ ολοκληρωμένη
και χρησιμοποιήσιμη userland, καθώς ο πηρύνας Hurd
(βασισμένος στον μικροπηρύνα CMU Mach) απείχε πολύ από
την ολοκλήρωση. Τελικά, το υλικό του GNU μπόρεσε να
αποτελέσει ένα χρησιμοποιήσιμο λειτουργικό με την
προσθήκη του πηρύνα Linux, ο οποίος διανέμεται κάτω από
την ίδια άδεια με τα υπόλοιπα μέρη του GNU.
Λόγω της τεράστιας αποδοχής του GNU/Linux, η ανάπτυξη του
Hurd από το FSF πέρασε σε δεύτερη μοίρα και μόνο το 2001,
μπόρεσε ο πηρύνας να αποτελέσει την "ψυχή" του GNU. Στο
χρονικό διάστημα που μεσολάβησε, το Free Software
Directory συνέχισε να μεγαλώνει, τροφοδοτούμενο από τους
(δυνάμει) προγραμματιστές που το Linux εισήγαγε στην
φιλοσοφία του ελεύθερου λογισμικού. Το 1997 ξεκίνησε η
ανάπτυξη του GNOME (GNU Network Object Model
Environment), ενός γραφικού περιβάλλοντος εργασίας,
βασισμένο στην βιβλιοθήκη GTK+, καθώς και πολλών
συνοδευτικών εφαρμογών για αυτό. Η πρώτη διανομή του GNU
ήταν (είναι) η Debian GNU/Hurd το 2001.
Χιλιοειπωμένη ιστορία! Ο Linus Torvalds (φοιτητής τότε
στο πανεπιστήμιο του Ελσίνκι), γιά να εξασκηθεί στην C,
ξεκίνησε το 1991 τη συγγραφή ενός πηρ... Χμμ...Ας
περιοριστούμε στο Linux.Ο πηρύνας του Linux στην πρώτη
του έκδοση (0.01) είχε δυνατότητα γιά task-switching,
παρείχε pseudo-tty's, οδηγό γιά ΑΤ δίσκους, BSD sockets,
BSD long filenames και system calls που έτειναν προς τις
απαιτήσεις του POSIX στα 71KB του tarball. Δύο μήνες
μετά, ο 0.11 προσέφερε demand loading, data sharing
ανάμεσα στις διεργασίες, υποστήριξη οδηγού δισκέτας και
ήχο (beep!) στην κονσόλα, ενώ έτρεχε αρκετά πλέον
executables από το GNU Project. Εκτός του ότι ήταν ο
πρώτος πηρύνας που μεταγλωττίστηκε κάτω από τον εαυτό του
και πέρα από την πολύ σημαντική VM, το Linux 0.12 ήταν η
πρώτη έκδοση του πηρύνα κάτω από την GPL.
Μετά και την έκδοση 1.0, το Linux έχει υποστήριξη SCSI
και γύρω από τον Linus έχει αρχίσει να μαζεύεται η
πολυπληθής παρέα που λίγοι μπορούν να ονομάσουν (Cox,
κ.τ.λ.). Ο Cox είναι ο κύριος υπέυθυνος για τον
firewalling κώδικα του πηρύνα ο οποίος βασίζεται
ουσιαστικά στα BSD και διατηρήθηκε στους 1.x πηρύνες,
στους οποίους οι προγραμματιστές του πηρύνα σταδιακά
πρόσθεσαν/βελτίωσαν την υποστήριξη για συνδέσεις αρχικά
SLIP και στη συνέχεια PPP, πάνω στις οποίες "κάθονταν" τα
TCP/IP και IPX. Η έκδοση 2.0.x είδε την δεύτερη γενιά του
firewall, ενώ με τους 2.2.x πηρύνες, το Linux
απαγκιστρώνεται από τα BSD και αποκτά μία "καθαρή"
υλοποίηση packet filtering, οδεύοντας προς το σημερινό
netfilter. Συγχρόνως γίνονται ports και σε άλλες, πλην
της x86, αρχιτεκτονικές , ώστε το Linux 2.0 να τρέχει σε
Motorola 68K, Sparc, MIPS, Alpha και PPC, giά να φτάσουμε
στον 2.4 στον οποίο το ls arch δίνει: alpha arm i386
ia64m68k mips mips64 parisc ppc s390 sh sparc sparc64. Σε
όλη την εξέλιξη του πηρύνα αυτό που δεν μένει στάσιμο
είναι το πλήθος των υποστηριζόμενων συσκευών το οποίο
αυξάνεται αδιάκοπα, σε βαθμό που εδώ και λίγα χρόνια το
GNU/Linux να θεωρείται εναλλακτική επιλογή και σαν
desktop σύστημα.
Στο GNU/Linux ενσωματώνεται ο Samba server γιά την
διευκόλυνση των μικτών δικτύων Unix/NT, ενώ ο πηρύνας
αναγνωρίζει πλήθος άλλων filesystems και προτοκόλων
επικοινωνίας, ώστε να καθιστούν το Linux σαν την πρώτη
επιλογή όταν το ζητούμενο είναι η interoperability. Μία
ακόμα καινοτομία που εισήγαγε το Linux είναι το μοντέλο
ανάπτυξης προγραμμάτων ανοικτού κώδικα στο οποίο δεν
υπάρχει κεντρική διαχείριση, μεσολαβεί μικρό χρονικό
διάστημα μεταξύ των σταθερών εκδόσεων και ο κώδικας είναι
διαθέσιμος στον καθένα σε όλα τα στάδια ανάπτυξής του
(βλέπε
The Cathedral and the Bazaar).
Η αρχική ομάδα του FreeBSD στηρίχθηκε πάνω στο 386BSD και
έθεσε ως βασικό στόχο στην ανάπτυξη του λειτουργικού την
υποστήριξη της PC πλατφόρμας καθώς και την παροχή
περισσότερων ευκολιών στον τελικό χρήστη. Αφού αξιοποίησε
τα patches για το 386BSD που ο δημιουργός του αδυνατούσε
να εφαρμόσει, αντλώντας στοιχεία απευθείας από την 4.3BSD
Networking Release 2 (Net/2) και "ντύνοντάς" το με υλικό
από το GNU Project, η ομάδα διέθεσε το FreeBSD 1.0 το
Δεκέμβρη του 1993. Μετά την μετάβαση στο 4.4BSD-Lite με
την έκδοση 2.0, η δημοτικότητα του FreeBSD, αυξάνεται
αλματωδώς και στο λειτουργικό ενσωματώνονται αρκετές
καινοτομίες. Το 1994 εισάγεται η έννοια του ports
collection, την οποία υιοθετούν αργότερα και τα άλλα open
source BSD's. Η ομάδα του FreeBSD επιτυγχάνει ταχύτατες
υλοποιήσεις των γνωστότερων δικτυακών προτοκόλων, και η
userland μεγαλώνει διαρκώς σε όγκο (υπάρχουν περίπου 4000
ports), ενώ καθίσταται δυνατή η χρήση shared libraries.
Το λειτουργικό διατίθεται πλέον και γιά την πλατφόρμα των
Alpha της DEC και προετοιμάζεται η μεταφορά του στο
hardware της Sun.
Η ανάπτυξη του NetBSD ξεκίνησε σαν μία προσπάθεια γιά την
συνέχιση και ανανέωση του 386BSD, το οποίο, παρά τη
μεγάλη του απήχηση, δεν μπορούσε να ακολουθήσει τις
εξελίξεις λόγω της αδυναμίας του δημιουργού και
συντονιστή του, Bill Jolitz, να εργαστεί εντατικά σε
αυτό. Έτσι μία ομάδα χρηστών του 386BSD συνεργάστηκαν γιά
να συνθέσουν τη δική τους διανομή, προσθέτοντας τη δική
τους δουλειά και εφαρμόζοντας τον τεράστιο όγκο των
patches που είχαν συνεισφέρει χρήστες του συστήματος και
τα οποία έμεναν αναξιοποίητα στα χέρια του Jolitz. Το
NetBSD group απορρόφησε μεγάλο μέρος της δουλειάς του
Computer Systems Research Group (CSRG) του UCB καθώς και
κώδικα από το GNU project. Στην έκδοση 1.0 έγινε η
αναγκαστική, γιά νομικούς λόγους, αλλαγή βάσης στο
4.4BSD-Lite και τα BSD μπόρεσαν να εκμεταλλευτούν τον
διαχωρισμό του κώδικα σε machine-independant και μη που
είχε επιτύχει το CSRG, γιά την εύκολη μετάβαση σε νέες
πλατφόρμες (porting). Ειδικά το NetBSD group έθεσε σαν
μία από τις πρώτες προτεραιότητες τη συμβατότητα με όσο
το δυνατό μεγαλύτερο αριθμό επεξεργαστών ή/και
ηλεκτρονικών συσκευών, απόφαση που καθιστούσε σαν
επιτακτική, πλέον, ανάγκη ο κώδικας του συστήματος να
είναι καθαρογραμμένος και σωστά οργανωμένος. Το NetBSD
ήταν το πρώτο open-source λειτουργικό που έτρεξε στον
Alpha και μέσα στο 2001, οι επίσημα υποστηριζόμενες
πλατφόρμες πλησιάζουν τις 40 (βεβαία αυτό το νούμερο θα
έχει ήδη μεγαλώσει :). Είναι μερικώς συμβατό με το
POSIX.1 και λιγότερο, με το POSIX.2, ενώ από το δέντρο
του αντλούν στοιχεία πολλές ports των άλλων BSD
συστημάτων.
Το OpenBSD γεννήθηκε από ένα fork στην ανάπτυξη του
NetBSD, όταν μία ομάδα προγραμματιστών συνέχισε την
εργασία της πάνω στον κώδικα του NetBSD δίνοντας
ιδιαίτερη προσοχή στην ασφάλεια του συστήματος. Από το
1996 μέχρι και σήμερα μία ομάδα από 12 άτομα "χτένισε"
τον κώδικα στον οποίο βασίζεται το OpenBSD αναζητώντας
bugs, σχεδιαστικά λάθη, παραλήψεις τα οποία μπορούσαν να
χρησιμοποιηθούν γιά να αποδυναμωθεί η ασφάλεια του
μηχανήματος. Θεμελιώδη σημασία γιά το OpenBSD είχε η
απόφαση των δημιουργών του να το αναπτύξουν στον Καναδά
και να δέχονται (στον τομέα που αναφέρεται παρακάτω)
συνεισφορές μόνο εκτός Ηνωμένων Πολιτειών, παρακάμπτοντας
με τον τρόπο αυτό τους νόμους των ΗΠΑ περί εξαγωγής
μεθόδων κρυπτογράφησης. Έτσι με το λειτουργικό μπορούν να
διανέμονται οι DES, triple DES, Blowfish και Cast
transforms που βρίσκουν εφαρμογή στο IPSEC και στον
Kerberos, δίνοντας στο σύστημα πρωτοποριακές (τότε), σε
σχέση με τα άλλα open source λειτουργικά, δυνατότητες
στον τομέα της ασφάλειας των επικοινωνιών και της
κρυπτογράφησης ευαίσθητων δεδομένων. Εξίσου σημαντική,
γιά όλα τα ανοικτού κώδικα συστήματα, ήταν (είναι) και η
ανάπτυξη του OpenSSH, μιας ανοικτής υλοποίησης του
προτοκόλου SSH, συμβατή με όλες τις εκδόσεις του
τελευταίου. Επιπλέον, η κοινή βάση με το NetBSD
διευκολύνει τη μεταφορά του OpenBSD σε νέες
αρχιτεκτονικές, με 11 ports να έχουν ολοκληρωθεί και
αρκετές να βρίσκονται σε εξέλιξη.
Επόμενο Προηγούμενο Περιεχόμενα