MacOS

Ιστορία

Το Mac OS X βασίζεται στον πυρήνα Mach. Συγκεκριμένα κομμάτια από το FreeBSD και το NetBSD υιοθετήθηκαν στο Nextstep, που αποτέλεσε την βάση για το Mac OS X.
Το Nextstep ήταν ένα αντικειμενοστραφές (object-oriented) λειτουργικό σύστημα αναπτυγμένο από τη εταιρία του Στηβ Τζομπς "NeXT", την οποία δημιούργησε αφού έφυγε  από την Apple το 1985. Κατά την απουσία του Τζομπς, η Apple προσπάθησε να δημιουργήσει ένα "νέας γενιάς" λειτουργικό με το Taligent και το Copland, αλλά χωρίς ιδιαίτερη επιτυχία.
Τελικά, το λειτουργικό της NeXT, που είχε πλέον μετονομαστεί σε OPENSTEP, επιλέχθηκε ως η βάση του επόμενου λειτουργικού της Apple, και η Apple εξαγόρασε την NeXT. O Στηβ Τζομπς επέστρεψε στην Apple ως προσωρινός CEO (διευθυντής) και πάλι, αναλαμβάνοντας το έργο της μετατροπής του φιλικού-για-προγραμματιστές Openstep σε ένα σύστημα που θα μπορούσε να χρησιμοποιήσει η βασική αγορά της Apple, δηλαδή οι οικιακοί χρήστες και οι επαγγελματίες στο δημιουργικό τομέα. Αρχικά το έργο ονομάστηκε Rhapsody (Ραψωδία) και στη συνέχεια μετονομάστηκε σε Mac OS X.
Συμβαδίζοντας με την πολιτική της Apple όπου ο υπολογιστής αποτελεί το "digital hub" (ψηφιακός κόμβος), με κάθε καινούρια έκδοση, το Mac OS X εξελίχθηκε δίνοντας λιγότερη βάση στη συμβατότητα με παλιότερο λογισμικό και περισσότερη στις εφαρμογές "digital lifestyle" (ψηφιακός τρόπος ζωής) όπως το πακέτο "iLife", επιχειρηματικές εφαρμογές όπως το "iWork" και ενσωματώνοντας το συστήμα οικιακής ψυχαγωγίας "Front Row media center". Κάθε νέα έκδοση περιείχε γενικές μετατροπές στη διασύνδεση χρήστη (interface) όπως η brushed metal (στιλβωμένο μέταλλο) εμφάνιση που προστέθηκε στην έκδοση 10.2 και η ενοποιημένη εμφάνιση στο 10.4.

Λογισμικό (Software)

Κατά τα τέλη της δεκαετίας του '90, για τη διευκόλυνση της μετατροπής των υφισταμένων εφαρμογών από το Mac OS 9 στο Mac OS X, ενσωματώθηκε στο Mac OS X το Carbon (Άνθρακας) API (Application Programming Interface - περιβάλλον προγραμματισμού εφαρμογών). Οι εφαρμογές γραμμένες με το Carbon τρέχανε κανονικά σε όλα τα συστήματα και οι εφαρμογές που είχαν σχεδιαστεί για το Mac OS 9 χρειάζονταν μόνο λίγες μετατροπές για να λειτουργούν με το Carbon API. Από την άλλη, τα πιο ισχυρά API του Mac OS X που προήλθαν από το Openstep δεν ήταν συμβατά με τις εκδόσεις που προηγήθηκαν του Mac OS X. Αυτά τα API αναφέρονται ως Cocoa (Κακάο). Αυτή η κληρονομιά είναι πολύ εμφανής στους προγραμματιστές με Cocoa, αφού τα περισσότερα Cocoa class ονόματα ξεκινούν με το συνθετικό "NS" από τη λέξη Nextstep.
Από το 2006 και μετά εγκαταλήφθηκε η Java ως το προτιμώμενο πακέτο λογισμικού. Στο Mac OS X η Java είχε πάντα ιδιαίτερη μεταχείριση. Εφαρμογές γραμμένες σε Java ενσωματώνονται όσο καλύτερα γίνεται στο σύστημα ενώ παραμένουν  cross-platform (ανεξάρτητης-πλατφόρμας) και γραφικά περιβάλλοντα γραμμένα με Swift φαίνονται σχεδόν ακριβώς το ίδιο με τα κανονικά Cocoa περιβάλλοντα. Παραδοσιακά οι εφαρμογές για το Mac OS X γράφονται με Objective-C, με την Java μόνο ως εναλλακτική. Όμως στις 11 Ιουλίου 2005 η Apple ανακοίνωσε ότι "τα χαρακτηριστικά που θα προστεθούν στο Cocoa μετά το Mac OS X v10.4 δεν θα προστεθούν στο Cocoa-Java API"

Υλικό (Hardware)

Στις αρχές του Mac OS X, υποστηρίζονταν όλες οι αρχιτεκτονικές των τότε Macintosh υπολογιστών (φορητών, επιτραπέζιων και διακομιστών) που βασίζονταν σε επεξεργαστές PowerPC G3, G4 και G5. Μετέπειτα εκδόσεις διέκοψαν την υποστήριξη για το παλιότερο υλικό. Για παράδειγμα το v10.3 δεν υποστηρίζει τα "beige" (μπεζ) G3s, το v10.4 δεν υποστηρίζει τα συστήματα πριν από την έναρξη χρήσης των θυρών  FireWire από  την Apple και το v10.5 δεν υποστηρίζει το συστήματα παλιότερα των G4 στα 867 MHz, αν και κυκλοφόρησαν εργαλεία όπως το XPostFacto τρίτων που επιτρέπουν την αναβάθμιση χωρίς την υποστήριξη της Apple.
Το Mac OS X διατηρεί συμβατότητα με εφαρμογές γραμμένες για παλιότερες εκδόσεις του Mac OS παρέχοντας ένα περιβάλλον προσομοίωσης που λέγεται Classic, που επιτρέπει στους χρήστες να τρέχουν το Mac OS 9 ως κομμάτι του Mac OS X. Το Classic έπαψε να υποστηρίζεται 7 χρόνια μετά την έναρξη του Mac OS X, με την έλευση των βασισμένων σε Intel Macintosh.

