Windows, MacOS, Linux, Android, iOS, etc. sont tous des systèmes d'exploitation, vous en utilisez donc au quotidien. Mais vous êtes-vous déjà demandé ce qu'est un système d'exploitation ? Pourquoi y en a-t-il autant ?
Un système d'exploitation est l'interface logicielle entre les applications et le matériel informatique.
Concrètement, c'est un logiciel destiné à faciliter et simplifier l'utilisation d'un ordinateur car l'utilisateur n'a pas à se soucier des spécificités d'accès complexes au matériel. Les utilisateurs utilisent des applications, qui demandent des ressources au système d'exploitation, qui pilote le matériel informatique, le partageant entre les différentes applications et les différents utilisateurs.
En anglais, on parle d'OS, pour Operating system.
Fig. 1 - Schéma de l'OS à l'interface entre les applications et le matériel
Crédits : Mickaël Barraud, Synthèse de cours de Première NSI
Voici un extrait d'une vidéo qui prend l'exemple du smartphone pour expliquer l'intérêt d'un système d'exploitation (à partir de 1'31) :
Crédits : INRIA 2021, CC-BY.
▶️ Source : https://youtu.be/9-xRjnx8vWQ
Un système d'exploitation réalise 4 grands types de fonctions :
Un ordinateur actuel peut exécuter plusieurs programmes/applications simultanément. Ces programmes en cours d'exécution s'appellent des processus, qui sont exécutés par le processeur. Le problème est qu'un processeur ne peut exécuter qu'une seule instruction à la fois, et donc un seul programme à la fois. Et pourtant, on a l'illusion que l'on peut exécuter plusieurs programmes simultanément...
C'est le rôle du système d'exploitation de faire en sorte que tous les programmes puissent s'exécuter de façon équitable et à tour de rôle en se succédant très rapidement dans le temps : un navigateur Web, une application de streaming, un traitement de texte, etc.
Toute cette partie sera étudiée plus en détails au programme de Terminale
Comme nous l'avons vu dans le chapitre sur l'architecture d'un ordinateur (ici), la mémoire (RAM) contient les différents programmes et les données utiles à l'exécution des différents applications.
L'utilisateur n'a pas besoin de se préoccuper des emplacements mémoire où sont stockées toutes ces informations : c'est le système d'exploitation qui se charge de définir et de retenir à quel(s) endroit(s) elles sont stockées en mémoire.
Comme cette mémoire est partagée par toutes les applications, le système d'exploitation est chargé de partager la mémoire entre ces différentes applications de manière à empêcher que différents programmes utilisent la même zone de la mémoire. Pour cela, l'OS utilise un mécanisme de mémoire virtuelle dont les détails vont au-delà du programme de NSI (mais dont le principe est expliqué dans la vidéo donnée plus bas).
Le système d'exploitation permet le dialogue entre les applications et les périphériques d'entrée/sortie. Le système fait en sorte que plusieurs applications ne puissent pas accéder en même temps à un périphérique d'entrée/sortie en évitant les conflits.
Si une application veut récupérer la saisie d'un utilisateur à travers le clavier, elle le dit au système d'exploitation, qui se met à l'écoute d'un signal provenant du clavier, et dès qu'un tel signal est perçu, le système d'exploitation peut transmettre ce signal à l'application. Les caractères saisis pourront par exemple être affichés à l'écran, toujours via le système d'exploitation qui pourra faire communiquer l'application avec le périphérique de sortie qu'est l'écran.
La communication se fait donc dans les deux sens :
Le système de gestion de fichiers est la partie la plus visible d'un système d'exploitation.
Il est une façon de stocker les informations et de les organiser dans des fichiers sur des mémoires secondaires (pour le matériel informatique, il s'agit de mémoire de masse comme un disque dur, un disque SSD, un CD-ROM, une clé USB, une disquette, etc.). C'est le système d'exploitation qui se charge de la gestion des fichiers : il permet de traiter, de conserver des quantités importantes de données ainsi que de les partager entre plusieurs programmes informatiques.
Pour l'utilisateur, un système de fichiers est vu comme une arborescence : les fichiers sont regroupés dans des répertoires (concept utilisé par la plupart des systèmes d’exploitation). Ces répertoires contiennent soit des fichiers, soit récursivement d'autres répertoires. Il y a donc un répertoire racine et des sous-répertoires, les données étant localisées par un chemin d'accès.
Nous étudierons le système de fichiers de Linux dans la seconde partie de ce chapitre.
En réalité, les différents systèmes d'exploitation sont conceptuellement identiques mais les fonctionnalités offertes diffèrent légèrement d'un OS à l'autre pour les optimiser à leur fonctionnalité finale.
Pour les ordinateurs, on trouve principalement :
Pour les serveurs, c'est quasi exclusivement Linux.
Pour les smartphones, on trouve surtout :
Mais d'autres OS existent : par exemple FreeRTOS ou QNX pour l'informatique embarquée (spécialisés dans le temps réel et très économes en énergie et en mémoire), LynxOS pour l'avionique, etc.
Une autre différence fondamentale entre les OS est la suivante : certains sont libres, d'autres sont propriétaires.
Un système d'exploitation libre, comme tout logiciel libre, donne à quiconque :
Richard Stallmann est l'initiateur du mouvement du logiciel libre, il a lancé en 1983 la licence GPL (pour General Public License ou Licence publique générale) qui fixe les conditions légales (celle données au-dessus) de distribution d'un logiciel libre.
Richard Stallman en 2019
Crédits : Ruben Rodriguez, CC BY 4.0, via Wikimedia Commons
Le système d'exploitation Linux est fondé sur le noyau Linux créé en 1991 par l'informaticien finlandais Linus Torvalds.
Linus Torvalds en 2014
Crédits : Krd (photo)Von Sprat (crop/extraction), CC BY-SA 3.0, via Wikimedia Commons
Ce noyau est complété par un ensemble de logiciels libres pour donner le système d'exploitation Linux, qui est un OS libre. L'histoire de Linux est résumée dans la vidéo ci-dessous (pour les 20 ans de Linux en 2011) :
▶️ Source : https://youtu.be/Uq5ddTUtDkM
Un logiciel libre est souvent développé et maintenu par une communauté, mais aussi par des entreprises qui l'utilisent et qui ont intérêt à ce qu'il reste efficace et utilisé par d'autres. Il peut être amélioré, transformé, adapté facilement par n'importe qui.
Un logiciel qui n'est pas libre est considéré comme étant propriétaire, ce qui ne permet pas d'accéder au code source, il est donc plus difficile voire illégal de le modifier. Il est généralement développé par l'entreprise qui le possède et qui peut décider d'arrêter de le maintenir.
Ce sont deux visions et deux modèles économiques totalement différents. Parmi les OS connus, certains sont libres, d'autres non.
OS propriétaires :
OS libres :
Libre ne veut pas dire gratuit ! Même si la plupart du temps un logiciel libre est gratuit, ce n'est pas toujours le cas.
Voici un épidose intéressant consacré au logiciel libre, issu du podcast La Puce à l'oreille du magazine Chut! :
🎧 Source : https://chut.media/podcasts/la-puce-a-loreille-episode-18-open-source-je-code-ton-nom/
Voici une carte qui présente la philosophie et l'écosystème du logiciel libre :
Fig. 2 - Carte conceptuelle du logiciel libre
Crédits : René Mérou, CC BY-SA 3.0, via Wikimedia Commons
Références :
Germain Becker & Sébastien Point, Lycée Emmanuel Mounier, Angers.
Voir en ligne : info-mounier.fr/premiere_nsi/archi_os/os.php