Introduction aux Systèmes d'Exploitation
Rôle et fonctions d'un Système d'Exploitation
Un Système d'Exploitation (SE), ou Operating System (OS) en anglais, est un logiciel fondamental qui gère les ressources matérielles et logicielles d'un ordinateur. Il agit comme un intermédiaire entre l'utilisateur (ou les applications) et le matériel.
Ses fonctions principales sont :
- Gestion des ressources : Le SE alloue et désalloue les ressources du système, telles que le processeur (CPU), la mémoire vive (RAM), les périphériques d'entrée/sortie (clavier, souris, écran, disque dur), et le réseau. Il s'assure que ces ressources sont utilisées de manière efficace et équitable entre les différents programmes.
- Interface utilisateur : Il fournit une interface permettant à l'utilisateur d'interagir avec l'ordinateur. Cela peut être une interface graphique (GUI, comme Windows, macOS, Ubuntu) ou une interface en ligne de commande (CLI, comme MS-DOS, certains shells Unix).
- Abstraction matérielle : Le SE masque la complexité du matériel aux applications et aux utilisateurs. Par exemple, un programme n'a pas besoin de savoir comment écrire directement sur un disque dur ; il utilise les services du SE qui se charge des opérations de bas niveau.
- Ordonnancement des tâches : Il décide quel programme doit s'exécuter sur le CPU et pendant combien de temps. C'est crucial dans les systèmes multitâches pour donner l'impression que plusieurs programmes s'exécutent simultanément.
- Gestion des fichiers : Il organise et gère le stockage des données sur les disques, offrant des services pour créer, lire, écrire et supprimer des fichiers et des répertoires.
- Gestion de la mémoire : Il gère l'allocation de la mémoire aux programmes, s'assurant qu'ils ne se chevauchent pas et qu'ils ont suffisamment d'espace pour fonctionner.
En résumé, le SE est le chef d'orchestre de l'ordinateur, garantissant son bon fonctionnement et facilitant son utilisation.
Historique et évolution des SE
L'histoire des systèmes d'exploitation est intrinsèquement liée à l'évolution du matériel informatique.
- Années 1940-1950 : Pas de SE Les premiers ordinateurs n'avaient pas de système d'exploitation. Les programmes étaient chargés manuellement par des opérateurs, souvent via des cartes perforées, et s'exécutaient un à la fois.
- Années 1950-1960 : Systèmes Batch (par lots) Pour optimiser l'utilisation des machines coûteuses, les programmes similaires étaient regroupés et exécutés en "lots" (batch). Un moniteur résident (un précurseur du SE) automatisait le passage d'une tâche à l'autre. L'interaction directe avec l'ordinateur était limitée.
- Années 1960-1970 : Temps Partagé (Time-Sharing) L'objectif était de permettre à plusieurs utilisateurs d'interagir simultanément avec l'ordinateur via des terminaux. Le SE alloue de petits "quanta" de temps CPU à chaque utilisateur, donnant l'illusion d'une utilisation exclusive. C'est l'ère d'UNIX.
- Années 1970-1980 : Systèmes d'exploitation pour micro-ordinateurs Avec l'avènement des micro-ordinateurs, des SE plus simples ont vu le jour, comme CP/M puis MS-DOS. Ils étaient souvent mono-utilisateur et mono-tâche.
- Années 1980-1990 : Interfaces graphiques et Multitâche Le Macintosh d'Apple (1984) et Windows de Microsoft (1985) ont popularisé les interfaces graphiques (GUI). Les SE sont devenus multitâches, permettant l'exécution simultanée de plusieurs applications.
- Années 1990-2000 : Systèmes Réseaux et Distribués Avec la croissance d'Internet, les SE ont intégré de plus en plus de fonctionnalités réseau. Les Systèmes distribués permettent à plusieurs ordinateurs de travailler ensemble comme un seul système, partageant des ressources et des calculs.
- Années 2000-présent : Systèmes Embarqués et Mobiles Les SE sont désormais partout : dans les smartphones (Android, iOS), les tablettes, les montres connectées, les voitures, les appareils électroménagers (IoT). Ce sont des Systèmes embarqués, souvent optimisés pour des ressources limitées et des tâches spécifiques. La virtualisation et la conteneurisation sont aussi devenues des tendances majeures.
Types de Systèmes d'Exploitation
Les systèmes d'exploitation peuvent être classés selon plusieurs critères :
- Monotâche / Multitâche
- Monotâche : Ne peut exécuter qu'un seul programme à la fois. Ex: MS-DOS.
- Multitâche : Peut exécuter plusieurs programmes "simultanément" en alternant très rapidement entre eux (ce qui donne l'impression de simultanéité). C'est le cas de la majorité des SE modernes (Windows, macOS, Linux).
- Monoutilisateur / Multiutilisateur
- Monoutilisateur : Ne peut être utilisé que par une seule personne à la fois. Ex: Anciennes versions de Windows 95.
- Multiutilisateur : Permet à plusieurs utilisateurs d'accéder au système et d'exécuter des programmes en même temps, chacun avec son propre environnement et ses propres droits. Ex: Linux, Windows Server.
- Temps Réel
Ces SE sont conçus pour garantir que certaines opérations s'exécuteront dans des délais stricts et prévisibles. Ils sont cruciaux pour les systèmes où la réactivité est critique.
- Temps réel strict (Hard Real-Time) : Le non-respect d'un délai peut avoir des conséquences catastrophiques (systèmes de contrôle industriel, aéronautique, médical).
- Temps réel souple (Soft Real-Time) : Le non-respect d'un délai est indésirable mais pas fatal (systèmes multimédia, jeux vidéo).
- Mobile Optimisés pour les appareils mobiles (smartphones, tablettes), ils sont caractérisés par une gestion de l'énergie poussée, des interfaces tactiles et une connectivité permanente. Ex: Android, iOS.
Le choix du type de SE dépend fortement de l'usage et des contraintes du système informatique.


