les systèmes d'exploitation

232
PDF générés en utilisant latelier en source ouvert « mwlib ». Voir http://code.pediapress.com/ pour plus dinformations. PDF generated at: Wed, 04 Jul 2012 11:52:07 UTC Les Systèmes d'Exploitation

Upload: mordinateur

Post on 19-Jun-2015

4.914 views

Category:

Documents


5 download

DESCRIPTION

N'avez-vous jamais eu envie d'en savoir plus sur Windows, Linux et Mac OS?

TRANSCRIPT

Les Systmes d'Exploitation

PDF gnrs en utilisant latelier en source ouvert mwlib . Voir http://code.pediapress.com/ pour plus dinformations. PDF generated at: Wed, 04 Jul 2012 11:52:07 UTC

ContenusArticlesDfinitionsSystme d'exploitation Environnement graphique Noyau de systme d'exploitation 1 1 21 24 36 36 43 51 76 86 90 92 100 100 118 126 129 151 159 168 179 188 199 205 209

Les Systmes propritairesMicrosoft Windows Windows XP Windows Vista Windows 7 Windows 8 Mac OS Mac OS X

Les Systmes libresLogiciel libre Noyau Linux GNU Linux Distribution Linux Liste des distributions Linux Debian Ubuntu SUSE Linux Mint Red Hat Enterprise Linux Fedora (Linux)

RfrencesSources et contributeurs de larticle Source des images, licences et contributeurs 223 227

Licence des articlesLicence 230

1

DfinitionsSystme d'exploitationEn informatique, un systme d'exploitation est un ensemble de programmes qui dirige l'utilisation des capacits d'un ordinateur par les logiciels applicatifs[1]. Il reoit de la part des logiciels applicatifs des demandes d'utilisation des capacits de l'ordinateur - capacit de stockage des mmoires et des disque durs, capacit de calcul du processeur. Le systme d'exploitation accepte ou refuse de telles demandes, puis rserve les ressources en question pour viter que leur utilisation n'interfre avec d'autres demandes provenant d'autres logiciels[1]. Le systme d'exploitation est le premier programme excut lors de la mise en marche de l'ordinateur[2]. Il offre une suite de services gnraux qui facilitent la cration de logiciels applicatifs et sert d'intermdiaire entre ces logiciels et le matriel informatique[1]. Un systme d'exploitation apporte commodit, efficacit et capacit d'volution, permettant d'introduire de nouvelles fonctions et du nouveau matriel sans remettre en cause les logiciels[2]. Il existe sur le march des dizaines de systmes d'exploitation diffrents[2]. Ils sont souvent livrs avec l'appareil informatique[3] - c'est le cas de Windows, Mac OS, Irix ou Symbian OS. Les fonctionnalits offertes diffrent d'un modle l'autre, et sont typiquement en rapport avec l'excution des programmes, l'utilisation de la mmoire centrale, des priphriques, la manipulation des systmes de fichiers, la communication, ou la dtection d'erreurs[2]. La dfinition des systmes d'exploitation est rendue floue par le fait que les vendeurs de tels produits considrent comme tant le systme d'exploitation la totalit du contenu de leur produit, y compris les vidos, les images et les logiciels applicatifs qui l'accompagnent[1]. En 2010 les deux familles de systmes d'exploitation les plus populaires sont la famille Unix (dont Mac OS X et Linux) et la famille Windows, celle-ci dtenant un quasi-monopole sur les ordinateurs personnels, avec prs de 90 % de part de march depuis 15ans[4].

Systme d'exploitation

2

FonctionnalitsLe systme d'exploitation offre une suite de services gnraux qui facilitent la cration 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'excuter des programmes, de lire et crire des informations, de manipuler les fichiers, de communiquer entre ordinateurs et de dceler des erreurs[2]. Ces services permettent plusieurs usagers et plusieurs programmes de se partager les ressources de l'ordinateur[5]. l'utilisation des priphriques. Chaque priphrique a ses propres instructions, avec lesquelles il peut tre manipul. Le systme d'exploitation tient compte de cela. Il permet au programmeur de manipuler le priphrique par de simples demandes de lecture ou d'criture, lui vitant la perte de temps de traduire les oprations en instructions propres au priphrique[5]. Accs aux fichiers: en plus des instructions propres chaque priphrique (lecteur de disquette, disque dur, lecteur de CD-ROM), le systme d'exploitation tient compte du format propre chaque support servant au stockage de fichiers. Il offre galement des mcanismes de protection permettant de contrler quel utilisateur peut manipuler quel fichier[5]. L'accs aux ressources: Une des fonctions du systme d'exploitation est de protger les ressources contre l'utilisation par des personnes non autorises, et de rsoudre les conflits lorsque deux utilisateurs demandent simultanment la mme ressource[5]. Dtection et rcupration en cas d'erreur: lorsqu'une erreur survient, que cela soit du matriel ou du logiciel, le systme d'exploitation traite l'erreur en adoucissant son impact sur le systme informatique. Il peut tenter de recommencer l'opration, arrter l'excution du programme fautif, ou signaler le problme l'utilisateur[5].Le systme d'exploitation est un intermdiaire entre les logiciels d'application et le matriel.

Relations dans un systme d'exploitation moderne

Contrle. Un systme d'exploitation peut tenir des statistiques d'utilisation des ressources, surveiller la performance, et les temps de rponse[5]. Le systme d'exploitation assure la rservation des diffrentes ressources pour les besoins des programmes, qui sont excuts simultanment. Les rservations peuvent tre inscrites dans des journaux d'activits des fins de statistiques ou de dpannage et le systme d'exploitation peut refuser une rservation un utilisateur qui n'a pas reu pralablement d'autorisation[2]. Le matriel informatique peut excuter des instructions, mais celles-ci sont rarement plus que des copies et des additions. La traduction d'oprations complexes en suite d'instructions est une tche fastidieuse qui incombe au systme d'exploitation[5]. Le systme d'exploitation prend en charge toute la manipulation du matriel et le logiciel applicatif ne peut pas voir la diffrence entre une machine simple, rudimentaire et une machine riche et complexe : Les mmes services sont offerts dans les deux cas[1]. Le systme d'exploitation facilite le travail de programmation en fournissant une suite de services qui peuvent tre utiliss par les logiciels applicatifs[1]. Du point de vue du programmeur, son logiciel applicatif regarde vers le bas, en direction du systme d'exploitation et du matriel et les programmes sont considrs comme fonctionnant sur le

Systme d'exploitation systme d'exploitation. Un systme d'exploitation peut ainsi tre vu comme une machine virtuelle. L'ensemble matriel + systme d'exploitation forme la "machine" qui excute le logiciel applicatif, une machine en partie simule par du logiciel[1].

3

TypologieIl existe cinq gnrations de systme d'exploitation: les systmes d'exploitation batch, multiprogramms, en temps partag, temps rel et distribus. Chacun des principes mis en uvre dans une gnration se retrouve dans les gnrations suivantes[5]. Un systme batch est prvu pour excuter l'un aprs l'autre des grands calculs, avec peu d'intervention utilisateur[2]. partir de la gnration des systmes d'exploitation multiprogramms, plusieurs programmes sont excuts simultanment par planification (scheduling): Dans ces systmes d'exploitation multitches, plusieurs programmes rsident en mmoire centrale et le systme d'exploitation suspend rgulirement l'excution d'un programme pour continuer l'excution d'un autre[5]. Dans la gnration des systmes multiprogramms, l'excution simultane de plusieurs programmes vise l'utilisation efficace de la puissance de calcul du processeur. Dans la gnration des systmes en temps partag l'excution simultane de plusieurs programmes vise rpondre rapidement aux demandes de plusieurs utilisateurs en communication directe avec l'ordinateur[5]. Un systme d'exploitation temps rel doit garantir que toute opration se termine dans un dlai donn, en vue de garantir la russite du dispositif dans lequel l'ordinateur est utilis[2]. Un systme distribu dirige l'utilisation des ressources de plusieurs ordinateurs la fois. Il utilise les capacits d'un rseau informatique, contrle un groupe de machines, et les fait apparatre comme une machine unique, imaginaire, de trs grande capacit[2]. Chaque systme d'exploitation est conu pour fonctionner avec une gamme particulire de machines (type de processeur, constructeur, architecture). Si un systme d'exploitation est disponible pour plusieurs gammes de machines diffrentes, alors le mme code source est compil [6] et adapt chaque gamme de machines. La palette de pilotes inclus dans le systme d'exploitation est adapte au matriel informatique disponible sur le march pour cette gamme de machines.

Premire gnration: les batchLes systmes d'exploitation bass sur les batchs[7] sont apparus dans les annes 1950. Dans ces systmes le principal dispositif d'entre sont les cartes perfores. Un programme (avec ses donnes) n'est autre qu'une pile de cartes. L'excution d'un programme consiste demander un oprateur de placer la pile de cartes dans le lecteur, puis l'oprateur inverse quelques interrupteurs pour lancer l'excution du programme. Le processeur n'est pas utilis durant les manipulations de l'oprateur[5][Quoi?]. Un batch est un lot de travaux effectuer. L'oprateur compose un batch en posant les unes sur les autres les piles de cartes des diffrents programmes (avec leur donnes) demands par les utilisateurs. Il forme une grande pile de cartes spares par des marque-page[8] qu'il place ensuite dans le lecteur. Le regroupement de plusieurs programmes en un batch diminue les interventions de l'oprateur[5]. Dans un systme bas sur les batch le cur du systme d'exploitation est un programme moniteur, qui rside continuellement en mmoire centrale, et qui permet l'oprateur de demander de commencer ou d'arrter l'excution du lot. la fin de l'excution de chaque tche du lot, le moniteur effectue des travaux de nettoyage, puis lance l'excution de la tche suivante. L'oprateur intervient ainsi uniquement au dbut et la fin du lot[5].

Systme d'exploitation Dans ces systmes d'exploitation les commandes ajoutes au marque-pages, formules dans le langage JCL (Job Control Language) sont un des seuls moyens qu'a l'utilisateur d'interagir avec le systme d'exploitation[5]. Les systmes d'exploitation batch sont adapts des applications o il y a de trs gros calculs avec trs peu d'implication de l'utilisateur: mto, statistiques, impts... Les utilisateurs n'attendent pas les rsultats, soumettent les demandes, puis reviennent un peu plus tard collecter les rsultats[5]. En raison de la grande diffrence de vitesse entre le processeur et les priphriques, dans un systme d'exploitation batch le processeur est inutilis 90 % du temps parce que les programmes attendent qu'un priphrique ou un autre termine les oprations. Avec de tels systmes d'exploitation il n'y a pas de concurrence entre les diffrentes tches, la mise en uvre de l'utilisation du processeur, de la mmoire et des priphriques est par consquent triviale[5].

4

