# Solaris (système d'exploitation)

Solaris est un système d'exploitation UNIX propriétaire développé à l'origine par Sun Microsystems. Ce système s'appelle dorénavant Oracle Solaris depuis le rachat de Sun par Oracle en avril 2009.

## Histoire

La première version, développée à partir de juin 1981 sous la direction de Bill Joy, était basée sur 4.1BSD dont il était l'un des programmeurs.
Le système était d'abord nommé SunOS. En février 1991, le système d'exploitation complet fut nommé commercialement Solaris 1 alors que SunOS ne représentait plus que le noyau (SunOS 4).
La seconde version, développée à partir de juillet 1992 était basée sur UNIX System V Release 4. Cette version fut nommée Solaris 2 (SunOS 5).
Après Solaris 2.6, Sun Microsystems décida de changer à nouveau la numérotation de ses versions en supprimant le premier chiffre afin de nommer Solaris 7. La dernière version est Solaris 11 (SunOS 5.11), sortie en novembre 2011.
Elle apporte entre autres les zones (partitionnement logique), ainsi que l'exécution native des binaires Linux sur plateforme x86, un système de fichiers performant (ZFS), un système qui permet de tracer applications utilisateurs et appels système au niveau du noyau (DTrace), ainsi qu'un mode de fonctionnement labellé multiniveaux activable au travers des Trusted Extensions.
En 2005, Sun Microsystems décida de rendre Solaris 10 public, y compris ses sources au travers de la licence CDDL sous le nom d’OpenSolaris. OpenSolaris contient la totalité des fonctionnalités de Solaris, ainsi que ses futures fonctionnalités en cours de développement. Par exemple, ZFS ou les Trusted Extensions sont originaires de projets OpenSolaris.
En 2010, Oracle rachète Sun. Dès mars 2010, Solaris 10 cesse d'être un logiciel libre en étant placé sous une licence propriétaire qui limite l'utilisation, la modification et la redistribution du système d'exploitation. La nouvelle licence permet simplement à l'utilisateur de télécharger gratuitement le système d'exploitation, via Oracle Technology Network, et de l'utiliser pendant une période d'essai de 90 jours. À l'issue de cette période d'essai, l'utilisateur devait acheter un contrat d'assistance auprès d'Oracle pour continuer à utiliser le système d'exploitation.

## Mises à jour

En plus de ces versions peu fréquentes (tous les ans jusqu'à la version 7, tous les deux ans jusqu'à la version 10), le système est réédité environ tous les trois mois en incluant toutes les corrections disponibles, de nouvelles fonctionnalités ainsi que le support des matériels récents. Ces versions sont indiquées sous la forme <mois>/<année>.

### Les portages et améliorations

Solaris fut développé pour les stations de travail Sun à base de processeur Motorola 68000, puis SPARC à partir de 1989, mais également pour les architectures PPC et x86.
Depuis les années 1990, l'UNIX de Sun a intégré la gestion de thread et des architectures Symmetric multiprocessing (SMP), serveurs intégrant plusieurs processeurs. Aujourd'hui, les architectures SPARC V9, x86 et x86-64 sont gérées.

## Principales caractéristiques techniques

* 64 bits depuis Solaris 7 (1998)
* Multi-thread
* Multi-processeurs, avec une granularité au core ou thread physique.
* FSS (Fair Share Scheduling)
** Permet de définir dynamiquement le partage des ressources processeur et mémoire entre les applications au travers de projets.
** Chaque projet est affecté d'un poids qui justifiera la quantité relative de ressources qu'il a le droit d'utiliser par rapport aux autres.
* Pools
** Possibilité de dédier des ressources processeurs à des Projets ou des Zones.
** Modifiable dynamiquement, de façon transparente aux applications les utilisant.
** Granularité au processeur, core ou thread physique (strand).
* Système de fichiers ZFS
** Système de fichiers Transactionnel
** Capacité de stockage de 18 milliards de milliards de fois supérieure aux systèmes de fichiers conventionnels (128 bits vs. 64 bits).
** Définition de « pools » pouvant dynamiquement recevoir des disques complémentaires et permettant de ne plus avoir besoin de gestion de volume (pas de partitionnement des disques).
** Définition de « snapshots », permettant de figer les données d'un pool pour permettre un retour en arrière instantané, sans duplication des données.
** Définition de « clones », permettant de dupliquer un snapshot pour sauvegarde ou migration.
** Fonctionnement indépendant de l'Endianness de la plateforme utilisée, permettant la migration physique de disques entre différentes architectures.
* Zones
** Principe permettant de disposer de plusieurs instances système indépendantes, isolées entre elles, mais partageant le même noyau.
** Permet une répartition des ressources entre les différentes zones (Interfaces réseaux, périphérique, mémoire, processeurs…), soit dédié, soit partagé, soit au travers d'une politique de « fair share scheduling », ou enfin par combinaison de ces différentes méthodes.
* Privilèges
** Principe de sécurité de faible granularité permettant d'autoriser ou de restreindre des actions indépendamment de l'identité du processus les effectuant.
* RBAC (Role Based Access Control)
** Principe de délégation de droit permettant de définir un profil sous lequel un utilisateur peut effectuer des actions excédant son niveau de droits sans pour autant lui accorder les droits nécessaires.
* Trusted Extensions
** Principe d'activation des fonctionnalités multiniveau du noyau de Solaris 10.
** Présentes mais non activées par défaut, Solaris devient alors un système de type MLS, intégrant une politique de sécurité de type MAC (Mandatory Access Control).

## Caractéristiques commerciales

* Nombre important d'applications disponibles
* Stabilité et fiabilité
* Homogénéité avec Linux
* Disponible sur SPARC et x86

## Versions

| SunOS | Solaris | Date |
| 4.1.1B | 1 | février 1991 |
| 5.0 | 2.0 | juillet 1992 |
| 5.1 | 2.1 | décembre 1992 |
| 5.2 | 2.2 | mai 1993 |
| 5.3 | 2.3 | novembre 1993 |
| 5.4 | 2.4 | août 1994 |
| 5.5 | 2.5 | novembre 1995 |
| 5.5.1 | 2.5.1 | mai 1996 |
| 5.6 | 2.6 | août 1997 |
| 5.7 | 7 | octobre 1998 |
| 5.8 | 8 | 2000 |
| 5.9 | 9 | 2001 |
| 5.10 | 10 | janvier 2005 |
| 5.11 | 11 Express | novembre 2010 |
| 5.11 | 11 | novembre 2011 |
| 5.11 | 11.1 | octobre 2012 |
| 5.11 | 11.2 | avril 2014 |
| 5.11 | 11.3 | octobre 2015 |
| 5.11 | 11.4 | août 2018 |