-- Leo's gemini proxy

-- Connecting to magaz.hellug.gr:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

Εξέλιξη των συστημάτων Unix


Οικονομόπουλος Άγγελος(mailto:lydwigvernon@yahoo.co.uk) γιά το magaz(http://magaz.hellug.gr)
Ιουν 2001

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


1. Unix (R)evolution


[1.1 Η γέννηση του Unix]

[1.2 Το Unix όπως το γνωρίζουμε σήμερα: SVR1]

[1.3 Berkeley Software Distribution]


2. Unix Variants


[2.1 XENIX]

[2.2 Unix System V]

[2.3 SunOS/Solaris]

[2.4 HP-UX]

[2.5 AIX]

[2.6 NeXTSTEP]

[2.7 IRIX]

[2.8 A/UX]

[2.9 OSF/1]

[2.10 Minix]

[2.11 BSDi]

[2.12 UnixWare]

[2.13 tru64 Unix]

[2.14 Mac OS X]


3. Open Source


[3.1 GNU]

[3.2 GNU/Linux]

[3.3 FreeBSD]

[3.4 NetBSD]

[3.5 OpenBSD]


4. Standardization


[4.1 SVID]

[4.2 POSIX]

[4.3 XPG3/4]

[4.4 Single UNIX Specification]

[4.5 Single UNIX Specification 2]


[1. Unix (R)evolution]


Η εποχή αυτή είναι η εποχή των ερευνητικών ομάδων και των πανεπιστημίων, της ατομικής συνεισφοράς και τρέλας, αλλά κυρίως της ελεύθερης διάθεσης του κώδικα, αυτή που ο Stallman νοσταλγούσε όταν ξεκίνησε την προσπάθειά του να ελευθερώσει το λογισμικό από τις πατέντες των εταιριών. Και όταν ακόμα η AT&T κατέστησε το Unix αμιγώς εμπορικό προϊόν, το επιστημονικό ενδιαφέρον έπαιζε για αρκετό καιρό ακόμα σημαντικότερο ρόλο στην κατεύθυνση που ακολούθησε η εξέλιξη του Unix, από τις αποφάσεις του τμήματος marketing των εταιριών.


[1.1 Η γέννηση του Unix]


Στα τέλη της δεκαετίας του 1960, το Τεχνολογικό Ινστιτούτο της Μασσαχουσέτης (ΜΙΤ) μαζί με τα διάσημα Bell Labs της AT&T ανέπτυσσαν ένα εξελιγμένο λειτουργικό σύστημα για το mainframe 645 της General Electric, υπό την ονομασία Multics (Multiplexed Information and Computing System). Για το ίδιο mainframe ο Ken Thompson (εργαζόμενος στα Bell Labs) είχε γράψει ένα παιχνίδι το οποίο προσομοίωνε το ηλιακό σύστημα με τον τίτλο Space Travel, αλλά η εκτέλεση του παιχνιδιού από τον 645 ήταν απογοητευτική. Έτσι, αφού μαζί με τον Dennis Ritchie εξασφάλισε πρόσβαση σε έναν DEC PDP-7, ξαναέγραψαν το παιχνίδι για να τρέχει στον PDP-7 και ταυτόχρονα, αξιοποιώντας πλήθος ιδεών από το Multics, δημιούργησαν ένα νέο λειτουργικό με μία πρώιμη γραμμή εντολών και το δικό του filesystem. Το λειτουργικό αυτό μπορούσε να χρησιμοποιηθεί από δύο χρήστες ταυτόχρονα και ο Brian Kernighan του έδωσε χιουμοριστικά το όνομα Unics (Uniplexed Computing and Information System), που το 1970 άλλαξε στο πασίγνωστο πλέον Unix.


Με τον όρο να περιλαμβάνει utilities επεξεργασίας κειμένου, τα Bell Labs χρηματοδότησαν την μεταφορά του Unix στον ταχύτερο PDP-11/20. Το 1972 το Unix, μαζί με το runoff (που εξελίχθηκε στο σημερινό troff), και τα δύο γραμμένα σε assembly, έτρεχε σε 10 mainframes. Το μεγαλύτερο, ίσως, άλμα στην εξέλιξη του Unix ήταν η δημιουργία της γλώσσας προγραμματισμού C από τους Kernighan και Ritchie. Ο τελευταίος, μαζί με τον Thompson, ξαναέγραψε τον πυρήνα του Unix το 1973 χρησιμοποιώντας την C, καθιστώντας το έτσι εύκολο στη συντήρηση και μεταφορά σε άλλες πλατφόρμες hardware. Στις επόμενες εκδόσεις (editions) του συστήματος, τις οποίες η AT&T διέθετε σε εκπαιδευτικούς οργανισμούς, εταιρίες και κρατικές υπηρεσίες για ένα ονομαστικό κόστος, η μία καινοτομία διαδεχόταν την άλλη, ώστε η έβδομη έκδοση του Unix περιελάμβανε το Bourne shell και το προτόκολο UUCP. Βασισμένο σε αυτή την έκδοση, το Unix System III ήταν το πρώτο Unix που η AT&T διέθεσε εμπορικά.


[]{#ref1} [1.2 Το Unix όπως το γνωρίζουμε σήμερα: SVR1]


Ταυτόχρονα με τη διάθεση του SIII, από τα τμήματα έρευνας της AT&T, γίνονταν διαθέσιμες σε πανεπιστήμια και εργαστήρια ανεπίσημες εκδόσεις που εισήγαγαν πειραματικά χαρακτηριστικά, ώστε ήταν δύσκολο για τον κάθε χρήστη ή προγραμματιστή να γνωρίζει αν τα προγράμματα που ανέπτυσσε θα ήταν συμβατά με τις επόμενες εκδόσεις ή αν το user interface θα παρέμενε το ίδιο. Με την έκδοση του System V, πέρα από τις όποιες τεχνολογικές καινοτομίες, η AT&T φρόντισε κυρίως να μετριάσει το fragmentation, εγγυόμενη πως το SV θα είχε προς τα εμπρός συμβατότητα με τις επόμενες επίσημες εκδόσεις.


Η σημασία της απόφασης αυτής δεν καθίσταται άμεσα εμφανής - τουλάχιστον όχι μέχρι να σκεφτούμε πως σε οποιαδήποτε παραλλαγή του Unix και αν χρειαστεί να εργαστούμε, θα βρούμε τουλάχιστον το παλιό-καλό Bourne shell τα ίδια ονόματα για τις βασικές εντολές και τα utilities (ls, grep, sed, more, κ.α.). Μάλιστα, σε ένα ακραίο παράδειγμα, ένας χρήστης Unix αυτής της εποχής θα μπορούσε να εργαστεί χωρίς σημαντικό πρόβλημα στο κέλυφος και να εκτελέσει scripts που έγραψε προ δεκαετιών.


Στην τεχνική πλευρά τώρα, η SVR1 ενσωμάτωνε πολλά από τα στοιχεία του BSD, με σημαντικότερο όλων τον editor vi, ο οποίος έμελλε να καθιερωθεί σαν ο standard editor των Unix συστημάτων. Η έκδοση System V Release 2 εισήγαγε το file locking. Ακόμα πιό επηρεασμένη από το BSD ήταν η SVR3 που απορρόφησε πολλές από τις καινοτομίες των 4.xBSD's ιδιαίτερα όσες αφορούσαν τις τεχνολογίες δικτύωσης. Η SVR4, η τελευταία μαζί με την 4.2 που εκδόθηκαν από την AT&T, ενσωμάτωνε το προτόκολο TCP/IP και τις BSD r* εντολές, όπως και τα NFS, RPC από το SunOS. Η SVR5 εκδόθηκε από την Santa Cruz Operation (SCO).


[1.3 Berkeley Software Distribution]


Περνώντας από το τμήμα επιστήμης υπολογιστών του Πανεπιστημίου του Berkeley, o Thompson μετέφερε την έκτη έκδοση του Unix σε έναν PDP-11/70. Έχοντας πλέον άμεση πρόσβαση στο λειτουργικό σύστημα, οι φοιτητές Bill Joy και Chuck Halley ξεκίνησαν την ανάπτυξη των δικών τους εφαρμογών εξελλίσοντας τον line-editor ed, στον ex, τον πρώτο editor με visual mode που επέτρεπε στο χρήστη να βλέπει μία οθόνη με το κείμενό του (σημαντική προσθήκη για την εποχή!) και ο οποίος εξελίχθηκε από τον Joy στον αγαπημένο σε όλους (καλά, ίσως όχι σε όλους :) μας vi. Ακόμα, ανέπτυξαν το C shell, που είναι το default για τα BSD συστήματα και το οποίο πρόσφερε δυνατότητες αδιανόητες για τους χρήστες του Bourne shell: λίστα των τελευταίων εντολών, command line editing, συνώνυμα (aliases) και ξεχωριστό login και rc file. Περιλαμβάνοντας στα παραπάνω και έναν pascal compiler, οι Joy και Halley συνέθεσαν μία δική τους διανομή Unix που την διέθεσαν ως Berkeley Software Distribution. Ακολούθησε το 1978 η 2BSD, ενώ η 3BSD εισήγαγε μία ριζική καινοτομία, την εικονική(ιδεατή) μνήμη που έκανε διαθέσιμη στο λειτουργικό πολλαπλάσια ποσότητα μνήμης από την φυσική.


Σταθμός στην εξέλιξη του Unix μπορεί να θεωρηθεί η απόφαση του DARPA (Defence Advanced Research Projects Agency) να αναθέσει στο πανεπιστήμιο του Berkeley την ανάπτυξη του λειτουργικού του αμυντικού του δικτύου υπολογιστών. Στο πλαίσιο αυτής της συνεργασίας το DARPA χρηματοδότησε την εξέλιξη του 4BSD, η τρίτη έκδοση του οποίου(4.2) το 1983 ενσωμάτωνε υποστήριξη για το δικτυακό πρωτόκολλο TCP/IP και τις πασίγνωστες remote commands (rsh, rlogin, rcp etc.) και τις DARPA commands ftp και telnet που, παρά τα προβλήματα ασφάλειας, χρησιμοποιούνται ακόμα και σήμερα. Στο 4.2BSD στηρίχθηκε εν πολλοίς και το SVR4, όπως και το SunOS, ενώ πάνω στην τελευταία έκδοση από το πανεπιστήμιο του Berkeley (4.4BSD ή 4.4BSDLite λόγω νομικών προβλημάτων) βασίστηκαν και τα open source FreeBSD, NetBSD, OpenBSD μαζί με το εμπορικό BSD/OS (συνέχεια περισσότερο του 386BSD).


[2. Unix Variants]


Σε μία τέτοια λίστα είναι προφανές ότι δεν θα μπορούσαν να συμπεριληφθούν όλα τα συστήματα που, περισσότερο ή λιγότερο το καθένα, ανήκουν στην οικογένεια του Unix. Άν όμως ελλείψεις όπως το Plan9, το Ultrix και Unicos σας ενοχλούν, είναι σίγουρο ότι δεν χρειάζεται να διαβάσετε αυτό το άρθρο, δεν θα σας προσφέρει απολύτως τίποτα. Γιά όποιον θέλει περισσότερες λεπτομέρειες για την εξέλιξη και τις αλληλεπιδράσεις ανάμεσα στις διάφορες βαριάντες, μπορεί να κατεβάσει μία εξευτελιστικά λεπτομερή timeline (η οποία όμως συνιστάται ανεπιφύλακτα) από το URL: http://perso.wanadoo.fr/levenez/unix[1]


1: http://perso.wanadoo.fr/levenez/unix


[2.1 XENIX]


Το 1980 η τότε-όχι-και-τόσο-κακή εταιρεία Microsoft, παρουσίασε το Xenix, ένα λειτουργικό βασισμένο στην έβδομη έκδοση του AT&T Unix το οποίο ήταν ο πρώτος Unix κλώνος που δεν έτρεχε σε mainframe αλλά σε μικροεπεξεργαστές. Με την άμεση ανάμειξη της SCO, το Xenix μεταφέρθηκε στον Motorolla 68000 και στους 8086, 80286 και 80386 της Intel. Προερχόμενο απ'ευθείας από το Unix της AT&T και με επιρροές από τα διάφορα BSD, το Xenix εισήγαγε και αυτό ορισμένες καινοτομίες (κυρίως εντολές) τις οποίες όμως ενσωμάτωσε η AT&T στην έκδοση 3.2 του Unix System V, έτσι ώστε το Xenix άρχισε να φθίνει. Το ίδιο συνέβαινε και με την ανάμειξη της Microsoft με το όλο project ( είχαν βρει το μέλλον στους IBM compatible και στο DOS :), ώστε μετά από λίγα χρόνια να μιλάμε για το SCO Xenix.


[2.2 Unix System V]


Γιά το Unix System V μέχρι και την τέταρτη Release, βλέπε Το Unix όπως το γνωρίζουμε σήμερα: SVR1[2]. Μετά και αυτή την έκδοση, η ανάπτυξη του SV συνεχίστηκε από την θυγατρική της AT&T, Unix System Laboratories (USL), η οποία παρήγαγε το SVR4.2 στοχεύοντας και στην αγορά των desktop. Ο κώδικας του SVR4 περιήλθε στην ιδιοκτησία της Novell, όταν η απέκτησε την πλειοψηφία μετοχών στα USL. Εξέδωσε το δικό της SVR4-based Unix σαν UnixWare, μέχρι να πουλήσει τον κώδικα της R4 και το όνομα UnixWare στην Santa Cruz Operation (SCO). Το brand-name Unix έγινε ιδιοκτησία του X/OPEN και αργότερα του OpenGroup. Η SCO συνέχισε την ανάπτυξη του Unix System V, ιδιαίτερα στο επίπεδο του πηρύνα, προσθέτοντας χαρακτηριστικά ώστε να το καταστήσει ανταγωνιστικό στην αγορά των "μεγάλων" server, όπως υποστήριξη 64GB RAM, 512 logical disks, 1TB files και άλλα τέτοια "μπαλωματάκια". Στον πηρύνα της SVR5 στηρίζεται και το UnixWare της ίδιας εταιρίας.


2: 04_unixevo-1.html#ref1


[2.3 SunOS/Solaris]


Η Sun ιδρύθηκε to 1982 από τον Bill Joy, ο οποίος συμμετείχε ενεργά στην ανάπτυξη της Berkeley Software Distribution. Δεν μπορεί λοιπόν να αποτελεί έκπληξη το γεγονός ότι η πρώτη έκδοση του λειτουργικού που διέθετε η Sun για το hardware το οποίο πουλούσε βασιζόταν σε μεγάλο βαθμό στο 4.xBSD. Στα πρώτα χρόνια της ύπαρξής του το SunOS επηρέασε καταλυτικά την κατεύθυνση ανάπτυξης του Unix με πρωτοποριακές ιδέες όπως το Network File System (NFS), το Network Information Service (NIS ή Yellow Pages-YP), το RPC (Remote Procedure Call) και το ξεχασμένο σήμερα XDR (External Data Representation) για ανταλλαγή δεδομένων, που ήταν τόσο επιτυχημένες ώστε ενσωματώθηκαν αμέσως στο SVR4 από την AT&T.


Στα επόμενα χρόνια, το SunOS ήταν εκείνο το οποίο ακολουθούσε την εξέλιξη των υπόλοιπων Unix, για αυτό η Sun μέσω της θυγατρικής της SunSoft έθεσε σαν στόχο την μετάβαση σε ένα SVR4-based λειτουργικό, στόχο τον οποίο δεν πέτυχε η πρώτη έκδοση του Solaris(1.0), όντας ακόμα βαθιά εξαρτημένη από το σχετικά απαρχαιωμένο SunOS. Τελικά με την έκδοση 2.1 του Solaris, η Sun έκανε ένα βήμα μπροστά υλοποιώντας μία ενιαία πλατφόρμα λογισμικού για το εξαιρετικό της hardware καθώς η 2.1 μπορούσε να αξιοποιήσει όλους τους Sparc καθώς και τους x86 επεξεργαστές. Το SunOS συνέχισε την πορεία του παράλληλα με το Solaris (δεν ενδιαφέρει η εμπορική ονομασία αλλά η ταυτότητα του λειτουργικού και το αναφέρω αυτό λόγω των διπλών ονομασιών που έδινε η Sun στο Solaris) έως το 1994.


Με την έκδοση 2.5 το (συμβατό με POSIX από την 2.3 και με υποστήριξη του Motif από την 2.4) Solaris περιλαμβάνει και το CDE (Common Desktop Environment). Στην έκδοση 2.6 ,η οποία έχει την "σφραγίδα" UNIX 95, υπάρχει για πρώτη φορά η (αμφιλεγόμενη σήμερα, επαναστατική τότε γλώσσα της Sun) Java. Οι εκδόσεις 7 και 8 (το δύο "κόπηκε" από τους "bad marketing people") είδαν βελτιώσεις στα utilities διαχείρισης συστήματος και στις επιδόσεις, ενώ αναμένεται στην επόμενη έκδοση η υιοθέτηση του GNOME ως default γραφικού περιβάλλοντος (σ.σ. : εγώ πάντως στον UltraSparc που θα πάρω τα Χριστούγεννα για το subnet του πλυσταριού θα τρέχω Linux :)


[2.4 HP-UX]


Η Hewlett-Packard παρουσίασε την δική της εκδοχή του Unix με το λανσάρισμα του HP-UX 1.0 το 1986. Η πρώτη αυτή έκδοση βασιζόταν στο SVR2 και το HP-UX ακολούθησε την πορεία του SV μέχρι και την R4. Αρχικά το υποστηριζόμενο hardware ήταν μόνο ο HP9000/500 (μέχρι και 7 επεξεργαστές υποστηριζόμενοι) από τις πρώιμες SIII-based εσωτερικές εκδόσεις της HP, ενώ αργότερα χρησιμοποιήθηκαν οι 680Χ0 της Motorolla. Σημαντικό γεγονός στην εξέλιξη του λειτουργικού ήταν η εμφάνιση του Visual User Environment, ενός έγχρωμου(μη γελάτε μερικοί, δεν ήταν καθόλου αυτονόητο to 1990), με ψευδοτρισδιάστατη αίσθηση και αισθητικά υπέροχου (οκ, εντελώς υποκειμενικό αυτό) GUI δημιουργημένου πάνω στο Motif της HP. Βεβαία λίγα στοιχεία θα φανούν διαφορετικά σε όσους είδαν τα Windows 95 (μείον τις επαναλαμβανόμενες ανά πεντάλεπτο, με διαφορετική δικαιολογία κάθε φορά BSODs), αφού ακούγεται ότι η Microsoft το αντέγραψε μέχρι αηδίας. Το 1992, η HP ανακαλύπτει ότι το νόημα της ύπαρξης είναι το standardization, αφού το HP-UX 9.0 είναι POSIX.!, POSIX.2, XPG4, SVID1 και SVID2 compliant ενώ είναι και βελτιωμένο σε όλους τους τομείς σε σχέση με τις προηγούμενες εκδόσεις. Τη λίστα μεγαλώνει το UNIX 95 certified HP-UX 10.0 που ενσωματώνει και τις real-time extensions του POSIX standard, είναι δηλαδή συμβατό με POSIX.1b. Τελευταία έκδοση η 64μπιτη 11.0 (1997) με δεν συμμαζεύεται χαρακτηριστικά για τους hi-end servers/workstations.


[2.5 AIX]


Δεν ήταν παρά το 1986, όταν η Big Blue ξεκίνησε να διαθέτει το δικό της Unix κλώνο υπό την ονομασία AIX. Το AIX ήταν βασισμένο στην έκδοση 3.2 του Unix System V και ενσωμάτωνε στοιχεία του 4.3BSD, ενώ προοριζόταν να αποτελέσει το λειτουργικό σύστημα των workstations που (μεταξύ πολλών άλλων) παρήγαγε τότε η IBM. Μένοντας συνεχώς κάτω από την άμεση εποπτεία της "μαμάς", το AIX ακολούθησε από κοντά τις εξελίξεις στην οικογένεια των Unix αφού αυτή συμμετείχε στην ανάπτυξη του CDE και στο X/Open (βλέπε Standardization). Έτσι, η εξέλιξή του μπορεί να θεωρηθεί ότι ακολουθεί τα πασίγνωστα standards POSIX, XPG* ενώ ήταν από τα πρώτα λειτουργικά με τη "σφραγίδα" UNIX 98.


[2.6 NeXTSTEP]


Το NeXTSTEP ήταν το λειτουργικό που ανέπτυξε η NeXT Computers γιά το hardware που κατασκεύαζε τη δεκαετία του 80. Χρησιμοποιούσε τον Mach και βασιζόταν πάνω στο 4.3BSD. Πάνω στο λειτουργικό έτρεχε ένα πρωτοποριακό, τότε, γραφικό περιβάλλον που έχει βρει το δρόμο του σε πολλούς σημερινούς (νεότερους τελοσπάντων) window managers, στον window maker, στα steps.Μία άλλη καινοτομία ήταν το σύστημα απεικόνισης Display PostScript γιά πραγματικό WYSIWYG. Ακόμα, το NeXTSTEP διατηρούσε ικανή συμβατότητα με τα BSD και ήταν (όχι σε όλες τις εκδόσεις του) POSIX-compliant. Μετά το 1993, η NeXT σταμάτησε να παράγει hardware και επικεντρώθηκε στην ανάπτυξη του λειτουργικού, ώστε το 1997 (ζυγίζοντας και πολλούς άλλους παράγοντες είναι η αλήθεια) η Apple το επέλεξε σαν βάση γιά την επόμενη γενιά του MacOS. Ανέφερα ότι πίσω από όλα αυτά ήταν ο Jobs;


[2.7 IRIX]


Για την πορεία του IRIX ήταν δυνατό να βρεθούν λίγα στοιχεία πέρα από το ότι αντικατέστησε το MIPS OS στην πλατφόρμα hardware που παρήγαγε η Silicon Graphics. Στο μεγαλύτερο, πάντως, χρονικό διάστημα από τη στιγμή της πρώτης υλοποίησής του απευθυνόταν σε αγοραστές με extreme απαιτήσεις ενώ σήμερα είναι κατάλληλο για χρήση σε υπερυπολογιστές, servers ή workstations για όποιον θα ήθελε 80GB/s I/O bandwidth! Ανεπίβεβαίωτες πληροφορίες το θέλουν να είναι από την εποχή του Nintendo 64 η προτιμητέα πλατφόρμα για την ανάπτυξη παιχνιδιών για τις κονσόλες (pre-rendered σκηνές). Βεβαία αφού απευθύνεται και σε mid/hi-end servers δεν θα μπορούσε να λείπει η συμβατότητα με πλήθος standards, όπως UNIX 95, SVID3, XPG3, POSIX.


[2.8 A/UX]


Το A/UX (=Apple's UNIX) ξεκίνησε την πορεία του σαν ένα SysV-derived λειτουργικό από την Apple. Στην πορεία, το A/UX ενσωμάτωσε πολλές από τις καινοτομίες που εισήχθησαν στην οικογένεια του Unix, τόσο από την SV όσο και από την BSD πλευρά. Πιό συγκεκριμένα, βασιζόταν στο SVR2.2, αλλά επηρεάστηκε από τα 4.2/4.3BSD και φυσικά από την SVR4, ώστε να πετύχει SVID/POSIX.1 συμβατότητα, ενώ έτρεχε στους 680x0 της Motorola. Οι 3.x.x εκδόσεις είχαν ικανή συμβατότητα με το MacOS, αλλά τελικά η Apple εγκατέλειψε το A/UX στα μέσα της δεκαετίας του 90.


[2.9 OSF/1]


Η κυριαρχία της AT&T στον χώρο των λειτουργικών συστημάτων, χάρη στην επιτυχία του System V, έφερε σαν απάντηση την σύνθεση ενός consortium (Open Software Foundation) από τις IBM, HP, DEC κ.α. με στόχο την δημιουργία ενός συστήματος το οποίο θα μπορούσε να ανταγωνιστεί το SVR4. Μοναδικός καρπός αυτής της, καταδικασμένης όπως αποδείχθηκε αργότερα, προσπάθειας ήταν το OSF/1 (κάτω από τον Mach) το οποίο γνώρισε σχεδόν πλήρη εμπορική αποτυχία. Από την απόρριψη διέφυγε μόνο το γραφικό περιβάλλον που περιλαμβάνονταν στο OSF/1, το πασίγνωστο ακόμα και σήμερα Motif, που πέρασε στις περισσότερες από τις μεταγενέστερες του 1990 βαριάντες. Μόνη εταιρία που βάσισε την δική της έκδοση Unix στο δημιούργημα του Open Software Foundation (το οποίο εγκαταλείφθηκε από τους δημιουργούς του και στράφηκε στην τυποποίηση) ήταν η DEC. To DEC OSF/1 βεβαία μικρή σχέση είχε με το σύστημα του 1990, αφού η DEC το βελτίωσε δραματικά σε κάθε σχεδόν τομέα ενσωματώνοντας παράλληλα το πλήθος των χαρακτηριστικών που έλειπαν από το OSF/1 σε σχέση με το SV και την BSD. Με άλλα λόγια, η στιγμή γέννησης του OSF/1, ήταν και η στιγμή του θανάτου του, αφού καθυστερημένο από τεχνικής άποψης και χωρίς υποστήριξη από τα μέλη του OSF, ήταν καταδικασμένο να αποτύχει.


[2.10 Minix]


ΟΚ, όλοι έχουν ακούσει για "το λειτουργικό από το οποίο εμπνεύστηκε ο Linus". Αλλά αυτό είναι μάλλον το λιγότερο που προσέφερε το Minix στον τομέα της πληροφορικής, ή μάλλον είναι ακριβώς αυτό : η έμπνευση. Το Minix είναι τέκνο του γνωστού καθηγητή του πανεπιστημίου Vrije στο Amsterdam, Andrew S. Tannenbaum, ο οποίος το ανέπτυξε γιά μία και μόνο χρήση, τη διδασκαλία των εσωτερικών διεργασιών ενός λειτουργικού συστήματος. Αυτός ο σκοπός δεν θα μπορούσε να επιτευχθεί με κάποιο άλλο Unix, λόγω της περιπλοκότητας και των πνευματικών δικαιωμάτων που τα καλύπτουν. Έτσι, ο Tannenbaum προχώρησε στην συγγραφή ενός Unix κλώνου, δικού του copyright, το οποίο διέθεσε μαζί με τον κώδικα σε όποιον θα ήθελε να το χρησιμοποιήσει γιά εκπαιδευτικούς σκοπούς. Μόλις ένα μήνα μετά την έκδοση του λειτουργικού, το comp.os.minix είχε συγκεντρώσει 10000 συμμετέχοντες, αρκετοί από τους οποίους προσέφεραν τη δουλειά τους γιά την περεταίρω εξέλιξη του Minix. Πραγματοποιήθηκαν ports σε άλλες αρχιτεκτονικές πλην του IBM PC, PC/AT (Atari ST, Commodore Amiga, Macintosh-εδώ υπήρχε συνύπαρξη με το λειτουργικό της Apple). Ωστόσο, ο Tannenbaum ποτέ δεν έχασε την βασική ιδέα που τον οδήγησε στη δημιουργία του συστήματος και πεισματικά αρνιόταν την πλειοψηφία των προσφορών γιά την βελτίωση/επέκταση του Minix, αφού όπως λέει και ο ίδιος "ήθελα να κρατήσω το λειτουργικό αρκετά μικρό ώστε οι φοιτητές μου να μπορούν να το κατανοήσουν σε ένα εξάμηνο"(ελεύθερη μετάφραση). Βεβαία, ταυτόχρονα εξελίσσονται ανεξάρτητες προσπάθειες πάνω στο Minix (που πλέον διατίθεται και κάτω από την BSD άδεια), γιά συμβατότητα με το POSIX.1 πρότυπο, με τη C89 και άλλα παρόμοια. Κώδικας του Minix χρησιμοποιήθηκε (μέχρι να αντικατασταθεί από νέο) στα (πολύ, πάρα πολύ) πρώτα στάδια της ανάπτυξης του πηρύνα από τον Linus.


[2.11 BSDi]


Το BSDi ή BSD/OS είναι ένα POSIX.1 (και εν μέρει POSIX.2) συμβατό Unix το οποίο βασίζεται πάνω στον 386BSD πηρύνα, δηλαδή σε ιδιόκτητο κώδικα και όχι σε κώδικα που διατίθεται κάτω από την BSD licence. Η τελευταία είναι η άδεια που χρησιμοποιείται για όσο από τον κώδικα του πηρύνα από το πανεπιστήμιο του Berkeley έχει μείνει στα open source FreeBSD, OpenBSD και NetBSD και η άδεια κάτω από την οποία διατίθεται ο κώδικας των τελευταίων. Δηλαδή το BSD/OS είναι ένα εμπορικό λειτουργικό που ανήκει στην εταιρεία Wind River, η οποία δίνει ιδιαίτερη έμφαση στον προσανατολισμό του δημιουργήματός της στις τεχνολογίες δικτύωσης και το οποίο έχει μία "ιδιαίτερη" σχέση με το FreeBSD(= ενσωματώνουμε και εκμεταλλευόμαστε τον κώδικά σας, η τουλάχιστον αυτό ακούγεται). Το σύστημα αυτό δεν φαίνεται να διαδραμάτισε κάποιο ρόλο στην κατεύθυνση της ανάπτυξης της οικογένειας Unix. Όπως ανέφερε παλαιότερα και ο Linus (για το 386BSD): μα είναι όνομα αυτό; φοβίζει τον κόσμο...


[2.12 UnixWare]


Το UnixWare αποτελεί το λειτουργικό της Santa Cruz Operation το οποίο απευθύνεται στους hi-end servers. Το UnixWare ξεκίνησε από τη Novell σαν ένα βασισμένο στο SVR4 σύστημα. Η ιδιοκτησία του πέρασε μετά το 1995 στην SCO, γιά να αντικαταστήσει το SVR3.2-based SCO UNIX. Παράλληλα η SCO εξέλισε την Unix System V Release 5 (είχε αγοράσει την SVR4 "πακέτο" με το όνομα UnixWare) σε ένα 64-bit εξωτικών προδιαγραφών σύστημα, κατάλληλο για εφαρμογές υψηλών απαιτήσεων (τώρα τι κατάφερε είναι άλλο θέμα). Ο πηρύνας της SVR5 χρησιμοποιήθηκε στο UnixWare 7 (1997) που περιελάμβανε Motif, CDE και ένα περιβάλλον ανάπτυξης 64 bit εφαρμογών. Το σύστημα της SCO είναι συμβατό με POSIX.1/2, XPG4.2, έχει το mark UNIX 95 και γιά όποιους διαβάζουν το πορτοκαλί "βιβλιαράκι" βρίσκεται στο C2 επίπεδο ασφάλειας, όπως δηλαδή και τα ανταγωνιστικά του Unix. Υποστηρίζει την IA32 και η SCO συνεργάζεται με την IBM στο project Merced-64.


[2.13 tru64 Unix]


Το κυρίαρχο στις 64 bit πλατφόρμες tru64 UNIX της Compaq, έχει πίσω του μακριά ιστορία. Πρόκειται γιά την εξέλιξη του DEC OSF/1 (μετέπειτα Digital UNIX, το οποίο η Compaq αγόρασε από την DEC γιά να το ξαναβαφτίσει στο σημερινό του όνομα). Από το DEC OSF/1, το tru64 κουβαλάει έναν 64μπιτο πηρύνα, βασισμένο πάνω στον CMU Mach 2.5 και με επιδράσεις από τα 4.xBSD και το SV. Η Compaq το εξέλιξε ώστε να πετύχει μερική συμβατότητα με το POSIX.1b και να πάρει το χαρακτηρισμό UNIX 95. Φυσικά, τρέχει στους Alpha της DEC.


[2.14 Mac OS X]


Η στροφή της Apple προς το Unix ήταν περισσότερο αποτέλεσμα του αδιεξόδου στην ανάπτυξη του MacOS και της επακόλουθης επιστροφής του Jobs στην εταιρία. Η επανένταξη του Jobs στο δυναμικό της εταιρίας έγινε με την εξαγορά της NeXT και σχεδόν άμεσα, ανακοινώθηκε από την Apple η πρόθεσή της να στηρίξει την επόμενη γενιά των λειτουργικών της σε πηρύνα Unix, αξιοποιώντας την δουλειά της NeXT. Έτσι, χρησιμοποιήθηκε το περιβάλλον Darwin γύρω από πηρύνα Mach, με τη χρήση των οποίων η Apple λανσάρει το γραφικό περιβάλλον Aqua. Στόχος αυτής της αλλαγής πορείας είναι η αξιοποίηση της σταθερότητας του BSD, και η φιλικότητα προς τον τελικό χρήστη. Συγχρόνως, η εταιρία διατυμπάνισε την επιλογή της για συνεργασία με την κοινότητα των υποστηρικτών του λογισμικού ανοικτού κώδικα (με αμφιλεγόμενη, πλέον, ειλικρίνεια προθέσεων) για την περαιτέρω βελτίωση του Darwin. Ακόμα, το Mac OS X στοχεύει και στην αγορά των servers αφού ο κώδικας δικτύωσης βασίζεται σχεδόν εξ' ολοκλήρου στο 4.4BSD και εκδόσεις του λειτουργικού περιλαμβάνουν τον Apache.


[3. Open Source]


Η ενηλικίωση του GNU project, αλλά και η αποδέσμευση των εκδόσεων του BSD από τα πνευματικά δικαιώματα της USL, μετά την αγορά της τελευταίας από τη Novell, συνετέλεσαν ώστε να δημιουργηθεί μία ικανή βάση στην οποία θα μπορούσε να στηριχθεί κάθε προγραμματιστής ο οποίος θα επιθυμούσε να συνεισφέρει στην κοινότητα ανοικτού κώδικα. Έτσι, μετά τις αρχές της προηγούμενης δεκαετίας, παρατηρείται εκθετική αύξηση στην συγγραφή open source προγραμμάτων και η κοινότητα εισάγει ένα νέο μοντέλο ανάπτυξης, που δίνει διέξοδο έκφρασης σε κάθε νέα ιδέα και αναγνωρίζει το δικαίωμα του κάθε ατόμου να μετέχει στην τεχνική πρόοδο.


[3.1 GNU]


Το 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.


[3.2 GNU/Linux]


Χιλιοειπωμένη ιστορία! Ο 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[3]).


3: http://howto.hellug.gr/howto/pub/html/cathedral-bazaar.html


[3.3 FreeBSD]


Η αρχική ομάδα του 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.


[3.4 NetBSD]


Η ανάπτυξη του 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 συστημάτων.


[3.5 OpenBSD]


Το 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 να έχουν ολοκληρωθεί και αρκετές να βρίσκονται σε εξέλιξη.


[4. Standardization]


Ήδη από τις αρχές της δεκαετίας του 80, τα νέα χαρακτηριστικά που εισήγαγαν οι κυριότερες βαριάντες Unix, διεύρυναν τις ασυμβατότητες μεταξύ τους. Το φαινόμενο αυτό μετριαζόταν, αφού όπως παραδοσιακά συνέβαινε στην οικογένεια του Unix, κάθε καινοτομία υιοθετούνταν άμεσα από όλους τους κατασκευαστές, αλλά και πάλι κανένας προγραμματιστής δεν μπορούσε να είναι βέβαιος ότι η εφαρμογή που ανέπτυσσε γιά ένα σύστημα θα μπορούσε να χρησιμοποιηθεί και σε κάποιο άλλο. Για τη διευκόλυνση των χρηστών/πελατών, οι εταιρίες που συμμετείχαν στην ανάπτυξη Unix συστημάτων, συνεργάστηκαν γιά την καθιέρωση ορισμένων κοινά αποδεκτών standards, με στόχο την ευρύτερη συμβατότητα. Τούτη η προσπάθεια αποτέλεσε τον κλασικό τρόπο αντιμετώπισης του προβλήματος του fragmentation γιά περισσότερο από μία δεκαετία. Σήμερα, τα open source Unix συστήματα είναι μάλλον αυτά που ακολουθούν το σωστότερο δρόμο, γιατί σε αυτά το συμφέρον των χρηστών/δημιουργών είναι εκείνο που καθορίζει την κατεύθυνση της ανάπτυξης.


[4.1 SVID]


Η System V Interface Definition αποτέλεσε μέρος της προσπάθειας της AT&T να καταστήσει το SV de facto standard στον κόσμο των Unix. Η SVID καθορίζει τεχνικά χαρακτηριστικά του Unix System V τα οποία παρέχονται με την εγγύηση ότι θα διατηρηθούν στις επόμενες εκδόσεις και κάθε SVID-compliant σύστημα δεσμεύεται από την υποχρέωση να διατηρήσει αυτή την συμβατότητα. Ακόμα, περιγράφει λεπτομερώς τα interfaces που παρέχονται για τις εφαρμογές, ώστε να εξασφαλίζει στον προγραμματιστή ότι αν γράψει μία εφαρμογή στο πλαίσιο της SVID, αυτή θα μπορεί να εκτελεστεί σε όλα τα συμβατά συστήματα. Φυσικά, οι εκδόσεις του System V είναι SVID-compliant και η SVID συνέχισε να εξελίσσεται με κάθε νέα υλοποίηση του Unix από την AT&T. Οι προδιαγραφές που όρισε η System V Interface Definition αποτέλεσαν τη βάση γιά τα standard που υιοθέτησε το X/OPEN Consortium και πέρασαν σχεδόν αυτούσιες στην Single UNIX Specification.


[4.2 POSIX]


Η ανησυχία γιά την ασυμβατότητα ανάμεσα στις βαριάντες/εκδόσεις Unix, οδήγησαν το 1981 την ομάδα χρηστών /usr/group στην αναζήτηση ενός standard το οποίο θα εξασφάλιζε portability γιά τις διάφορες εφαρμογές. Το πρώτο αποτέλεσμα της προσπάθειάς τους δημοσιοποιήθηκε το 1984 και δεδομένης της ευρύτητας του εγχειρήματος, η προσπάθεια συνεχίστηκε μετά το 1985 μέσα από την IEEE (Institute for Electrical and Electronics Engineers) στο πλαίσιο του Project 1003 (P1003). Ο σκοπός αυτού του project ήταν ο καθορισμός ενός συνόλου από standards που θα καθόριζαν τον τρόπο αλληλεπίδρασης του λειτουργικού συστήματος με τις εφαρμογές και το οποίο ονομάστηκε POSIX (στην εισαγωγή του POSIX.1 αναφέρεται: "The name POSIX was suggested by Richard Stallman. It is expected to be pronounced pahz-icks as in positive, not poh-six, or other variations. The pronounciation has been published in an attempt to promulgate a standardized way of referring to a standard operating system interface".


Από τα POSIX standards, μεγαλύτερη προσοχή δίνεται συνήθως στο P1003.1 (POSIX.1), το απόλυτο minimum γιά να μπορεί ένα λειτουργικό να ισχυριστεί ότι ανήκει στην οικογένεια των Unix συστημάτων. Το POSIX.1 καθορίζει το system interface (system calls, signals, files, pipes, I/O, κ.τ.λ.). Στο POSIX.1b περιλαμβάνεται το real-time interface, δηλαδή τα real-time signals/priorities, file synchronization, asynchronous I/O, semaphores κ.α. Το POSIX.1c ασχολείται με τα threads, το e με την ασφάλεια, το d περιλαμβάνει τις λεγόμενες real-time extensions, γιά να μη σας πω ότι το real-time υποσύνολο ονομαζόταν POSIX.4 και ότι το POSIX.3.5 καλύπτει την Ada. Είναι πλέον φανερό το εύρος του POSIX πρότυπου. Κάτω από αυτό το πρίσμα δεν μπορεί να θεωρηθεί έκπληξη το γεγονός ότι τα νεότερα standards χτίζουν πάνω σε κάποια από τα είκοσι και πλέον υποσύνολα του POSIX προτύπου.


[4.3 XPG3/4]


To X/OPEN consortium γεννήθηκε το 1984 στην Ευρώπη (=από ευρωπαϊκές εταιρίες) και είχε σαν στόχο του τον ορισμό των standards που θα έπρεπε να πληρεί ένα σύστημα γιά να μπορεί να χαρακτηριστεί Unix. Αργότερα στο X/OPEN προσχώρησαν όλες σχεδόν οι εταιρίες που κατασκεύαζαν Unix κλώνους. Το consortium αυτό δεν εισήγαγε δικά του standards, αλλά υιοθέτησε τα ήδη υπάρχοντα, ώστε να είναι ευκολότερη η οριοθέτηση ενός κοινά αποδεκτού interface γιά την ανάπτυξη εφαρμογών, λύση που πήρε τη μορφή του Common Applications Environment. Το CAE βασιζόταν κατά το μεγαλύτερο μέρος του στην SVID και περιελάμβανε τα βασικότερα POSIX standards. Η πιστοποίηση της συμμόρφωσης γινόταν με το X/OPEN Portability Guide (XPG), πιστοποίηση την οποία είχε και το SVR4 (XPG3). Το XPG3 καθόριζε i18ned system calls και βιβλιοθήκες, εντολές και utilities, καθώς και χαρακτηριστικά της C και την αλληλεπίδραση μεταξύ των XPG3-certified συστημάτων. Στην interoperability επικεντρωνόταν και το XPG4 του 1992. Σαν αποτέλεσμα της συγχώνευσης του Open Software Foundation με το X/OPEN consortium, το XPG περιέχεται πλέον στην Single UNIX Specification του OpenGroup (το προϊόν αυτής της συγχώνευσης).


[4.4 Single UNIX Specification]


Το 1993 το X/OPEN consortium ανέλαβε την ευθύνη της παραγωγής ενός specification γιά τα κοινότερα Application Programming Interfaces, ώστε να είναι δυνατή η άμεση μεταφορά ανάμεσα στις διάφορες πλατφόρμες που θα το ακολουθούσαν. Γιά να επιτύχει αυτή την τεράστια ενοποίηση, το X/OPEN κατέγραψε τα (αθροιστικά) 1170 διαφορετικά APIs που προβλέπονται από την System V Interface Definition, το X/OPEN Portability Guide, το Application Environment Specification Full Use Interface (AES) από το Open Software Foundation και μία ανάλυση των περισσότερο διαδεδομένων εφαρμογών, γιά αυτό και το αποτέλεσμα αυτής της προσπάθειας έγινε γνωστό σαν Spec 1170. Μετά από ορισμένες μετατροπές και/ή προσθέσεις, το X/OPEN παρουσίασε τον καρπό αυτού του εγχειρήματος με το όνομα Single UNIX Specification. Τα συμβατά συστήματα, όπως το AIX, το IRIX, το HP-UX και άλλα, λαμβάνουν το mark UNIX 95.


[4.5 Single UNIX Specification 2]


To OpenGroup consortium παρουσίασε το 1997 ένα ευρύτερο σύνολο προδιαγραφών, το οποίο επέκτεινε το αρχικό standard του X/OPEN, με την ονομασία Single UNIX Specification, Version 2. Σύμφωνα με τις θέσεις του OpenGroup, το νέο standard αποσκοπούσε στην εδραίωση του Unix ως την πρώτη επιλογή γιά εργασίες που απαιτούν υψηλή αξιοπιστία και την καθιέρωσή του στον τομέα της επεξεργασίας γραφικών με υψηλές επιδόσεις. Η Version 2 είναι υπερσύνολο της πρώτης έκδοσης και τα νέα στοιχεία που εισάγει περιλαμβάνουν extended threads functions, συμβατότητα με τα νεότερα POSIX, το γνωστό σαν N-bit cleanup, τον διαχωρισμό δηλαδή του architecture-dependant κώδικα (όσον αφορά το data-length), με άλλα λόγια επιτρέπει τη μετάβαση στα 64 bit. Επιπλέον, προβλέπει αρχεία ικανού μεγέθους γιά να εξυπηρετηθούν οι σύγχρονες εφαρμογές (κυρίως οι βάσεις δεδομένων), dynamic linking extensions (όχι δεν ξέρω που χρησιμεύουν :) και Year 2000 Allignment (όχι ότι χρειαζόταν). Βεβαία, όλα αυτά και διατηρώντας προς τα πίσω συμβατότητα. Με στοιχεία του 1999, μόνο η IBM, η Sun και η NCR είχαν πιστοποιήσει ως UNIX 98 κάποιο από τα προϊόντα τους.


Αρχική Σελίδα

-- Response ended

-- Page fetched on Sat May 11 14:53:34 2024