Deuxime gnration: la multiprogrammationLes systmes d'exploitation multiprogramms sont apparus dans les annes 1960. Le but recherch de tels systmes est d'augmenter l'efficacit de l'utilisation du processeur et des priphriques en utilisant la possibilit de les faire fonctionner en parallle. Plusieurs programmes sont placs en mmoire centrale, et lorsque le programme en cours d'excution attend un rsultat de la part d'un priphrique, le systme d'exploitation ordonne au processeur d'excuter un autre programme[5]. Dans les systmes d'exploitation multiprogramms, l'utilisation du processeur est partage par planification (scheduling): chaque utilisation d'un priphrique, le systme d'exploitation choisit quel programme va tre excut. Ce choix se fait sur la base de priorits. Le systme d'exploitation comporte un mcanisme de protection qui vite que le programme en cours d'excution lit ou crit dans la mmoire attribue un autre programme. Les programmes sont excuts dans un mode non-privilgi, dans lequel l'excution de certaines instructions est interdite[5]. Les systmes multiprogramms ncessitent un ordinateur et des priphriques qui mettent en uvre la technique du DMA (direct memory access): Par cette technique le processeur ordonne un priphrique d'effectuer une opration; le rsultat de l'opration est plac en mmoire centrale par le priphrique pendant que le processeur excute d'autres instructions. Dans les systmes multiprogramms tout comme les systmes batch l'utilisateur n'a que peu de contact avec les programmes et de maigres possibilits d'intervention[5].

Troisime gnration: le temps partagLes systmes d'exploitation en temps partag sont apparus dans les annes 1970. Ils sont utiliss dans des dispositifs interactifs o plusieurs utilisateurs sont simultanment en dialogue avec l'ordinateur. Un systme d'exploitation en temps partag est destin rpondre rapidement aux demandes de l'utilisateur, et donner chaque utilisateur l'impression qu'il est le seul utiliser l'ordinateur[5]. Un systme en temps partag met en uvre des techniques sophistiques de multiprogrammation en vue de permettre l'utilisation interactive de l'ordinateur pas plusieurs usagers et plusieurs programmes simultanment[2]. L'arrive de cette nouvelle gnration de systmes d'exploitation en 1970 rsulte d'une forte demande des consommateurs et de la baisse du prix du matriel informatique qui a rendu possible sa ralisation[5]. Dans les systmes d'exploitation en temps partag la notion de batch n'a que peu d'importance. Ces systmes mettent en uvre de nouveaux mcanismes d'utilisation du processeur et de la mmoire, ce qui leur permet de rpondre rapidement des demandes provenant simultanment d'un grand nombre d'utilisateurs[5]. Dans ces systmes, tout comme dans la gnration prcdente, l'utilisation du processeur est planifie. Cependant contrairement aux systmes de la gnration prcdente, dans les systmes en temps partag chaque programme est excut durant une tranche de temps dtermin, puis le systme d'exploitation bascule sur l'excution d'un autre programme, ce qui vite qu'un programme monopolise l'utilisation du processeur au service d'un utilisateur, entrainant des retards pour les autres usagers[5].

Systme d'exploitation Les systmes d'exploitation en temps partag mettent en uvre la technique du swap: lorsque le programme en cours d'excution a besoin de plus de mmoire que ce qui est disponible, alors un autre programme inactif est retir pour gagner de la place; le programme inactif est enregistr temporairement sur le disque dur. L'enregistrement sur disque provoque cependant une perte de temps non ngligeable[5]. En 2011 de nombreux systmes d'exploitation sont bass sur Unix, un systme en temps partag[3].

5

Quatrime gnration: le temps relLes systmes d'exploitation temps-rel sont apparus dans les annes 1980. Ils sont destins aux dispositifs qui doivent non seulement donner des rsultats corrects, mais les donner temps, c'est--dire dans un dlai dtermin. Les systmes d'exploitation temps rel sont souvent utiliss par des ordinateurs relis un appareil externe, o un retard de rponse de l'ordinateur entranerait un chec de l'appareil: pilotes automatiques, les robots industriels, les applications vido et audio[5]. Dans les systme d'exploitation temps rel l'accent est mis sur la dure ncessaire pour effectuer chaque opration: rpondre aux demandes rapidement en vue de satisfaire aux contraintes de temps du systme dans lequel il va tre utilis[5]. Certains services offerts par ces systmes d'exploitation sont raliss comme des logiciels applicatifs, et sont excuts en concurrence avec ceux-ci. Un systme d'exploitation temps rel autorise un contact direct entre les logiciels applicatifs et les priphriques. Dans certains systmes temps rel les ressources sont rserves l'avance, ce qui vite les ralentissements que provoqueraient les rservations la vole, et garantit que les ressources seront continuellement disponibles[5]. Les systmes d'exploitation temps-rel vitent d'utiliser la technique du swap en raison des risques de dpassement des dlais[5]. Windows CE, Embedded Linux, Symbian OS, PalmOS et VxWorks sont des systmes d'exploitation temps rel[9].

Cinquime gnration: les systmes distribusLa baisse des prix du matriel informatique a permis, dans les annes 1990, la cration de systmes informatiques composs de plusieurs ordinateurs, et donc plusieurs processeurs, plusieurs mmoires, et de nombreux priphriques. Un systme distribu permet le partage des ressources entre les ordinateurs. Un utilisateur d'un ordinateur bon march peut se servir de ressources coteuses qui existent sur un autre ordinateur[5]. Mach, Amoeba, Andrew, Athena, et Locus sont des systmes d'exploitation distribus. Ils ont tous t dvelopps par des universits[10].

HistoireDans les annes 1940 les ordinateurs taient programms par manipulation d'interrupteurs bascule, puis plus tard par l'introduction d'une pile de cartes perfores dans un lecteur dont la mcanique tait similaire celles des pianos mcaniques - technique appele mcanographie. Les ordinateurs des annes 1940 1960, trs coteux, taient la proprit des entreprises et des institutions. Chaque utilisateur avait le droit d'utiliser l'ordinateur pendant un temps limit. Ce temps tait souvent dtermin par une horloge murale ou une pointeuse, et l'utilisateur avait alors disposition la totalit du matriel de l'ordinateur. Il apportait avec lui une pile de cartes perfores qui contenait les instructions du ou des programmes excuter. Les ordinateurs de cette poque effectuaient une seule tche la fois, au service d'un seul utilisateur. Les programmes pour ces ordinateurs contenaient toutes les instructions ncessaires pour manipuler le matriel de l'ordinateur. Si la logithque pour cet ordinateur comportait cinquante programmes, les instructions ncessaires pour manipuler le matriel se retrouvaient dans chacun de ces cinquante programmes.

Systme d'exploitation Avec l'agrandissement de la logithque, l'ide est venue d'isoler les instructions routinires dans un programme spar, programme qui rsiderait continuellement dans la mmoire, quel que soit le programme en cours d'excution. Ce programme tait un systme d'exploitation, sous sa forme la plus rudimentaire.

6

1960, la multiprogrammationLes ordinateurs des annes 1960 avaient en gnral comme priphrique un lecteur de carte perfore, une imprimante et un disque dur. Les ingnieurs ont constat que les ordinateurs passaient plus de temps attendre qu'un priphrique termine son travail qu' excuter des instructions. Les systmes d'exploitation ont alors t conus de manire permettre l'excution de plusieurs programmes la fois. D'abord, les programmes taient chargs en mmoire pour y rsider simultanment. Le premier programme tait excut, puis, lorsqu'il avait besoin d'attendre qu'un priphrique se libre, le systme d'exploitation enchanait sur l'excution du deuxime programme, puis le troisime et ainsi de suite. Cette technique, dite de multiprogrammation, est le prcurseur du multitche des systmes d'exploitation d'aujourd'hui, proche du multitche coopratif qui a t utilis jusque dans les annes 1990. En 1965 le Massachusetts Institute of Technology se lance dans la cration du premier systme d'exploitation multitche et multi-utilisateurs : Multics (pour MULTiplexed Information and Computing Service[11] ou service multiplex d'information et de calcul). Sur le principe de la multiprogrammation, le systme d'exploitation autorisait le chargement de plusieurs programmes en mmoire et grait le passage de l'un l'autre, mais cette fois-ci sans attendre le blocage d'un programme[12]. Chaque programme tait excut pendant une dure de quelques millisecondes, puis le systme passait au suivant. Ce temps, trs court, donnait l'illusion que les programmes s'excutaient simultanment - une illusion qui existe encore avec les systmes 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 simultanment plusieurs personnes augmentait le retour sur investissement de l'achat de matriel trs coteux par les entreprises et les institutions. Mais, crit en langage de programmation PL/I et trop complexe pour les ordinateurs de l'poque, Multics fut un chec commercial. Il a cependant inspir en grande partie la gamme de systmes GCOS dvelopps conjointement par Honeywell et Bull[13]. En 1969, les ingnieurs Ken Thompson et Dennis Ritchie des laboratoires Bell rvent d'utiliser le systme d'exploitation Multics, mais le matriel pour le faire fonctionner est tout simplement hors de prix. Thompson se lance dans l'criture d'une version allge de Multics pour un PDP-7 inutilis. Le systme, fonctionnel, est surnomm Unics (pour UNiplexed Information and Computing Service[14]), puis finalement baptis UNIX. Rapidement reprogramm dans un langage de programmation plus appropri (le C, dvelopp par Ritchie pour l'occasion), UNIX se rvle particulirement simple porter sur de nouvelles plateformes, ce qui assure son succs[15],[16],[17].

1972, Les micro-ordinateursSorti en 1972, le Micral de la socit R2E est le premier micro-ordinateur du monde. il est quip d'un processeur Intel 8008 et du systme d'exploitation SYSMIC - appel alors moniteur d'exploitation. Le systme d'exploitation SYSMIC sera plus tard renomm PROLOGUE lors du rachat de la socit par Bull en 1978. Sorti en 1975, l'Altair 8800 est un micro-ordinateur livr en kit au prix approximatif de 400$, et comme le Micral il se programmait en inversant une srie d'interrupteurs bascule situs sur la face avant de l'appareil. Le prix de l'Altair 8800 le rendait accessible aux particuliers mais son utilisation complique (qui rappelle les ordinateurs centraux des annes 1940) limitait son utilisation des passionns et des hobbyistes. cette poque, les micro-ordinateurs n'avaient pas une puissance de calcul suffisante pour tre quips d'un systme d'exploitation comme Unix ou OS/360. Gary Kildall, ingnieur pour Intel cre CP/M, le premier systme d'exploitation pour micro-ordinateur.