Μεταφορά στους επεξεργαστές Intel

Τον Απρίλιο του 2002,  το eWeek δημοσίευσε πληροφορίες ότι η Apple ετοίμαζε έναν νέο κώδικα του Mac OS X - ονομαζόμενο Marklar το οποίο έτρεχε σε επεξεργαστές Intel x86 . Η ιδέα πίσω από το Marklar ήταν να κάνει το Mac OS X να τρέξει σε μια διαφορετική πλατφόρμα, καθώς η Apple ήταν δυσαρεστημένη με την πορεία της πλατφόρμας PowerPC. 
Οι πληροφορίες αυτές είχαν ξεχαστεί μέχρι τα τέλη Μαΐου 2005, όταν διάφορα ειδησεογραφικά πρακτορεία, όπως η  Wall Street Journal 
και το CNET, 
ανέφεραν ότι η Apple θα γνωστοποιούσε το Marklar μέσα στους επόμενους μήνες.
Στις 6 Ιουνίου 2005, ο Διευθύνων Σύμβουλος Steve Jobs επιβεβαίωσε αυτές τις πληροφορίες, ανακοινώνοντάς  τες επίσημα στην ομιλία του στο ετήσιο Apple Worldwide Developers Conference και λέγοντας ότι η Apple θα έκανε την μεταφορά από τους PowerPC επεξεργαστές στους Intel επεξεργαστές μέσα στα επόμενα δύο χρονιά, και ότι το Mac OS X θα υποστηρίζει και τις δυο πλατφόρμες καθ'όλη την διάρκεια της αλλαγής. Την τελευταία φορά που η Apple άλλαξε οικογένεια επεξεργαστών — από τον Motorola 68K επεξεργαστή στον IBM/Motorola PowerPC— η Apple συμπεριέλαβε έναν Motorola 68K προσομοιωτή στο καινούργιο OS που έκανε σχεδόν όλα τα 68K προγράμματα να δουλεύουν αυτομάτως στο καινούργιο υλικό. Η Apple είχε υποστηρίξει το 68K προσομοιωτή για 11 χρονιά, άλλα σταμάτησε να το υποστηρίζει κατά την διάρκεια μετάβασης στους Intel επεξεργαστές. Ενσωματωμένο στο νέο OS για τους Intel-βασισμένους Mac είναι η Rosetta, ένα binary translation στρώμα το οποίο επιτρέπει προγράμματα γραμμένα για PowerPC Mac OS X να τρέχουν σε Intel Mac OS X μηχανήματα. Παρ' όλα αυτά, η Apple σταμάτησε να υποστηρίζει το Classic mode στους καινούργιους Intel Mac. Λογισμικό προσομοίωσης τρίτων κατασκευαστων όπως τα Mini vMac, Basilisk II και SheepShaver δίνουν υποστήριξη για κάποιες παλαιότερες εκδόσεις του Mac OS. Μια νέα εκδοσή του Xcode και νέους μεταγλωττιστές γραμμής-εντολών να υποστηρίζουν την δημιουργία universal binaries τα οποία θα τρέχουν και στις δυο αρχιτεκτονικές.
Λογισμικό το οποίο είναι μόνο διαθέσιμο για PowerPC υποστηρίζεται από την Rosetta. Παρ'όλα αυτά, η Apple παροτρύνει προγραμματιστές να δημιουργησουν universal binaries με υποστήριξη για PowerPC και x86. 
Το Universal binary λογισμικό πρέπει να τρέχει γρηγορότερα στους βασισμένους σε επεξεργαστές Intel Mac σε σχέση με το λογισμικό που τρέχει μόνο σε PowerPC μεσώ Rosetta. Επιπλέον, κάποιο PowerPC λογισμικό, όπως επεκτάσεις του kernel και System Preferences plugins, δεν υποστηρίζονται στους Intel Macs. Καθώς οι Intel Macs θα μπορούν να τρέξουν PowerPC, x86, και universal binaries, οι PowerPC Macs θα μπορούν να υποστηρίξουν μόνο universal και PowerPC builds.
Υποστήριξη για την πλατφόρμα PowerPC παραμένει και στο OS X v10.5. Ο Jobs επίσης επιβεβαίωσε ότι η Apple είχε φτιάξει εκδόσεις του Mac OS X να τρεχουν σε Intel επεξεργαστές στο μεγαλύτερο μέρος της ανάπτυξης του. Τέτοια cross-platform συμβατότητα πάντα υπήρχε στην πορεία του Mac OS X, όπως ειπώθηκε νωρίτερα; Το Openstep δούλευε σε πολλές αρχιτεκτονικές, συμπεριλαμβανομένου του x86, και το Darwin είχε υποστήριξη και για PowerPC και για x86. Παρ'όλο που η Apple δήλωσε ότι το Mac OS X δεν θα τρέξει σε Intel-βασισμένους προσωπικούς υπολογιστές εκτός από τους δικούς της, μια ανεπίσημα σπασμένη εκδοσή του OS συμβατό με τυπικό x86 υλικό έχει αναπτυχθεί από την OSx86 κοινότητα και είναι διαθέσιμο μέσα από δίκτυα διαμοίρασης αρχείων όπως είναι το BitTorrent.