====== macOS système d'exploition UNIX d'Apple ======
**Logo** de **macOS** : {{ :wiki:systemes_d_exploitation:macos_wordmark_2017_.png?nolink&300 |}}
===== Présentation de macOS =====
**macOS** d'**Apple**, anciennement **Mac OS X**, le **X**, signifiant à la fois ''10'' et le //X// des **systèmes UNIX**, tel que **AIX**, **HP-UX**, **IRIX**, **XENIX** et bien d'autres. macOS est un système UNIX, un **BSD UNIX** plus précisément, il est issu à l'origine de **NeXTSTEP** (dernière version appelé **OPENSTEP**) de la défunte entreprise **NeXT, Inc** qui a été fondée en 1985 par **Steve Jobs** suite à son //éviction// de l'entreprise Apple.
Apple conscient que son OS **Mac OS 9** (de nos jours appelé **Mac OS Classic**) était complètement dépassé prit la décision d'acquérir un nouvel OS, à la base Apple se tourna vers **BeOS** de l'entreprise **Be Inc** crée par **Jean-Louis Gassée**, un ancien employé d'Apple puis finalement jettat son dévolu vers NeXTSTEP de NeXT, Inc détenu par Steve Jobs qui était de son côté le //co-fondateur// d'Apple. NeXTSTEP était un système UNIX basé sur **4.3BSD** (au départ **4.3BSD-Tahoe** puis **4.3BSD-Reno**) de l'**Université de Californie à Berkeley** (**//UCB//**) et du noyau UNIX de l' **OSF** (**//Open Software Foundation//**) qui était composé d'un **noyau Mach** de l'**Université Carnegie-Mellon** plus d'un **noyau BSD** de l'UCB, qui est en définitive un **noyau hybride**.
Pendant la conception de Mac OS X (pour rappel nom des premières versions), Apple a sorti en août 1997, un OS du nom de **Rhapsody** (jamais ''vendu'' au publique), qui intégrait le nouvel Unix de l'UCB, **4.4BSD** et du côté d'Apple : l'interface graphique de **Mac OS 8**, des frameworks comme **QuickTime** et **AppleSearch** et la **Blue Box** permettant une //compatibilité// avec les applications de Mac OS 8. Le 16 mars 1999 paru la première version de Mac OS X, **Mac OS X Server 1.0** qui n'était pas une version pour le grand publique. La première version //majeure// à avoir remplacée Mac OS 9 est **Mac OS X 10.0** (nom de code **Cheetah**) sorti le 24 mars 2001, cette version intégrait la nouvelle //interface utilisateur// du nom d'**Aqua**, le **Dock**, l'application **Mail** en autres. Mac OS X 10.0 se basait à présent sur **NetBSD 1.4**, système BSD Unix sous **licence BSD** (**licence open source** et **permissive**).
Depuis la version **Mac OS X 10.2** (nom de code **Jaguar**) publié le 23 août 2002, Mac OS X se base désormais sur **FreeBSD** également sous //licence BSD//. Mac OS X a été renommé **OS X** à partir de la version **OS X 10.7** (nom de code **Lion**) publiée le 20 juillet 2011 et **macOS** à partir de **macOS 10.12** (nom de code **Sierra**) sortie le 20 septembre 2016. La dernière version de macOS est **macOS Sequoia** (version ''15''), sortie le 16 septembre 2024 et annoncée au publique le 10 juin 2024.
macOS est prévu pour les ordinateurs Apple comme le **Macintosh**, les autres OS d'Apple se basent tous sur macOS mais pour des appareils informatiques différents, comme **iOS** pour **iPhone**.
Depuis Rhapsody, le nom du système de base BSD s'appelle [[wiki:systemes_d_exploitation:darwin|Darwin]], qui est actuellement essentiellement basé sur FreeBSD, hormis la partie //Mach// de l'Université Carnegie-Mellon du **noyau XNU**. Darwin est un système d'exploitation //complet//, la seule différence avec macOS est que Darwin ne contient pas les composants propres à Apple, comme le moteur graphique **Quartz**, l'interface graphique **Aqua** et toutes les applications liées à Apple comme : **iTunes**, **Finder**, **FaceTime**...etc. Darwin est sous **licence APSL** (**//Apple Public Source License//**) qui est une //licence open source//.
Pour les //fanboys// de la **Pomme**, si macOS est stable, fiable et sécurisé c'est principalement parce qu'il se base sur UNIX, précisément FreeBSD et sa partie de noyau Mach qui a été créé pour les BSD UNIX ! À quoi bon créer son OS de toutes pièces quand tous les composants sont déjà disponibles et de surcroît sous licences libres, sans **copyleft** (permissives)…
===== Caractéristiques de macOS =====
==== Composition de base de macOS ====
**macOS** est un **système UNIX** au même titre que **FreeBSD**, **NetBSD**, il fait d'ailleurs parti de la grande famille **BSD UNIX**, famille **UNIX** la plus ''populaire'' avec les **UNIX** basés sur **UNIX System V Release 4** (**//SVR4//**). Le **système** **macOS** contient :
* [[wiki:systemes_d_exploitation:darwin|Darwin]] qui est l**UNIX** sur lequel repose **macOS** et qui est composé de :
* **launchd** sert à la fois de **système d'initialisation**, il remplace le ''traditionnel'' **rc.ng** des **BSD** et de **gestionnaire de services** (**daemons**) tel que **OpenSSH**.
* Des **utilitaires Unix** en **ligne de commande** associés aux **bibliothèques logicielles** (**librairies**), ainsi que les **daemons** de base tel que **SSH**, **Telnet**, **FTP**, **Samba**,..., le **pare-feu** basé sur **PF** (**//Packet Filter//**) de [[wiki:systemes_d_exploitation:bsd_unix:freebsd|FreeBSD]], de divers **utilitaires Unix** du **projet GNU** tel que le **shell Unix** nommé **Bash** mais désormais **macOS** utilise **Zsh** par défaut mais **Bash** est toujours installé par défaut ainsi que les **shells Unix** de **FreeBSD**.
* **configd** qui gère le **réseau** et la **configuation** du **système**.
* **diskarbitrationd** qui gère le **montage** et **démontage** des **volumes de disque**.
* **mDNSResponder** qui gère la ''résolution'' **mDNS** (**//multicast DNS//**) et le ''protocole'' **Zeroconf** applé **Bonjour**.
* **securityd** qui s'occupe de tous les **services de sécurité**.
* Le **systèmes de fichiers** par défaut sous **macOS** peuvent être **HFS+** (**//Hierarchical File System Plus//**) pour les **disques durs** ou **APFS** (**//Apple File System//**) plutôt conçu pour les **SSD** (**//Solid-State Drive//**) ou **disque** à **mémoire Flash** en général. Via **FreeBSD**, **macOS** est compatible avec les **systèmes de fichiers** de **Linux** (**ext2**, **ext3**, **ext4**).
* **Xcode** qui est l'**environnement de développement** par défaut et qui utilise le **compilateur** nommé **Clang**, qui est une alternative à **GCC** de **GNU** mais **GCC** est aussi intégré à **Xcode**.
* **Command Line Tools** qui est un ensemble d'**utilitaires** de **développement** tel que **gcc**, **make**, **git**, etc.
* **XNU** qui est le **noyau** de **macOS** (le ''coeur'' du **système**), c'est un **noyau** de type **hybride** qui est composé d'un **noyau** **Mach** de l'**Université Carnegie-Mellon** associé au **noyau FreeBSD**.
* Du **système de fenêtrage** et **moteur graphique** du nom de **Quartz**
* L'**interface utilisateur graphique** nommé **Aqua** qui comporte le **Dock**, le **Finder**, etc.
* **Cocoa** qui est l'**API** (**//Application Programming Interface//**) native de **macOS**
* **Core Foundation** qui permet de gérer toutes les ''fonctionnalités'' des **paquets** au ''format'' **DMG**.
* **App Store** qui est le **magasin d'applications** de **macOS** (équivalent des **logithèques** sous **Linux**).
En définive, **macOS** est essentiellement un **OS** basé sur [[wiki:systemes_d_exploitation:bsd_unix:freebsd|FreeBSD]] associé à d'autres **projets** **open source**, donc c'est un **UNIX** de type **BSD** avec ses ajouts personnels tel que **Aqua**, **Quartz**, **Cocoa**,... Le système de base de **macOS** du nom de **Darwin** est sous ''licence'' **open source** (**Apple Public Source License**) mais la plupart des **logiciels** spécifiques à **macOS** sont sous **licences propriétaires**.
==== Les applications intégrées sous macOS ====
Ce qui fait en partie l' ''attractivité'' et la ''convivialité'' de **macOS** est en particulier son **Dock** qui se trouve en bas le l'**interface utilisateur** nommé **Aqua** et son **panneau de contrôle** en haut. Il faut reconnaître que **Aqua** est une belle **interface utilisateur**.
Les **logiciels** installés par défaut :
* **Safari** qui est le **navigateur internet** par défaut de **macOS**, qui est basé sur la **bibliothèque** du nom de **WebKit** qui est un **fork** de **KHTML** du **projet KDE**.
* **Finder** qui est le **gestionnaire de fichier** de base.
* **Mail** est un **client** **Mail**, pour envoyer, reçevoir du **courriel**, au même titre que **Thunderbird** de **Mozilla**.
* **Contacts** est la **base de données** de ses ''contacts'', dans laquelle on peu mettre les ''coordonnées'' complètes de chaque individu.
* **Calendrier** qui permet de gérer votre ''agenda'', vous pouvez connecter cette application à **iCloud**.
* **Notes** qui permet la ''prise de note'', une sorte de pense bète.
* **Messages** est le **client** de **messagerie instantanée**, il permet de ''tchater'', faire des ''appels'' **audio** et **vidéos**, d'envoyer des **fichiers**,...
* **Photos** qui est un **gestionnaire de photos** comme la ''galerie'' d'**Android** par exemple.
* **Prévisualisation** qui est un **visualiseur** et **éditeur de fichiers** qui gère, les **fichiers** ''textes'', ''PDF'', ''Ebook'',...
* **TextEdit** est l'**éditeur de texte** par défaut, qui est similaire au **bloc-note** de **Windows** mais en beaucoup plus complet, à la manière des **éditeurs de texte** sous **Linux** et **Unix**.
* **Terminal** est l'**émulateur de terminal** de base de **macOS**, c'est lui qui vous permet d'intéragir avec les **commandes Unix** intégrées à **macOS** (**commandes** provenant essentiellement de **FreeBSD**).
* **Musique** qui est tout simplement le **lecteur audio** par défaut.
* **TV** qui est une **application** de **streaming vidéo**.
* **App Store** est le **magasin d'applications** comme l'est le **Play Store** d'**Android**.
* **Control Center** qui permet de gérer les ''préférences'' et l' ''administration'' de votre **Mac**.
* et quelques autres **applications**.
==== Enrichir macOS de commandes Unix supplémentaires ====
**macOS** n'est pas démuni de **commandes Unix** mais sachez qu'il existe tout de même des **gestionnaire de paquets** qui permettent d'installer davantage de **commandes Unix** tel que :
* **MacPorts** qui est plutôt destiné aux **utilisateurs** ''avancés'' et aux **développeurs**. Le **site** officiel de **MacPorts** se trouve [[https://www.macports.org/|ici]].
* **Homebrew** qui est désormais le **gestionnaire de paquets** le plus ''populaire'' sous **macOS** et il est vraiment simple à utiliser et à une **communauté** de contributeurs plutôt nombreuse. le [[https://brew.sh/|site officiel]].
* **Fink** est un **gestionnaire de paquets** qui se base sur **APT** de **Debian GNU/Linux**, il est également relativement facile à utiliser et assez complet. Rendez vous [[https://www.finkproject.org/|ici]] pour le **projet** **Fink**.
* **pkgsrc** vous avez également la possibilité d'aujouter les **dépôts** et le **gestionnaire de paquets** nommé **pkgin** de **NetBSD**. Pour la partie **macOS** de **pkgsrc** rendez vous [[https://pkgsrc.smartos.org/install-on-macos/|là]].
==== Les atouts de macOS ====
**macOS** à une **collection de logiciels** assez ''importante'' et de ''qualité'', d'ailleurs ses **logiciels** par défauts sont simples mais ''efficaces'', c'est un **système** plutôt ''novateur'' et qui est très ''conviviale'' à l'utilisation. Son intégration avec son **système** de **cloud computing** (**informatique dans les nuages**) **iCloud** est très bonne mais pour moi là où **macOS** excelle c'est dans la **création artistique** tel que la **MAO** (**//Musique Assistée par Ordinateur//**), dans la **vidéo**, la **PAO** (**//Publication Assistée par Ordinateur//**) et bien d'autres créations. Et il est ''indéniable'' que de par sa base **UNIX**, il est très ''stable'', ''robuste'', ''sécurisé'', ce qui fait l'une des forces des **systèmes UNIX**. Par contre le prix des **Mac** n'est à mon sens pas ''justifiable'' au vu du rapport ''qualité/prix''. Et je n'apprécie par forcément la ''politique'' de **macOS** mais il faut admettre qu'il participe au **développement** de leur **OS** de base, **FreeBSD** et ça c'est tout à leur honneur. Il est clair que **macOS** facilite l'adoption d'un **système UNIX**, nul besoin d'avoir des connaissances en se **système d'exploitation** mais je pense que beaucoup d'**utilisateurs** ne savent pas que **macOS** est un **UNIX**.
**macOS** est un **système d'exploitation** relativement ''stable'', ''robuste'' et ''sécurisé'', ce qui en fait un **OS** ''fiable'' est sa base **UNIX**, **BSD UNIX** (en grande partie [[wiki:systemes_d_exploitation:bsd_unix:freebsd|FreeBSD]]) et aussi le fait que **macOS** ne se retrouve que sur des **appareils informatques** d'**Apple** ce qui rend la **maintenance** et les **correctifs** plus facilement réalisables et gérables mais n'allez par croire pour autant que **macOS** est ''blindé'' contre toutes les nombreuses **menaces informatiques**, d'ailleurs même le **système d'exploitation** considéré comme le plus ''sécurisé'', **OpenBSD** peut avoir des **failles de sécurité**, raison pour laquelle il est très important de toujours tenir son **OS** à ''jour'', les **mises à jour** sont la première barrière contre les **failles de sécurité**.
Pour les personnes qui souhaitent seulement avoir un **système UNIX** pour tous les atouts déjà mentionnés et pour **poste de travail**, je vous conseille vivement d'essayer [[wiki:systemes_d_exploitation:bsd_unix:ghostbsd|GhostBSD]] et pourquoi pas l'adopter, c'est le **système BSD UNIX** hormis **macOS**, le plus simple à ''appréhender''.
Pour les **Mac** à **processeur** **Intel** il est possible de se faire son propre **Mac Intel** (pour un ''usage personnel'') du nom de **Hackintosh** mais il faut soigneusement choisir son **matériel** et s'assurer qu'il sera toujours compatible après **mise à jour** de **macOS**, mais depuis le passage d'**Apple** aux **processeurs** **Intel**, aux **processeurs** **ARM**, il va devenir à l'avenir impossible de se créer son propre **Mac** car je suis quasiment certain que **macOS** ne sera bientôt plus disponible pour l'**architecture** de type **Intel x86_64**. Pour un usage personnel le **Hackintosh** est toléré mais aucune **entreprise** n'a normalement le ''droit'' de vendre des **Hackintosh**.
===== Documentation supplémentaire sur macOS =====
Il y a tant de sujets à traiter sous **macOS**, que se simple ''article'' n'est qu'un simple résumé des possibilités sur cet **OS**. Je vous renvoie donc vers les [[wiki:systemes_d_exploitation:macos:tutoriels sur macOS]].