ٍSytèmes d'exploitation
C'est un programme ou un ensemble de programmes. C'est le plus fondamental des programmes qui permet d'interagir de manière simple avec l'ordinateur. Il va gérer les ressources et unités. Il offre une interface avec l'ordinateur. Il assure la gestion et la convivialité
Exemples :
- DOS
- MAC OS
- Windows 2000
- UNIX
- SOLARIS....
- LINUX
Description du système d'exploitation
Pour qu'un ordinateur soit capable de faire fonctionner un programme informatique (appelé parfois application ou logiciel), la machine doit être en mesure d'effectuer un certain nombre d'opérations préparatoires afin d'assurer les échanges entre le processeur, la mémoire, et les ressources physiques (périphériques).
Le système d'exploitation (noté SE ou OS, abréviation du terme anglais Operating System), est chargé d'assurer la liaison entre les ressources matérielles, l'utilisateur et les applications (traitement de texte, jeu vidéo, ...). Ainsi lorsqu'un programme désire accéder à une ressource matérielle, il ne lui est pas nécessaire d'envoyer des informations spécifiques au périphérique, il lui suffit d'envoyer les informations au système d'exploitation, qui se charge de les transmettre au périphérique concerné via son pilote. En l'absence de pilotes il faudrait que chaque programme reconnaisse et prenne en compte la communication avec chaque type de périphérique !
Le système d'exploitation permet ainsi de "dissocier" les programmes et le matériel, afin notamment de simplifier la gestion des ressources et offrir à l'utilisateur une interface homme-machine (notée «IHM») simplifiée afin de lui permettre de s'affranchir de la complexité de la machine physique.
Rôles du système d'exploitation
Les rôles du système d'exploitation sont divers :
Gestion du processeur : le système d'exploitation est chargé de gérer l'allocation du processeur entre les différents programmes grâce à un algorithme d'ordonnancement. Le type d'ordonnanceur est totalement dépendant du système d'exploitation, en fonction de l'objectif visé.
Gestion de la mémoire vive : le système d'exploitation est chargé de gérer l'espace mémoire alloué à chaque application et, le cas échéant, à chaque usager. En cas d'insuffisance de mémoire physique, le système d'exploitation peut créer une zone mémoire sur le disque dur, appelée «mémoire virtuelle». La mémoire virtuelle permet de faire fonctionner des applications nécessitant plus de mémoire qu'il n'y a de mémoire vive disponible sur le système. En contrepartie cette mémoire est beaucoup plus lente.
Gestion des entrées/sorties : le système d'exploitation permet d'unifier et de contrôler l'accès des programmes aux ressources matérielles par l'intermédiaire des pilotes (appelés également gestionnaires de périphériques ou gestionnaires d'entrée/sortie).
Gestion de l'exécution des applications : le système d'exploitation est chargé de la bonne exécution des applications en leur affectant les ressources nécessaires à leur bon fonctionnement. Il permet à ce titre de «tuer» une application ne répondant plus correctement.
Gestion des droits : le système d'exploitation est chargé de la sécurité liée à l'exécution des programmes en garantissant que les ressources ne sont utilisées que par les programmes et utilisateurs possédant les droits adéquats.
Gestion des fichiers : le système d'exploitation gère la lecture et l'écriture dans le système de fichiers et les droits d'accès aux fichiers par les utilisateurs et les applications.
Gestion des informations : le système d'exploitation fournit un certain nombre d'indicateurs permettant de diagnostiquer le bon fonctionnement de la machine.
Composantes du système d'exploitation
Le système d'exploitation est composé d'un ensemble de logiciels permettant de gérer les interactions avec le matériel. Parmi cet ensemble de logiciels on distingue généralement les éléments suivants :
Le noyau (en anglais kernel) représentant les fonctions fondamentales du système d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des entrées-sorties principales, et des fonctionnalités de communication.
L'interpréteur de commande (en anglais shell, traduisez «coquille» par opposition au noyau) permettant la communication avec le système d'exploitation par l'intermédiaire d'un langage de commandes, afin de permettre à l'utilisateur de piloter les périphériques en ignorant tout des caractéristiques du matériel qu'il utilise, de la gestion des adresses physiques, etc.
Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les fichiers dans une arborescence.
Systèmes multitâches
Un système d'exploitation est dit «multi-tâche» (en anglais multithreaded) lorsque plusieurs «tâches» (également appelées processus) peuvent être exécutées simultanément.
Les applications sont composées en séquence d'instructions que l'on appelle «processus légers» (en anglais «threads»). Ces threads seront tour à tour actifs, en attente, suspendus ou détruits, suivant la priorité qui leur est associée ou bien exécutés séquentiellement.
Un système est dit préemptif lorsqu'il possède un ordonnanceur (aussi appelé planificateur), qui répartit, selon des critères de priorité, le temps machine entre les différents processus qui en font la demande.
Le système est dit à temps partagé lorsqu'un quota de temps est alloué à chaque processus par l'ordonnanceur. C'est notamment le cas des systèmes multi-utilisateurs qui permettent à plusieurs utilisateurs d'utiliser simultanément sur une même machine des applications différentes ou bien similaires : le système est alors dit «système transactionnel». Pour ce faire, le système alloue à chaque utilisateur une tranche de temps.
Systèmes multi-processeurs
Le multiprocessing est une technique consistant à faire fonctionner plusieurs processeurs en parallèle afin d'obtenir une puissance de calcul plus importante que celle obtenue avec un processeur haut de gamme ou bien afin d'augmenter la disponibilité du système (en cas de panne d'un processeur).
On appelle SMP (Symmetric Multiprocessing ou Symmetric Multiprocessor) une architecture dans laquelle tous les processeurs accèdent à un espace mémoire partagé.
Un système multiprocesseur doit donc être capable de gérer le partage de la mémoire entre plusieurs processeurs mais également de distribuer la charge de travail.
Systèmes embarqués
Les systèmes embarqués sont des systèmes d'exploitation prévus pour fonctionner sur des machines de petite taille, telles que des PDA (personal digital assistants ou en français assistants numériques personnels) ou des appareils électroniques autonomes (sondes spatiales, robot, ordinateur de bord de véhicule, etc.), possédant une autonomie réduite. Ainsi, une caractéristique essentielle des systèmes embarqués est leur gestion avancée de l'énergie et leur capacité à fonctionner avec des ressources limitées.
Les principaux systèmes embarqués «grand public» pour assistants numériques personnels sont :
PalmOS
Windows CE / Windows
Systèmes temps réel
Les systèmes temps réel (real time systems), essentiellement utilisés dans l'industrie, sont des systèmes dont l'objectif est de fonctionner dans un environnement contraint temporellement. Un système temps réel doit ainsi fonctionner de manière fiable selon des contraintes temporelles spécifiques, c'est-à-dire qu'il doit être capable de délivrer un traitement correct des informations reçues à des intervalles de temps bien définis (réguliers ou non).
Voici quelques exemples de systèmes d'exploitation temps réel :
OS-9 ;
RTLinux (RealTime Linux) ;
QNX ;
VxWorks.
Les types de systèmes d'exploitation
On distingue plusieurs types de systèmes d'exploitation, selon qu'ils sont capables de gérer simultanément des informations d'une longueur de 16 bits, 32 bits, 64 bits ou plus.
Système |
Codage |
Mono-utilisateur |
Multi-utilisateur |
Mono-tâche |
Multitâche |
DOS |
16 bits |
X |
|
X |
|
Windows3.1 |
16/32 bits |
X |
|
|
non préemptif |
Windows95/98/Me |
32 bits |
X |
|
|
coopératif |
WindowsNT/2000 |
32 bits |
|
X |
|
préemptif |
WindowsXP |
32/64 bits |
|
X |
|
préemptif |
Unix / Linux |
32/64 bits |
|
X |
|
préemptif |
MAC/OS X |
32 bits |
|
X |
|
préemptif |
VMS |
32 bits |
|
X |
|
préemptif |
La création du DOS
Le DOS est le système d'exploitation le plus connu, sa version la plus commercialisée est celle de Microsoft, baptisée MS-DOS (il en existe d'autres comme DR-DOS). MS-DOS a vu le jour en 1981 lors de son utilisation sur un IBM PC.
Présentation du système
Le DOS, comme tout système d'exploitation, contrôle les activités de l'ordinateur. Il gère des opérations telles que la circulation, l'affichage, et l'entrée de données entre les divers éléments constitutifs du système.
Le rôle du DOS est d'interpréter les commandes saisies au clavier par l'utilisateur.
Ces commandes permettent d'effectuer les tâches suivantes :
la gestion des fichiers et des répertoires
la mise à jour des disques
la configuration du matériel
l'optimisation de la mémoire
l'exécution des programmes
Ces commandes sont tapées à l'invite, c'est-à-dire dans le cas de MS-DOS (Microsoft DOS, le plus connu) une lettre d'unité suivi d'une barre oblique inverse (antislash), ce qui donne A:\ ou C:\ par exemple.
Pour exécuter une commande il suffit de taper la commande puis d'appuyer sur ENTREE.
Historique de Windows
Windows est le système d'exploitation commercialisé par la société Microsoft, dont le siège est implanté à Seattle. La société Microsoft, initialement baptisé «Traf-O-Data» en 1972 a été rebaptisée «Micro-soft» en novembre 1975, puis «Microsoft» le 26 novembre 1976.
Microsoft a débuté son activité avec la commercialisation en août 1981 de la version 1.0 du système d'exploitation Microsoft DOS (MS-DOS), un système d'exploitation 16 bits en ligne de commande.
La première version de Microsoft Windows (Microsoft Windows 1.0) est apparue en novembre 1985. Il s'agissait d'une interface graphique, inspirée de l'interface des ordinateurs Apple de l'époque. Windows 1.0 n'a pas eu de succès auprès du public, pas plus que Microsoft Windows 2.0, lancé le 9 décembre 1987.
C'est le 22 mai 1990 que le succès de Microsoft Windows a débuté avec Windows 3.0, puis Windows 3.1 en 1992 et enfin Microsoft Windows for Workgroup, baptisé par la suite Windows 3.11, comprenant des fonctionnalités réseau. Windows 3.1 ne peut pas être considéré comme un système d'exploitation à part entière car il s'agit d'une interface graphique fonctionnant au-dessus du système Ms-DOS.
Le 24 août 1995, Microsoft lance le système d'exploitation Microsoft Windows 95. Windows 95 marque la volonté de Microsoft de transférer des fonctionnalités de MS-DOS dans Windows, mais cette version s'appuie encore largement sur le système DOS 16-bits et garde notamment les limitations du systèmes de fichiers FAT16, si ce n'est la possibilité d'utiliser des noms de fichiers longs.
Après des révisions mineures de Microsoft Windows 95, baptisées successivement Windows 95A OSR1, Windows 95B OSR2, Windows 95B OSR2.1 et Windows 95C OSR2.5, Microsoft commercialise le 25 juin 1998 la version suivante de Windows : Windows 98. Windows 98 intègre nativement d'autres fonctionnalités de MS-Dos mais s'appuie toujours sur ce dernier. D'autre part Windows 98 souffre d'une mauvaise gestion du partage de la mémoire entre processus, pouvant provoquer des dysfonctionnement du système. Une seconde édition de Windows 98 paraît, le 17 février 2000, elle se nomme Windows 98 SE (pour «Second Edition»).
Le 14 septembre 2000, Microsoft commercialise Windows Me (pour Millenium Edition), également appelé Windows Millenium. Windows Millenium s'appuie largement sur Windows 98 (donc sur MS-DOS), mais apporte des fonctionnalités multimédia et réseau supplémentaires. D'autre part, Windows Millenium intègre un mécanisme de restauration du système permettant de revenir à un état précédent en cas de plantage.
Parallèlement, Microsoft a lancé dès octobre 1992 un système d'exploitation entièrement 32 bits (ne s'appuyant donc pas sur MS-DOS) pour un usage professionel, à une époque où les entreprises utilisaient essentiellement des mainframes. Il s'agit de Windows NT (pour Windows «New Technology»). Windows NT n'est donc pas une version ou une évolution de Windows 95, mais un système d'exploitation à part entière.
Le 24 mai 1993 la première version de Windows NT est commercialisée. Il s'agit de Windows NT 3.1, puis Windows NT 3.5 sort en septembre 1994 et Windows 3.51 en juin 1995. C'est avec Windows NT 4.0, lancé sur le marché le 24 août 1996, que Windows NT va enfin connaître un réel succès.
En juillet 1998, Microsoft commercialise Windows NT 4.0 TSE (Terminal Server Emulation), le premier système Windows à permettre la possibilité de brancher des terminaux sur un serveur, c'est-à-dire d'utiliser des clients légers pour accéder à une session ouverte sur le serveur.
Le 17 février 2000, la version suivante de Windows NT 4.0 est baptisée Windows 2000 (en lieu et place de Windows NT 5.0) afin de montrer la convergence des systèmes «NT» avec les systèmes «Windows 9x». Windows 2000 est un système entièrement 32-bits possédant les caractéristiques de Windows NT, ainsi qu'une gestion améliorée des processus et une prise en charge complète des périphériques USB et Firewire.
Puis, le 25 octobre 2001, Windows XP fait son apparition. Il s'agit de la convergence des systèmes précédents.
Enfin le 24 avril 2003, un système d'exploitation dédié pour les serveurs est commercialisé par Microsoft : Windows Server 2003.
Présentation de Microsoft WindowsNT
Windows NT (pour «New Technology») est un système d'exploitation 32 bits développé par Microsoft.
L'apparence de Windows NT est vraisemblablement la même que celle de Windows 95/98/Millenium, mais Windows NT possède un noyau développé séparément. ainsi Windows NT possède les caractéristiques suivantes :
Windows NT est un système multi-tâche préemptif ;
Windows NT est un système multi-utilisateur, cela signifie que selon l'utilisateur qui se connecte au système l'interface pourra être différente, ainsi que ses droits sur le système ;
Windows NT intègre de façon native de nombreuses fonctionnalités réseau ;
Windows NT a une sécurité accrue, notamment au niveau du système de fichiers (NTFS) ainsi qu'au niveau de la robustesse du système.
NT, 2000, XP
Windows NT et la sécurité
Etant donné que Windows NT gère les utilisateurs, l'administrateur du réseau (qui possède des droits particuliers sur le système) est capable de contrôler les droits de chaque utilisateur connecté sur le système. De plus, grâce au système de fichiers NTFS, intégrant les notions de propriétaire de fichier et de droits, il est possible de définir précisément les droits d'accès de chaque utilisateur ou de chaque groupe d'utilisateur aux différents fichiers du système.
Ouverture d’une session sur un ordinateur ou un domaine
Pour accéder à un système fonctionnant avec Windows NT, il est essentiel de s'identifier («se logger») à l'aide d'un nom d'utilisateur et d'un mot de passe (on parle d'« ouverture de session ». Pour ouvrir une session sur un ordinateur équipé du système Windows NT, il faut utiliser la séquence de touche CTRL+ALT+SUPPR. La boîte de dialogue Informations de session sert à ouvrir une session sur un ordinateur ou sur un domaine.
Plusieurs options sont alors offertes :
Utilisateur : tapez le compte d’utilisateur (celui-ci doit figurer dans la SAM du PDC pour que cette ouverture soit validée)
Mot de passe : sécurité supplémentaire. Attention, le mot de passe respecte la casse
Domaine : sert à ouvrir une session sur un domaine. Il est possible d’ouvrir une session sur un ordinateur ou d’ouvrir une session localement. Dans ce dernier cas, c’est la SAM locale qui est consultée
Ouvrir une session avec le RAS : la sélection de cette option permet à un utilisateur d’ouvrir une session à distance, si le service RAS est installé
Arrêter le système : ferme tous les fichiers, sauvegarde les données système et prépare l’ordinateur à s’éteindre en toute sécurité. Sous NT Server, ce bouton est désactivé afin d’empêcher un utilisateur non autorisé d’arrêter le système
La boîte de dialogue Sécurité de Windows NT
Lorsqu’un utilisateur a ouvert une session, la séquence de touche CTRL+ALT+SUPPR ouvre une autre boîte de dialogue appelée Sécurité de Windows NT. Voici les différentes options proposées :
Verrouiller la station de travail : assure la sécurité de l’ordinateur sans fermeture de la session. Toutes les applications continuent à fonctionner. Une station ne peut être déverrouillée que par l’utilisateur actuel ou par un administrateur
Changer de mot de passe : permet a l’utilisateur de changer de mot de passe. Il doit connaître le mot de passe en vigueur pour pouvoir le changer
Fermer la session : ferme la session actuelle mais les services d’NT continuent d’être actifs. Par mesure de sécurité, il faut toujours fermer une session si l’on n'a plus besoin d’utiliser l’ordinateur
Gestionnaire des tâches : indique quelles applications sont en cours d’exécution. Cette option permet également de basculer entre applications et à arrêter une application qui ne répond plus
Arrêter le système : ferme tous les fichiers, sauvegarde toutes les données système et prépare le serveur à être éteint en toute sécurité
Annuler : referme la boîte de dialogue
Le système UNIX
Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs utilisateurs. Il possède un ou plusieurs interpréteurs de commandes (shell) ainsi qu'un grand nombre de commandes et de nombreux utilitaires (assembleur, compilateurs pour de nombreux langages, traitements de texte, messagerie électronique, ...). De plus il possède une grande portabilité, ce qui signifie qu'il est possible de mettre en oeuvre un système Unix sur la quasi-totalité des plates-formes matérielles.
De nos jours les systèmes Unix sont très présents dans les milieux professionnels et universitaires grâce à leur grande stabilité, leur niveau de sécurité élevé et le respect des grands standards, notamment en matière de réseau.
L'histoire des systèmes UNIX
Le premier système «Unix» a été mis au point par Ken Thompson dans les laboratoires Bell AT&T à Murray Hill dans le New Jersey aux Etats-Unis à partir de 1965. Le but de Ken Thompson était de mettre au point un système d'exploitation interactif simple, nommé "Multics" (Multiplexed Information and Computing System) afin de faire tourner un jeu qu'il avait créé (space travel, une simulation du système solaire).
Un consortium composé du MIT (Massassuchetts Institue of Technology), de General Electric Co. et de Bell Lab se forma ainsi autour de Multics.
En avril 1969 les laboratoires AT&T décidèrent d'utiliser le système GECOS (General Electric Comprehensive Operating System ) en lieu et place de Multics. Or Ken Thompson et Dennis Ritchie qui rejoignirent l'équipe eûrent besoin de faire fonctionner le jeu space travel sur une plus petite machine (un DEC PDP-7, Programmed Data Processor possédant uniquement 4K de mémoire pour faire fonctionner les programmes des utilisateurs), c'est la raison pour laquelle il réécrirent le système afin de créer une version réduite de Multics appelée UNICS (UNiplexed Information and Computing Service), rapidement contractée en Unix.
La date du 1er janvier 1970 est considérée comme étant la date de naissance du système Unix, ce qui explique pourquoi toutes les horloges système des systèmes d'exploitation Unix démarrent à partir de cette époque.
Parallèlement à ces activités, D.Ritchie participa grandement à la définition du langage C (puisqu'il est considéré comme un de ses créateurs avec B.W.Kernighan), ainsi l'ensemble du système fût entièrement réécrit en langage C en 1973 et baptisé Unix Time-Sharing System (TSS).
Lorsque le système passa à la version 7 en 1979, l'évolution s'accompagna de nombreuses modifications notables telles que :
- la suppression du bridage lié à la taille des fichiers,
- une meilleure portabilité du système (fonctionnement sur de nombreuses plates-formes matérielles),
- l'ajout de nombreux utilitaires.
Un décret datant de 1956 empêchait l'entreprise ATT, dont dépendait Bell Labs, de commercialiser autre chose que des équipements téléphoniques ou télégraphiques, c'est la raison pour laquelle la décision fût prise en 1973 de distribuer les sources d'UNIX dans les universités à des fins éducatives.
Dès fin 1977 des chercheurs de l'Université de Californie redéveloppèrent une version d'Unix à partir des sources fournies par AT&T afin de faire fonctionner le système sur leurs plates-formes VAX et la baptisèrent BSD pour Berkeley Software Developpement.
Ainsi deux branches de développement des sources virent le jour :