Λειτουργικό σύστημα

Λειτουργικό σύστημα (αγγλικά: Operating System ή OS) ονομάζεται στην επιστήμη της πληροφορικής το λογισμικό του υπολογιστή που είναι υπεύθυνο για τη διαχείριση και τον συντονισμό των εργασιών, καθώς και την κατανομή των διαθέσιμων πόρων . Το λειτουργικό σύστημα παρέχει ένα θεμέλιο, ένα μεσολαβητικό επίπεδο λογικής διασύνδεσης μεταξύ λογισμικού και υλικού, διαμέσου του οποίου οι εφαρμογές αντιλαμβάνονται εμμέσως τον υπολογιστή. Μια από τις κεντρικές αρμοδιότητες του λειτουργικού συστήματος είναι η διαχείριση του υλικού, απαλλάσσοντας έτσι το λογισμικό του χρήστη από τον άμεσο και επίπονο χειρισμό του υπολογιστή και καθιστώντας ευκολότερο τον προγραμματισμό τους. Σχεδόν όλοι οι υπολογιστές (παλάμης, επιτραπέζιοι, υπερυπολογιστές, ακόμη και παιχνιδομηχανές) χρησιμοποιούν έναν τύπο λειτουργικού συστήματος. Ορισμένα παλαιότερα μοντέλα ωστόσο βασίζονται σε ένα ενσωματωμένο λειτουργικό σύστημα, το οποίο περιέχεται σε έναν οπτικό δίσκο ή άλλες συσκευές αποθήκευσης δεδομένων. Ως λειτουργικό σύστημα (ΛΣ) χαρακτηρίζεται μία συλλογή βασικών προγραμμάτων , η οποία ελέγχει τη λειτουργία του υπολογιστή συνολικά και χρησιμοποιείται ως υπόβαθρο για την εκτέλεση όλων των υπόλοιπων προγραμμάτων, τη διαχείριση των περιφερειακών συσκευών και την εξασφάλιση της επικοινωνίας μεταξύ χρήστη και υπολογιστή. Στην πράξη πρόκειται για ένα επίπεδο λογισμικού που μεσολαβεί μεταξύ του υλικού και των εκτελούμενων προγραμμάτων σε έναν ηλεκτρονικό υπολογιστή. Αποτελείται από ένα σύνολο μηχανισμών μέσω των οποίων επιτυγχάνεται αυτόματη διαχείριση των πόρων ενός υπολογιστή και ελεγχόμενη κατανομή τους στις εκτελούμενες εφαρμογές, έτσι ώστε οι τελευταίες να είναι σε θέση να προσπελάσουν εύκολα τους πόρους και τις συσκευές του συστήματος χωρίς να χρειάζεται να γνωρίζουν με ακρίβεια τη δομή του υποκείμενου υλικού, αλλά και ώστε πολλαπλές εφαρμογές να μπορούν να εκτελούνται ταυτόχρονα χωρίς να έρχονται σε διένεξη μεταξύ τους ή με τον υπολογιστή. Οι πρώιμοι υπολογιστές στερούνταν λειτουργικού συστήματος. Ένας άνθρωπος 'χειριστής' (operator) φόρτωνε τα προγράμματα στη μνήμη του υπολογιστή και φρόντιζε για την εκτέλεσή τους, εξ ου και το όνομα του λογισμικού συστήματος το οποίο αντικατέστησε τις ανθρώπινες αυτές ενέργειες (Operating System). Με το μεσολαβητικό επίπεδο διασύνδεσης που προσφέρει το ΛΣ, οι εφαρμογές μπορούν να αξιοποιούν εύκολα τη μνήμη, τον επεξεργαστή, το σύστημα αρχείων και τις περιφερειακές συσκευές. Δηλαδή το ΛΣ δημιουργεί ένα απλουστευμένο εικονικό περιβάλλον μέσα στο οποίο εκτελούνται οι εφαρμογές. Οι τελευταίες, μέσα από κάποια συγκεκριμένη και τυποποιημένη προγραμματιστική διασύνδεση που τους προσφέρει το ΛΣ, τις κλήσεις συστήματος, διαμορφώνουν αυστηρά συμμορφούμενα με αυτήν τη διασύνδεση αιτήματα για να αποκτήσουν πόρους, προκειμένου να φέρουν εις πέρας τις εργασίες που ζητά ο χρήστης. Στα PC το ΛΣ είναι το πρώτο λογισμικό που «φορτώνεται» στη μνήμη του υπολογιστή μετά την εκτέλεση του BIOS. Οποιοδήποτε λογισμικό φορτωθεί στη συνέχεια βασίζεται στο ΛΣ για την παροχή όλων των υπηρεσιών οι οποίες απαιτούν πρόσβαση στο υλικό.

 Το λειτουργικό σύστημα περιέχει κώδικα χαμηλού επιπέδου, αποκλειστικά για την αρχιτεκτονική του επεξεργαστή στην οποία εκτελείται (γραμμένο είτε σε κάποια κατάλληλη γλώσσα προγραμματισμού υψηλού επιπέδου, όπως η C, είτε απευθείας σε συμβολική γλώσσα), ο οποίος αναλαμβάνει την υλοποίηση όλων αυτών των μηχανισμών. Ο εν λόγω κώδικας, ο οποίος κατά την κανονική λειτουργία του υπολογιστή είναι αποθηκευμένος στη μνήμη, ονομάζεται «πυρήνας» και ο κώδικας των εκτελούμενων εφαρμογών («κώδικας χρήστη») δεν έχει άμεση πρόσβαση σε αυτόν. Ο πυρήνας όμως παρέχει μία προγραμματιστική διασύνδεση, τις κλήσεις συστήματος που προαναφέρθηκαν, με την οποία τα προγράμματα χρήστη μπορούν να καλούν με ελεγχόμενο τρόπο διαδικασίες που εξάγει ο πυρήνας και παρέχουν υπηρεσίες στον καλούντα. Η σύνταξη, η σημασιολογία και η ονοματολογία των κλήσεων συστήματος διαφέρει από ΛΣ σε ΛΣ, με αποτέλεσμα ένα εκτελέσιμο πρόγραμμα συνήθως να μπορεί να τρέξει μόνο σε ένα ΛΣ. Ο κώδικας χρήστη δεν μπορεί να προσπελάσει μόνος του τους πόρους του υπολογιστή (π.χ. δίσκους, μνήμη συστήματος, περιφερειακά, δίκτυο κλπ) αλλά μπορεί να ζητήσει ό,τι χρειάζεται (π.χ. άνοιγμα ενός αρχείου στον δίσκο) από τον πυρήνα μέσω των κλήσεων συστήματος. Συνήθως οι γλώσσες προγραμματισμού παρέχουν προτυποποιημένες βιβλιοθήκες που αποκρύπτουν αυτή τη διαδικασία από τον προγραμματιστή και παρέχουν φορητότητα κώδικα από ΛΣ σε ΛΣ. Π.χ. η απλή συνάρτηση fopen() της πρότυπης βιβλιοθήκης της C, με κοινή σύνταξη για όλες τις αρχιτεκτονικές και λειτουργικά συστήματα αλλά με διαφορετική υλοποίηση για το καθένα, όταν κληθεί καλεί με τη σειρά της την αντίστοιχη κλήση συστήματος - κατά κανόνα πιο πολύπλοκη - που παρέχει το υποκείμενο ΛΣ. Ο κώδικας που υλοποιεί τις κλήσεις συστήματος είναι ουσιαστικά τμήμα του πυρήνα, οπότε η fopen() του συγκεκριμένου παραδείγματος ζητά μετάβαση του επεξεργαστή σε κατάσταση πυρήνα, κατά την οποία μπορούν να εκτελεστούν εντολές με άμεση επίδραση στο υλικό και τους πόρους του υπολογιστή, και μεταφέρει τον έλεγχο στον κώδικα της κλήσης συστήματος. Όταν ο τελευταίος τερματίσει ο επεξεργαστής μεταβαίνει πάλι σε κατάσταση χρήστη και η fopen() συνεχίζει την εκτέλεσή της από την εντολή που ακολουθεί την κλήση συστήματος. Φυσικά τα προγράμματα χρήστη μπορούν να παρακάμψουν την fopen() και να καλέσουν κατευθείαν τον πυρήνα, κάτι που γίνεται αναγκαστικά όταν η βιβλιοθήκη της γλώσσας προγραμματισμού δεν παρέχει υψηλού επιπέδου διασύνδεση (όπως την fopen()) για κάποια λειτουργία. Οι βασικοί μηχανισμοί ενός λειτουργικού συστήματος αφορούν τη διαχείριση της εκτέλεσης των προγραμμάτων χρήστη (μέσω του μηχανισμού των διεργασιών και - στα συστήματα τα οποία υποστηρίζουν ταυτοχρονισμό / πολυδιεργασία / πολυπρογραμματισμό - του κατάλληλου χρονοπρογραμματισμού τους), της επικοινωνίας μεταξύ τους (μέσω των μηχανισμών εικονικής μνήμης και διαδιεργασιακής επικοινωνίας) και των δεδομένων που αυτές χρησιμοποιούν (μέσω του συστήματος αρχείων). Με τον τρόπο που είναι υλοποιημένοι οι εν λόγω μηχανισμοί διασφαλίζουν συνήθως τόσο την ασφάλεια του πυρήνα απέναντι στον κώδικα χρήστη, όσο και την ασφάλεια μεταξύ των προγραμμάτων χρήστη, ώστε κανένα να μην παρεμποδίζει ή να επηρεάζει αρνητικά την πρόσβαση των άλλων στους πόρους του συστήματος. Ένα πρόγραμμα που εκτελείται στον υπολογιστή συνιστά μία ή περισσότερες διεργασίες. Πρόκειται για το βασικό μέσο εκτέλεσης προγραμμάτων σε ένα συνηθισμένο ΛΣ. Ο ίδιος κώδικας / πρόγραμμα μπορεί να εκτελείται ταυτόχρονα μέσα από πολλές διαφορετικές διεργασίες οι οποίες μπορεί να ανήκουν σε διαφορετικούς χρήστες. Στα πλαίσια της σειριακής αρχιτεκτονικής φον Νόιμαν και των υπολογιστών που έχουν οικοδομηθεί με βάση αυτήν, μόνο μια διεργασία μπορεί να εκτελείται στην ΚΜΕ (Κεντρική Μονάδα Επεξεργασίας) οποιαδήποτε χρονική στιγμή· επομένως οι ποικίλες διεργασίες οι οποίες είναι ταυτόχρονα ενεργές εκτελούνται ψευδοπαράλληλα, με διαδοχική εναλλαγή του επεξεργαστή μεταξύ τους κάθε λίγη ώρα. Σε ένα παράλληλο σύστημα, όπου υπάρχουν πολλαπλοί επεξεργαστές, ο ταυτοχρονισμός / πολυδιεργασία μπορούν να υλοποιηθούν πραγματικά παράλληλα. Σε κάθε περίπτωση, το τμήμα του πυρήνα το οποίο λαμβάνει διάφορες αποφάσεις σχετικά με την ανάθεση των ΚΜΕ στις διάφορες διεργασίες ονομάζεται χρονοπρογραμματιστής. Στις σύγχρονες αρχιτεκτονικές υπολογιστών η μνήμη είναι οργανωμένη ιεραρχικά. Αρχίζοντας από την ταχύτερη: καταχωρητές, κρυφή μνήμη, κύρια μνήμη και δευτερεύουσα μνήμη (π. χ. σκληροί δίσκοι). Το τμήμα εκείνο του ΛΣ που καλείται διαχειριστής μνήμης συντονίζει τη χρήση των διαφόρων τύπων μνήμης, καταγράφοντας ποια τμήματά τους είναι διαθέσιμα, ποια είναι δεσμευμένα και, αναλόγως με τις απαιτήσεις των διεργασιών, εκχωρεί ή απελευθερώνει τμήματα για να τα χρησιμοποιήσουν οι τελευταίες. Αυτή η δραστηριότητα λέγεται διαχείριση εικονικής μνήμης, αφού η συνολική μνήμη που είναι σε θέση να αξιοποιήσουν οι διεργασίες κατά την εκτέλεσή τους μπορεί να υπερβαίνει το μέγεθος της κύριας μνήμης (της φυσικής μνήμης RAM), μέσω της δέσμευσης ενός τμήματος του σκληρού δίσκου από τον πυρήνα το οποίο χρησιμοποιείται από τον τελευταίο σαν επέκταση της κύριας μνήμης. Τα προηγμένα Λ.Σ. αποφεύγουν, όπου και όταν είναι δυνατό, τη χρήση αυτής της τεχνικής, επειδή η χρήση δευτερεύουσας μνήμης ως κύριας μειώνει την ταχύτητα του συστήματος. Το τμήμα του ΛΣ που ονομάζεται διαχειριστής συστήματος αρχείων δημιουργεί την αφαιρετική έννοια των αρχείων και των δένδρων καταλόγων. Έτσι ο χρήστης και οι εφαρμογές του έχουν τη δυνατότητα να βλέπουν τη δευτερεύουσα μνήμη σαν ένα σύνολο από αρχεία, τα οποία μπορούν να δημιουργούν, να τροποποιούν, να διαγράφουν, να μετακινούν και να αντιγράφουν. Τα περισσότερα σύγχρονα λειτουργικά συστήματα επιτρέπουν τη σύνδεση ενός υπολογιστή τόσο σε τοπικά δίκτυα όσο και στο Διαδίκτυο, ενσωματώνοντας στον κωδικά τους την υλοποίηση των απαιτούμενων αντίστοιχων πρωτοκόλλων. Με τον όρο αυτό, γνωστό και ως προστασία μνήμης, εννοούνται οι ενέργειες στις οποίες προβαίνει το ΛΣ προκειμένου να προφυλάξει τους πόρους μιας διεργασίας από τις παρεμβάσεις άλλων διεργασιών που τυχαίνει να εκτελούνται (ψευδο)παράλληλα. Το σκεπτικό είναι πως, δεν πρέπει μια διεργασία ενός χρήστη (σε περίπτωση πολυχρηστικού διακομιστή που εξυπηρετεί πολλαπλούς πελάτες) ταυτόχρονα μέσω δικτύου, να έχει αποκλειστική πρόσβαση σε ολόκληρο το σύστημα αρχείων, ούτε μια διεργασία να εγγράφει δεδομένα στο τμήμα εκείνο της μνήμης που έχει εκχωρηθεί σε άλλη διεργασία. Σαν κόμβος ενός δικτύου ένας υπολογιστής μπορεί να δεχτεί επιθέσεις από κακόβουλο λογισμικό. Τα σύγχρονα ΛΣ περιλαμβάνουν και τμήματα που είναι υπεύθυνα να αναγνωρίσουν τέτοιες απειλές. Το λειτουργικό σύστημα ενός υπολογιστικού συστήματος, το οποίο υποστηρίζει πολλούς διαφορετικούς χρήστες, εκτελεί ένα ευρύ φάσμα εφαρμογών και είναι συνδεδεμένο στο δίκτυο. Το γεγονός αυτό αυξάνει τις απαιτήσεις ασφάλειας των αντικειμένων του, επειδή συντρέχει κίνδυνος απώλειας, καταστροφής, διαγραφής, τροποποίησης ή διάδοσης τους, χωρίς την απαιτούμενη δικαιοδοσία. Ενδεικτικές ευπάθειες και απειλές αποτελούν η απώλεια συνθηματικών, η μη εξουσιοδοτημένη εκτέλεση λογισμικού με στόχο την σπατάλη των διαθέσιμων πόρων, καθώς και κακόβουλο λογισμικό ή ενέργειες. Οι συνηθέστεροι μηχανισμοί οι οποίοι εν μέρει προσφέρουν ασφάλεια σε ένα λειτουργικό σύστημα είναι, οι βιομετρικοί μέθοδοι, αγνωστικά πρωτόκολλα, μηχανισμοί δημοσίου κλειδιού και σύνθετα συνθηματικά. Ενώ, οι συνηθέστερες τεχνικές οι οποίες υιοθετούνται για την προστασία και την ακεραιότητα των λειτουργικών συστημάτων είναι, οι μέθοδοι φραγμών, μέθοδοι καταχωρητών, σύνολα ελέγχου και συνόψεις αρχείων, μηχανισμοί ανοχής σφαλμάτων, αναχώματα ασφαλείας (Firewalls) και σύστημα ανίχνευσης εισβολών(Intrusion Detection System). Από την άλλη πλευρά, το «content spoofing» ή διαφορετικά η αλλοίωση περιεχομένου, χαρακτηρίζει την τεχνική της επίθεσης η οποία επιτρέπει σε έναν εισβολέα να εισφέρει κακόβουλο ωφέλιμο φορτίο το οποίο παραποιείται αργότερα, ως νόμιμο περιεχόμενο ενός ιστού (Web). Το γεγονός αυτό ενδέχεται να εκδηλωθεί σε πολλές διαφορετικές μορφές και συμπεριλαμβάνεται στη λίστα των πιο συχνών επιθέσεων. Παράλληλα, σε πολλές περιπτώσεις ο εισβολέας αποκτά πρόσβαση σε μία υπάρχουσα ιστοσελίδα (website), παραποιώντας τον πηγαίο κώδικα των προγραμμάτων αλλοιώνοντας το περιεχόμενο του ιστού. Η εξωτερική απεικόνιση (συνήθως στην οθόνη) του λειτουργικού συστήματος, ώστε ο χρήστης να μπορεί να αλληλεπιδράσει με αυτό και να διαχειριστεί τα προγράμματα και τις εργασίες του, δεν ταυτίζεται με το ίδιο το ΛΣ. Στην πραγματικότητα το κέλυφος (αγγλ: shell, εναλλακτικά στα ελληνικά είναι γνωστό και ως φλοιός), όπως λέγεται το εν λόγω τμήμα του ΛΣ το οποίο παρέχει μία οπτική και αλληλεπιδραστική διασύνδεση προς τους χρήστες, είναι απολύτως δευτερεύον σε σχέση με τον πυρήνα και τους μηχανισμούς του, παρόλο που πρόκειται για το μόνο συστατικό ενός λειτουργικού συστήματος το οποίο είναι άμεσα ορατό από έναν απλό χρήστη. Υπάρχουν δύο βασικοί τύποι κελύφους: οι γραμμές εντολών, όπου οι χρήστες απλώς πληκτρολογούν εντολές για να διαχειριστούν τα αρχεία και τα προγράμματά τους, και οι γραφικές διασυνδέσεις χρήστη (GUI), όπου οι χρήστες χειρίζονται ένα γραφικό περιβάλλον στηριζόμενο στο ποντίκι και σε οπτικές μεταφορές (εικονίδια, παράθυρα κλπ). Τα σύγχρονα ΛΣ παρέχουν τη δυνατότητα στον χρήστη να επικοινωνεί γραφικά με τον Η/Υ μέσω ποντικιού, παραθύρων, εικονιδίων, δείκτη ποντικιού, γραμμές εργασιών κλπ. Ένα λειτουργικό σύστημα περιλαμβάνει και πολλούς οδηγούς συσκευών (drivers). Συνοπτικά, ένας οδηγός συσκευής είναι το λογισμικό συστήματος που χρησιμοποιεί το ΛΣ και οι διεργασίες των χρηστών κάθε φορά που πρέπει να ανταλλάξουν δεδομένα με τη συγκεκριμένη συσκευή. Συνήθως οι οδηγοί συσκευών περιλαμβάνονται στο λογισμικό που συνοδεύει την περιφερειακή συσκευή κατά την αγορά της. Ωστόσο τα περισσότερα ΛΣ διατίθενται και με ορισμένους προκατασκευασμένους, γενικής χρήσης οδηγούς συσκευών, συνήθως όχι τόσο βελτιστοποιημένους από άποψη ταχύτητας. Όπως αναφέρθηκε, ο όρος πυρήνας αφορά τα πιο βασικά μέρη ενός ΛΣ τα οποία αλληλεπιδρούν στενά με το υλικό. Αντιθέτως, τμήματα του ΛΣ που δεν ανήκουν στον πυρήνα μπορούν να θεωρηθούν π.χ. η διασύνδεση με τον χρήστη, τα πρωτόκολλα επικοινωνίας ανάμεσα στις εφαρμογές, τα πρωτόκολλα διαχείρισης περιόδων εργασιών χρηστών, τα πρωτόκολλα δικτύου κτλ. Μια ενδιαφέρουσα ανάλυση σχετικά με την διαφορά ΛΣ και πυρήνα μπορεί να βρεθεί εδώ (Linux και GNU). Πάντως δεν επικρατεί κάποια γενική συναίνεση σχετικά με το θέμα αυτό στην κοινότητα της πληροφορικής. Στις μέρες μας (2012), τα δημοφιλέστερα λειτουργικά συστήματα στους μικροϋπολογιστές, (συμπεριλαμβανομένων των προσωπικών υπολογιστών), έχουν διαμορφωθεί σε δύο μεγάλες οικογένειες: αυτή των Unix-συμβατών και την οικογένεια των Microsoft Windows. Οι κεντρικοί υπολογιστές και τα ενσωματωμένα συστήματα χρησιμοποιούν μια ποικιλία άλλων λειτουργικών συστημάτων, τα περισσότερα από τα οποία δεν έχουν άμεση συγγένεια με τα Windows ή με το Unix. Τα Unix-συμβατά Λειτουργικά Συστήματα αποτελούν μια πολυποίκιλη ομάδα, με πολλές κύριες υποκατηγορίες συμπεριλαμβανομένων των System V, BSD, και GNU/Linux. Το εμπορικό σήμα Unix χρησιμοποιείται από πολλά ΛΣ που έχουν πολλά κοινά με το αρχικό Unix. Τα Unix Λ.Σ. τρέχουν σε μια μεγάλη γκάμα από αρχιτεκτονικές υπολογιστών. Χρησιμοποιούνται πολύ σαν συστήματα εξυπηρετητές στις επιχειρήσεις και σε σταθμούς εργασίας σε ακαδημαϊκούς και μηχανολογικούς χώρους εργασίας. Παραλλαγές του Unix που διακινούνται ως Ελεύθερο λογισμικό, όπως το GNU/Linux και BSD αυξάνουν σε δημοτικότητα στο χώρο των σταθμών εργασίας και των προσωπικών υπολογιστών. Παραλλαγές που διακινούνται με κλειστές άδειες χρήσης όπως το HP-UX της Hewlett-Packard, το Irix της Silicon Graphics και το AIX της IBM έχουν σχεδιαστεί να τρέχουν μόνο στο υλικό των συγκεκριμένων εταιρειών ενώ άλλες παραλλαγές μπορούν να τρέξουν και σε προσωπικούς υπολογιστές. Το Solaris της Sun (που άλλαξε άδεια χρήσης σε λογισμικό ανοιχτού κώδικα υπό την CDDL άδεια) είναι ένα τέτοιο πολύμορφο αλλά αληθινό Unix και μπορεί να τρέχει στους σταθμούς εργασίας της Sun αλλά και στον μικρότερο υπολογιστή αρχιτεκτονικής x86. Το ΛΣ Mac OS X της Apple είναι μια παραλλαγή του BSD, και έχει αντικαταστήσει τα προηγούμενα (μη-unix) MacOS ΛΣ της Apple σε μια σχετικά μικρή αλλά αφοσιωμένη αγορά, έχοντας γίνει ένα πολύ δημοφιλές Unix. Η οικογένεια των Microsoft Windows ΛΣ ξεκίνησε σαν ένα επίπεδο γραφικής διασύνδεσης πάνω από το παλιότερο MS-DOS περιβάλλον για τους IBM PC. Οι σύγχρονες εκδόσεις των Windows βασίζονται στον καινούργιο πυρήνα των Windows NT που πρωτοδιαμορφώθηκε στο OS/2, με πιο πρόσφατη έκδοση εν έτει 2010 τα Windows 7. Τα Windows τρέχουν πάνω σε 32- και 64-bit Intel και AMD υπολογιστές, αν και προηγούμενες εκδόσεις έτρεχαν και σε DEC Alpha, MIPS και PowerPC αρχιτεκτονικές (και υπήρξε και προσπάθεια να μεταφερθεί και σε αρχιτεκτονική SPARC). Σήμερα, τα Windows είναι το δημοφιλέστερο ΛΣ προσωπικών υπολογιστών απολαμβάνοντας ένα σχεδόν μονοπώλιο του 90% του παγκόσμιου μεριδίου αγοράς των προσωπικών υπολογιστών. Επίσης χρησιμοποιείται ευρέως και στους εξυπηρετητές υποστηρίζοντας εφαρμογές όπως Web εξυπηρετητές (Web Servers) και εξυπηρετητές βάσεων δεδομένων (DBMS Servers). Τα ΛΣ μεγάλων υπολογιστών, όπως της IBM z/OS και ενσωματωμένων ΛΣ όπως QNX, eCos, Symbian και Palm OS, είναι συνήθως άσχετα με το Unix και τα Windows. Τα ΛΣ Windows CE, Windows NT Embedded 4.0 και Windows XP Embedded σχετίζονται με τα Windows. Παλιότερα ΛΣ που ακόμα χρησιμοποιούνται σε κλειστές αγορές περιλαμβάνουν το παρόμοιο με τα Windows OS/2 της IBM, το VMS της Hewlett-Packard (πρώην DEC), το Mac OS, το όχι-Unix προηγούμενο του Mac OS της Apple X και το AmigaOS, το πρώτο με γραφική διασύνδεση χρήστη ΛΣ με αναπτυγμένες δυνατότητες πολυμέσων που έγινε διαθέσιμο στο κοινό. Παλαιότερο, επίσης, ΛΣ που χρησιμοποιείται ακόμη σε πολύ περιορισμένες εφαρμογές, είναι ο πρόγονος των Windows στους Προσωπικούς υπολογιστές, το MS-DOS. Η έρευνα και η ανάπτυξη νέων τύπων ΛΣ συνεχίζεται και αποτελεί ένα ενεργό πεδίο της πληροφορικής. UNIX - που περιλαμβάνει όλα τα UNIX BSD (FreeBSD, OpenBSD, NetBSD), το Solaris (και το OpenSolaris), το GNU/Linux και το Mac OS X Mac OS (μέχρι την έκδοση 9) Microsoft Windows MS-DOS CP/M AmigaOS Ερευνητικά λειτουργικά συστήματα Πολλά λειτουργικά συστήματα αναπτύσσονται από πανεπιστήμια, επιχειρήσεις, χομπίστες ή άλλους φορείς για καθαρά επιστημονικούς λόγους ώστε να διερευνηθούν νέες τεχνικές ή να χρησιμοποιηθούν ως βάση για μελλοντική εμπορική ή παραγωγική χρήση. Μερικά παραδείγματα ερευνητικών λειτουργικών συστημάτων είναι τα εξής: Multics Sprite (λειτουργικό σύστημα) MenuetOS Plan 9 Sortix ToaruOS EMPIX του ΕΜΠΓια μια πιο πλήρη λίστα δείτε εδώ: http://wiki.osdev.org/Projects Αρχιτεκτονική Υπολογιστών: Μια Δομημένη Προσέγγιση, Tanenbaum Andrew S., Εκδ. Κλειδάριθμος Σύγχρονα Λειτουργικά Συστήματα, Tanenbaum Andrew S., Εκδ. Κλειδάριθμος Principles of Information Security,[Whitman M., Mattord Η (2011), 4th Edition] "ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ",Γ.Κ.ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ, Ν.Α.ΜΠΙΛΑΛΗΣ, Π.Α.ΤΣΑΝΑΚΑΣ, Εκδ.Συμμετρία 1986. "Fundamentals of Operating Systems",A.M.Lister,5th ed. with R.D.Eager, Springer 1993. Ιστορική αναδρομή λειτουργικών συστημάτων Αρχειοθετήθηκε 2011-05-19 στο Wayback Machine. Εισαγωγή στα λειτουργικά συστήματα Αρχειοθετήθηκε 2011-07-21 στο Wayback Machine. ΕΑΠ - Λειτουργικά Συστήματα Αρχειοθετήθηκε 2011-05-19 στο Wayback Machine.