En informatique, un systรจme d'exploitation (souvent appelรฉ OS โ de l'anglais operating system โ ou parfois SE โ en franรงais) est un ensemble de programmes qui dirige l'utilisation des ressources d'un ordinateur par des logiciels applicatifs[1].
Il reรงoit des demandes d'utilisation des ressources de l'ordinateur โย ressources de stockage des mรฉmoires (par exemple des accรจs ร la mรฉmoire vive, aux mรฉmoires de masse), ressources de calcul du processeur central, ressources de communication vers des pรฉriphรฉriques (pour parfois demander des ressources de calcul au GPU par exemple ou toute autre carte d'extension) ou via le rรฉseauย โ de la part des logiciels applicatifs. Le systรจme d'exploitation gรจre les demandes ainsi que les ressources nรฉcessaires รฉvitant les interfรฉrences entre les logiciels[1].
Description
modifierLe systรจme d'exploitation est le logiciel principal d'un ordinateur, car il permet aux programmes de fonctionner aprรจs que le programme d'amorรงage a configurรฉ tous les pรฉriphรฉriques lors du dรฉmarrage de l'ordinateur[2].
Il offre une suite de services gรฉnรฉraux facilitant la crรฉation de logiciels applicatifs et sert d'intermรฉdiaire entre ces logiciels et le matรฉriel informatique[1]. Un systรจme d'exploitation apporte commoditรฉ, efficacitรฉ et capacitรฉ d'รฉvolution, et permet donc d'introduire de nouvelles fonctions et du nouveau matรฉriel sans remettre en cause les logiciels[2].
Il existe sur le marchรฉ des dizaines de systรจmes d'exploitation diffรฉrents[2], trรจs souvent livrรฉs avec l'appareil informatique[3]. C'est le cas de Microsoft Windows, macOS, Irix, Symbian OS, Unix (Berkeley, System Vโฆ), GNU/Linux, (pour lequel il existe de nombreuses distributions) ou majoritairement Android et iOS dรฉveloppรฉs respectivement par Google et Apple pour les tรฉlรฉphones mobiles. Les fonctionnalitรฉs offertes diffรจrent d'un systรจme ร l'autre et sont typiquement en rapport avec l'exรฉcution des programmes, l'utilisation de la mรฉmoire centrale ou des pรฉriphรฉriques, la manipulation des systรจmes de fichiers, la communication, ou la dรฉtection et la gestion d'erreurs[2].
En avril 2022, Android, un systรจme d'exploitation utilisant le noyau Linux, est le systรจme d'exploitation le plus utilisรฉ au monde (si l'on prend en compte l'utilisation Web). Il dรฉtient 43ย % du marchรฉ mondial, suivi de Microsoft Windows (30ย %), d'iOS (17ย %), de macOS (6ย %), puis de Linux (desktop) (0,98ย %), qui utilise รฉgalement le noyau Linux[4]. Ces chiffres ne tiennent pas compte des appareils intรฉgrรฉs ni des consoles de jeux.
- Pour les smartphones et autres appareils de poche, Android est en tรชte avec 72ย % de parts de marchรฉ, et iOS en dรฉtient 28ย %[5].
- Pour les ordinateurs de bureau et les ordinateurs portables, Microsoft Windows est le plus utilisรฉ (75ย %), suivi de macOS (15ย %) et des systรจmes d'exploitation basรฉs sur Linux (5ย %) (c'est-ร -dire ยซย Linux desktopย ยป, 2,48ย %, plus ChromeOS, 2,38ย %, et 3,2ย % aux รtats-Unis)[6].
- En ce qui concerne les tablettes, iPadOS reprรฉsente 54ย % et Android 46ย % dans le monde entier[7].
Fonctionnalitรฉs
modifierLe systรจme d'exploitation offre une suite de services gรฉnรฉraux facilitant la crรฉation et l'utilisation de logiciels applicatifs. Les services offerts sont en rapport avec l'utilisation des ressources de l'ordinateur par les programmes[2]. Ils permettent en particulier d'exรฉcuter des programmes, de lire et รฉcrire des informations, de manipuler les fichiers, de communiquer entre ordinateurs et de dรฉceler des erreurs[2]. Ces services permettent ร plusieurs usagers et plusieurs programmes de se partager les ressources de l'ordinateur[8]. Le principal rรดle du systรจme d'exploitation est alors de gommer les diffรฉrences entre les diffรฉrentes architectures informatiques, et d'organiser l'utilisation des ressources de maniรจre rationnelle.
Utilisation des pรฉriphรฉriques
modifierChaque pรฉriphรฉrique a ses propres instructions, avec lesquelles il peut รชtre manipulรฉ. Le systรจme d'exploitation en tient compte. Il permet au programmeur de manipuler le pรฉriphรฉrique par de simples demandes de lecture ou d'รฉcriture, lui รฉvitant la perte de temps de traduire les opรฉrations en instructions propres au pรฉriphรฉrique[8].
Accรจs aux fichiers
modifierEn plus des instructions propres ร chaque pรฉriphรฉrique (lecteur de disquette, disque dur, lecteur de CD-ROM, lecteur usb, lecteur de carte mรฉmoireโฆ), le systรจme d'exploitation tient compte du format propre de chaque support servant au stockage de fichiers. Il offre รฉgalement des mรฉcanismes de protection permettant de contrรดler quel utilisateur peut manipuler quel fichier[8].
Accรจs aux ressources
modifierUne des fonctions du systรจme d'exploitation est de protรฉger les ressources contre l'utilisation par des personnes non autorisรฉes, et de rรฉsoudre les conflits lorsque deux utilisateurs demandent simultanรฉment la mรชme ressource[8].
Dรฉtection et rรฉcupรฉration en cas d'erreur
modifierLorsqu'une erreur survient, qu'elle soit matรฉrielle ou logicielle, le systรจme d'exploitation traite l'erreur en adoucissant son impact sur le systรจme informatique. Il peut tenter de rรฉitรฉrer l'opรฉration, arrรชter l'exรฉcution du programme fautif, ou signaler le problรจme ร l'utilisateur[8].
Contrรดle
modifierUn systรจme d'exploitation peut tenir des statistiques d'utilisation des ressources, surveiller la performance, et les temps de rรฉponse[8].
Services
modifierLa palette des services offerts et la maniรจre de s'en servir diffรจre d'un systรจme d'exploitation ร l'autre. Le standard industriel POSIX du IEEE dรฉfinit une suite d'appels systรจmes standard. Un logiciel applicatif qui effectue des appels systรจme selon POSIX pourra รชtre utilisรฉ sur tous les systรจmes d'exploitation conformes ร ce standard[9].
Le systรจme d'exploitation assure la rรฉservation des diffรฉrentes ressources pour les besoins des programmes exรฉcutรฉs simultanรฉment. Les rรฉservations peuvent รชtre inscrites dans des journaux d'activitรฉs ร des fins de statistiques ou de dรฉpannage et le systรจme d'exploitation peut refuser une rรฉservation ร un utilisateur n'ayant pas reรงu d'autorisation[2] prรฉalable.
Le matรฉriel informatique peut exรฉcuter des instructions, celles-ci sont rarement plus que des copies ou des additions. La traduction d'opรฉrations complexes en suite d'instructions est une tรขche fastidieuse qui incombe au systรจme d'exploitation[8]. Le systรจme d'exploitation prend en charge toute la manipulation du matรฉriel, le logiciel applicatif ne peut donc pas voir de diffรฉrence entre une machine simple, rudimentaire et une machine riche et complexeย : les mรชmes services sont offerts dans les deux cas[1].
Le systรจme d'exploitation facilite le travail de programmation en fournissant une suite de services pouvant รชtre utilisรฉs par les logiciels applicatifs[1]. Du point de vue du programmeur, son logiciel applicatif s'oriente en direction du systรจme d'exploitation et du matรฉriel, et les programmes sont considรฉrรฉs comme fonctionnant sur le systรจme d'exploitation. Un systรจme d'exploitation peut ainsi รชtre vu comme une machine virtuelle. L'ensemble composรฉ du matรฉriel et du systรจme d'exploitation forme la ยซย machineย ยป qui exรฉcute le logiciel applicatif, une machine en partie simulรฉe par du logiciel[1].
Un systรจme d'exploitation est composรฉ d'une large palette de programmes. La composition exacte dรฉpend de l'usage cible et du type d'appareil informatique auquel le systรจme est destinรฉ (ordinateur personnel, serveur, superordinateur ou encore systรจme embarquรฉ).
Utilisation
modifierLes utilisateurs et les programmeurs peuvent demander des services au systรจme d'exploitation par son interface de programmation, ses commandes ou son interface graphique.
Interface de programmation
modifierLes appels systรจme permettent des interactions entre un programme en cours d'exรฉcution et le systรจme d'exploitation. L'utilisation d'appels systรจme ressemble ร celle de fonctions ou de sous-routines ordinaires en langage C ou Pascal[2]. POSIX (acronyme de l'anglais Portable Operating System Interface) est une norme relative ร l'interface de programmation du systรจme d'exploitation. De nombreux systรจmes d'exploitation sont conformes ร cette norme, notamment les membres de la famille Unix.
Commandes
modifierLes commandes permettent ร un utilisateur ou un programme de demander une opรฉration au systรจme d'exploitation. Une commande est un programme qui effectue un appel systรจme selon la demande de l'utilisateur[2],[10].
Interface graphique
modifierL'interface graphique permet une manipulation intuitive par l'intermรฉdiaire d'icรดnes. Cette interface, qui n'est pas une partie essentielle du systรจme d'exploitation, et qui cache tous les dรฉtails intrinsรจques de celui-ci, est souvent considรฉrรฉe comme un complรฉment[10].
Processeur
modifierLorsquโil est multi-programmรฉ, le systรจme d'exploitation permet ร plusieurs utilisateurs de se servir de l'ordinateur et donne ร chaque utilisateur l'impression qu'il est le seul ร utiliser l'ordinateur[8]. Pour ce faire, l'utilisation du processeur est planifiรฉeย : chaque programme est exรฉcutรฉ durant une tranche de temps dรฉterminรฉ (un quantum de temps), puis le systรจme d'exploitation bascule sur l'exรฉcution d'un autre programme[8].
- Processus
Un processus est un ensemble d'instructions qui sont en train d'รชtre exรฉcutรฉes. Les instructions proviennent d'un ou de plusieurs programmes, et l'exรฉcution nรฉcessite du temps, de la mรฉmoire, des fichiers et des pรฉriphรฉriques[11]. Le systรจme d'exploitation s'occupe de crรฉer, d'interrompre, et de supprimer des processus. Plusieurs processus se trouvent en mรฉmoire centrale en mรชme temps[10].
La responsabilitรฉ du systรจme d'exploitation est de rรฉserver de la mรฉmoire, de planifier l'exรฉcution, de s'occuper des interblocages[12] et d'assurer les communications entre les processus[11]. L'ordonnanceur (anglais scheduler) associe un processus ร un processeur, puis plus tard le dissocie du processeur pour associer un autre processus. Cette opรฉration associer / dissocier est appelรฉe context switch[10]. Lors de la planification, le systรจme d'exploitation tient compte de la disponibilitรฉ, ou non, des ressources utilisรฉes par le processus[12]. Certains systรจmes d'exploitation crรฉent des processus pour effectuer certaines tรขches propre au systรจme[9].
Lors de l'exรฉcution du programme, celui-ci peut demander de rรฉserver des ressources de l'ordinateur[9]. L'exรฉcution de ce programme peut รชtre interrompue et le systรจme d'exploitation continue l'exรฉcution d'un autre programme, cependant les ressources restent rรฉservรฉes[9]. Lorsqu'un autre processus demande une ressource dรฉjร rรฉservรฉe, le processus est mis en attente. En situation de forte compรฉtition plusieurs processus peuvent รชtre en attente de la mรชme ressource[9]. Lorsque la ressource est libรฉrรฉe le systรจme d'exploitation dรฉcide alors quel est le prochain processus auquel la ressource sera rรฉservรฉe. La stratรฉgie d'octroi des ressources par le systรจme d'exploitation vise ร rรฉpondre รฉquitablement ร toutes les demandes et รฉviter des conflits[9].
La communication inter-processus
modifierDans certains logiciels applicatifs, plusieurs programmes effectuent la mรชme tรขche simultanรฉment, et s'รฉchangent des informations[9]. Le mรฉcanisme de protection de la mรฉmoire (voir plus loin) empรชche aux programmes de manipuler les mรชmes informations, et ceux-ci doivent faire appel ร des services du systรจme d'exploitation[9].
Mรฉmoire
modifierLe systรจme d'exploitation dirige l'utilisation de la mรฉmoire. Il retient la liste des emplacements de mรฉmoire utilisรฉs, et par qui, ainsi que la liste des emplacements libres[13]. Le systรจme d'exploitation rรฉserve un emplacement de mรฉmoire lorsqu'un processus le demande, et le libรจre lorsqu'il n'est plus utilisรฉ, par exemple lorsque le processus s'est arrรชtรฉ[13].
Les fonctions de contrรดle de l'utilisation de la mรฉmoire vont en particulier suivre l'utilisation de celle-ci, quels emplacements sont libres, lesquels sont utilisรฉs, et par qui[2]. Ces fonctions vont รฉgalement dรฉcider quel programme reรงoit de la mรฉmoire, quand et quelle quantitรฉ est mise ร disposition et rรฉcupรฉrer la mรฉmoire qui รฉtait utilisรฉe par un programme aprรจs son exรฉcution, que le programme se soit arrรชtรฉ volontairement ou accidentellement[2].
La quantitรฉ de mรฉmoire utilisรฉe par l'ensemble du systรจme informatique dรฉpend essentiellement de la maniรจre dont le systรจme d'exploitation effectue les rรฉservations[11].
Dans les systรจmes d'exploitation contemporains, plusieurs programmes sont exรฉcutรฉs en mรชme temps et utilisent simultanรฉment la mรฉmoire centrale[9] (systรจme d'exploitation multi-tรขche). Si un processus modifie - accidentellement ou intentionnellement - un emplacement de mรฉmoire utilisรฉe par un autre processus, il met celui-ci en danger[9]. S'il modifie un emplacement utilisรฉ par le systรจme d'exploitation il met en danger l'ensemble du systรจme informatique[9].
Pour รฉviter un tel incident, le systรจme d'exploitation rรฉserve ร chaque programme un espace d'adressage โย un emplacement en mรฉmoire que seul le programme en question peut manipuler[9]. Le systรจme d'exploitation dรฉtecte toute tentative d'accรจs en dehors de l'espace d'adressage et provoque l'arrรชt immรฉdiat du programme qui tente d'effectuer telles opรฉrations[9], par le biais d'une erreur de protection gรฉnรฉrale.
La mรฉmoire virtuelle
modifierLe mรฉcanisme dit de mรฉmoire virtuelle est destinรฉ ร simuler la prรฉsence ou l'absence de mรฉmoire centrale par manipulation de l'unitรฉ de gestion mรฉmoire โ un composant รฉlectronique (anglais Memory Management Unit abrรฉgรฉ MMU). C'est un mรฉcanisme courant dans les systรจmes d'exploitation contemporains.
La mรฉmoire virtuelle permet d'exรฉcuter simultanรฉment plus de programmes que ce que la mรฉmoire centrale peut contenir. Chaque programme n'ayant pas besoin que la totalitรฉ des informations qu'il manipule soit prรฉsente dans la mรฉmoire centrale[N 1], une partie des informations est stockรฉe dans la mรฉmoire de masse (en gรฉnรฉral dans un fichier du nom de fichier d'รฉchange, ou une partition de disque dur). La mรฉmoire de masse est habituellement plus "grande" mais plus lente que la mรฉmoire centrale, les informations dans la mรฉmoire de masse peuvent รชtre transfรฉrรฉes en mรฉmoire centrale lorsque le programme en a besoin[T 1].
Les programmes disposent d'un (ou plusieurs) espaces virtuels de mรฉmoire continus pour travailler. Les adresses des donnรฉes sont dites virtuelles dans la mesure oรน l'information adressรฉe ne se trouve pas forcรฉment ni en mรฉmoire centrale, ni ร l'adresse indiquรฉe. Lorsque le programme essaie de lire ou รฉcrire une donnรฉe dans sa mรฉmoire virtuelle, l'unitรฉ de gestion de mรฉmoire cherche l'adresse physique correspondant ร l'adresse virtuelle sollicitรฉe grรขce ร une table de correspondance. Si l'emplacement n'est pas prรฉsent en mรฉmoire centrale (on appelle cela une faute de page majeur), il n'y aura aucune adresse physique correspondante. Le systรจme d'exploitation devra alors chercher ร libรฉrer un espace en mรฉmoire centrale en รฉchangeant (anglais swap) le contenu d'un emplacement donnรฉ de mรฉmoire centrale avec le contenu sollicitรฉ, qui se trouve en mรฉmoire de masse[N 2],[T 2]. Le systรจme d'exploitation effectue lui mรชme cette opรฉration de chargement depuis la mรฉmoire de masse jusqu'en mรฉmoire centrale, en rรฉaction ร la faute de page majeur. Le tout se produit ร l'insu des programmes applicatifs.
Des mรฉmoires associatives, incorporรฉes dans l'unitรฉ de gestion de mรฉmoire, accรฉlรจrent le calcul des adresses[T 3]. Les systรจmes d'exploitation utilisent gรฉnรฉralement deux mรฉmoires associativesย : une pour le mode noyau et une pour le mode utilisateur. La mรฉmoire du mode noyau est arrangรฉe de maniรจre ร permettre au processeur d'utiliser la totalitรฉ de la mรฉmoire centrale disponible โ lors de l'exรฉcution des programmes du noyau du systรจme d'exploitation. Tandis que celle du mode utilisateur est arrangรฉe de maniรจre ร protรฉger le noyau (qui est ainsi invisible pour le programme en question) โ lors de l'exรฉcution des programmes hors du noyau. C'est ce que l'on nomme la protection, et ces mรฉcanismes constituent les principales caractรฉristiques du mode protรฉgรฉ.
Chaque programme dispose de sa propre table de correspondance, ce qui permet de les isoler les uns des autres. Lors d'une commutation de contexte (context switch), le systรจme d'exploitation placera la table du programme courant dans la mรฉmoire associative[T 4]. Le systรจme d'exploitation crรฉe รฉgalement de nouvelles tables pour les programmes qui dรฉmarrent et dรฉcide quels emplacements de mรฉmoire virtuelle seront ou ne seront pas prรฉsents en mรฉmoire centrale[T 5].
Pรฉriphรฉriques
modifierLes pรฉriphรฉriques sont tous les dispositifs informatiques qui permettent au processeur de communiquer avec l'extรฉrieurย : clavier, imprimante, carte rรฉseau, mรฉmoire, disque dur[9]. Ils ont tous besoin d'un driver (pilote) pour fonctionner. Ils permettent en particulier de recevoir des informations, d'en envoyer, ainsi que de stocker des informations โย les collecter dans le but de les renvoyer plus tard[9].
Une des responsabilitรฉs du systรจme d'exploitation est de suivre l'รฉtat d'utilisation โย libre ou rรฉservรฉย โ de tout le matรฉriel du systรจme informatique. Lorsqu'un matรฉriel libre est demandรฉ par un processus, il est alors rรฉservรฉ ร ce processus[12]. Pour utiliser un pรฉriphรฉrique, le systรจme d'exploitation se sert d'un contrรดleur et d'un pilote de pรฉriphรฉrique[12].
- Contrรดleur
Un contrรดleur est un composant รฉlectronique, qui comporte une mรฉmoire tampon, et manipule un certain type de pรฉriphรฉrique (disque dur, imprimante, mรฉmoire, lecteur de bande magnรฉtiqueโฆ)[12]. Le contrรดleur est souvent intรฉgrรฉ au pรฉriphรฉrique[9]. Les diffรฉrents contrรดleurs disponibles sur le marchรฉ ne s'utilisent pas tous de la mรชme maniรจre[9].
- Pilote (anglais driver)
Les instructions de manipulation d'une gamme de contrรดleurs donnรฉe sont incluses dans un pilote informatiqueย : un logiciel qui exploite les possibilitรฉs offertes par les contrรดleurs[9]. Les pilotes informatiques font partie du systรจme d'exploitation, et offrent des services uniformes utilisรฉs par les autres programmes du systรจme d'exploitation[9].
Il existe deux stratรฉgies de manipulation des contrรดleurs[9]ย :
- Les contrรดleurs rapides sont manipulรฉs en programmed I/O. dans cette stratรฉgie le processeur envoie des demandes d'opรฉrations au contrรดleur puis vรฉrifie de maniรจre intermittente l'รฉtat du contrรดleur pour vรฉrifier si l'opรฉration demandรฉe est terminรฉe[9].
- Les contrรดleurs moins rapides sont manipulรฉs en interrupt driven I/O[9]. Dans cette stratรฉgie le processeur effectue une demande au contrรดleur, puis continue d'exรฉcuter des logiciels applicatifs. Le contrรดleur envoie un signal รฉlectrique lorsque l'opรฉration est terminรฉe. Lors de la venue de ce signal, le processeur interrompt l'exรฉcution des logiciels applicatifs et exรฉcute un programme particulier interrupt service routine qui vรฉrifie le nouvel รฉtat du contrรดleur[9].
Certains pรฉriphรฉriques ne peuvent pas รชtre partagรฉs, et leur utilisation est alors dรฉdiรฉe ร un seul programme ร la fois. Certains pรฉriphรฉriques peuvent รชtre virtuels, ou leur utilisation peut รชtre indirecte. Par exemple l'utilisation d'une imprimante n'entraine pas une impression immรฉdiate parce que les informations sont tout d'abord mises en attente. Cette technique du spool permet l'utilisation partagรฉe d'un pรฉriphรฉrique qui sans รงa ne pourrait pas รชtre partagรฉ[2].
Fichiers
modifierUn fichier est une collection d'informations portant un nom, enregistrรฉe sur un mรฉdia tel qu'un Solid State Drive, un disque dur magnรฉtique, une bande magnรฉtique ou un disque optique[11]. Chaque mรฉdium a ses propres caractรฉristiques et sa propre organisation[11].
Le systรจme d'exploitation s'occupe de crรฉer et de dรฉtruire des fichiers et des rรฉpertoires, de rรฉserver de l'espace sur les mรฉdias ainsi que copier le contenu des fichiers de et vers la mรฉmoire centrale[11]. Il aide รฉgalement les logiciels applicatifs ร retrouver les fichiers, partager les fichiers entre plusieurs utilisateurs, modifier le contenu des fichiers et crรฉer des rรฉpertoires (permettant de classer et d'organiser les fichiers)[12]. La vitesse du systรจme informatique dรฉpendra de la vitesse de manipulation des fichiers[11].
Le systรจme d'exploitation permet en particulier de manipuler les attributsย : les caractรฉristiques du fichier tels que son nom, la date de crรฉation, le type du contenu, la taille et l'emplacement[12]. Il permet รฉgalement de manipuler les permissionsย : des autorisations qui indiquent si un utilisateur pourra lire, รฉcrire ou exรฉcuter le fichier[12].
Le systรจme d'exploitation tient compte du systรจme de fichiersย : la maniรจre dont les fichiers sont organisรฉs et rรฉpartis sur un dispositif de stockage[12].
Les mรฉmoires amovibles telles que les CD ou les DVD ont une disposition normalisรฉe dont les spรฉcifications sont publiques, ce qui assure leur reconnaissance par tous les systรจmes d'exploitation (voir ISO 9660 et UDF ainsi que l'hybride ISO/UDF).
Lorsque le systรจme de fichier est distribuรฉ, et que les fichiers sont donc stockรฉs sur diffรฉrents ordinateurs d'un rรฉseau informatique, le systรจme d'exploitation envoie une requรชte ร l'ordinateur stockant le fichier pour chaque opรฉration ร effectuer (voir NFS ou CIFS).
Dans un systรจme d'exploitation multi-utilisateurs, les programmes manipulant le systรจme de fichiers effectuent des contrรดles pour vรฉrifier qu'aucun fichier n'est manipulรฉ par une personne non autorisรฉe. Ce type de systรจme d'exploitation refusera toute manipulation non autorisรฉe.
Rรฉseau
modifierDans un rรฉseau informatique, deux ordinateurs reliรฉs communiquent dรจs lors que les communications se font de part et d'autre selon les mรชmes protocoles rรฉseau. Selon le modรจle OSI, les diffรฉrents protocoles existants sont rรฉpartis sur sept niveaux, oรน un protocole d'un niveau donnรฉ peut รชtre combinรฉ avec n'importe quel protocole des niveaux situรฉs en dessus et en dessous (voir encapsulation).
Un systรจme d'exploitation contient typiquement plusieurs programmes nรฉcessaires pour des รฉchanges d'informations dans diffรฉrents protocoles des niveaux 1 ร 4. Tandis que les niveaux 5 ร 7 sont pris en charge par les logiciels applicatifs et les middleware.
Pour les รฉchanges d'informations selon les protocoles de niveau 1 et 2, le systรจme d'exploitation demande l'opรฉration au matรฉriel de l'ordinateur par l'intermรฉdiaire d'un pilote informatique, pilote qui peut faire partie intรฉgrante du systรจme d'exploitation ou รชtre fourni par le constructeur du matรฉriel.
Lors de l'envoi d'informations sur le rรฉseau, un logiciel applicatif crรฉe une information, la met en forme conformรฉment aux protocoles des niveaux 7 ร 5, puis la transmet au systรจme d'exploitation. Divers programmes du systรจme d'exploitation vont dรฉcouper cette information en trames, puis vont mettre en forme les trames et les envoyer conformรฉment aux protocoles des niveaux 4 ร 1.
Lors de la rรฉception de trames depuis le rรฉseau, divers programmes du systรจme d'exploitation vont tenter de les dรฉcoder conformรฉment ร diffรฉrents protocoles des niveaux 1 ร 4, puis transformer la suite de trames en un flux continu, qui sera envoyรฉ au logiciel applicatif destinataire. Le logiciel va alors dรฉcoder le flux conformรฉment aux protocoles de niveaux 5 ร 7. Le logiciel applicatif effectue prรฉalablement une connexion, c'est-ร -dire une liaison logique par laquelle il va s'associer avec un flux particulier.
Le choix exact des protocoles utilisรฉs dรฉpend de l'ordinateur concernรฉ et des liaisons rรฉseau qui vont รชtre utilisรฉes. Divers paramรจtres de configuration permettent d'influencer le choix des protocoles. Ils permettent par exemple d'empรชcher l'utilisation de protocoles interdits sur le rรฉseau concernรฉ.
Contrรดle d'accรจs
modifierLes systรจmes d'exploitation contemporains permettent ร plusieurs usagers de se servir simultanรฉment de l'ordinateur[11]. Le systรจme d'exploitation comporte des mรฉcanismes destinรฉs ร contrรดler l'utilisation des ressources par les utilisateurs, les processus et les programmes[11]. Ces mรฉcanismes permettent de certifier l'identitรฉ du programme ou de l'utilisateur et l'autoriser ร accรฉder ร une ressource en application de rรจglements de sรฉcuritรฉ[11].
Les mรฉcanismes de sรฉcuritรฉ du systรจme d'exploitation servent ร protรฉger le systรจme informatique de l'intรฉrieur comme de l'extรฉrieurย : les mรฉcanismes de sรฉcuritรฉ intรฉrieure protรจgent les processus les uns des autres, et assurent la fiabilitรฉ du systรจme informatique[12]. Les mรฉcanismes de sรฉcuritรฉ extรฉrieure protรจgent les donnรฉes et les programmes enregistrรฉs dans l'ordinateur contre des accรจs non autorisรฉs et des erreurs de manipulation[12]. Le systรจme d'exploitation empรชche la lecture par des personnes non autorisรฉes, la falsification, la suppression de donnรฉes, ainsi que l'utilisation non autorisรฉe de pรฉriphรฉriques[12].
Plusieurs programmes sont exรฉcutรฉs en mรชme temps et utilisent simultanรฉment la mรฉmoire centrale[9]. Si un processus modifie โย accidentellement ou intentionnellementย โ un emplacement de mรฉmoire utilisรฉe par un autre processus, il met celui-ci en danger[9]. S'il modifie un emplacement utilisรฉ par le systรจme d'exploitation il met en danger l'ensemble du systรจme informatique[9].
Pour รฉviter tel incident, le systรจme d'exploitation rรฉserve ร chaque programme un espace d'adressage - un emplacement en mรฉmoire que seul le programme en question peut manipuler[9]. Le systรจme d'exploitation dรฉtecte toute tentative d'accรจs en dehors de l'espace d'adressage et provoque l'arrรชt immรฉdiat du programme qui tente d'effectuer de telles opรฉrations[9].
Le systรจme d'exploitation va รฉgalement refuser la mise hors service de programmes centraux tels que les logiciels serveur ou des programmes du systรจme d'exploitation par tout utilisateur qui n'a pas prรฉalablement reรงu le privilรจge d'effectuer cette opรฉration โ selon les rรจglements introduits par l'administrateur de sรฉcuritรฉ.
Lorsqu'un logiciel autonome (bot informatique) demande des opรฉrations au systรจme d'exploitation, le logiciel doit prรฉalablement dรฉcliner son identitรฉ en tant que produit puis, sur la base de cette identitรฉ, le systรจme d'exploitation effectue les mรชmes vรฉrifications que pour une personne physique.
Les mรฉcanismes de contrรดle d'accรจs ont aussi pour effet de lutter contre les logiciels malveillants โ ceux-ci effectuent souvent des opรฉrations susceptibles de perturber l'utilisation de l'ordinateur.
Interface utilisateur
modifierUn ensemble de programmes du systรจme d'exploitation reรงoit les informations envoyรฉes par les logiciels applicatifs, et les place sur une image numรฉrique qui sera envoyรฉe au matรฉriel par l'intermรฉdiaire d'un pilote. En complรฉment un autre ensemble de programmes reรงoit les manipulations effectuรฉes par l'usager par l'intermรฉdiaire de pilotes puis les transmettent au logiciel concernรฉ. Ces deux ensembles crรฉent l'interface homme-machine qui permet ร un usager de dialoguer avec la machine.
Le systรจme d'exploitation peut dialoguer avec un usager par l'intermรฉdiaire d'un autre ordinateur ou d'un terminal (interface distribuรฉe). Les informations envoyรฉes par les logiciels applicatifs seront alors envoyรฉes ร l'autre ordinateur selon un protocole prรฉvu ร cet effet, tandis que l'autre ordinateur enverra les manipulations effectuรฉes par l'utilisateur. Voir SSH, RFB ou X Window System.
Lorsque l'interface est en mode texte, l'image numรฉrique est une grille dans laquelle sont placรฉs des caractรจres d'imprimerie, la grille comporte typiquement 80 colonnes et 35 lignes. L'interface se manipule avec un clavier. Ce type d'interface, qui existe depuis les dรฉbuts de l'informatique[N 3] est aujourd'hui remplacรฉ par les interfaces graphiques.
Interface graphique
modifierDans une interface utilisateur graphique (anglais Graphical User Interface abrรฉgรฉ GUI), l'image numรฉrique est composรฉe par un programme du systรจme d'exploitation par superposition de points, de lignes, de pictogrammes et de caractรจres d'imprimerie. L'interface se manipule typiquement avec une souris selon le principe WIMP (anglais Windows, Icons, Menus and Pointer device). L'image numรฉrique est crรฉรฉe ร l'aide du processeur graphique de l'ordinateur.
Lors des manipulations de la souris, le systรจme d'exploitation dรฉplace l'รฉlรฉment d'image qu'est le pointeur et effectue les calculs nรฉcessaires pour dรฉterminer quel est l'รฉlรฉment de l'image qui se trouve juste en dessous. ร chaque รฉlรฉment de l'image peut รชtre associรฉ un programme. Un widget est un programme qui dessine et anime un รฉlรฉment d'image dont l'aspect peut-รชtre celui d'un bouton poussoir, d'une lampe tรฉmoin, d'un ascenseur, d'une zone texte, d'un menu, etc. Divers widgets sont fournis avec l'interface graphique.
Les programmes pour interface graphique sont aujourd'hui (2011) inclus dans tous les systรจmes d'exploitation contemporains. Le X Window System est l'ensemble des programmes pour interface utilisateur graphique inclus dans tous les systรจmes d'exploitation de la famille Unix. Pour Windows, l'รฉquivalent est le programme Explorer, aussi nommรฉ Explorateur Windows (ร ne pas confondre avec Internet Explorer).
Logiciels utilitaires
modifierUn logiciel applicatif sert ร assister l'utilisateur dans une activitรฉ. Les logiciels utilitaires sont des logiciels applicatifs qui permettent ร l'utilisateur d'effectuer des manipulations basiques telles que dรฉmarrer des programmes, copier des fichiers ou modifier des paramรจtres de configuration. Divers logiciels utilitaires sont fournis avec les systรจmes d'exploitation.
Un interprรฉteur de commandes est un programme qui permet d'exรฉcuter d'autres programmes en รฉcrivant leur nom รฉventuellement suivi de divers paramรจtres. Il est accompagnรฉ de plusieurs programmes qui permettent la manipulation des fichiers (copie, changement de nomโฆ). Ce type de programme est utilisรฉ pour effectuer des manipulations ou exรฉcuter des scripts โย suites de manipulations prรฉ-enregistrรฉes (voir commande informatique). Ce type de programme est souvent fourni avec le systรจme d'exploitation, mais rien n'y oblige, et on peut trรจs bien en importer.
Un environnement de bureau est un programme dans lequel les diffรฉrents รฉlรฉments de l'ordinateur (programmes, fichiers, disques durs) sont prรฉsentรฉs sous forme de pictogrammes sur lesquels il est possible d'effectuer diffรฉrentes actions. Il permet d'exรฉcuter des programmes, d'effectuer diffรฉrentes opรฉrations sur les fichiers (copie, changement du nom, dรฉplacement ou suppression).
Certains programmes permettent ร l'utilisateur de modifier les paramรจtres de configuration du systรจme d'exploitation. Ceux-ci proposent des listes ร choix multiples et effectuent des contrรดles de validitรฉ avant le modifier les paramรจtres.
D'autres programmes servent ร installer des logiciels, c'est-ร -dire copier les fichiers dans les emplacements prรฉvus ร cet effet, et effectuer les modifications de configuration nรฉcessaire pour rendre le logiciel opรฉrationnel. Ces programmes peuvent aussi servir ร consulter la liste des logiciels actuellement installรฉs dans l'ordinateur.
Un systรจme d'exploitation multi-utilisateurs est en gรฉnรฉral fourni avec des programmes permettant de surveiller l'utilisation โย par autruiย โ de l'ordinateur โย consultation de journaux d'activitรฉย โ ou de modifier les listes de droits d'accรจs en vue d'autoriser ou d'interdire un fichier ร certains utilisateurs.
Typologie
modifierIl existe cinq gรฉnรฉrations de systรจmes d'exploitationย : par lots (batch), multi programmรฉs, en temps partagรฉ, temps rรฉel, et distribuรฉs. Chacun des principes mis en ลuvre dans une gรฉnรฉration se retrouve dans les gรฉnรฉrations suivantes[8].
- Un systรจme de traitement par lots (batch) est prรฉvu pour l'exรฉcution de grands calculs les uns aprรจs les autres, avec peu d'intervention utilisateur[2].
ร partir de la gรฉnรฉration des systรจmes d'exploitation multi-programmรฉs, plusieurs programmes sont exรฉcutรฉs simultanรฉment par planification (scheduling). Dans ces systรจmes d'exploitation multitรขches, plusieurs programmes rรฉsident dans la mรฉmoire centrale et le systรจme d'exploitation suspend rรฉguliรจrement l'exรฉcution d'un programme pour continuer l'exรฉcution d'un autre[8].
- Dans la gรฉnรฉration des systรจmes multi-programmรฉs, l'exรฉcution simultanรฉe de plusieurs programmes vise l'utilisation efficace de la puissance de calcul du processeur.
- Dans la gรฉnรฉration des systรจmes en temps partagรฉ l'exรฉcution simultanรฉe de plusieurs programmes vise ร rรฉpondre rapidement aux demandes de plusieurs utilisateurs en communication directe avec l'ordinateur[8].
- Un systรจme d'exploitation temps rรฉel doit garantir que toute opรฉration se termine dans un dรฉlai donnรฉ, en vue de garantir la rรฉussite du dispositif dans lequel l'ordinateur est utilisรฉ[2].
- Un systรจme distribuรฉ dirige l'utilisation des ressources de plusieurs ordinateurs ร la fois. Il utilise les capacitรฉs d'un rรฉseau informatique, contrรดle un groupe de machines, et les fait apparaรฎtre comme une machine unique, virtuelle, de trรจs grande capacitรฉ[2].
Chaque systรจme d'exploitation est conรงu pour fonctionner avec une gamme particuliรจre de machines (type de processeur, constructeur, architecture). Si un systรจme d'exploitation est disponible pour plusieurs gammes de machines diffรฉrentes, alors le mรชme code source est compilรฉ[N 4] et adaptรฉ ร chaque gamme de machines. La palette de pilotes inclus dans le systรจme d'exploitation est adaptรฉe au matรฉriel informatique disponible sur le marchรฉ pour cette gamme de machines.
Premiรจre gรฉnรฉrationย : traitement par lots
modifierLes systรจmes d'exploitation basรฉs sur le traitement par ยซย lotsย ยป (suites d'instructions et de donnรฉes dans un ensemble de cartes perforรฉes) sont apparus dans les annรฉes 1950. Un programme (avec ses donnรฉes) n'est rien d'autre qu'une pile de cartes avec des indicateurs de dรฉbut et de fin de lot. L'exรฉcution d'un programme consiste ร demander ร un opรฉrateur de placer la pile de cartes dans le lecteur, puis l'opรฉrateur lance la lecture sรฉquentielle des cartes. Le processeur central est au repos, durant les manipulations de l'opรฉrateur[8].
Un batch est un lot de travaux ร effectuer. L'opรฉrateur compose un batch en posant les unes sur les autres les piles de cartes des diffรฉrents programmes (avec leurs donnรฉes) demandรฉs par les utilisateurs. Il forme une grande pile de cartes sรฉparรฉes par des marque-pages, en gรฉnรฉral une carte de couleur particuliรจre, qu'il place ensuite dans le lecteur. Le regroupement de plusieurs programmes en un batch diminue les interventions de l'opรฉrateur[8].
Dans un systรจme basรฉ sur les batchs, le cลur du systรจme d'exploitation est un programme moniteur qui rรฉside continuellement en mรฉmoire centrale et permet ร l'opรฉrateur de demander le dรฉbut ou l'arrรชt de l'exรฉcution du lot. ร la fin de l'exรฉcution de chaque tรขche du lot, le moniteur effectue des travaux de nettoyage, puis lance l'exรฉcution de la tรขche suivante. Ainsi, l'opรฉrateur intervient uniquement au dรฉbut et ร la fin du lot[8].
Dans ces systรจmes d'exploitation les commandes ajoutรฉes au marque-page, formulรฉes dans le langage JCL (Job Control Language) sont un des seuls moyens qu'a l'utilisateur d'interagir avec le systรจme d'exploitation[8].
Les systรจmes d'exploitation batch sont adaptรฉs ร des applications nรฉcessitant de trรจs gros calculs, mais peu d'implication de l'utilisateurย : mรฉtรฉo, statistiques, impรดtsโฆ Les utilisateurs n'attendent pas immรฉdiatement de rรฉsultats. Ils soumettent les demandes, puis reviennent ultรฉrieurement collecter les rรฉsultats[8].
En raison de la grande diffรฉrence de vitesse entre le processeur et les pรฉriphรฉriques, dans un systรจme d'exploitation batch le processeur est inutilisรฉ 90ย % du temps, car les programmes attendent qu'un pรฉriphรฉrique ou un autre termine les opรฉrations. Avec ces systรจmes d'exploitation il n'y a pas de concurrence entre les diffรฉrentes tรขches, la mise en ลuvre de l'utilisation du processeur, de la mรฉmoire et des pรฉriphรฉriques est triviale[8], mais loin dโรชtre optimale.
Deuxiรจme gรฉnรฉrationย : la multiprogrammation
modifierLes systรจmes d'exploitation multi-programmรฉs sont apparus dans les annรฉes 1960. Le but recherchรฉ par de tels systรจmes est d'augmenter l'efficacitรฉ de l'utilisation du processeur et des pรฉriphรฉriques en utilisant la possibilitรฉ de les faire fonctionner en parallรจle. Plusieurs programmes sont placรฉs en mรฉmoire centrale, et lorsque le programme en cours d'exรฉcution attend un rรฉsultat de la part d'un pรฉriphรฉrique, le systรจme d'exploitation ordonne au processeur d'exรฉcuter un autre programme[8].
Dans les systรจmes d'exploitation multi-programmรฉs, l'utilisation du processeur est partagรฉe par planification (scheduling)ย : ร chaque utilisation d'un pรฉriphรฉrique, le systรจme d'exploitation choisit quel programme va รชtre exรฉcutรฉ. Ce choix se fait sur la base de prioritรฉs. Le systรจme d'exploitation comporte un mรฉcanisme de protection รฉvitant ainsi que le programme en cours d'exรฉcution ne lise ou n'รฉcrive dans la mรฉmoire attribuรฉe ร un autre programme. Les programmes sont exรฉcutรฉs dans un mode non-privilรฉgiรฉ, dans lequel l'exรฉcution de certaines instructions est interdite[8].
Les systรจmes multi-programmรฉs nรฉcessitent un ordinateur et des pรฉriphรฉriques mettant en ลuvre la technique du DMA (direct memory access). Selon celle-ci, le processeur ordonne ร un pรฉriphรฉrique d'effectuer une opรฉration, le rรฉsultat de l'opรฉration est ensuite placรฉ en mรฉmoire centrale par le pรฉriphรฉrique tandis que le processeur exรฉcute d'autres instructions. Dans les systรจmes multi-programmรฉs, tout comme pour les systรจmes batch, l'utilisateur n'a que peu de contact avec les programmes et de maigres possibilitรฉs d'intervention[8].
Troisiรจme gรฉnรฉrationย : le temps partagรฉ
modifierLes systรจmes d'exploitation en temps partagรฉ sont apparus dans les annรฉes 1970. Ils sont utilisรฉs dans des dispositifs interactifs oรน plusieurs utilisateurs sont simultanรฉment en dialogue avec l'ordinateur. Un systรจme d'exploitation en temps partagรฉ est destinรฉ ร rรฉpondre rapidement aux demandes de l'utilisateur, et donner ร chaque utilisateur l'impression qu'il est le seul ร utiliser l'ordinateur[8].
Un systรจme en temps partagรฉ met en ลuvre des techniques sophistiquรฉes de multiprogrammation en vue de permettre l'utilisation interactive de l'ordinateur par plusieurs utilisateurs et plusieurs programmes simultanรฉment[2]. L'arrivรฉe, en 1970, de cette nouvelle gรฉnรฉration de systรจmes d'exploitation rรฉsulte d'une forte demande des consommateurs, et de la baisse du prix du matรฉriel informatique ayant rendu possible sa rรฉalisation[8].
Dans les systรจmes d'exploitation en temps partagรฉ la notion de batch n'a que peu d'importance. Ces systรจmes mettent en ลuvre de nouveaux mรฉcanismes d'utilisation du processeur et de la mรฉmoire, qui leur permet de rรฉpondre rapidement ร des demandes provenant simultanรฉment d'un grand nombre d'utilisateurs[8].
Dans ces systรจmes, tout comme dans la gรฉnรฉration prรฉcรฉdente, l'utilisation du processeur est planifiรฉe. Cependant, contrairement aux systรจmes de la gรฉnรฉration prรฉcรฉdente, dans les systรจmes en temps partagรฉ chaque programme est exรฉcutรฉ durant une tranche de temps dรฉterminรฉ, puis le systรจme d'exploitation bascule sur l'exรฉcution d'un autre programme, ce qui รฉvite qu'un programme monopolise l'utilisation du processeur au service d'un utilisateur, entraรฎnant des retards pour les autres utilisateurs[8].
Les systรจmes d'exploitation en temps partagรฉ mettent en ลuvre la technique du swapย : lorsque le programme en cours d'exรฉcution a besoin de plus de mรฉmoire que celle disponible, un autre programme inactif est retirรฉ pour gagner de la place, le programme inactif est alors enregistrรฉ temporairement sur le disque dur. L'enregistrement sur disque provoque cependant une perte de temps non nรฉgligeable[8].
En 2011, de nombreux systรจmes d'exploitation sont basรฉs sur Unix, un systรจme en temps partagรฉ[3].
Quatriรจme gรฉnรฉrationย : le temps rรฉel
modifierLes systรจmes d'exploitation temps-rรฉel sont apparus au milieu des annรฉes 1970, notamment chez Hewlett-Packard[14]. Ils sont destinรฉs aux dispositifs devant non seulement donner des rรฉsultats corrects, mais les donner dans un dรฉlai dรฉterminรฉ. Ces systรจmes d'exploitation sont souvent utilisรฉs par des ordinateurs reliรฉs ร un appareil externe (pilotes automatiques, robots industriels, applications vidรฉo et audio[8]) pour lequel un retard de rรฉponse de l'ordinateur entraรฎnerait un รฉchec de l'appareil.
Dans ces systรจmes d'exploitation, l'accent est mis sur la durรฉe nรฉcessaire pour effectuer chaque opรฉration, pour rรฉpondre aux demandes rapidement en vue de satisfaire aux contraintes de temps du systรจme dans lequel il est utilisรฉ[8].
Certains services offerts par ces systรจmes d'exploitation sont rรฉalisรฉs comme des logiciels applicatifs, et sont exรฉcutรฉs en concurrence avec ceux-ci. Un systรจme d'exploitation temps rรฉel autorise un contact direct entre les logiciels applicatifs et les pรฉriphรฉriques. Dans certains systรจmes temps rรฉel les ressources sont rรฉservรฉes, รฉvitant ainsi les ralentissements que provoqueraient les rรฉservations ร la volรฉe, et garantissant que les ressources sont continuellement disponibles[8].
Les systรจmes d'exploitation temps-rรฉel รฉvitent d'utiliser la technique du swap en raison des risques de dรฉpassement des dรฉlais[8].
RTX, Windows CE, Embedded Linux, Symbian OS, Palm OS et VxWorks sont des systรจmes d'exploitation temps rรฉel[15].
Cinquiรจme gรฉnรฉrationย : les systรจmes distribuรฉs
modifierLa baisse des prix du matรฉriel informatique a permis, dans les annรฉes 1990, la crรฉation de systรจmes informatiques composรฉs de plusieurs ordinateurs, et donc plusieurs processeurs, plusieurs mรฉmoires, et de nombreux pรฉriphรฉriques. Un systรจme distribuรฉ permet le partage des ressources entre les ordinateurs. Un utilisateur d'un ordinateur bon marchรฉ peut se servir de ressources coรปteuses existant sur un autre ordinateur[8].
Mach, Amoeba, Andrew, Athena, et Locus sont des systรจmes d'exploitation distribuรฉs. Ils ont tous รฉtรฉ dรฉveloppรฉs par des universitรฉs[16].
Histoire
modifierL'histoire des systรจmes d'exploitation est fortement liรฉe ร celle des ordinateurs. Les premiรจres gรฉnรฉrations d'ordinateurs, dans les annรฉes 1945 ร 1955, ne comportaient pas de systรจme d'exploitation. Dans ces ordinateurs รฉquipรฉs de tubes ร vide, les programmes manipulaient les ressources matรฉrielles de l'ordinateur sans passer par un intermรฉdiaire[17]. L'ordinateur รฉtait utilisรฉ par une seule personne ร la foisย : la tรขche de l'opรฉrateur consistait ร placer des piles de cartes perforรฉes dans le lecteur, oรน chaque carte comportait des instructions d'un programme ou des donnรฉes[17]. Les ordinateurs ร tube ร vide de cette gรฉnรฉration n'avaient qu'une faible puissance de calcul, ils รฉtaient volumineux, peu commodes et peu fiables (les tubes ร vide grillaient souvent)[17].
1960, la multiprogrammation
modifierDans les annรฉes 1960, avec l'arrivรฉe des circuits รฉlectroniques ร semi-conducteurs, la puissance de calcul des processeurs a augmentรฉ de maniรจre significative[17]. Cela a permis la rรฉalisation de systรจmes d'exploitation rudimentairesย : les ordinateurs ont รฉtรฉ รฉquipรฉs d'un spooler โย file d'attente permettant d'utiliser la puissance de calcul du processeur pendant que l'opรฉrateur introduit les cartes. L'utilisation des ressources matรฉrielles par les programmes se faisait alors par l'intermรฉdiaire d'une bibliothรจque logicielle[17]. Il a alors รฉtรฉ possible de placer en mรฉmoire plusieurs programmes simultanรฉment et de les exรฉcuter simultanรฉmentย ; un programme dit resident monitor rรฉsidait continuellement dans la mรฉmoire centrale et contrรดlait l'exรฉcution des diffรฉrents programmes[17].
En 1965 le Massachusetts Institute of Technology se lance dans la crรฉation du premier systรจme d'exploitation multitรขche et multi-utilisateursย : Multics (pour MULTiplexed Information and Computing Service[T 6], ou service multiplexรฉ d'information et de calcul). Sur le principe de la multiprogrammation, le systรจme d'exploitation autorisait le chargement de plusieurs programmes en mรฉmoire et gรฉrait le passage de l'un ร l'autre, mais cette fois-ci sans attendre le blocage d'un programme[N 5]. Chaque programme รฉtait exรฉcutรฉ pendant une durรฉe de quelques millisecondes, puis le systรจme passait au suivant. Ce temps, trรจs court, donnait l'illusion que les programmes s'exรฉcutaient simultanรฉment โย une illusion qui existe encore avec les systรจmes d'exploitation contemporains.
De plus, ces programmes pouvaient appartenir ร des utilisateurs distincts, chacun ayant l'impression que la machine travaille uniquement pour lui. La possibilitรฉ pour un ordinateur de servir simultanรฉment plusieurs personnes augmentait le retour sur investissement de l'achat de matรฉriel trรจs coรปteux par les entreprises et les institutions. Cependant, du fait de son รฉcriture dans un langage de programmation PL/I trop complexe pour les ordinateurs de l'รฉpoque, Multics fut un รฉchec commercial. Il a cependant inspirรฉ en grande partie la gamme de systรจmes GCOS dรฉveloppรฉs conjointement par Honeywell et Bull[18].
En 1969, les ingรฉnieurs Ken Thompson et Dennis Ritchie des laboratoires Bell rรชvent d'utiliser le systรจme d'exploitation Multics, mais le matรฉriel pour le faire fonctionner est encore hors de prix. Thompson se lance dans l'รฉcriture d'une version allรฉgรฉe de Multics pour un PDP-7 inutilisรฉ. Le systรจme, fonctionnel, est surnommรฉ Unics (pour UNiplexed Information and Computing Service[T 7]), puis finalement baptisรฉ UNIX. Rapidement reprogrammรฉ dans un langage de programmation plus appropriรฉ (le C, dรฉveloppรฉ par Ritchie pour l'occasion), UNIX se rรฉvรจle particuliรจrement simple ร porter sur de nouvelles plateformes, ce qui assure son succรจs[T 8],[19].
1972, les micro-ordinateurs
modifierDรจs 1980, les circuits รฉlectroniques ร transistor ont รฉtรฉ remplacรฉs par des circuits intรฉgrรฉs, plus petits, ce qui a permis de rรฉaliser des appareils plus compacts et moins coรปteux et lancรฉ le marchรฉ des ordinateurs personnels. De nombreux concepteurs de systรจme d'exploitation qui se sont lancรฉs sur ce marchรฉ n'avaient pas d'expรฉrience, ce qui a donnรฉ de nouveaux produits, fondรฉs sur des nouvelles idรฉes, sans hรฉritage ou influence de ce qui se faisait jusqu'alors[17]. CP/M, mis sur le marchรฉ en 1974, a รฉtรฉ le premier systรจme d'exploitation pour micro-ordinateur, son caractรจre trรจs sympathique, facile ร aborder et commode (user-friendly) l'a rendu trรจs populaire et influencรฉ le marchรฉ des systรจmes d'exploitation[17].
En 1980, IBM prend contact avec Bill Gates, cofondateur de la sociรฉtรฉ Microsoft, pour l'adaptation du langage BASIC ร son nouveau micro-ordinateurย : le Personal Computer (abrรฉgรฉ PC). IBM est รฉgalement ร la recherche d'un systรจme d'exploitation, et Bill Gates leur conseille de se tourner vers CP/M. Mais Gary Kildall refuse de signer le contrat avec IBM. Bill Gates saute sur l'occasionย : il rachรจte QDOS โ un systรจme d'exploitation quick-and-dirty pour les processeurs Intel 8086 โ pour proposer ร IBM le package DOS/BASIC. Aprรจs quelques modifications effectuรฉes ร la demande d'IBM, le systรจme est baptisรฉ MS-DOS[T 9],[20].
Xerox, une des sociรฉtรฉs majeures de l'รฉpoque, s'intรฉresse ร l'optique de Steve Jobs. Elle rรฉunit une poignรฉe de scientifiques et d'ingรฉnieurs dans son centre de recherche de Palo Alto et dรฉveloppe le premier micro-ordinateur รฉquipรฉ d'une interface utilisateur graphique, sur la base de thรจses et d'รฉtudes en ergonomie effectuรฉes les annรฉes prรฉcรฉdentes. Le rรฉsultat de ces recherches, le Xerox Star, ne sera jamais commercialisรฉ. Dix ans plus tard, c'est Apple avec le Macintosh qui popularise les recherches effectuรฉes par Xerox[21].
1990, les systรจmes d'exploitation sous licence libre
modifierEn 1983, Richard Stallman du Massachusetts Institute of Technology lance l'idรฉe d'un systรจme d'exploitation sous licence libreย : GNU[22]. Il dรฉveloppe des outils de programmation, des logiciels utilitaires, et crรฉe la GNU General Public License โ un contrat de licence autorisant une utilisation sans restrictions ainsi que la publication du code source, sa modification, et sa redistribution. Le succรจs est immรฉdiat, mais le systรจme ne possรจde toujours pas, en 1990, de noyau libre, et les tentatives pour en dรฉvelopper un sont loin d'รชtre abouties[23].
En 1987, Andrew Tanenbaum, professeur ร l'universitรฉ libre d'Amsterdam crรฉe le systรจme d'exploitation Minix, clone d'UNIX dont le code source est destinรฉ ร illustrer son cours sur la construction des systรจmes d'exploitation[N 6]. Mais Minix, dont la vocation est pรฉdagogique, comporte alors de trop nombreuses limitations techniques et ne permet pas une utilisation poussรฉe[N 7].
En 1989 un ยซย systรจme d'exploitation libreย ยป apparaรฎt ร la mรชme รฉpoqueย : 4.4BSD. La Berkeley Software Distribution (BSD) est la version d'UNIX dรฉveloppรฉe par les รฉtudiants et les chercheurs de l'universitรฉ de Berkeley depuis 1977[24]. Les logiciels utilitaires, crรฉรฉs sous licence libre, sont vendus avec le noyau Unix de AT&T, lui-mรชme sous licence propriรฉtaire. Cette double licence de BSD est ร l'origine de plusieurs annรฉes de litige entre l'Universitรฉ de Berkeley et AT&T[25]. Les รฉtudiants de l'universitรฉ travaillent ร remplacer les programmes dรฉveloppรฉs par AT&T par leurs propres programmes, sous licence libre, afin de rรฉsoudre le litige. Cette situation dure jusqu'ร la sortie de 4.4BSD en 1994, qui ne contient pratiquement plus de code AT&T[T 10].
En 1991, Linus Torvalds, รฉtudiant ร l'universitรฉ d'Helsinki, inspirรฉ par les travaux de Tanenbaum, sort la toute premiรจre version (0.0.1) de son propre noyauย : Linux, qui est au dรฉpart une rรฉรฉcriture de Minix[rรฉf.ย nรฉcessaire]. Linux passe sous licence GNU en 1992[26] et il faut attendre 1994 pour voir la version 1.0[T 11], donnant ainsi naissance ร la distribution d'un systรจme d'exploitation entiรจrement libre, GNU/Linux.
C'est ร la suite des initiatives et travaux de Linus Torvalds et de Richard Stallman, aidรฉs par des milliers de bรฉnรฉvoles, et consรฉcutivement aux travaux des รฉtudiants de l'universitรฉ de Berkeley que GNU/Linux et 4.4BSD sont devenus les premiers systรจmes d'exploitation sous licence libre[27].
Organisation gรฉnรฉrale du noyau
modifierUn systรจme d'exploitation est essentiellement รฉvรฉnementiel - il est exรฉcutรฉ lorsque quelque chose s'est passรฉ, typiquement lors d'un appel systรจme, une interruption matรฉrielle ou une erreur[28]. C'est un logiciel รฉtendu et complexe, qui offre de nombreuses fonctions. Il est construit comme une suite de modules, chacun ayant une fonction dรฉterminรฉe[29].
Le noyau (en anglaisย : kernel) est la piรจce centrale du systรจme d'exploitation[30]. C'est le second programme chargรฉ en mรฉmoire (juste aprรจs le bootloader) et il y reste en permanence - ses services sont utilisรฉs continuellement[30].
Il rรฉside gรฉnรฉralement dans un emplacement protรฉgรฉ de mรฉmoire vive, qui ne peut pas รชtre modifiรฉ ni exploitรฉ par les autres programmes[30] (c'est-ร -dire dans le cas d'un systรจme d'exploitation en mode protรฉgรฉ).
C'est un composant critiqueย : si le kernel subit une erreur et s'arrรชte alors l'ordinateur cessera de fonctionner, tandis que si un autre programme s'arrรชtait (par exemple un programme utilisateur) alors le systรจme d'exploitation resterait opรฉrationnel[30].
Il offre typiquement des fonctions pour crรฉer ou dรฉtruire des processus (i.e. exรฉcuter des programmes), diriger l'utilisation du processeur, de la mรฉmoire et des pรฉriphรฉriques. Il offre รฉgalement les fonctions qui permettent aux programmes de communiquer entre eux et de s'aligner dans le temps (synchronisation)[29].
- Noyau monolithique
- Dans une construction monolithique, le systรจme d'exploitation est composรฉ d'un seul programmeย : le noyau. Celui-ci est typiquement organisรฉ en couches[31]. La construction monolithique est la plus courante, appliquรฉe ร la plupart des Unix[30]ย ;
- Noyau ร micronoyau
- Dans la construction micronoyau, le kernel fournit les services minimum[30]ย : de nombreuses fonctions du systรจme d'exploitation ont รฉtรฉ retirรฉes du noyau et sont offertes par des programmes manipulรฉs par celui-ci, qui sont ce que l'on appelle des services[31] (pour un systรจme en mode protรฉgรฉ, la grande diffรฉrence avec un systรจme monolithique sera que ces services seront exรฉcutรฉs dans l'espace mรฉmoire utilisateur et non celui du noyau).
Les appels de fonction au systรจme d'exploitation par les programmes utilisateurs ont รฉtรฉ remplacรฉes par des envois de message[31]. Dans cette construction le noyau est utilisรฉ principalement pour planifier l'exรฉcution de processus, et pour รฉchanger des messages[31]. AIX, BeOS, Mach, Hurd, MacOS X, Minix et QNX sont des systรจmes d'exploitation qui utilisent cette construction[30]ย ;
- Noyau hybride
- La construction hybride ressemble ร une construction microkernel, cependant certaines fonctions ont รฉtรฉ placรฉes dans le noyau pour des raisons d'efficacitรฉ[30]. Windows NT, 2000 et XP (et รฉgalement les Windows plus rรฉcents) ainsi que DragonFly BSD sont en construction hybride[30]ย ;
- Systรจme organisรฉ par couches
- Le principe de la rรฉpartition par couches est que chaque module d'une couche donnรฉe utilise uniquement des fonctions offertes par les modules qui se trouvent dans la couche au-dessous[29]. L'organisation en couche n'est pas unique aux systรจmes d'exploitation et est couramment appliquรฉe aux logiciels applicatifs[31]. Dans un systรจme d'exploitation, les couches infรฉrieures concernent les pรฉriphรฉriques et la mรฉmoireย ; au-dessus desquelles se trouvent les systรจmes de fichiers, puis les processus[31]. Ces couches constituent la normalisation de la machineย : pour un programme utilisateur et un systรจme d'exploitation donnรฉ, tous les ordinateurs seront identiques (ou presque). C'est ce que l'on nomme l'abstraction matรฉrielle[32]
- Appels systรจme
- Le kernel รฉtant dans un emplacement protรฉgรฉ, il est impossible pour un logiciel applicatif d'appeler directement ses fonctions[30]. Un mรฉcanisme permet aux logiciels applicatifs de demander des services au systรจme d'exploitation[31]. Il est typiquement mis en ลuvre par une bibliothรจque. Celle-ci comporte des fonctions bouchon qui consistent ร placer les paramรจtres selon une convention, puis utiliser une instruction du processeur qui provoque la mise en pause du processus en cours et l'exรฉcution du systรจme d'exploitation[31]. Les fonctions de bouchon s'utilisent comme les fonctions ordinaires d'une bibliothรจque[31].
- Noyau client-serveur
- Dans une construction client-serveur, le cลur du systรจme d'exploitation a pour seule fonction d'assurer la communication entre les modules[29]. Le systรจme d'exploitation est divisรฉ en nombreux petits modules qui sont exรฉcutรฉs de la mรชme maniรจre que des logiciels applicatifs. Cette construction est bien adaptรฉe aux systรจmes d'exploitation distribuรฉs[29]ย ;
- Principe de machine virtuelle
- Le principe des machines virtuelles, est qu'une application spรฉcifique (l'hyperviseur) crรฉe l'illusion qu'il existe plusieurs machines, aux capacitรฉs plus limitรฉes, en utilisant une machine aux capacitรฉs plus รฉtendues[29]. Le cลur du systรจme de virtualisation est un moniteur qui crรฉe les illusions โย machine virtuelle. Celles-ci peuvent รชtre utilisรฉes pour exรฉcuter un autre systรจme d'exploitation[29].
Quelques exemples
modifier| Annรฉe d'apparition | Nom | Famille | รditeur | Matรฉriel pris en charge | Utilisation | Noyau | Graphique | Multitรขche | Multi-utilisateur | Multiprocesseur | Temps rรฉel |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1973 | SYSMIC | R2E | Micral | ordinateurs personnels, stations de travail | ย | ย | |||||
| 1977 | VMS | DEC | VAX, DEC Alpha, Hewlett-Packard | serveurs, ordinateurs centraux | ย | ย | |||||
| 1978-1985 | CP/M | Digital Research | Amstrad CPC, Commodore 128, TRS-80 | ordinateurs personnels | ย (cas de MP/M) | ||||||
| 1981-1990 | DOS | IBM & Microsoft | Compatible PC | ordinateurs personnels | |||||||
| 1982 | QNX | Quantum Software Systems | compatibles PC, MIPS, PowerPC, ARM | systรจmes embarquรฉs, automates industriels | ย | ย | ย | ย | ย | ||
| 1984 | Mac OS | Apple | Apple Macintosh | ordinateurs personnels | ย | ||||||
| 1985 | TOS | Atari | Atari ST, Eagle, Medusa, Hades, Milan, FireBee, ColdFire | ordinateurs personnels | ย | ||||||
| 1985 | AmigaOS | Commodore | Commodore Amiga, PowerPC | ordinateurs personnels et consoles de jeu | ย | ย | ย [33] | ||||
| 1986 | AIX | Unix | IBM | PS/2, RS/6000, PowerPC | ordinateurs personnels, serveurs, stations de travail, superordinateurs | ย | ย [34] | ย | ย | ||
| 1986 | Irix | Unix | SGI | machines de SGI | stations de travail et serveurs | ย | ย | ย | ย | ย | |
| 1986-1996 | NeXTSTEP | Unix | NeXT | Compatible PC, SPARC, Hewlett-Packard | stations de travail | ย | ย | ย | ย | ||
| 1987-2006 | OS/2 | IBM et Microsoft | PS/2 et Compatible PC | ordinateurs personnels | ย | ย | ย | ||||
| 1987 | Minix | Andrew Tanenbaum | Compatible PC, m68k, SPARC | (pรฉdagogique)[N 8] | ย | ย [35] | ย | ||||
| 1989 | Symbian OS[N 9] | Symbian ltd[N 10] | Nokia, Siemens, Samsung, Panasonic | tรฉlรฉphones mobiles, smartphone, assistants personnel | ย [36] | ย | ย | ย | |||
| 1990 | Windows 3.x | Windows | Microsoft | Surcouche logicielle ร DOS | ordinateurs personnels | ย [37] | ย | ย | |||
| 1991 | Solaris | Unix | Sun | machines de Sun et x86/64 | serveurs, stations de travail, superordinateurs | ย | ย | ย | ย | ย | |
| 1991 | GNU/Linux | Unix | (communautaire) | nombreux[N 11] | tous | ย | ย | ย | ย | ย | ย [N 12] |
| 1991[N 13] | Windows NT | Windows | Microsoft | Compatible PC | serveurs, stations de travail, ordinateurs personnels | ย | ย | ย | ย | ย | |
| 1994[N 14] | NetBSD | Unix | (communautaire) | nombreux[N 15] | tous | ย | ย | ย | ย | ย | |
| 1994[N 14] | FreeBSD | Unix | (communautaire) | nombreux[N 16] | tous | ย | ย | ย | ย | ย | |
| 1994[N 14] | OpenBSD | Unix | (communautaire) | nombreux[N 17] | tous | ย | ย | ย | ย | ย | |
| 1996 | Windows CE | Windows | Microsoft | x86, MIPS, ARM[38] | smartphone, assistants personnels, automates industriels | ย [39] | ย | ย | ย | ||
| 1996 | RTX | Intervalzero | x86, x64[40] | ordinateurs industriels | ย | ย | ย | ย | |||
| 2001 | Mac OS X | Unix | Apple | x86, PowerPC d'Apple | ordinateurs personnels, serveurs, station de travail | ย | ย | ย | ย | ย | ย |
| 1999 | BlackBerry OS | Research In Motion | tรฉlรฉphones mobiles de BlackBerry | smartphone | ย | ย | ?? | ?? | |||
| 2008 | Android | Unix | consortium Open Handset Alliance | produits des fabricants de l'Open Handset Alliance | smartphone, tablette รฉlectronique | ย | ย | ย | ย | ?? | ?? |
| 2007 | iOS | Unix | Apple | appareils d'Apple (iPhone, iPod, iPadโฆ) | smartphone, tablette รฉlectronique, baladeur numรฉrique | ย | ย | ย | ?? | ||
| 2007 | Sailfish OS | Unix | Jolla | appareils de la firme Finlandaise Jolla | smartphone, tablette รฉlectronique | ย | ย | ย | ?? |
Le marchรฉ
modifierNรฉe en 1985, la gamme des systรจmes Windows de Microsoft รฉquipe en 2008 prรจs de 90ย % des ordinateurs personnels, ce qui la place en situation de monopole notamment auprรจs du grand public. En 2008, ses parts de marchรฉ sont descendues en dessous de 90ย % pour la premiรจre fois depuis 15ย ans[42]. Puis ร la suite de la croissance trรจs rapide du marchรฉ des smartphones, et du retard pris par Microsoft sur ce marchรฉ, ses parts de marchรฉ sur les appareils personnels sont passรฉes de 95ย % en 2005 ร 20ย % en 2013[43].
Amorcรฉe en 1969, la famille de systรจmes d'exploitation Unix compte plus de 25ย membres[44]. GNU/Linux, BSD et Mac OS X sont aujourd'hui les systรจmes d'exploitation les plus populaires de la famille Unix.
La famille Windows รฉquipe, en 2009, 38ย % des serveurs tandis que la famille Unix en รฉquipe 31ย %, dont ร peu prรจs la moitiรฉ avec GNU/Linux[45]. La famille Unix anime 60ย % des sites web dans le monde[46]. La famille GNU/Linux รฉquipe 100ย % des 500ย superordinateurs du monde[47]. En mai 2019, la famille Unix anime plus de 98ย % des smartphones[48].
Nรฉ en 1990, Symbian OS est en 2007 le systรจme d'exploitation le plus rรฉpandu sur les tรฉlรฉphones mobiles et assistants personnels, avec 67ย % de part de marchรฉ[49].
En 2012, les quatre systรจmes d'exploitation Android de Google, Symbian, iOS de Apple et Blackberry de Research In Motion occupent ensemble 95ย % du marchรฉ des smartphones. Android, le plus populaire (75ย %), est en progression, tandis que les autres sont en recul. Les parts de marchรฉ de Symbian ne sont plus que de 2ย %[50].
Du cรดtรฉ des tablettes tactiles, iOS de Apple รฉtait le premier systรจme d'exploitation largement diffusรฉ avec plus de 80ย % de part de marchรฉ en 2010[51]. Trois ans plus tard sa part de marchรฉ est de 20ย % et celle de Android est de plus de 56ย %[52].
Les serveurs et super-ordinateurs sont majoritairement รฉquipรฉs de systรจmes d'exploitation de la famille UNIX[53].
Choix par l'acheteur
modifierDe nombreux logiciels applicatifs sur le marchรฉ sont construits pour fonctionner avec un systรจme d'exploitation en particulier, ou une famille en particulier et un systรจme d'exploitation est construit pour fonctionner avec une gamme de machines donnรฉe. Pour l'acheteur le choix de la famille de machine limite le choix du systรจme d'exploitation, qui lui-mรชme limite le choix des logiciels applicatifs.
Chaque systรจme d'exploitation, selon la palette de programmes qu'il contient, est construit pour fonctionner avec certains rรฉseaux informatiques. Pour l'acheteur qui possรจde un rรฉseau informatique (typiquement les entreprises et les institutions) le choix du systรจme d'exploitation dรฉpend de son adรฉquation au rรฉseau existant de l'acheteur.
L'utilitรฉ d'un systรจme d'exploitation pour l'usager est proportionnel au nombre de logiciels applicatifs qui sont prรฉvus pour lui. La popularitรฉ รฉlevรฉe d'un systรจme d'exploitation attire les รฉditeurs de logiciels applicatifs, ce qui accroit encore sa popularitรฉ (effet rรฉseau). Ce phรฉnomรจne fait que le marchรฉ est sujet aux situations de monopole.
Apple, Sun Microsystems et Silicon Graphics sont des marques qui fabriquent du matรฉriel informatique et dรฉveloppent des systรจmes d'exploitation pour leur propre matรฉriel. Certains systรจmes d'exploitation, comme Microsoft Windows et Android, sont vendus avec le matรฉriel informatique, conformรฉment ร des accords entre les fabricants.
Concurrence, compatibilitรฉ et interopรฉrabilitรฉ
modifierLa compatibilitรฉ d'un systรจme d'exploitation est sa capacitรฉ ร รชtre utilisรฉ ร la place d'un autre, en particulier ร exรฉcuter les logiciels applicatifs de l'autre. Le systรจme d'exploitation est dit ยซย compatibleย ยป avec l'autre. La compatibilitรฉ au niveau source est la capacitรฉ pour un systรจme d'exploitation A d'exรฉcuter un logiciel applicatif crรฉรฉ pour B aprรจs avoir compilรฉ le code source du logiciel pour la machine A. Et la compatibilitรฉ binaire est la capacitรฉ pour un systรจme d'exploitation A d'exรฉcuter un logiciel applicatif crรฉรฉ pour B tel quel, sans avoir ร le recompiler.
Lโinteropรฉrabilitรฉ est la capacitรฉ pour plusieurs systรจmes ร รชtre utilisรฉs ensemble, par exemple dans un mรชme appareil, ou dans un rรฉseau informatique.
Pour รชtre compatibles, deux systรจmes d'exploitation doivent avoir des points communs, notamment sur l'interface de programmation. La compatibilitรฉ binaire n'est possible qu'entre deux systรจmes d'exploitation qui fonctionnent avec la mรชme famille de processeur.
La compatibilitรฉ et l'interopรฉrabilitรฉ entre les systรจmes d'exploitation sont assurรฉes, par les รฉditeurs, par alignement de leur produit sur des normes industrielles ainsi que des technologies rendues publiques.
Le systรจme d'exploitation Unix, crรฉรฉ en 1969, a servi de source d'inspiration pour toute une famille de systรจmes d'exploitation. Le jeu de la concurrence, trรจs vif dans les annรฉes 1980, a conduit les diffรฉrents membres de la famille Unix ร s'รฉloigner, et perdre la compatibilitรฉ les uns avec les autres. Des organismes de normalisation tels que Open Group se sont penchรฉs sur le problรจme et ont รฉdictรฉ des normes garantissant la compatibilitรฉ ร travers toute la famille Unix.
Entre 1995 et 2007, Microsoft, รฉditeur de la suite de systรจmes d'exploitation Windows a รฉtรฉ l'objet de plusieurs procรจs pour des pratiques anticoncurrentielles nuisant ร la concurrence et ร l'interopรฉrabilitรฉ. La sociรฉtรฉ a รฉtรฉ condamnรฉe par le dรฉpartement de la justice des รtats-Unis pour violation du Sherman Antitrust Act, ainsi que par la Commission europรฉenne pour violation des traitรฉs relatifs ร la concurrence dans l'Union europรฉenne.
La popularisation d'Internet dans les annรฉes 1990 a contribuรฉ ร amรฉliorer l'interopรฉrabilitรฉ entre les systรจmes d'exploitation.
La guerre des Unix et l'Open Group
modifierLe systรจme d'exploitation Unix a รฉtรฉ dรฉveloppรฉ par American Telephone & Telegraph (AT&T). Jusqu'en 1975, un accord avec l'รtat fรฉdรฉral amรฉricain lui interdisait de commercialiser Unix, ayant le monopole de la tรฉlรฉphonie aux รtats-Unis, le code source du systรจme d'exploitation รฉtait par consรฉquent public. Mais en 1975, ce monopole fut attaquรฉ en justice et en 1982, la sociรฉtรฉ รฉtait dรฉmembrรฉe par dรฉcision de justice. AT&T, nรฉe de la fragmentation des activitรฉs dโAmerican Telephone & Telegraph, put enfin commercialiser Unixย : les ingรฉnieurs de la sociรฉtรฉ partirent du code source de la version 7 (ouverte) pour aboutir ร UNIX System V. Simultanรฉment, d'autres รฉditeurs s'inspirรจrent de la version 7 pour crรฉer des systรจmes Unix, notamment l'universitรฉ de Berkeley, avec sa Berkeley Software Distribution[54] (BSD, 1979). Puis ceux-ci ont servi de source d'inspiration pour d'autres systรจmes d'exploitation, et ainsi de suite. En 2009, la famille Unix comptait plus de 25 systรจmes d'exploitation.
Le jeu de la concurrence a conduit chaque รฉditeur ร ajouter ses propres amรฉliorations et ses propres fonctionnalitรฉs ร son systรจme d'exploitation optimisรฉ pour un matรฉriel en particulier. Ceci a amenรฉ les diffรฉrents membres de la famille Unix ร s'รฉloigner, et perdre la compatibilitรฉ l'un avec l'autre.
En 1987, dans le but de rรฉunifier la famille Unix, AT&T conclut un accord avec Sun Microsystems (un des principaux รฉditeurs de systรจme d'exploitation fondรฉ sur BSD). Les autres รฉditeurs ne voyant pas cet accord d'un bon ลil, crรฉent la fondation Open Software Foundation (OSF). Dans un mรชme temps, l'Open Group, un consortium de normalisation, publie des normes relatives aux systรจmes d'exploitation de la famille Unix[55]. Les deux institutions sont aujourd'hui fusionnรฉes.
POSIX est le nom donnรฉ aux normes IEEE 1003. Cette famille de normes appartenant ร l'Open Group a รฉtรฉ lancรฉe en 1988 et concerne l'interface de programmation. La conformitรฉ d'un systรจme d'exploitation ร cette norme assure la compatibilitรฉ au niveau source. En 2009, de nombreux systรจmes d'exploitation sont conformes ร cette norme, y compris en dehors de la famille Unix[56].
POSIX fait partie de la Single Unix Specification, une norme lancรฉe en 1994 par l'Open Group, qui concerne les systรจmes de fichiers, les logiciels utilitaires, ainsi que 1ย 742ย fonctions de l'interface de programmation[57]. Le nom ยซย Unixย ยป appartient ร l'Open Group et tout systรจme d'exploitation doit รชtre conforme ร la Single Unix Specification pour รชtre reconnu comme faisant partie de la famille Unix[58].
Microsoft et la concurrence
modifierEn 1995, conformรฉment au Sherman Antitrust Act โ une loi des รtats-Unis pour la prรฉvention de l'abus de position dominante, le dรฉpartement de la justice des รtats-Unis interdit ร Microsoft certaines de ses pratiques considรฉrรฉes comme nuisibles ร la concurrence. Deux ans plus tard, un procรจs est ouvert pour non-respect des interdictions de 1995ย : Microsoft obtient l'annulation du procรจs sur l'argument que ยซย la justice n'est pas รฉquipรฉe pour juger du bien-fondรฉ du design des produits de haute technologie (sic)ย ยป.
Entre 1999 et 2001, une enquรชte est ouverte concernant la position de Microsoft. L'enquรชte, menรฉe par les juges Thomas Jackson et Richard Posner, amรจne ร la conclusion que Microsoft abuse de sa position de monopole pour pratiquer du ยซย favoritismeย ยป sur le marchรฉ connexe des navigateurs Web, des pratiques qui nuisent ร ses concurrents, gรชnent leur รฉmergence et freinent l'innovation[59]. La sociรฉtรฉ รฉchappe de peu ร la scission, et se retrouve dans l'obligation de publier les spรฉcifications de ses technologies, en particulier les interfaces de programmation et les protocoles rรฉseau, ceci afin de prรฉserver l'interopรฉrabilitรฉ et la concurrence[60].
Plus tard, en 2007, Microsoft est condamnรฉ par la Commission europรฉenne ร une amende de prรจs de 500 millions d'euros pour violation de l'article 82 du traitรฉ CE et l'article 54 de l'accord EEE (textes relatifs au droit de la concurrence et l'abus de position dominante) aprรจs avoir refusรฉ de publier une de ses spรฉcifications techniques ร son concurrent Sun Microsystems[N 18]. Selon la Commission europรฉenne, les agissements de Microsoft nuisent ร l'interopรฉrabilitรฉ des systรจmes d'exploitation et ร la concurrence[61].
Les rรฉseaux informatiques
modifierChaque systรจme d'exploitation comporte une palette de programmes relatifs aux protocoles rรฉseau. La composition de la palette dรฉpend du choix de l'รฉditeur et diffรจre d'un systรจme d'exploitation ร l'autre. Toutefois, deux ordinateurs ne peuvent communiquer ensemble qu'ร la condition unique d'utiliser les mรชmes protocoles.
La popularisation d'Internet dans les annรฉes 1990 a poussรฉ de nombreux รฉditeurs ร inclure dans leur systรจme d'exploitation des programmes relatifs aux protocoles TCP/IP (les protocoles d'Internet), amรฉliorant ainsi l'interopรฉrabilitรฉ entre les systรจmes d'exploitation.
Notes et rรฉfรฉrences
modifierNotes
modifier- โ Plus prรฉcisรฉment, ni le code, ni les donnรฉes, ni la pile n'ont besoin d'รชtre totalement en mรฉmoire centrale.
- โ Le fait de transfรฉrer un segment complet en mรฉmoire de masse est nommรฉ swap out, l'opรฉration inverse swap in.
- โ D'abord sous forme de tรฉlรฉscripteurs, puis de terminaux passifs.
- โ Le langage C est un langage de programmation souvent utilisรฉ pour les systรจmes d'exploitation en raison de sa puissance et du contrรดle total qu'a le programmeur sur la mรฉmoire (A. Tanenbaum, Systรจmes d'exploitation, 1.8).
- โ Ce mรฉcanisme qui permet au systรจme d'interrompre un programme en cours d'exรฉcution est nommรฉ prรฉemption (A. Tanenbaum, ibid., 2.4.1, p.ย 140).
- โ La totalitรฉ du code source se trouve dans son livre Operating Systemsย : Design and Implementation.
- โ L'รฉlimination des limitations de Minix aurait rendu le code source trop difficile ร lire et ร comprendre par les รฉtudiants en un semestre (A. Tanenbaum, ibid., 10.1.7, p.ย 766).
- โ Andrew Tanenbaum, enseignant, utilisait le code source de Minix pour illustrer ses cours sur les systรจmes d'exploitation.
- โ anciennement appelรฉ EPOC.
- โ rachetรฉ ร Psion.
- โ Compatible PC, Macintosh, DEC Alpha, Sparc, Itanium, m68k, etc.
- โ Via la branche du noyau Linux-rt.
- โ Entre 1986 et 1991, les produits de la famille Windows รฉtaient des environnements graphiques pour le systรจme d'exploitation DOS.
- Scission du projet 386BSD.
- โ Plus de 50 types de machines. Cf. (en) Liste des plateformes compatibles avec NetBSD.
- โ Compatible PC, ARM, MIPS, Macintosh, DEC Alpha, Sparc, Itanium, Sun Microsystems, Xbox.
- โ Compatible PC, ARM, DEC Alpha, Sparc, etc.
- โ L'รฉchange de spรฉcifications est une pratique courante dans le marchรฉ informatique.
Rรฉfรฉrences
modifier- (en) Brian L. Stuart, Principles of Operating Systems: Design & Applications, Cengage Learning EMEA, 2008 (ISBNย 978-1418837693).
- (en) I. A. Dhotre, Operating Systems, Technical Publications, 2009 (ISBNย 978-8-1843-1644-5).
- (en) Achyut S. Godbole et Atul Kahate, Operating Systems, 3e ed., Tata McGraw-Hill Education, 2011 (ISBNย 978-0-0707-0203-5).
- โ (en) ยซย Operating System Market Share Worldwideย ยป, sur StatCounter Global Stats (consultรฉ le 29 aoรปt 2022)
- โ (en) ยซย Mobile Operating System Market Share Worldwideย ยป, sur StatCounter Global Stats (consultรฉ le 29 aoรปt 2022)
- โ (en) ยซย Desktop Operating System Market Share Worldwideย ยป, sur StatCounter Global Stats (consultรฉ le 29 aoรปt 2022)
- โ (en) ยซย Tablet Operating System Market Share Worldwideย ยป, sur StatCounter Global Stats (consultรฉ le 29 aoรปt 2022).
- (en) Pabitra Pal Choudhury, Operating Systems: Principles and Design, Prentice-Hall of India Pvt. Ltd, 2009 (ISBNย 978-8-1203-3811-1).
- (en) Sibsankar Haldar et Alex A. Aravind, Operating Systems, Pearson Education India, 2010 (ISBNย 9788131730225).
- (en) Jose Garrido, Richard Schlesinger et Kenneth Hoganson, Principles of Modern Operating Systems,Jones & Bartlett Publishers, 2011 (ISBNย 9781449626341).
- (en) Operating Systems, Technical Publications (ISBNย 9788184315622).
- (en) Balagurusamy, Fund Of Computers, Tata McGraw-Hill Education (ISBNย 9780070141605).
- (en) Operating Systems: Principles And Design, PHI Learning Pvt. Ltd., 2009 (ISBNย 9788120338111).
- โ (en) George A. Anzinger et Adele M. Gadol, ยซย A Real-Time Operating System with Multi-Terminals and Batch/Spool capablitiesย ยป, HP journal,โ 1975 (lire en ligne [PDF]).
- โ (en) Pramod Chandra P. Bhatt, An Introduction To Operating Systems: Concepts and Practice, 2d Ed., Prentice-Hall of India Pvt. Ltd, 2007 (ISBNย 9788120332584).
- โ (en) Amjad Umar, Third Generation Distributed Computing Environments, NGE Solutions Inc, 2004 (ISBNย 9780975918210).
- (en) Godbole, OPERATING SYSTEM 3E, Tata McGraw-Hill Education, 2011, (ISBNย 9780070702035).
- โ ยซย MIT - General Electric, Honeywell-Bull - MULTICSย ยป, sur feb-patrimoine.com (consultรฉ le 30 septembre 2013).
- โ (en) Ayan Moumina, ยซย History of operating systemsย ยป [PDF] (consultรฉ le 30 septembre 2013).
- โ (en) Mark Bellis, ยซย Putting Microsoft on the Map - History of the MS-DOS Operating Systems, IBM & Microsoftย ยป, sur about.com (consultรฉ le 30 septembre 2013).
- โ (en) ยซย History of the graphical user interfaceย ยป, sur sensomatic.com (consultรฉ le 30 septembre 2013).
- โ ยซย L'annonce originale du projet GNUย ยป, sur gnu.org, 27 septembre 1983 (consultรฉ le 30 septembre 2013).
- โ (en) Richard Stallman, ยซย The Hurd and Linuxย ยป (consultรฉ le 30 septembre 2013).
- โ (en) Josh Schneider, ยซย Finding aid to the Berkeley Software Distributionย ยป [PDF] (consultรฉ le 30 septembre 2013), p.ย 3.
- โ (en) Elizabeth U. Harding, ยซย Unix pioneer ends BSD researchย ยป, Software Magazine,โ octobre 1992 (lire en ligne).
- โ (en) Linus Torvalds, ยซย Release notes for Linux v0.12ย ยป, The Linux Kernel Archives, 5 janvier 1992 (consultรฉ le 30 septembre 2013).
- โ (en) Working group on Libre Software, Free Softwareย : Open Sourceย : Information Society Opportunities for Europe?, avril 2000 (lire en ligne), ยซย A brief history of open open source softwareย ยป.
- โ (en) Michael Kifer, Scott Smolka,Introduction to Operating System Design and Implementation: The OSP 2 Approach, Springer Science & Business Media - 2007, (ISBNย 9781846288432).
- (en)Operating Systems: Principles And Design,PHI Learning Pvt. Ltd., 2009, (ISBNย 9788120338111).
- (en) Er. Vivek Sharma - Er. Manish Varshney et Shantanu Sharma,Design and Implementation of Operating System,Laxmi Publications, Ltd. - 2010, (ISBNย 9789380386416).
- (en) Brian L. Stuart,Principles of Operating Systems: Design & Applications,Cengage Learning EMEA - 2008, (ISBNย 9781418837693).
- โ ยซย Thรฉorie des systรจmes d'exploitationย : Introductionย ยป, sur doc.esaip.org (consultรฉ le 18 janvier 2018), p.ย 7.
- โ (en) ยซย Amiga Operating System Freqently Asked Questionsย ยป, sur CineReal, 2005 (consultรฉ le 30 septembre 2013).
- โ (en) ยซย IBM AIX Systems management - Desktopย ยป, IBM (consultรฉ le 30 septembre 2013).
- โ (en) Andy Tanenbaum, ยซย Introduction to Minix 3ย ยป, OSNews, 25 septembre 2006 (consultรฉ le 30 septembre 2013).
- โ (en) John Pagonis, ยซย Symbian OS Presentationย ยป [PDF], 2 mars 2004 (consultรฉ le 30 septembre 2013).
- โ (en) ยซย Kernel.exe Describes the Kernel and VxD for Windows 95ย ยป, sur support.microsoft.com (consultรฉ le 30 septembre 2013).
- โ (en) ยซย Windows CE and Windows Mobile Timelineย ยป (version du 30 avril 2012 sur Internet Archive).
- โ (en) ยซย Windows CE Kernel servicesย ยป, Microsoft Developper Network (consultรฉ le 30 septembre 2013).
- โ ยซย Actualitรฉ des systรจmes embarquรฉsย ยป, sur lembarque.com (consultรฉ le 13 avril 2023).
- โ ยซย Chiffres clรฉsย : les systรจmes dโexploitation sur PCย ยป.
- โ (en) ยซย Windows market share drop to 15 years lowย ยป, TG Daily (consultรฉ le 30 septembre 2013).
- โ (en) Sebastian Anthony, ยซย Microsoft's share of the consumer market has dropped from 95% to 20% in 8 yearsย ยป, ExtremeTech (consultรฉ le 30 septembre 2013).
- โ (en) ยซย Unix Flavor Listย ยป, sur about.com (consultรฉ le 30 septembre 2013).
- โ (en) Jeff Drew, ยซย IDC report: IBM widens lead as server market shrinks againย ยป, Triangle Business Journal, 2 septembre 2009 (consultรฉ le 30 septembre 2013).
- โ (en) ยซย Usage of operating systems for websitesย ยป, W3Techs - Web Technology Surveys, septembre 2013 (consultรฉ le 30 septembre 2013).
- โ (en) ยซย Operating system family System shareย ยป, sur Top500 dot org (consultรฉ le 27 juin 2019).
- โ (en) ยซย Operating system market share worldwideย ยป, sur Marketshare (consultรฉ le 27 juin 2019).
- โ ยซย Canalys, 115 millions de smartphones en 2007ย ยป, GNT - portail des nouvelles technologies et du jeu (consultรฉ le 30 septembre 2013)ย : ยซย Sur l'ensemble de l'annรฉe, le systรจme d'exploitation Symbian occupe 67ย % de parts de marchรฉ, Windows Mobile 13ย % et RIM 10ย %ย ยป.
- โ (en) Emil Protalinski, ยซย Android grabs 75% market share in Q3, followed by 14,9% for iOS and 4,3% for BlackBerryย ยป, TheNextWeb (consultรฉ le 30 septembre 2013).
- โ ยซย Tablettes tactilesย : 83,9ย % de part de marchรฉ pour Apple iOSย ยป, Journal du Net, 11 avril 2011 (consultรฉ le 30 septembre 2013).
- โ (en) ยซย Worldwide Tablet Market Surges Ahead on Strong First Quarter Sales, Says IDCย ยป, International Data Corporation, 1er mai 2013 (consultรฉ le 30 septembre 2013).
- โ (en) ยซย Linux Rules Supercomputersย ยป, sur forbes.com, 15 mars 2005 (consultรฉ le 30 septembre 2013)ย : ยซย Linux now has become so technically powerful that it lays claim to a prestigious titleโit runs more of the worldโs top supercomputersย ยป.
- โ (en) Michael Kerrisk, The LINUX Programming Interface, San Francisco, No starch Press, 2010, 1508ย p. (ISBNย 978-1-59327-220-3, lire en ligne), ยซย History and Standardsย ยป, p.ย 3.
- โ (en) ยซย Unix history and timelineย ยป, sur unix.org (consultรฉ le 30 septembre 2013).
- โ (en) ยซย POSIX.1 FAQย ยป, sur opengroup.org, 5 octobre 2011 (consultรฉ le 30 septembre 2013).
- โ (en) ยซย Single Unix specification FAQย ยป, sur opengroup.org, 5 octobre 2011 (consultรฉ le 30 septembre 2013).
- โ (en) ยซย What is UNIXย ยป, sur opengroup.org (consultรฉ le 30 septembre 2013).
- โ (en) Jeffrey August Eisenach et Thomas M. Lenard, Competition, innovation, and the Microsoft monopoly, Springer, 1999, (ISBNย 9780792384649).
- โ (en) Nicholas Economides, ยซย Microsoft Antitrust, a case studyย ยป [PDF], avril 2003 (consultรฉ le 30 septembre 2013).
- โ ยซย Procรฉdure d'application de l'article 82 du traitรฉ CE et de l'article 54 de l'accord EEE engagรฉe contre Microsoft Corporationย ยป, sur EUR-Lex.com, 24 mai 2004 (consultรฉ le 30 septembre 2013).
A.Tanenbaum, Systรจmes d'exploitation
modifierBibliographie
modifier- Andrew Tanenbaum, Systรจmes dโexploitation, Pearson, 2008, 3eย รฉd. [dรฉtail de lโรฉdition]
- Laurent Bloch, Les Systรจmes dโexploitation des ordinateurs. Histoire, fonctionnement, enjeux, Vuibert, 2003, 314ย p. (ISBNย 978-2-7117-5322-2) [lire en ligne]
Voir aussi
modifierArticles connexes
modifier- Ordonnancement
- Pilote informatique
- Interruption
- Systรจme de fichiers
- Environnement de bureau
- Noyau de systรจme dโexploitation
- Liste des noyaux de systรจmes dโexploitation
- Liste des systรจmes dโexploitation
- Systรจme d'exploitation temps rรฉel
- Catรฉgorie:Systรจme d'exploitation
- Systรจme d'exploitation distribuรฉ
Liens externes
modifier
- Notices dans des dictionnaires ou encyclopรฉdies gรฉnรฉralistesย :
- Notion sur les systรจmes dโexploitation - Comment รงa marche
- Lโascension des systรจmes dโexploitation Microsoft - Gรฉnรฉration-NT, 29 novembre 2005
- (en) La Bible Internet des systรจmes dโexploitationย : principes, historique, familles, spรฉcificationsโฆ