Systme d'exploitation En 1980, IBM prend contact avec Bill Gates, co-fondateur de la socit Microsoft, pour l'adaptation du langage BASIC son nouveau micro-ordinateur, le Personal Computer (abrg PC). IBM est galement la recherche d'un systme d'exploitation, et Gates conseille la socit de se tourner vers CP/M. Mais Gary Kildall refuse de signer le contrat avec IBM. Bill Gates saute sur l'occasion : il rachte QDOS un systme d'exploitation quick-and-dirty pour les processeurs Intel 8086 pour proposer IBM le package DOS/BASIC. Aprs quelques modifications effectues la demande d'IBM, le systme est baptis MS-DOS[18],[19]. C'est la mme poque que Steve Jobs et Steve Wozniak fondent la startup Apple Computer, avec comme optique de faire du micro-ordinateur un produit grand public aussi facile d'usage que n'importe quel appareil lectrique. Xerox, une des socits majeures de l'poque s'intresse l'optique de Steve Jobs, runit une poigne de scientifiques et d'ingnieurs dans son centre de recherche de Palo Alto et, sur la base de thses et d'tudes en ergonomie effectues les annes auparavant, dveloppe le premier micro-ordinateur quip d'une interface utilisateur graphique. Le rsultat des recherches, le Xerox Star ne sera jamais commercialis et c'est Apple qui, dix ans plus tard, avec le Macintosh, popularise les recherches effectues par Xerox[20].

7

1990, les systmes d'exploitation sous licence libreArticle connexe : licence libre. En 1983, Richard Stallman du Massachusetts Institute of Technology lance l'ide d'un systme d'exploitation sous licence libre : GNU[21]. Il dveloppe des outils de programmation, des logiciels utilitaires, et cre la GNU General Public License - un contrat de licence qui autorise une utilisation sans restrictions ainsi que la publication du code source, sa modification, et sa redistribution. Le succs est immdiat, mais le systme ne possde toujours pas, en 1990, de noyau libre, et les tentatives pour en dvelopper un sont loin d'tre abouties[22]. En 1987, Andrew Tanenbaum, professeur l'universit libre d'Amsterdam a cr le systme d'exploitation Minix, clone d'UNIX dont le code source tait destin illustrer son cours sur la construction des systmes d'exploitation[23]. Mais Minix, vocation pdagogique, comportait de trop nombreuses limitations techniques, et ne permettait pas une utilisation pousse[24]. Inspir par les travaux de Tanenbaum, Linus Torvalds, tudiant l'universit d'Helsinki se lance alors dans le dveloppement de son propre noyau : Linux, qui est la base une rcriture de Minix. La toute premire version (0.01) sort en 1991, Linux passe sous licence GNU en 1992[25] et il faut attendre 1994 pour voir la version 1.0[26] qui donne naissance la distribution d'un systme d'exploitation entirement libre, GNU/Linux. Un autre systme d'exploitation libre apparat la mme poque : il s'agit de 4.4BSD. La Berkeley Software Distribution (traduction : la suite de logiciels de Berkeley) abrg BSD est la version d'UNIX dveloppe par les tudiants et les chercheurs de l'universit de Berkeley depuis 1977[27]. Les logiciels utilitaires, crs sous licence libre, sont vendus avec le noyau Unix de AT&T, lui-mme sous licence propritaire. Cette double licence de BSD est l'origine de plusieurs annes de litige entre l'Universit de Berkeley et AT&T[28]. Les tudiants de l'universit travaillent remplacer les programmes dvelopps par AT&T par leurs propres programmes, sous licence libre, afin de rsoudre le litige. Cette situation dure jusqu' la sortie de 4.4BSD en 1994, qui ne contient pratiquement plus de code AT&T[29]. C'est la suite des initiatives et travaux de Linus Torvalds et Richard Stallman, aids par des milliers de bnvoles et la suite des travaux des tudiants de l'universit de Berkeley que GNU/Linux et 4.4BSD sont devenus les premiers systmes d'exploitation sous licence libre[30].

Systme d'exploitation

8

CompositionUn systme d'exploitation est compos d'une large palette de programmes. La composition exacte dpend de l'usage cible et du type d'appareil informatique auquel le systme est destin (ordinateur personnel, serveur, superordinateur ou encore systme embarqu). Si le systme d'exploitation est destin tre utilis sur un ordinateur personnel ou une console de jeu vido, l'interface graphique sera raffine et ergonomique. S'il est destin tre utilis sur un serveur, il comprendra une large palette de protocoles et de pilotes pour du matriel rseau, sera multi-tches et muni de contrles d'accs. Au contraire, le nombre de pilotes sera restreint au minimum et le systme d'exploitation sera prvu pour tre enregistr sur une mmoire morte s'il est destin un assistant personnel ou un tlphone mobile. Un systme d'exploitation destin des superordinateurs sera massivement multiprocesseur, c'est--dire qu'il pourra tre utilis sur un ordinateur quip de centaines voire de milliers de processeurs.

Interface de programmationLe systme d'exploitation effectue de nombreuses actions sur demande des logiciels applicatifs. Le point de contact entre un logiciel applicatif et le systme d'exploitation est appel interface de programmation (anglais Application Programming Interface abrg API). Ce peut tre des fonctions mises disposition dans des bibliothques logicielles, ou des logiciels serveur qui rpondent aux requtes envoyes par les logiciels applicatifs. L'utilisation de la mme interface de programmation quel que soit le matriel, le protocole ou le systme de fichier concern assure la portabilit des logiciels applicatifs : un logiciel applicatif donn pourra fonctionner sur diffrents ordinateurs, quelle que soit leur configuration, en particulier quel que soit le matriel, le systme de fichier ou le protocole utilis. POSIX (acronyme de l'anglais Portable Operating System Interface) est une norme relative l'interface de programmation du systme d'exploitation. De nombreux systmes d'exploitation sont conformes cette norme, notamment les membres de la famille Unix.

L'ordonnanceurL'ordonnanceur (anglais scheduler) est le programme du systme d'exploitation qui contrle le droulement des autres programmes. Dans un systme d'exploitation multitches l'ordonnanceur assure l'excution simultane de plusieurs programmes (concurrence). L'excution simultane de plusieurs programmes est ralise de la manire suivante: l'ordonnanceur commande l'excution tour de rle de chaque programme par le ou les processeurs de l'ordinateur, chaque processeur excute les instructions d'un programme pendant une fraction de seconde, puis l'ordonnanceur effectue une commutation de contexte (anglais context switch), suspend l'excution du programme en cours et passe au programme suivant.

