Προηγούμενο Περιεχόμενα
Ήδη από τις αρχές της δεκαετίας του 80, τα νέα
χαρακτηριστικά που εισήγαγαν οι κυριότερες βαριάντες
Unix, διεύρυναν τις ασυμβατότητες μεταξύ τους. Το
φαινόμενο αυτό μετριαζόταν, αφού όπως παραδοσιακά
συνέβαινε στην οικογένεια του Unix, κάθε καινοτομία
υιοθετούνταν άμεσα από όλους τους κατασκευαστές, αλλά και
πάλι κανένας προγραμματιστής δεν μπορούσε να είναι
βέβαιος ότι η εφαρμογή που ανέπτυσσε γιά ένα σύστημα θα
μπορούσε να χρησιμοποιηθεί και σε κάποιο άλλο. Για τη
διευκόλυνση των χρηστών/πελατών, οι εταιρίες που
συμμετείχαν στην ανάπτυξη Unix συστημάτων, συνεργάστηκαν
γιά την καθιέρωση ορισμένων κοινά αποδεκτών standards, με
στόχο την ευρύτερη συμβατότητα. Τούτη η προσπάθεια
αποτέλεσε τον κλασικό τρόπο αντιμετώπισης του προβλήματος
του fragmentation γιά περισσότερο από μία δεκαετία.
Σήμερα, τα open source Unix συστήματα είναι μάλλον αυτά
που ακολουθούν το σωστότερο δρόμο, γιατί σε αυτά το
συμφέρον των χρηστών/δημιουργών είναι εκείνο που
καθορίζει την κατεύθυνση της ανάπτυξης.
Η 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.
Η ανησυχία γιά την ασυμβατότητα ανάμεσα στις
βαριάντες/εκδόσεις 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 προτύπου.
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 (το προϊόν αυτής
της συγχώνευσης).
Το 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.
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 κάποιο από τα προϊόντα τους.
Προηγούμενο Περιεχόμενα