MINIX

Το MINIX (από το mini-Unix) είναι ένα λειτουργικό σύστημα που μοιάζει με Unix και βασίζεται σε αρχιτεκτονική μικροπυρήνα . Από την έκδοση 2.0, είναι συμβατό με το Portable Operating System Interface (POSIX). Οι πρώτες εκδόσεις του MINIX δημιουργήθηκαν από τον Άντριου Τανενμπάουμ για εκπαιδευτικούς σκοπούς. Ξεκινώντας με το MINIX 3, ο πρωταρχικός στόχος ανάπτυξης μετατοπίστηκε από την εκπαίδευση στη δημιουργία ενός εξαιρετικά αξιόπιστου και αυτοθεραπευόμενου λειτουργικού συστήματος μικροπυρήνα. Το MINIX 3 αναπτύχθηκε ως λογισμικό ανοιχτού κώδικα. Το MINIX κυκλοφόρησε για πρώτη φορά το 1987, με τον πλήρη πηγαίο κώδικα του να διατίθεται στα πανεπιστήμια για σπουδές σε μαθήματα και έρευνα. Ήταν δωρεάν και ανοιχτού κώδικα λογισμικό από τότε που επανακυκλοφόρησε με την άδεια BSD-3-Clause τον Απρίλιο του 2000.

 Ο Άντριου Τανενμπάουμ δημιούργησε το MINIX στο πανεπιστήμιο Vrije του Άμστερνταμ για να παραδειγματίσει τις αρχές που μεταφέρονται στο σχολικό του βιβλίο, Operating Systems: Design and Implementation (1987). (Παρά το κοινό όνομα, δεν έχει καμία σχέση με το παλαιότερο MINIX της Digital Systems House, Inc. με βάση τον κώδικα Unix της AT&amp;T) Στο βιβλίο εκτυπώνονται συνοπτικές 12.000 γραμμές του πηγαίου κώδικα C του πυρήνα, του διαχειριστή μνήμης και του συστήματος αρχείων του MINIX 1.0. Το Prentice-Hall κυκλοφόρησε επίσης τον πηγαίο κώδικα MINIX και τα δυαδικά αρχεία σε δισκέτα με ένα εγχειρίδιο αναφοράς. Το MINIX 1 ήταν συμβατό με κλήση συστήματος με την Έβδομη Έκδοση του Unix. Ο Τανενμπάουμ ανέπτυξε αρχικά το MINIX για συμβατότητα με τους μικροϋπολογιστές IBM PC και IBM PC/AT 8088 που ήταν διαθέσιμοι εκείνη την εποχή. Το MINIX 1.5, που κυκλοφόρησε το 1991, περιλάμβανε υποστήριξη για συστήματα MicroChannel IBM PS/2 και μεταφέρθηκε επίσης στις αρχιτεκτονικές Motorola 68000 και SPARC, υποστηρίζοντας τις πλατφόρμες υπολογιστών Atari ST, Commodore Amiga, Apple Macintosh και Sun SPARCstation. Υπήρχαν επίσης ανεπίσημες μεταφορές σε συμβατούς υπολογιστές Intel 386 (σε προστατευμένη λειτουργία 32 bit), National Semiconductor NS32532, επεξεργαστές ARM και Inmos. Η Meiko Scientific χρησιμοποίησε μια πρώιμη έκδοση του MINIX ως βάση για το λειτουργικό σύστημα MeikOS για τους παράλληλους υπολογιστές Computing Surface που βασίζονται σε transputer. Μια έκδοση του MINIX που εκτελείται ως διεργασία χρήστη με το SunOS και το Solaris ήταν επίσης διαθέσιμη, ένας προσομοιωτής με το όνομα SMX (λειτουργικό σύστημα) ή απλώς SMX για συντομία. Η ζήτηση για τις αρχιτεκτονικές που βασίζονται σε 68k μειώθηκε, ωστώσο το MINIX 2.0, που κυκλοφόρησε το 1997, ήταν διαθέσιμο μόνο για τις αρχιτεκτονικές SPARC που φιλοξενούνται από x86 και Solaris. Ήταν το θέμα της δεύτερης έκδοσης του σχολικού βιβλίου του Τανεμπάουμ, το οποίο έγραψε ο Albert Woodhull και διανεμήθηκε σε ένα CD-ROM που περιλαμβάνεται στο βιβλίο. Το MINIX 2.0 ήταν συμφωνο με το POSIX.1, υποστήριξη για επεξεργαστές 386 και νεότερους σε λειτουργία 32 bit και αντικατέστησε τα πρωτόκολλα δικτύου Amoeba που περιλαμβάνονται στο MINIX 1.5 με μια υλοποίηση του TCP/IP. Η έκδοση 2.0.3 κυκλοφόρησε τον Μάιο του 2001. Ήταν η πρώτη έκδοση μετά την επανέκδοση του MINIX με την άδεια BSD-3-Clause, η οποία εφαρμόστηκε αναδρομικά σε όλες τις προηγούμενες εκδόσεις. Minix-vmd Το Minix-vmd είναι μια παραλλαγή του MINIX 2.0 για επεξεργαστές συμβατούς με Intel IA-32, που δημιουργήθηκε από δύο ερευνητές του πανεπιστήμιου Vrije, το οποίο προσθέτει εικονική μνήμη και υποστήριξη για το X Window System. Το MINIX 3 ανακοινώθηκε δημόσια στις 24 Οκτωβρίου 2005 από τον Τανενμπάουμ κατά τη διάρκεια της κεντρικής ομιλίας του στο συμπόσιο της Ένωσης Υπολογιστικών Μηχανημάτων (ACM) για τις Αρχές Λειτουργικών Συστημάτων (SOSP). Παρόλο που εξακολουθεί να χρησιμεύει ως παράδειγμα για τη νέα έκδοση του εγχειριδίου του Τανενμπάουμ, που συνυπογράφει ο Albert S. Woodhull, έχει επανασχεδιαστεί εκτενώς ώστε να μπορεί να "χρησιμοποιηθεί ως ένα σοβαρό σύστημα σε υπολογιστές με περιορισμένους πόρους και ενσωματωμένους υπολογιστές και για εφαρμογές που απαιτούν υψηλή αξιοπιστία". Το MINIX 3 υποστηρίζει επί του παρόντος συστήματα αρχιτεκτονικής IA-32 και ARM. Είναι διαθέσιμο σε μορφή live CD που επιτρέπει τη χρήση του σε υπολογιστή χωρίς να τον εγκαταστήσετε στον σκληρό δίσκο και σε εκδόσεις συμβατές με συστήματα εξομοίωσης και εικονικοποίησης υλικού, συμπεριλαμβανομένων των Bochs, QEMU, VMware Workstation and Fusion, VirtualBox και Microsoft Virtual PC. Η έκδοση 3.1.5 κυκλοφόρησε στις 5 Νοεμβρίου 2009. Περιέχει X11, emacs, vi, cc, gcc, perl, python, ash, bash, zsh, ftp, ssh, telnet, pine, και πάνω από 400 άλλα κοινά βοηθητικά προγράμματα Unix. Με την προσθήκη του X11, αυτή η έκδοση σηματοδοτεί τη μετάβαση από ένα σύστημα μόνο κειμένου. Σε πολλές περιπτώσεις μπορεί να επανεκκινήσει αυτόματα ένα κατεστραμμένο πρόγραμμα οδήγησης χωρίς να επηρεάσει τις διεργασίες που εκτελούνται. Με αυτόν τον τρόπο, το MINIX είναι αυτοθεραπευόμενο και μπορεί να χρησιμοποιηθεί σε εφαρμογές που απαιτούν υψηλή αξιοπιστία. Το MINIX 3 διαθέτει επίσης υποστήριξη για διαχείριση εικονικής μνήμης, καθιστώντας το κατάλληλο για χρήση επιτραπέζιου λειτουργικού συστήματος. Ωστόσο, εφαρμογές για επιτραπέζιους υπολογιστές όπως Firefox και το LibreOffice δεν είναι ακόμη διαθέσιμες για το MINIX 3. Από την έκδοση 3.2.0, ο χώρος χρήστη (userland) αντικαταστάθηκε κυρίως από αυτή του NetBSD και έγινε δυνατή η υποστήριξη από το pkgsrc, αυξάνοντας τις διαθέσιμες εφαρμογές λογισμικού που μπορεί να χρησιμοποιήσει το MINIX. Το Clang αντικατέστησε τον προηγούμενο μεταγλωττιστή (με το GCC να πρέπει τώρα να μεταγλωττιστεί χειροκίνητα) και το GDB, το πρόγραμμα εντοπισμού σφαλμάτων GNU, μεταφέρθηκε. Το MINIX 3.3.0, που κυκλοφόρησε τον Σεπτέμβριο του 2014, έφερε υποστήριξη ARM. Ως embedded λειτουργικό σύστημα σε firmware επεξεργαστών. Σημαντικό είναι να αναφεεθεί ότι παραλλαγή του λειτουργικού συστήματος Minix, έχει αναφερθεί ότι λειτουργεί στο εσωτερικό των επεξεργαστών της intel, πράγμα που στην αρχή της εφαρμογής του υπήρξε εταιρικό μυστικό. Ο Λίνους Τόρβαλντς χρησιμοποίησε και εκτιμούσε το MINIX, αλλά το σχέδιό του παρέκκλινε από την αρχιτεκτονική MINIX με σημαντικά, κυρίως χρησιμοποιώντας έναν μονολιθικό πυρήνα αντί για έναν μικροπυρήνα. Αυτό απορρίφθηκε από τον Τανενμπάουμ στη συζήτηση Tanenbaum–Torvalds. Ο Τανενμπάουμ εξήγησε ξανά το σκεπτικό του για τη χρήση ενός μικροπυρήνα τον Μάιο του 2006 Η πρώιμη ανάπτυξη του πυρήνα Linux έγινε σε ένα κεντρικό σύστημα MINIX, το οποίο οδήγησε στο Linux να κληρονομήσει διάφορα χαρακτηριστικά από το MINIX, όπως το σύστημα αρχείων MINIX Πολυμέσα σχετικά με το θέμα MINIX στο Wikimedia Commons