SOMMAIRE 1-Préambule 2-Composition du Système d’exploitation 3-Principales fonctions du système d’exploitation 4-Typologie 5-Conclusion 6-Annexe 7-Références ETUDE DES SYSTEMES D’EXPLOITATION Page 1 1-PREAMBULE Le système d’exploitation d’un ordinateur ou d’une installation informatique est un ensemble de programmes qui remplissent deux grandes fonctions : - gérer les ressources de l’installation matérielle en assurant leurs partages entre un ensemble plus ou moins grand d’utilisateurs - assurer un ensemble de services en présentant aux utilisateurs une interface mieux adaptée à leurs besoins que celle de la machine physique. Un système informatique est un ensemble de matériels et de logiciels destiné à réaliser des tâches mettant en jeu le traitement automatique de l’information. La communication d’un tel système avec le monde extérieur est assurée par des organes d’accès ; ceux ci permettent également une interaction avec des dispositifs physiques que le système informatique est chargé de surveiller ou piloter. La fonction d’un système informatique est la fourniture de prestations (services) capables d’aider à la réalisation de problèmes usuels : - gestion de l’information : stockage, désignation, recherche, communication, protection contre les intrusions ou les incidents; préparation et mise au point de programmes; - gestion de l’ensemble des ressources pour permettre l’exploitation des programmes (c’est-à-dire création d’un environnement nécessaire à l’exécution du programme); - gestion et partage de l’ensemble des ressources (matériels, informations, ...) entre l’ensemble des usagers; On peut considérer que cet ensemble de prestations, fournies par le système d’exploitation, constitue pour l’usager de ce système, une machine nouvelle qualifiée d’abstraite ou de virtuelle, par opposition à la machine physique réalisée par l’assemblage de composants matériels ( logiciel d’application,logiciel de base, machine physique ). Le logiciel de base peut lui-même être décomposé en deux niveaux : les outils et services (compilateurs, chargeurs, éditeurs, utilitaires, ...) et le système d’exploitation. Le présent expose consistera a mettre en évidence de manière minutieuse et successive la composition, les principales fonctions, la typologie et enfin les différents types de systèmes d’exploitation. 2-COMPOSITION DU SYSTEME D’EXPLOITATION Un système d’exploitation est typiquement composé : d’un noyau ; de bibliothèques, d’un ensemble d’outils système ; de programmes applicatifs de base. ETUDE DES SYSTEMES D’EXPLOITATION Page 2 2-1- Le Noyau de système d'exploitation. Le noyau (ou cœur) assure les fonctionnalités suivantes : gestion des périphériques (au moyen de pilotes) ; gestion de l’exécution des programmes (aussi nommés processus) : o gestion de la mémoire attribuée à chaque processus ; o ordonnancement des processus (répartition du temps d’exécution sur le ou les processeurs). o synchronisation et communication entre processus (services de synchronisation, d’échange de messages, mise en commun de segments de mémoire, etc.) gestion des fichiers (au moyen de systèmes de fichiers) ; gestion des protocoles réseau (TCP/IP, IPX, etc.). Il s’agit de la couche primordiale, celle qui est lancée lors du démarrage de l’ordinateur que l’on appelle couramment le boot. Grâce à celui-ci, les premiers services peuvent accéder aux applications système : gestion de la mémoire, accès aux disques durs et accès aux périphériques. Il gère donc les ressources de l’ordinateur et permet aux différents composants matériels et logiciels de communiquer entre eux. 2-2-Les Bibliothèques Les bibliothèques servent à regrouper les opérations les plus utilisées dans les programmes informatiques, afin d’éviter la redondance de la réécriture de ces opérations dans tous les programmes. 2-3-L’ensemble d’outils systèmes Le système de fichiers (FS ou filesystem en anglais) ou système de gestion de fichiers (SGF) est une structure de données permettant de stocker les informations et de les organiser dans des fichiers sur ce que l’on appelle des mémoires secondaires (disque dur, disquette, CD-ROM, clé USB, etc.). Ce stockage de l’information est persistant. Une telle gestion des fichiers permet de traiter et de conserver des quantités importantes de données ainsi que de les partager entre plusieurs programmes informatiques. Il offre à l’utilisateur une vue abstraite sur ses données et permet de les localiser à partir d’un chemin d’accès. ETUDE DES SYSTEMES D’EXPLOITATION Page 3 Les outils système permettent : de configurer le système (gestion des comptes des utilisateurs, configuration des paramètres réseau, démarrage automatique des services, etc.) ; de passer le relais aux applications proposant des services à un ou plusieurs utilisateurs ou à d’autres ordinateurs, grâce au réseau par exemple. L'interface utilisateur aussi nommée interface homme-machine (IHM) permet à un homme de se servir de l'ordinateur. Cette interaction homme machine s’élabore tant par le biais d'interfaces graphiques qu'en ligne de commande. 2-4-Les programmes applicatifs de base Les programmes applicatifs de base offrent des services à l’utilisateur (calculatrice, éditeur de texte, navigateur web, etc.). Ces programmes applicatifs sont souvent fournis en bundle (en vente liée) avec le système d’exploitation. 3-PRINCIPALES FONCTIONS DU SYSTEME D’EXPLOITATION Les principales fonctions du système d’exploitation peuvent être classées hiérarchiquement en trois rubriques: 3-1 - La machine virtuelle fonctions de gestion de l'information: structuration, conservation, désignation (mémoire virtuelle, fichiers...). Ceci concerne aussi bien l'information stockée sur les mémoires périphériques que dans celle de l'ordinateur. Nous l'étudierons dans les chapitres IV et V. ETUDE DES SYSTEMES D’EXPLOITATION Page 4 transferts entre les différents éléments de la machine. Ceci concerne les échanges entre les différentes parties: mémoire, processeur, périphériques... fonctions d'exécution: exécution des programmes en parallèle, en séquence... 3-2 - la gestion et le partage des ressources gestion des ressources physiques: allocation de la mémoire principale et de la mémoire secondaire (fichiers), gestion des organes d'entrées-sorties. partage et échange de l'information entre utilisateurs protection mutuelle entre utilisateurs, sécurité. 3-3- les outils d'exploitation compilateurs, aide à la mise au point de programmes outils de sauvegarde, d'archivage, traitement des défaillances. éditeurs, outils divers... La plupart des utilisateurs ne connaissent que ce troisième niveau. Sa richesse, sa facilité d'emploi, sa souplesse définissent la qualité d'un système d'exploitation du moins pour le non-spécialiste. 4-TYPOLOGIE On distingue les systèmes selon 4 grandes classes 4-1-selon les services rendus Mono/multi tâches : capacité du système à pouvoir exécuter plusieurs processus simultanément ; par exemple effectuer une Compilation et consulter le fichier source du programme correspondant. C'est le cas d'UNIX, d'OS/2 d'IBM et de Windows 95. Mono/Multi-Utilisateurs : capacité à pouvoir gérer un panel d'utilisateurs utilisant simultanément les mêmes ressources matérielles. (Cas d'UNIX, de MVS, de Gecos ...) 4-2-Selon leur architecture Systèmes centralisés : L’ensemble du système est entièrement présent sur la machine considérée. Les machines éventuellement reliées sont vues comme des entités étrangères disposant elles aussi d'un système ETUDE DES SYSTEMES D’EXPLOITATION Page 5 centralisé. Le système ne gère que les ressources de la machine sur laquelle il est présent. C'est le cas d'UNIX, même si les applications réseaux (X11, FTP, Mail ...) se sont développées. Systèmes répartis (distributed systems) : Les différentes abstractions du système sont réparties sur un ensemble (domaine) de machines (site). Le système d'exploitation réparti apparaît aux yeux de ses utilisateurs comme une machine virtuelle monoprocesseur même lorsque cela n'est pas le cas. Avec un système réparti, l'utilisateur n'a pas à se soucier de la localisation des ressources. Quand il lance un programme, il n'a pas à connaître le nom de la machine qui l'exécutera. Ils exploitent au mieux les capacités de parallélisme d'un domaine. Ils offrent des solutions aux problèmes de la résistance aux pannes. 4-3-Selon leur capacité à évoluer Systèmes fermés (ou propriétaires) : Extensibilité réduite : Quand on veut rajouter des fonctionnalités à un système fermé, il faut remettre en cause sa conception et refaire une archive (système complet). C'est le cas d'UNIX, MS-DOS ... Il n'y a aucun ou peu d'échange possible avec d'autres systèmes de type différent, voir même avec des types identiques. C'est le cas entre UNIX BSD et SV. Systèmes ouverts : Extensibilité accrue : Il est possible de rajouter des fonctionnalités et des abstractions sans avoir à repenser le système et même sans avoir à l'arrêter sur une machine. Cela implique souvent une conception modulaire basée sur le modèle « client-serveur ». Cela implique aussi une communication entre systèmes, nécessitant des modules spécialisés. 4-4-Selon l'architecture matérielle qui les supporte Architecture monoprocesseur (temps partagé ou multiprogrammation) : Ressource processeur unique : Il a fallu développer un mécanisme de gestion des processus pour offrir un (pseudo) parallélisme à l'utilisateur : c'est la multi-programmation ; il s'agit en fait d'une commutation rapide entre les différents processus pour donner l'illusion d'un parallélisme. Architectures multiprocesseurs (parallélisme): On trouve une grande variété d'architectures multiprocesseurs : -SIMD (Single Instruction Multiple Data) : Tous les processeurs exécutent les mêmes instructions mais sur des données différentes. -MIMD (Multiple Instructions Multiple Data) : Chaque processeur et complètement indépendant des autres et exécute des instructions sur des données différentes. -Pipeline : Les différentes unités d'exécution sont mises en chaîne et font chacune partie du traitement à effectuer. ETUDE DES SYSTEMES D’EXPLOITATION Page 6 On parle aussi d'architecture faiblement ou fortement couplée. Architecture fortement couplée : Ce sont principalement des architectures à mémoire commune. Architecture faiblement couplée : Ce sont des architectures où chaque processeur possède sa propre mémoire locale ; c'est le cas d'un réseau de stations. Architecture mixte : Ce sont des architectures à différents niveaux de mémoire (commune et privée). Remarque : Il n'y a pas de système universel pour cette multitude d'architectures. Les constructeurs de supercalculateurs ont toujours développés leurs propres systèmes. Aujourd'hui, compte tenu de la complexité croissante des systèmes d'exploitation et du coût inhérent, la tendance est à l'harmonisation notamment via le développement de systèmes polyvalents tels que les systèmes répartis. Un cas particulier, les systèmes « temps réel ». Les Systèmes temps réel sont des systèmes pour lesquels l'exécution des programmes est soumise à des contraintes temporelles. Les résultats de l'exécution d'un programme n'est plus valide au delà d'un certain temps connu et déterminé à l'avance. Généralement, on trouve des systèmes « temps réel » dans les systèmes embarqués (satellites, sondes, avions, trains, téléphones portables, ...). On distingue deux types de contraintes temporelles : les contraintes strictes et les contraintes relatives. Pour garantir ces contraintes, le système possède des mécanismes spécifiques dont le but est de réduire l'indéterminisme des durées d'exécution des programmes. C'est le cas de Linux-RT. 5-CONCLUSION De part leurs structures, leurs fonctions, et leur classification, les systèmes d’exploitations facilitent l’utilisation des différentes ressources d’un système informatique (ordinateur…). 6-ANNEXE La ligne de commande (en anglais CLI pour Command Line Interface) était la seule interface disponible sur les ordinateurs des années 1970. Elle est encore utilisée en raison de sa puissance (Turing-complétude du langage), de sa grande rapidité et du peu de ressources nécessaires à son fonctionnement. L'interface graphique (en anglais GUI pour Graphical User Interface) s’oppose à l’interface en ligne de commande. Les parties les plus typiques de ce type d’environnement sont le pointeur de souris, les fenêtres, le bureau, les icônes. D'autres contrôles graphiques sont ETUDE DES SYSTEMES D’EXPLOITATION Page 7 couramment utilisés pour interagir avec l’utilisateur : les boutons, les menus… Liste non exhaustive de systèmes d’exploitation OS/2 d’IBM ; OS/400 présent sur les moyens systèmes IBM (AS/400 - ISéries) ; Mac OS : le premier système d’exploitation des ordinateurs Apple Macintosh, qui a succédé aux systèmes Lisa et Apple II, et a été suivi de Mac OS X puis d'Phone OS ; VMS et OpenVMS (Compaq, ex-Digital) ; Geekeo : Open source et spécialisé dans la virtualisation ; la famille des DOS, dont : PC-DOS (version fournie par IBM avec les premiers x86), MS-DOS, DR-DOS, FreeDOS, PTS-DOS... Windows 9x, le système d’exploitation fenêtré de Microsoft basé sur le MSDOS ; Windows NT ; ReactOS, Un système d'exploitation libre compatible win32. BeOS et ses successeurs libres et propriétaires : Haïku. AtheOS et son fork Syllabe dont l'arborescence du système de fichier est très proche d'UNIX. Dérivés d’UNIX (sous différentes déclinaisons : BSD, System V, etc.) dont : GNU/Linux : un système d’exploitation libre s’appuyant sur le noyau Linux et les outils GNU. Distributions : Debian, Mandriva, Ubuntu, Gentoo, Red Hat, Fedora, SuSE, Slackware, EduLinux… la famille BSD : un effort réussi pour rendre sa liberté au système de Berkeley comprenant : NetBSD, OpenBSD et son dérivé OliveBSD, FreeBSD et ses dérivés, PicoBSD, DragonFly BSD et PC-BSD; Darwin (sur lequel est construit Mac OS X, semipropriétaire), OpenSolaris de Sun. les UNIX propriétaires : AIX (IBM, SystemV), A/UX (Apple, SystemV), BOS (Bull Operating System), Irix (Silicon Graphics, SystemV), HP-UX (Hewlett Packard, SystemV), LynxOS (LynuxWorks), NeXTSTEP (NeXT, BSD), Sinix (Siemens), Solaris(Sun, SystemV), SunOS (Sun, BSD), Tru64 (Compaq). les systèmes d’exploitation grands systèmes (mainframes) : Multics (père d’UNIX) et héritier de CTSS IBM : MVS, VM, DOS/VSE, TPF ETUDE DES SYSTEMES D’EXPLOITATION Page 8 Bull : GCOS Siemens : BS2000 DEC : TOPS-10, TOPS-20 et ITS Symbian OS est un système d’exploitation pour Smartphones 7-REFERENCES Andrew Tanenbaum, Systèmes d’exploitation, Pearson Education France, 2003, 2e édition Laurent Bloch, Les systèmes d’exploitation des ordinateurs. Histoire, fonctionnement, enjeux, Vuibert, 2003, www.jetel.free.fr/inf_os www.wikipedia.org www.commentcamarche.net/contents/systemes/sysintro.php3 www.lmcp.jussieu.fr/impmc/enseignement/ye/informatique/systemes/chap1 Département Informatique IUT de Caen (France) ETUDE DES SYSTEMES D’EXPLOITATION Page 9