La communication inter-processusLes systmes informatiques sont typiquement composs de nombreux programmes qui cooprent en s'changeant des informations. Les changes d'informations entre les processus (programmes en cours d'excution) peuvent se faire l'aide de messages stocks en mmoire, le systme d'exploitation s'occupant de collecter les messages et les mettre disposition de chaque destinataire. Tout processus qui attend un message sera interrompu jusqu' l'arrive d'un message et l'ordonnanceur vitera toute commutation de contexte vers un processus en attente. Le systme d'exploitation s'assure galement que les processus qui partagent un espace de stockage commun (en lecture ou criture) ne se trouvent pas en situation de comptition, c'est--dire dans une situation o le rsultat d'une opration dpend de l'ordre dans lequel les processus accdent l'espace partag.

Systme d'exploitation

9

Gestion de la mmoireLe systme peut tre charg de plusieurs tches relatives la mmoire. Toutes ses fonctionnalits ne sont pas toujours disponibles, en fonction du type d'architecture matriel et du systme d'exploitation. allocation de la mmoire : rserver de la mmoire, et la mettre disposition d'une application, d'un pilote ou une autre partie du systme d'exploitation. protection de la mmoire : s'assurer que la mmoire est utilise uniquement par le programme pour lequel elle a t rserve et empcher un programme de modifier par inadvertance ou volontairement les informations propres un autre programme. pagination de la mmoire : dcomposer la mmoire en zones de taille fixe: les pages. mmoire virtuelle et swap : simuler la prsence de mmoire centrale en utilisant un autre type de mmoire. Les pages de mmoire centrale sont alors changes (anglais swap) avec des pages contenues dans une mmoire secondaire - par exemple un disque dur - en vue de limiter l'utilisation de la mmoire centrale. La mmoire virtuelle Le mcanisme dit de mmoire virtuelle est destin simuler la prsence ou l'absence de mmoire centrale par manipulation de l'unit de gestion mmoire - un composant lectronique (anglais Memory Management Unit abrg MMU). C'est un mcanisme courant dans les systmes d'exploitation contemporains. La mmoire virtuelle permet d'excuter simultanment plus de programmes que ce que la mmoire centrale peut contenir. Chaque programme n'ayant pas besoin que la totalit des informations qu'il manipule soit prsent dans la mmoire centrale[31], une partie des informations sont stockes dans la mmoire de masse (en gnral dans un fichier ou une partition de disque dur) habituellement plus importante mais plus lente et sont transfres en mmoire centrale lorsque le programme en a besoin[32]. Les programmes disposent d'un (ou plusieurs) espaces virtuels de mmoire continus pour travailler. Les adresses des donnes sont dites virtuelles dans la mesure o l'information adresse ne se trouve pas forcment en mmoire centrale, et pas forcment l'adresse indique. Lorsque le programme essaie de lire ou crire une donne dans sa mmoire virtuelle, l'unit de gestion de mmoire cherche l'adresse physique correspondant l'adresse virtuelle sollicite grce une table de correspondance. Si l'emplacement n'est pas prsent en mmoire centrale, il n'y aura videmment aucune adresse physique correspondante. Le systme d'exploitation devra alors chercher librer un espace en mmoire centrale en changeant (anglais swap) le contenu d'un emplacement donn de mmoire centrale avec le contenu sollicit, qui se trouve en mmoire de masse[33],[34]. Cette opration s'effectue automatiquement, l'insu des programmes. Des mmoire associatives, incorpores dans l'unit de gestion de mmoire, acclrent le calcul des adresses[35].Les systmes d'exploitation utilisent gnralement deux mmoires associatives : une pour le mode kernel et une pour le mode utilisateur. La mmoire du mode kernel est arrange de manire permettre au processeur d'utiliser la totalit de la mmoire centrale disponible - lors de l'excution des programmes du noyau du systme d'exploitation. Tandis que celle du mode utilisateur est arrange de manire protger le noyau (qui est ainsi invisible pour le programme en question) - lors de l'excution des programmes hors du noyau. 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, le systme d'exploitation placera la table du programme courant dans la mmoire associative[36]. Le systme d'exploitation cre galement de nouvelles tables pour les programmes qui dmarrent et dcide quels emplacements de mmoire virtuelle seront ou ne seront pas prsents en mmoire centrale[37].

Systme d'exploitation

10

PilotesUn pilote (anglais driver) est un programme qui contient les instructions excuter pour utiliser un certain priphrique informatique. Les pilotes sont fournis par l'auteur du systme d'exploitation ou le fabricant du priphrique. Un systme d'exploitation contient typiquement de nombreux pilotes correspondant de nombreux composants matriels susceptibles d'tre monts dans l'ordinateur. Linterface de programmation est similaire sur tous les pilotes, tandis que les instructions du programme diffrent en fonction des caractristiques de chaque composant matriel, ce qui assure l'utilisation banalise du priphrique. Le systme d'exploitation dirige l'utilisation des pilotes par les logiciels applicatifs. Il intervient lorsque plusieurs logiciels applicatifs tentent d'utiliser le mme matriel en mme temps, et active ou dsactive les pilotes en fonction du matriel prsent dans l'ordinateur. Lors de chaque vnement survenu sur un priphrique (rception d'informations, fin d'un envoi, manipulation effectue par l'utilisateur, etc.), ce dernier provoque une interruption matrielle, un mcanisme lectronique qui provoque une commutation de contexte ; le systme d'exploitation dclenche alors l'excution des instructions du pilote concern. Les logiciels applicatifs ainsi que le systme d'exploitation peuvent galement, au besoin, dclencher l'excution des instructions d'un pilote.

Systme de fichiersUn systme de fichier (anglais file system) est une structure en arbre dans laquelle sont stocks des fichiers ainsi que d'autres informations. Divers programmes du systme d'exploitation s'occupent de rpartir les fichiers sur les mmoires de masse tels que les disques durs et de les relier pour former la structure du systme de fichiers. Il existe diverses manires de disposer les fichiers dans une mmoire de masse. Une mmoire de masse qui a t remplie avec un systme d'exploitation selon une disposition donne sera reconnue par un autre systme d'exploitation uniquement si celui-ci reconnat la disposition en question. Les mmoires amovibles telles que les CD ou les DVD ont une disposition normalise dont les spcifications sont publiques, ce qui assure leur reconnaissance par tous les systmes d'exploitation (voir ISO 9660 et UDF). Un systme d'exploitation contient typiquement diffrents programmes qui servent manipuler un systme de fichier. Chaque programme manipule les fichiers conformment une disposition donne. Ces programmes effectuent des oprations telles que crer des fichiers, les copier, les supprimer, crer et supprimer des rpertoires ainsi que formater la mmoire de masse c'est--dire crer une structure vide. voir FAT, HFS ou ext2fs. Lorsque le systme de fichier est distribu, c'est--dire que les fichiers sont stocks sur diffrents ordinateurs d'un rseau informatique, le systme d'exploitation envoie une requte l'ordinateur qui stocke le fichier pour chaque opration effectuer (voir NFS ou CIFS). Dans un systme d'exploitation multi-utilisateurs, les programmes qui manipulent le systme de fichier effectuent des contrles pour vrifier qu'aucun fichier n'est manipul par une personne non autorise. Le systme d'exploitation refusera toute manipulation non autorise.

Systme d'exploitation

11

RseauDans un rseau informatique, deux ordinateurs relis arrivent communiquer du moment que les communications se font de part et d'autre selon les mmes protocoles rseau. Selon le modle OSI, les diffrents protocoles existants sont rpartis sur sept niveaux, o un protocole d'un niveau donn peut tre combin avec n'importe quel protocole des niveaux situs en dessus et en dessous (voir encapsulation). Un systme d'exploitation contient typiquement plusieurs programmes ncessaires pour des changes d'informations dans diffrents 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 systme d'exploitation demande l'opration au matriel de l'ordinateur par l'intermdiaire d'un pilote informatique, pilote qui peut faire partie intgrante du systme d'exploitation ou tre fourni par le constructeur du matriel. Lors de l'envoi d'informations sur le rseau, un logiciel applicatif cre une information, la met en forme conformment aux protocoles des niveaux 7 5, puis la transmet au systme d'exploitation. Divers programmes du systme d'exploitation vont dcouper cette information en trames, puis vont mettre en forme les trames et les envoyer conformment aux protocoles des niveaux 4 1. Lors de la rception de trames depuis le rseau, divers programmes du systme d'exploitation vont tenter de les dcoder conformment diffrents 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 dcoder le flux conformment aux protocoles de niveaux 5 7. Le logiciel applicatif effectue pralablement une connexion, c'est--dire une liaison logique par laquelle il va s'associer avec un flux particulier. Le choix exact des protocoles utiliss dpend de l'ordinateur concern et des liaisons rseau qui vont tre utilises. Divers paramtres de configuration permettent d'influencer le choix des protocoles. Ils permettent par exemple d'empcher l'utilisation de protocoles interdits sur le rseau concern.

Contrle d'accsDans un systme d'exploitation multi-utilisateurs, un ensemble de programmes assure la scurit des informations enregistres dans les mmoires ainsi que la disponibilit de l'ordinateur, ceci afin de prserver la confidentialit et viter que de manipulations effectues par un utilisateur perturbent l'utilisation de l'ordinateur par les autres utilisateurs. Cette fonctionnalit est souvent absente des systmes d'exploitation pour les appareils personnels. Dans ces systmes d'exploitation tout utilisateur doit pralablement dcliner son identit avant d'utiliser l'ordinateur. Puis un programme du systme d'exploitation vrifie cette identit par rapport un annuaire ou un rfrentiel (voir authentification). Le systme d'exploitation tablit alors une liste des oprations autorises ou interdites l'utilisateur en fonction des rglements - en anglais : policies - qui ont t introduits par l'administrateur scurit la personne responsable de la scurit des informations. Lors de chaque opration demande par un logiciel applicatif, le systme d'exploitation vrifie pralablement si l'utilisateur qui manipule le logiciel applicatif est autoris effectuer cette opration. La vrification se fait sur la base des rglements ainsi que des listes de droits d'accs introduits par l'administrateur scurit. Le systme d'exploitation refusera toute opration non autorise et inscrira le refus dans un journal d'activit. En particulier, le systme d'exploitation peut refuser un utilisateur de lire, de modifier, ou de supprimer un fichier, selon la liste des droits d'accs introduits concernant ce fichier. Le nom des personnes autorises modifier les listes de droits d'accs est galement indiqu dans la liste de droits d'accs. Le systme d'exploitation va galement refuser la mise hors service de programmes centraux tels que les logiciels serveur ou des programmes du systme d'exploitation par tout utilisateur qui n'a pas pralablement reu le privilge d'effectuer cette opration selon les rglements introduits par l'administrateur de scurit.

Systme d'exploitation Lorsqu'un logiciel autonome (bot informatique) demande des oprations au systme d'exploitation, le logiciel doit pralablement dcliner son identit en tant que produit puis, sur la base de cette identit, le systme d'exploitation effectue les mmes vrifications que pour une personne physique. Les mcanismes de contrle d'accs ont aussi pour effet de lutter contre les logiciels malveillants ceux-ci effectuent souvent des oprations susceptibles de perturber l'utilisation de l'ordinateur.

12

Interface utilisateurUn ensemble de programmes du systme d'exploitation reoit les informations envoyes par les logiciels applicatifs, et les place sur une image numrique qui sera envoye au matriel par l'intermdiaire d'un pilote. En complment un autre ensemble de programmes reoit les manipulations effectues par l'usager par l'intermdiaire de pilotes puis les transmettent au logiciel concern. Ces deux ensembles crent l'interface homme-machine qui permet un usager de dialoguer avec la machine. Le systme d'exploitation peut dialoguer avec un usager par l'intermdiaire d'un autre ordinateur ou d'un terminal (interface distribue). Les informations envoyes par les logiciels applicatifs seront alors envoyes l'autre ordinateur selon un protocole prvu cet effet, tandis que l'autre ordinateur enverra les manipulations effectues par l'utilisateur. Voir SSH, RFB ou X Window System. Lorsque l'interface est en mode texte, l'image numrique est une grille dans laquelle sont placs des caractres 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 dbuts de l'informatique[38] est aujourd'hui remplac par les interfaces graphiques. L'interface utilisateur graphique Dans une interface utilisateur graphique (anglais Graphical User Interface abrg GUI), l'image numrique est compose par un programme du systme d'exploitation par superposition de points, de lignes, de pictogrammes et de caractres d'imprimerie. L'interface se manipule typiquement avec une souris selon le principe WIMP (anglais Windows, Icons, Menus and Pointer device). L'image numrique est cre l'aide du processeur graphique de l'ordinateur. Lors des manipulations de la souris, le systme d'exploitation dplace l'lment d'image qu'est le pointeur et effectue les calculs ncessaires pour dterminer quel est l'lment de l'image qui se trouve juste en dessous. chaque lment de l'image peut tre associ un programme. Un widget est un programme qui dessine et anime un lment d'image dont l'aspect peut-tre celui d'un bouton poussoir, d'une lampe tmoin, d'un ascenseur, d'une zone texte, d'un menu, etc. Divers widgets sont fournis avec le systme d'exploitation. Les programmes pour interface graphique sont aujourd'hui (2011) inclus dans tous les systmes d'exploitation contemporains. Le X Window System est l'ensemble des programmes pour interface utilisateur graphique inclus dans tous les systmes d'exploitation de la famille Unix.

Logiciels utilitairesUn 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 dmarrer des programmes, copier des fichiers ou modifier des paramtres de configuration. Divers logiciels utilitaires sont fournis avec les systmes d'exploitation. Un interprteur de commandes est un programme qui permet d'excuter d'autres programmes en crivant leur nom ventuellement suivi de divers paramtres. 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 excuter des scripts suites de manipulations pr-enregistres (voir commande informatique).

Systme d'exploitation Un environnement de bureau est un programme dans lequel les diffrents lments de l'ordinateur (programmes, fichiers, disques durs) sont prsents sous forme de pictogrammes sur lesquels il est possible d'effectuer diffrentes actions. Il permet d'excuter des programmes, d'effectuer diffrentes oprations sur les fichiers (copie, changement du nom, dplacement ou suppression). Certains programmes permettent l'utilisateur de modifier les paramtres de configuration du systme d'exploitation. Ceux-ci proposent des listes choix multiples et effectuent des contrles de validit avant le modifier les paramtres. D'autres programmes servent installer des logiciels, c'est--dire copier les fichiers dans les emplacements prvus cet effet, et effectuer les modifications de configuration ncessaire pour rendre le logiciel oprationnel. Ces programmes peuvent aussi servir consulter la liste des logiciels actuellement installs dans l'ordinateur. Un systme d'exploitation multi-utilisateurs est en gnral 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'accs en vue d'autoriser ou d'interdire un fichier certains utilisateurs.

13

Organisation gnraleLes diffrents programmes du systme d'exploitation sont typiquement rpartis en couches distinctes[39]. La couche suprieure est l'interface de programmation avec les logiciels applicatifs (dont font partie les logiciels utilitaires fournis avec le systme d'exploitation). Au centre, on trouve une ou plusieurs couches qui contiennent les composants principaux du systme Comparaison entre noyau monolithique ou micronoyau d'exploitation tels que : les programmes pour les systmes de fichiers et le rseau, la gestion de mmoire (voir supra), les pilotes, l'ordonnanceur, le gestionnaire d'interruption[40]. La couche infrieure, appele couche d'abstraction matrielle (anglais hardware abstraction layer abrg HAL), est charge de masquer les particularits matrielles et les diffrences qu'il existe entre les machines sur lesquelles le systme d'exploitation sera utilis[41].

Le noyauLe noyau (anglais kernel) est un espace mmoire isol, dans lequel est plac tout ou partie du systme d'exploitation. Dans le langage courant le terme kernel dsigne l'emplacement ainsi que l'ensemble des programmes qu'il contient et qui forment le cur rigide du systme d'exploitation. Le contenu du noyau ne peut pas tre modifi par inadvertance par les logiciels applicatifs une modification provoquerait un crash de l'ordinateur. Noyau monolithique L'architecture est dite noyau monolithique lorsque la totalit des programmes du systme d'exploitation (en particulier les pilotes, les programmes qui traitent le rseau et le systme de fichier) rsident dans l'espace du noyau. Dans cette architecture chaque utilisation d'une fonction de l'interface de programmation provoque une commutation de contexte et le passage en mode kernel (voir supra). Linux, FreeBSD, OpenVMS ou Solaris sont des systmes d'exploitation noyau monolithique.

Systme d'exploitation Micro-noyau L'architecture est dite micro-noyau (anglais microkernel) lorsque le noyau contient le strict minimum, c'est--dire l'ordonnanceur et le programme qui simule la mmoire virtuelle, et que la grande majorit des programmes se trouvent en dehors : les pilotes, les programmes qui traitent les systmes de fichiers ou l'interface graphique, ainsi que les logiciels applicatifs. Dans cette architecture les nombreux programmes qui se trouvent en dehors du noyau sont isols les uns des autres, sont excuts comme des logiciels applicatifs en concurrence et utilisent les fonctionnalits du noyau pour s'changer des messages. L'utilisation des fonctions de l'interface de programmation entrane l'mission de nouveaux messages. Minix, BeOS, Mac OS X ou QNX sont des systmes d'exploitation micro-noyau. Noyau hybride Divers systmes d'exploitation ont une architecture qui a certaines caractristiques des micro-noyaux et en mme temps des noyaux monolithiques. Cette architecture est appele noyau hybride macro-noyau ou micro-noyau modifi. Dans cette architecture, la totalit des programmes du systme d'exploitation rsident dans le noyau, la faon d'un noyau monolithique. Cependant de nombreux programmes du systme d'exploitation sont excuts en concurrence comme des logiciels applicatifs, la manire de l'architecture micro-noyau (processus noyau). Pour les processus du noyau, l'ordonnanceur effectue des commutations de contexte entre les processus de la mme manire qu'entre les logiciels applicatifs, ces processus utilisent les fonctions de l'ordonnanceur pour s'changer des messages et l'utilisation des fonctions de l'interface de programmation entrane l'mission de messages. Windows NT ou NetWare sont des systmes d'exploitation noyau hybride[42]. Exo-noyau Dans l'architecture exo-noyau (du grec exos = hors de), il n'y a pas d'emplacement isol, et le systme d'exploitation est compos de programmes et de bibliothques logicielles de construction identique celles des logiciels applicatifs. L'utilisation de fonctions de l'interface de programmation provoque l'excution des instructions contenues dans une bibliothque logicielle du systme d'exploitation sans ncessiter une commutation de contexte. Une des bibliothques logicielle est utilise pour la transmission et la rception de messages entre les processus, les instructions de l'ordonnanceur sont incluses dans cette bibliothque. Mac OS, AmigaOS et Oberon sont des systmes d'exploitation en architecture exo-noyau.

14

Quelques exemples

Systme d'exploitation

15

Comparaison des principaux systmes d'exploitationAnne d'apparition 1973 Nom Famille diteur Matriel support Micral Utilisation Noyau Graphique Multitche Multi-utilisateur Multiprocesseur Temps rel

SYSMIC

R2E

ordinateurs personnels, stations de travail

1977

VMS

DEC

VAX, DEC serveurs, Alpha, ordinateurs Hewlett-Packard centraux ordinateurs personnels

1978-1985

CP/M

Digital Research Amstrad CPC, Commodore 128, TRS-80 IBM & Microsoft Quantum Software Systems

1981-1990

DOS

Compatible PC ordinateurs personnels compatibles PC, MIPS, PowerPC, ARM Apple Macintosh systmes embarqus, automates industriels ordinateurs personnels

1982

QNX

1984

Mac OS

Apple

1985

TOS

Atari

Atari ST, Eagle, ordinateurs Medusa, Hades, personnels Milan, Firebee, ColdFire Commodore Amiga, PowerPC ordinateurs personnels et consoles de jeu[44] [43]

1985

AmigaOS

Commodore

1986

AIX

Unix

IBM

PS/2, RS/6000, ordinateurs PowerPC personnels, serveurs, stations de travail, superordinateurs machines de SGI stations de travail et serveurs

1986

Irix

Unix

SGI

1986-1996

NeXTSTEP Unix

NeXT

Compatible PC, stations de travail SPARC, Hewlett-Packard PS/2 et ordinateurs Compatible PC personnels Compatible PC, (pdagogique)[45] m68k, SPARC tlphones mobiles, smartphone, assistants personnel serveurs, stations de travail, superordinateurs[49] [46]

1987-2006

OS/2

IBM et Microsoft Andrew Tanenbaum

1987

Minix

1989

Symbian [47] OS

[48] Nokia, Symbian ltd Siemens, Samsung, Panasonic

1991

Solaris

Unix

Sun

machines de Sun et x86/64

Systme d'exploitation(communautaire) nombreux[50]

16tous

1991 1991[51]

GNU/Linux Unix Windows NT

Windows Microsoft

Compatible PC serveurs, stations de travail, ordinateurs personnels tous tous tous[56]

1994 1994 1994 1995

[52] [52] [52]

NetBSD FreeBSD OpenBSD Windows 95 Windows CE

Unix Unix Unix

(communautaire) nombreux[53] (communautaire) nombreux[54] (communautaire) nombreux[55]

Windows Microsoft

Compatible PC ordinateurs personnels x86, MIPS, [57] ARM smartphone, assistants personnels, automates industriels ordinateurs personnels, serveurs, station de travail

1996

Windows Microsoft

[58]

1999

[59]

Mac OS X

Unix

Apple

x86, PowerPC de Apple

Le marchNe en 1985, la gamme des systmes Windows quipe aujourd'hui prs de 90 % des ordinateurs personnels, ce qui la place en situation de monopole notamment auprs du grand public. En 2008 ses parts de march sont descendues en dessous de 90 % pour la premire fois depuis 15 ans[60]. Initie en 1969, la famille de systmes d'exploitation Unix compte plus de 25membres[61]. GNU/Linux, BSD et Mac OS X sont aujourd'hui les systmes d'exploitation les plus populaires de la famille Unix. La famille Windows quipe aujourd'hui 38 % des serveurs tandis que la famille Unix quipe 31 %, dont peu prs la moiti avec GNU/Linux[62]. La famille Unix anime 60 % des sites web dans le monde[63] et GNU/Linux quipe 95 % des prs de 500superordinateurs du monde[64]. N en 1990, Symbian OS est en 2007 le systme d'exploitation le plus rpandu sur les tlphones mobiles et assistants personnels, avec 67 % de part de march[65]. Fin 2011, trois systmes d'exploitation se partagent la majorit du march des tlphones mobiles : Android avec 52 %, Symbian OS avec 17 % et Apple iOS avec 15 %[66]. Du ct des tablettes tactiles, Apple domine le march en 2010 avec iOS (83,9 % des ventes)[67]. Les serveurs et super-ordinateurs sont majoritairement quips de systmes d'exploitation de la famille UNIX[68].

Systme d'exploitation

17

Choix par l'acheteurDe nombreux logiciels applicatifs sur le march sont construits pour fonctionner avec un systme d'exploitation en particulier, ou une famille en particulier et un systme d'exploitation est construit pour fonctionner avec une gamme de machines donne. Pour l'acheteur le choix de la famille de machine limite le choix du systme d'exploitation, qui lui-mme limite le choix des logiciels applicatifs. Chaque systme d'exploitation, selon la palette de programmes qu'il contient, est construit pour fonctionner avec certains rseaux informatiques. Pour l'acheteur qui possde un rseau informatique (typiquement les entreprises et les institutions) le choix du systme d'exploitation dpend de son adquation au rseau existant de l'acheteur. L'utilit d'un systme d'exploitation pour l'usager est proportionnel au nombre de logiciels applicatifs qui sont prvus pour lui. La popularit leve d'un systme d'exploitation attire les diteurs de logiciels applicatifs, ce qui accroit encore sa popularit (effet rseau). Ce phnomne fait que le march est sujet aux situations de monopole. Apple, Sun Microsystems et Silicon Graphics sont des marques qui fabriquent du matriel informatique et dveloppent des systmes d'exploitation pour leur propre matriel. Certains systmes d'exploitation, comme Microsoft Windows, sont vendus avec le matriel informatique, conformment des accord entre les fabricants.

Concurrence, compatibilit et interoprabilitLa compatibilit d'un systme d'exploitation est sa capacit tre utilis la place d'un autre, en particulier excuter les logiciels applicatifs de l'autre. Le systme d'exploitation est dit compatible avec l'autre. La compatibilit au niveau source est la capacit pour un systme d'exploitation A d'excuter un logiciel applicatif cr pour B aprs avoir compil le code source du logiciel pour la machine A. Et la compatibilit binaire est la capacit pour un systme d'exploitation A d'excuter un logiciel applicatif cr pour B tel quel, sans avoir le recompiler. Linteroprabilit est la capacit de plusieurs systmes de pouvoir tre utiliss ensemble. Par exemple dans un mme appareil, ou dans un rseau informatique. Pour tre compatibles, deux systmes d'exploitation doivent avoir des points communs, notamment sur l'interface de programmation. La compatibilit binaire n'est possible qu'entre deux systmes d'exploitation qui fonctionnent avec la mme famille de processeur. La compatibilit et l'interoprabilit entre les systmes d'exploitation est assure par les diteurs par l'alignement de leur produit des normes industrielles ainsi que des technologies rendues publiques. Le systme d'exploitation Unix, cr en 1969 a servi de source d'inspiration pour toute une famille de systmes d'exploitation. Le jeu de la concurrence, trs vive dans les annes 1980, a amen les diffrents membres de la famille Unix se distancier, et perdre la compatibilit l'un avec l'autre. Des organismes de normalisation tels que le Open Group se sont penchs sur le problme et ont dicts des normes qui garantissent la compatibilit travers toute la famille Unix. Entre 1995 et 2007, Microsoft, diteur de la suite de systmes d'exploitation Windows a t l'objet de plusieurs procs pour des pratiques anticoncurrentielles qui nuisent la concurrence et l'interoprabilit. La socit a t condamne par le dpartement de la justice des tats-Unis pour violation du Sherman Antitrust Act ainsi que par la Commission europenne pour violation des traits relatifs la concurrence dans l'Union europenne. La popularisation d'Internet dans les annes 1990 a contribu amliorer l'interoprabilit entre les systmes d'exploitation.

Systme d'exploitation La guerre des Unix et l'Open Group Le systme d'exploitation Unix a t dvelopp par AT&T en 1969. Plus tard d'autres diteurs s'en sont inspirs pour crer des systmes d'exploitation semblables, notamment l'universit de Berkeley, avec sa Berkeley Software Distribution (BSD). Puis ceux-ci ont servi de source d'inspiration pour d'autres systmes d'exploitation, et ainsi de suite. En 2009, la famille Unix compte plus de 25 systmes d'exploitation. Le jeu de la concurrence a amen chaque diteur ajouter ses propres amliorations et ses propres fonctionnalits son systme d'exploitation optimis pour un matriel en particulier. Ce qui a amen les diffrents membres de la famille Unix se distancier, et perdre la compatibilit l'un avec l'autre. En 1987, dans le but de runifier la famille Unix, AT&T conclut un accord avec Sun Microsystems (un des principaux diteurs de systme d'exploitation bas sur BSD). Les autres diteurs ne voient pas cet accord d'un bon il, et crent la fondation Open Software Foundation (abrg OSF). En mme temps l'Open Group, un consortium de normalisation, publie des normes relatives aux systmes d'exploitation de la famille Unix[69]. Les deux institutions sont aujourd'hui fusionnes. POSIX est le nom donn aux normes IEEE 1003. Cette famille de normes appartenant l'Open Group a t lance en 1988 et concerne l'interface de programmation. La conformit d'un systme d'exploitation cette norme assure la compatibilit au niveau source. En 2009, de nombreux systmes d'exploitations sont conformes cette norme, y compris en dehors de la famille Unix[70]. POSIX fait partie de la Single Unix Specification, une norme lance en 1994 par le Open Group, qui concerne les systmes de fichiers, les logiciels utilitaires, ainsi que 1742fonctions de l'interface de programmation[71]. Le nom Unix appartient l'Open Group et tout systme d'exploitation doit tre conforme la Single Unix Specification pour tre reconnu comme faisant partie de la famille Unix[72]. Microsoft et la concurrence En 1995, conformment au Sherman Antitrust Act - une loi des tats-Unis pour la prvention de l'abus de position dominante, le dpartement de la justice des tats-Unis interdit Microsoft certaines de ses pratiques considres comme nuisibles la concurrence. Deux ans plus tard, un procs est ouvert pour non-respect des interdictions de 1995 : Microsoft obtient l'annulation du procs sur l'argument que la justice n'est pas quipe pour juger du bien fond du design des produits de haute technologie (sic) . Entre 1999 et 2001 une enqute est ouverte concernant la position de Microsoft. L'enqute, mene par les juges Thomas Jackson et Richard Posner, amne 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, gnent leur mergence et freinent l'innovation[73]. La socit chappe de peu la scission, mais est dans l'obligation de publier les spcifications de ses technologies, en particulier les interfaces de programmation et les protocoles rseau ceci afin de prserver l'interoprabilit et la concurrence[74]. Plus tard, en 2007, Microsoft est condamn par la Commission europenne une amende de prs 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) aprs avoir refus de publier une de ses spcifications techniques son concurrent Sun Microsystems [75]. Selon la Commission europenne, les agissements de Microsoft nuisent l'interoprabilit des systmes d'exploitation et la concurrence[76].

18

Systme d'exploitation Les rseaux informatiques Chaque systme d'exploitation comporte une palette de programmes relatifs des protocoles rseau. La composition de la palette dpend du choix de l'diteur et diffre d'un systme d'exploitation l'autre ; or deux ordinateurs peuvent communiquer ensemble uniquement condition d'utiliser les mmes protocoles. La popularisation d'Internet dans les annes 1990 a pouss de nombreux diteurs inclure dans leur systme d'exploitation des programmes relatifs aux protocoles TCP/IP (les protocoles d'Internet), ce qui a amlior l'interoprabilit entre les systmes d'exploitation.

19

Notes et rfrencesNotes[1] (en)Brian L. Stuart,Principles of Operating Systems: Design & Applications,Cengage Learning EMEA - 2008,(ISBN9781418837693) [2] (en)I.A.Dhotre,Operating Systems,Technical Publications - 2009,(ISBN9788184316445) [3] (en)Godbole,Operating System 3E,Tata McGraw-Hill Education - 2011,(ISBN9780070702035) [4] Parts de march des systmes d'exploitation des PC de 2008 2012 (site StatCounter) (http:/ / gs. statcounter. com/ #os-ww-monthly-200807-201204) [5] (en)Pal Chaudhury,Operating Systems: Priciples and Design,PHI Learning Pvt. Ltd. - 2009,(ISBN9788120338111) [6] Le langage C est un langage de programmation souvent utilis pour les systmes d'exploitation en raison de sa puissance et du contrle total qu'a le programmeur sur la mmoire (A. Tanenbaum, Systmes d'exploitation, 1.8). [7] anglicisme signifiant traitement par lot [8] En gnral un carte de couleur particuliere [9] Bhatt,Introduction To Operating Systems: Concepts And Practice An 2Nd Ed.,PHI Learning Pvt. Ltd. - 2007,(ISBN9788120332584) [10] Amjad Umar,Third Generation Distributed Computing Environments,nge solutions, inc - 2004,(ISBN9780975918210) [11] 1.2.3, p.15. [12] Ce mcanisme qui permet au systme d'interrompre un programme en cours d'excution est nomm premption (A. Tanenbaum, ibid., 2.4.1, p.140). [13] http:/ / www. feb-patrimoine. com/ PROJET/ multics/ multics. htm [14] 10.2.1, p.760. [15] 10.2.1, p.761 et p.762. [16] systme d'exploitation (http:/ / retropc. free. fr/ htm/ inf/ os. htm) [17] (en) History of operating systems (http:/ / www. computinghistorymuseum. org/ teaching/ papers/ research/ history_of_operating_system_Moumina. pdf) [18] 1.2.4, pp.17-18. [19] (en) The Unusual History of MS-DOS (http:/ / inventors. about. com/ library/ weekly/ aa033099. htm) [20] (en) History of the graphical user interface (http:/ / www. sensomatic. com/ chz/ gui/ history. html) [21] L'annonce originale du projet GNU (http:/ / www. gnu. org/ gnu/ initial-announcement. fr. html). [22] (en) Linux et Hurd (http:/ / www. gnu. org/ software/ hurd/ hurd-and-linux. html). [23] La totalit du code source se trouve dans son livre Operating Systems: Design and Implementation [24] 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). [25] Message de Torvalds (http:/ / kerneltrap. org/ mailarchive/ linux-activists/ 1992/ 1/ 15/ 649). [26] 10.1.7, p. 766. [27] (en) Finding aid to the Berkeley Software Distribution (http:/ / www. oac. cdlib. org/ data/ 13030/ b5/ hb2b69n7b5/ files/ hb2b69n7b5. pdf) [28] (en) Unix pioneer ends BSD research (http:/ / www. krsaborio. net/ research/ 1990s/ 92/ 9210_e. htm) [29] 10.1.7, p. 768. [30] [31] [32] [33] [34] [35] [36]

(en) A brief history of open open source software (http://eu.conecta.it/paper/brief_history_open_source.html)Plus prcisment, ni le code, ni les donnes, ni la pile n'ont besoin d'tre totalement en mmoire centrale. 3.3, p.196. Le fait de transfrer un segment complet en mmoire de masse est nomm swap out, l'opration inverse swap in. 3.3.1, pp.196-200. 3.3.3, pp.203-204. 3.6.1, p.236.

[37] Algorithmes de remplacement de pages, ch. 3.4, p.209). [38] D'abord sous forme de tlscripteurs, puis de terminaux passifs. [39] 12.3.1, p. 999.

Systme d'exploitation[40] 12.3.1, p. 1000. [41] 11.3.1, pp. 882-883 et 12.3.1, p. 999. [42] (en) Kernel: Basic Concepts Part 2 (http:/ / www. brokenthorn. com/ Resources/ OSDev13. html) [43] Is AmigaOS realtime ? (http:/ / www. experts123. com/ q/ is-amigaos-a-realtime-os. html) [44] (en) IBM, AIX System management Desktop (http:/ / www-03. ibm. com/ systems/ power/ software/ aix/ sysmgmt/ desktop/ index. html) [45] Andrew Tanenbaum, enseignant, utilisait le code source de Minix pour illustrer ses cours sur les systmes d'exploitation [46] [47] [48] [49] [50] [51] [52] [53] [54] [55]

20

(en) Introduction to Minix (http://www.osnews.com/story/15960/Introduction_to_MINIX_3)anciennement appel EPOC rachet Psion Symbian OS Presentation (http:/ / www. pagonis. org/ Presentations/ EE207. pdf) Compatible PC, Macintosh, DEC Alpha, Sparc, Itanium, m68k,... Entre 1986 et 1991, les produits de la famille Windows taient des environnement graphique pour le systme d'exploitation DOS Scission du projet 386BSD Plus de 50 types de machines. (http:/ / www. netbsd. org/ ports/ ) Compatible PC, ARM, MIPS, Macintosh, DEC Alpha, Sparc, Itanium, Sun Microsystems, Xbox Compatible PC, ARM, DEC Alpha, Sparc,...

[56] (en) Kernel.exe Describes the Kernel and VxD for Windows 95 (http:/ / support. microsoft. com/ kb/ 181300/ en-us) [57] (en) Windows CE and Windows Mobile Timeline (http:/ / www. networkdictionary. com/ Software/ Windows-CE. php) [58] Windows CE Kernel services (http:/ / msdn. microsoft. com/ en-us/ library/ ms906442. aspx) [59] Cr par fusion entre NeXTSTEP et Mac OS [60] [61]

[62] [63] [64] [65] Canalys, 115 millions de smartphones en 2007 (http:/ / www. generation-nt. com/ canalys-perspectives-smartphones-2007-actualite-67815. html) [66] Android double ses parts de march 52 %, iOS tombe 15 %, Numerama, Novembre 2011 (http:/ / www. numerama. com/ magazine/ 20580-android-double-ses-parts-de-marche-a-52-ios-tombe-a-15. html) [67] D'aprs Le journal du Net " Tablettes tactiles : 83,9 % de part de march pour Apple iOS (http:/ / www. journaldunet. com/ solutions/ systemes-reseaux/ marche-os-tablettes-tactiles-2010-2015. shtml)" [68] Parts des systmes d'exploitation sur super-ordinateur (site Top500, slectionner "Operating system family") (http:/ / i. top500. org/ stats) [69] (en) Unix history and timeline (http:/ / www. unix. org/ what_is_unix/ history_timeline. html) [70] (en) POSIX.1 FAQ (http:/ / www. opengroup. org/ austin/ papers/ posix_faq. html) [71] (en) Single Unix specification FAQ (http:/ / www. opengroup. org/ austin/ papers/ single_unix_faq. html) [72] (en) What is UNIX (http:/ / www. unix. org/ what_is_unix. html) [73] (en) Jeffrey August Eisenach - Thomas M. Lenard,Competition, innovation, and the Microsoft monopoly,Springer 1999,(ISBN9780792384649) [74] (en) Microsoft Antitrust, a case study (http:/ / www. stern. nyu. edu/ networks/ homeworks/ Microsoft_Case. pdf) [75] L'change de spcifications est une pratique courante dans le march informatique. [76] procdure d'application de l'article 82 du trait CE et de l'article 54 de l'accord EEE engage contre Microsoft Corporation (http:/ / eur-lex. europa. eu/ LexUriServ/ LexUriServ. do?uri=CELEX:32007D0053:FR:HTML)

(en) Windows market share drop to 15 years low (http://www.tgdaily.com/content/view/40398/113/) (en) Unix flavor list (http://linux.about.com/library/bl/bl_flavorlist.htm) (en) IDC report, Server market (http://triangle.bizjournals.com/triangle/stories/2009/08/31/daily35.html) (en) How to choose a Web Server (http://www.wikio.it/article/113600412) (en) The triumph of Linux as supercomputer OS (http://royal.pingdom.com/2009/06/24/the-triumph-of-linux-as-a-supercomputer-os/)

Rfrences A.Tanenbaum, Systmes d'exploitation

Bibliographie Andrew Tanenbaum, Systmes dexploitation, Pearson Education France, 2008, 3ed. (ISBN978-2-7440-7299-4) Laurent Bloch, Les Systmes dexploitation des ordinateurs. Histoire, fonctionnement, enjeux, Vuibert, 2003(ISBN978-2-7117-5322-2)

Environnement graphique

21

Environnement graphiqueEn informatique, un environnement graphique est un ensemble de programmes qui fournissent un cadre de travail simplifiant la manipulation des appareils informatique l'aide d'interfaces graphiques. Ce type de logiciel est apparu sur le march en 1985. En 2010 tous les systmes d'exploitation contemporains proposent au moins un environnement graphique[1],[2].

HistoriqueC'est en 1968, que Douglas Engelbart montre pour la premire fois un environnement graphique comportant des fentres manipuler avec une souris.[rf.ncessaire] Le Xerox Alto, ordinateur conu au Xerox PARC en 1973, fut un des premiers ordinateurs et le premier utiliser la mtaphore du bureau et une interface graphique.

L'anctre de nos souris

L'anctre de nos souris

Un moniteur graphique

Environnement fentrAussi appel WIMP, acronyme anglais pour Windows (fentres), Icons (icnes), Menus (menus) and Pointing device (dispositif de pointage), ce type dinterface graphique a t invent par la firme Xerox et rendu clbre par le Macintosh. Bien quil soit aujourdhui quasiment devenu synonyme dinterface graphique, il ne sagissait dans les annes 1970 que dune variation parmi beaucoup dautres projets dinterface. Les parties les plus typiques dun environnement fentr sont le concept de bureau pour reprsenter lespace de travail, de fentre pour contrler les programmes et manipuler les contenants (rpertoires appels dossiers), dicnes pour symboliser les fichiers, appels documents. Plusieurs contrles graphiques sont couramment utiliss pour interagir avec lutilisateur, comme les boutons, les menus, les listes droulantes, les ascenseurs, etc.

Environnement graphique

22

Exemples denvironnements fentrs Mac OS : le systme d'exploitation des ordinateurs Apple. Mac OS X utilise Aqua comme interface graphique Commodore Amiga : utilise le Workbench du systme d'exploitation AmigaOS. Atari ST : utilise le GEM. Avec le systme Microsoft Windows : outre le bureau standard on peut par exemple utiliser Calmira, Hoverdesk, LiteStep, Talisman Desktop. Windows Vista et Windows 7 utilisent Aero comme interface graphique Sous GNU/Linux et plus gnralement tous les systmes Unix, lenvironnement graphique est traditionnellement spar en plusieurs composants : 1. Un serveur graphique (gnralement X Window System) charg des primitives de dessin de bas niveau ; 2. Un gestionnaire de fentres comme Metacity, Enlightenment, Compiz Fusion (3D), charg de partager le serveur graphique entre les diffrentes applications ; 3. Une bibliothque de composants comme Qt, GTK+ ou Motif charge de la gestion des diffrents composants de linterface : bouton, ascenseurs, zone de texte, Aujourdhui des environnements de bureau regroupent un environnement graphique et un gestionnaire de fentres, d'ailleurs assez simple; je dirais mme plus, qui devrait tre simple (Matthias Ettrich)[3]. En voici quelques uns : GNOME : GNU Network Object Model Environment KDE : K Desktop Environment Xfce : Xfce Desktop Environment GNUstep CDE : Common Desktop Environment FVWM-Crystal : Bureau facile utiliser, au look agrable, mais aussi puissant, bas sur FVWM

Des projets exprimentaux visent la ralisation denvironnements 3D, comme le Projet Looking Glass, ou encore BumpTop.

Utilisation de la carte graphique par l'environnement graphiqueWindows VistaVista de Microsoft puise dans la puissance du processeur graphique afin davoir des effets 3D, ce systme se nomme Aero. Il nest pas ncessaire au fonctionnement de Windows Vista et peut d'ailleurs se dsactiver, mais veut apporter de la convivialit linterface et de lergonomie (Windows Vista Home Edition est dpourvu de linterface Aero). Les mesures de protection (DRM) de contenu commercial (films HD) de Vista exigent une telle puissance de calcul pour le chiffrage-dchiffrage de ces contenus que la puissance des cartes graphiques actuelles ny suffit pas, et que le processeur principal doit donc tre mis contribution.[rf.ncessaire]

Environnement graphique

23

MacOSLe systme dApple utilise la puissance de la carte graphique afin de grer laffichage, 2D ou effets 3D.

IRIXLe systme de SGI (Silicon Graphics, Inc.) fut le premier gestionnaire de fentres exploiter une API 3D, tout ce qui affich dans 4Dwm est en OpenGL, la reprsentation est en 2D.

Gnu/LinuxSous les systmes GNU/Linux, les modules XGL puis AIGLX pour Xorg rendent possible le dessin dune fentre dans un environnement 3D. Ce qui permet aux projets Compiz et son fork Beryl, fusionns en Compiz Fusion de crer un bureau compositeur 3D en utilisant les fonctionnalits 3D des processeurs graphiques. Ces bureaux prennent souvent la forme dun cube, dont les faces sont des bureaux virtuels. De manire gnrale, Xorg utilise lacclration graphique 2D ou 3D lorsque des pilotes sont disponibles pour le matriel. Mais si les pilotes libres tendent soigner autant lacclration 2D que 3D, les pilotes propritaires ATI et nVidia se concentrent sur lacclration 3D. Lutilisation dun bureau compositeur permet donc damliorer la fluidit avec ces pilotes. Ces bureaux compositeurs ne sont gnralement que des gestionnaires de fentres, ils ne sont quune partie dun environnement de bureau. Il faut donc les utiliser conjointement avec KDE, GNOME, XFCE ou tout environnements de bureaux qui permettent dutiliser un autre gestionnaire de fentre.

Environnement graphique dun poste distantIl est galement possible daccder lenvironnement graphique dun poste distant, en utilisant les protocoles VNC, XDMCP ou Export display par SSH et avec des logiciels adquats.

Environnement graphique pour applications spcifiquesLes environnements graphiques pour des systmes ddis ne sont pas toujours bass sur les systmes dexploitation standard. Les bornes interactives avec crans tactiles ou les automates de paiement (DAB, billetteries automatiques) Les machines-outils commande numrique et autres quipements industriels avec logiciel temps rel (RTOS). Les derniers modles de tlphones et de consoles de jeu portables.

Notes et rfrences(en) Paul Bocij, Andrew Greasley,Business information systems: technology, development and management for the e-business,Pearson Education - 2006,(ISBN9780273688143) [2] (en) Jielin Dong, Dong Jielin,Network Dictionary - Safari Books Online,Javvin Technologies Inc. - 2007,(ISBN9781602670006) [3] Matthias Ettrich, Manifeste de KDE (http:/ / www. kde. org/ announcements/ announcement. php), 1996. Consult le 29octobre2007[1]

Noyau de systme d'exploitation

24

Noyau de systme d'exploitationUn noyau de systme dexploitation, ou simplement noyau, ou kernel (de l'anglais[1]), est la partie fondamentale de certains systmes dexploitation. Il gre les ressources de lordinateur et permet aux diffrents composants matriels et logiciels de communiquer entre eux. En tant que partie du systme dexploitation, le noyau fournit des mcanismes dabstraction du matriel, notamment de la mmoire, du (ou des) processeur(s), et des changes dinformations entre logiciels et priphriques matriels. Le noyau autorise aussi diverses abstractions logicielles et facilite la communication entre les processus. Le noyau dun systme dexploitation est lui-mme un logiciel, mais ne peut cependant utiliser tous les mcanismes dabstraction quil fournit aux autres logiciels[2]. Son rle central impose par ailleurs des performances leves. Cela fait du noyau la partie la plus critique dun systme dexploitation et rend sa conception et sa programmation particulirement dlicates. Plusieurs techniques sont mises en uvre pour simplifier la programmation des noyaux tout en garantissant de bonnes performances.

GnralitsEn informatique, le noyau dun systme dexploitation est le logiciel qui assure : la communication entre les logiciels et le matriel ; la gestion des divers logiciels (tches) dune machine (lancement des programmes, ordonnancement) ; la gestion du matriel (mmoire, processeur, priphrique, stockage). La majorit des systmes dexploitation est construite autour de la notion de noyau. Lexistence dun noyau, cest--dire dun programme unique responsable de la communication entre le matriel et le logiciel, rsulte de compromis complexes portant sur des questions de performance, de scurit et darchitecture des processeurs. Lexistence dun noyau prsuppose[3] une partition virtuelle de la mmoire vive physique en deux rgions disjointes, lune tant rserve au noyau (lespace noyau) et lautre aux applications (lespace utilisateur). Cette division, fondamentale, de lespace mmoire en un espace noyau et un espace utilisateur contribue beaucoup donner la forme et le contenu des actuels systmes gnralistes (GNU/Linux, Windows, Mac OS X, etc.), le noyau ayant de grands pouvoirs sur lutilisation des ressources matrielles, en particulier de la mmoire. Elle structure galement le travail des dveloppeurs : le dveloppement de code dans lespace noyau est priori plus dlicat que dans lespace utilisateur car la mmoire ny est pas protge. Ceci implique que des erreurs de programmation, altrant ventuellement les instructions du noyau lui-mme, sont potentiellement beaucoup plus difficiles dtecter que dans l'espace utilisateur o de telles altrations sont rendues impossibles par le mcanisme de protection. Le noyau offre ses fonctions (laccs aux ressources quil gre) au travers des appels systme. Il transmet ou interprte les informations du matriel via des interruptions. Cest ce que lon appelle les entres et sorties. Diverses abstractions de la notion dapplication sont fournies par le noyau aux dveloppeurs. La plus courante est celle de processus (ou tche). Le noyau du systme dexploitation nest en lui-mme pas une tche, mais un ensemble de fonctions pouvant tre appeles par les diffrents processus pour effectuer des oprations requrant un certain niveau de privilges. Le noyau prend alors en gnral le relais du processus pour rendre le service demand et lui rend le contrle lorsque les actions correspondantes ont t ralises. Il peut arriver cependant que le processus puisse poursuivre une partie de son excution sans attendre que le service ait t compltement ralis. Des mcanismes de synchronisation sont alors ncessaires entre le noyau et le processus pour permettre celui-ci, une fois qu'il est arriv au point o il a besoin que le service ait t rendu, d'attendre que le noyau lui notifie l'excution effective du service en question. Un processeur est capable dexcuter un seul processus, un multiprocesseur est capable de grer autant de processus quil a de processeurs. Pour pallier cet inconvnient majeur, les noyaux multitches permettent lexcution de

Noyau de systme d'exploitation plusieurs processus sur un processeur, en partageant le temps du processeur entre les processus. Lorsque plusieurs tches doivent tre excutes de manire parallle, un noyau multitche sappuie sur les notions de : commutation de contexte ; ordonnancement ; temps partag. Les entres et les sorties font lobjet dun traitement spcifique par lordonnanceur.

25

Systmes noyaux restreintsIl existe de nombreux noyaux aux fonctionnalits restreintes tels que les micro-noyaux, les systmes sans noyau (MS-DOS, CP/M) ou les exo-noyaux. Ces systmes sont gnralement adapts des applications trs cibles mais posent des problmes varis (de scurit avec MS-DOS, de performances avec HURD ou QNX). La plupart dentre eux sont actuellement inadapts pour une utilisation gnraliste, dans des serveurs ou ordinateurs personnels.

Fonctions gnralement remplies par un noyauLes noyaux ont comme fonctions de base dassurer le chargement et lexcution des processus, de grer les entres/sorties et de proposer une interface entre lespace noyau et les programmes de lespace utilisateur. de rares exceptions, les noyaux ne sont pas limits leurs fonctionnalits de base. On trouve gnralement dans les noyaux les fonctions des micro-noyaux : un gestionnaire de mmoire et un ordonnanceur, ainsi que des fonctions de communication inter-processus. En dehors de fonctions prcdemment listes, de nombreux noyaux fournissent galement des fonctions moins fondamentales telles que : la gestion des systmes de fichiers ; plusieurs ordonnanceurs spcialiss (batch, temps rel, entres/sorties, etc.) ; des notions de processus tendues telles que les processus lgers ; des supports rseaux (TCP/IP, PPP, pare-feu, etc.) ; des services rseau (NFS, etc.).

Enfin, la plupart des noyaux fournissent galement des modles de pilotes et des pilotes pour le matriel. En dehors des fonctionnalits de base, lensemble des fonctions des points suivants (y compris les pilotes matriels, les fonctions rseaux et systmes de fichiers ou les services) n'est pas ncessairement fourni par un noyau de systme dexploitation. Ces fonctions du systme dexploitation peuvent tre implantes tant dans lespace utilisateur que dans le noyau lui-mme. Leur implantation dans le noyau est faite dans lunique but daugmenter les performances. En effet, suivant la conception du noyau, la mme fonction appele depuis lespace utilisateur ou lespace noyau a un cot temporel notoirement diffrent. Si cet appel de fonction est frquent, il peut savrer utile dintgrer ces fonctions au noyau pour augmenter les performances. Ces techniques sont utilises pour pallier des dfauts des noyaux tels que les latences leves. Autant que possible, il est prfrable dcrire un logiciel hors du noyau, dans lespace utilisateur. En effet, lcriture en espace noyau suppose labsence de mcanismes tels que la protection de la mmoire. Il est donc plus complexe dcrire un logiciel fonctionnant dans lespace noyau que dans lespace utilisateur, les bugs et failles de scurit sont bien plus dangereux.

Noyau de systme d'exploitation

26

OrdonnanceurLordonnanceur dun systme dexploitation na de sens quen systme multitche. Il gre lordre dans lequel les instructions de diffrentes tches sont excutes et est responsable de la sauvegarde et de la restauration du contexte des tches (ce contexte est constitu des registres processeurs), appele galement commutation de contexte. La plupart des ordonnanceurs modernes permettent dindiquer sur quel processeur sont excutes les tches. Certains permettent galement de migrer des tches sur dautres machines dune grappe de calcul. Lalgorithme dordonnancement dtermine quelle tche doit sexcuter en priorit et sur quel processeur. Cet algorithme doit permettre dutiliser efficacement les ressources de la machine. Lordonnancement peut tre de type coopratif : les tches doivent tre crites de manire cooprer les unes avec les autres et ainsi accepter leur suspension pour lexcution dune autre tche. Lordonnancement peut tre galement de type premptif : lordonnanceur a la responsabilit de linterruption des tches et du choix de la prochaine excuter. Certains noyaux sont eux-mmes premptifs : lordonnanceur peut interrompre le noyau lui-mme pour faire place une activit (typiquement, toujours dans le noyau) de priorit plus leve.

Gestionnaire de mmoireLe gestionnaire de mmoire est le sous-ensemble du systme dexploitation qui permet de grer la mmoire de lordinateur. Sa tche la plus basique est dallouer de la mmoire des processus lorsquils en ont besoin. Cette mmoire alloue est par dfaut propre au processus qui en fait la demande. Sur les noyaux rcents[4], le gestionnaire de mmoire masque la localisation physique de la mmoire (en mmoire vive ou sur disque dur, dans lespace de mmoire pagine) et prsente au programme une mmoire globale uniforme dite mmoire virtuelle. Ainsi, tout processus croit manipuler une mmoire "logique" qui a les proprits suivantes[5] : la mmoire peut tre tendue jusquaux capacits thoriques de la machine[6] ; la mmoire est prive (protge), un processus ne peut pas accder la mmoire dun autre processus (sauf allocations et autorisations spcifiques).

Noyau de systme d'exploitation Lintrt de ne pas indiquer au processus lemplacement physique des donnes est de permettre au gestionnaire de mmoire de placer et dplacer sa convenance les donnes en mmoire, sans affecter les processus. Ces donnes peuvent notamment tre fragmentes dans la mmoire vive lorsquun processus demande un bloc de mmoire dune taille suprieure au plus grand bloc physique libre. Le contenu de la mmoire peut aussi tre migr. Cette migration est faite sur les diffrents supports mmoires tels que dans la mmoire physique (plus ou moins proche du processeur), dans la mmoire pagine, dans la mmoire accessible par rseaux (grappe de calcul). La virtualisation de la mmoire permet aussi une gestion optimiste des ressources : la mmoire alloue mais pas encore utilise peut tre virtuellement alloue plusieurs processus (noyau Linux). Les programmes dans lespace utilisateur disposent de pouvoirs restreints sur la mmoire : ils doivent demander au noyau de la mmoire. Le noyau fait appel son gestionnaire de mmoire pour allouer (ou non) la mmoire au processus qui la demande. Si un processus tente dutiliser des zones de mmoire ne lui appartenant pas, il est vinc automatiquement. Le mcanisme dviction repose sur un mcanisme du processeur, nommment une unit de gestion de la mmoire, ou MMU, qui signale au noyau lexistence dun accs fautif. Cest le noyau lui-mme qui prend la dcision de suspendre ou dtruire immdiatement le processus fautif.

27

Appels systmeLes appels systme sont des fonctions : appeles depuis un programme de lespace utilisateur ; dont lexcution (le traitement) est effectue dans lespace noyau ; dont le retour est effectu dans le programme appelant dans lespace utilisateur. En plus dun changement de mode dexcution, lappel systme suppose au moins deux commutations de contextes : 1. Contexte du programme appelant ; changement de contexte ; 2. Contexte du noyau ; changement de contexte ; 3. Contexte du programme appelant. Le cot dun appel systme est nettement plus lev quun simple appel de fonction intra-processus : alors quun appel de fonction ne suppose que quelques instructions primitives (chargement et excution dune zone mmoire), le cot dun appel systme se compte en milliers ou dizaines de milliers dinstructions primitives, gnrant la fois une charge et des dlais dexcution supplmentaires. Pour ces raisons, les fonctions qui sont utilises de manire intense sont dplaces dans lespace noyau. Les programmes utilisateurs font alors un nombre restreint dappels systme de haut niveau. Les nombreuses interactions de bas niveau gnres par ces appels systme sont effectues dans lespace noyau. Cela concerne notamment les pilotes de priphriques. Les entres/sorties font galement lobjet dun traitement par lordonnanceur.

Gestion du matrielLa gestion du matriel se fait par lintermdiaire de pilotes de priphriques. Les pilotes sont des petits logiciels lgers ddis un matriel donn qui permettent de faire communiquer ce matriel. En raison du trs grand nombre daccs certains matriels (disques durs par exemple), certains pilotes sont trs sollicits. Ils sont gnralement inclus dans lespace noyau et communiquent avec lespace utilisateur via les appels systme. En effet, comme cela a t vu dans le prcdent paragraphe, un appel systme est coteux : il ncessite au moins deux changements de contexte. Afin de rduire le nombre des appels systme effectus pour accder un priphrique, les interactions basiques avec le priphrique sont faites dans lespace noyau. Les programmes utilisent ces priphriques au travers dun nombre restreint dappels systme.

Noyau de systme d'exploitation Cependant, indpendamment de larchitecture, de nombreux priphriques lents (certains appareils photographiques numriques, outils sur liaison srie, etc.) sont/peuvent tre pilots depuis lespace utilisateur, le noyau intervenant au minimum. Il existe des couches dabstraction de matriel (HAL) qui prsentent la mme interface lespace utilisateur et simplifient ainsi le travail des dveloppeurs dapplications. Dans les systmes de type UNIX, labstraction utilise est le systme de fichiers : les primitives open, close, read et write sont prsentes lespace utilisateur pour manipuler toutes sortes de priphriques. On parle dans ce cas de systme de fichiers synthtique.

28

Diffrents types de noyauxIl existe toutes sortes de noyaux, plus ou moins spcialiss. Des noyaux spcifiques une architecture, souvent monotches, dautres gnralistes et souvent multitches et multiutilisateurs. Lensemble de ces noyaux peut tre divis en deux approches opposes darchitectures logicielles : les noyaux monolithiques et les micro-noyaux. On considre gnralem