Σάββατο, 21 Ιουνίου 2014

Unix για όλους και όλοι για Unix


Δύο θεωρώ πως είναι οι μεγαλύτερες "στιγμές" της πληροφορικής. Η μια είναι το Internet και το world wide web (www) και η άλλη το λειτουργικό σύστημα Unix και η γλώσσα προγραμματισμού C.

Η ιστορία του Unix ξεκινάει περίπου στα μέσα του 1960 όταν η AT&T (εταιρεία τηλεπικοινωνιών στην Αμερική) είχε αρχίσει να πειραματίζεται με λειτουργικά συστήματα πολλαπλών χρηστών. Το προϊόν που προσπαθούσε να αναπτύξει τότε ονομάστηκε Multics όμως είχε πολλά προβλήματα έτσι η AT&T σταμάτησε το project.

Ένας από τους προγραμματιστές που δούλευαν στο Project Multics ήταν και ο Dennis Ritchie. Όμως ο Dennis Ritchie δούλευε παράλληλα και σε ένα άλλο project. Σε μια νέα γλώσσα προγραμματισμού υψηλού επιπέδου, την C. Όταν λοιπόν η AT&T σταμάτησε την ανάπτυξη του Multics ο Ritchie μαζί με τον Ken Thomson αποφάσισαν να ξαναγράψουν το λειτουργικό Multics αλλά αυτή τη φορά στην γλώσσα προγραμματισμού που είχε αναπτύξει ο Ritchie.

Μέχρι τότε ο αποδεχτός τρόπος ανάπτυξης ενός λειτουργικού συστήματος ήταν ο κώδικας να γράφεται στη γλώσσα μηχανής του κάθε επεξεργαστή. Με την C όμως είχε την δυνατότητα ένας προγραμματιστής να γράφει το λειτουργικό του σύστημα σε μια γλώσσα υψηλού επιπέδου και όποτε υπήρχε ανάγκη να γράφει κώδικα και σε γλώσσα μηχανής. Αυτό βοηθούσε πολύ τους προγραμματιστές τόσο στο να προσθέτουν κώδικα και να βελτιώνουν το λειτουργικό σύστημα ευκολότερα όσο και στο να μπορούν με μεγαλύτερη ευκολία να μεταφέρουν το λειτουργικό σε διαφορετικούς επεξεργαστές χωρίς να πρέπει να ξαναγράψουν τα πάντα από την αρχή παρά μόνο να τροποποιήσουν τα κομμάτια που είχαν αναφορά σε γλώσσα μηχανής.

Στις πρώτες του εκδόσεις το - γραμμένο ξανά σε C - Multics - που σιγά σιγά μετονομάστηκε σε UNIX είχε την δυνατότητα να υποστηρίζει μόνο δύο χρήστες. Το Unix αποτελούταν από 3 στρώματα.

Kernel: Το βασικό σύνολο αλγορίθμων που "αποφάσιζε" τον βέλτιστο τρόπο για την διαχείρηση των πόρων ενός υπολογιστή. Με απλά λόγια αποφάσιζε ποια εργασία θα τρέξει ο επεξεργαστής κάθε φορά και ποια ποσότητα μνήμης πρέπει να δεσμευτεί από κάθε πρόγραμμα και κάθε χρήστη. Είναι ο πυρήνας του UNIX.

Shell: Το κέλυφος είναι αυτό που βλέπει ο χρήστης. Είναι η γραμμή εντολών που δέχεται σαν είσοδο της οποιαδήποτε εντολή από τον χρήστη και την μεταφράζει σε κάποια εργασία. Το κέλυφος κρύβει τον πυρήνα από τον χρήστη και του δίνει την δυνατότητα να αλληλεπιδρά μαζί του ζητώντας του πόρους.

Προγράμματα: Επεξεργαστές κειμένου, προγράμματα διαμόρφωσης δίσκων, προγράμματα γραφικών και πολλά άλλα ερχόντουσαν και αυτά σε εντολές μέσα στο λειτουργικό και το κέλυφος αναλάμβανε να στείλει τα απαραίτητα σήματα στον kernel ώστε αυτός να αποδώσει τους βέλτιστους πόρους για κάθε εφαρμογή.

Το UNIX μπήκε παντού και πολλά άλλα συστήματα προσπάθησαν να το μιμηθούν (Unix like OS). BSD, Minix, GNU Project και Linux δεν θα υπήρχαν. Όμως μαζί του το UNIX έφερε και την γλώσσα προγραμματισμού C που ακόμα και σήμερα μεγάλες εταιρίες που ασχολούνται με το εμπόριο δαγκωμένων μήλων και παράθυρων χρησιμοποιούν για τα προϊόντα τους.

Ακολουθεί ένα video με μια παρουσίαση του UNIX γύρω στο 1982:




Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου