Cours gratuits » Cours informatique » cours d'informatique générale

cours d'informatique générale

Problème à signaler:

Télécharger



★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Cours d'informatique générale exemples et explications

...

Typologie

Un système d'exploitation est typiquement composé d'une large palette de programmes. La composition exacte dépend de l'usage cible pour lequel le système d'exploitation est destiné : ordinateur personnel, serveur, superordinateur ou encore système embarqué.

Un système d'exploitation est conçu pour fonctionner avec une gamme particulière de machines (type de processeur, constructeur, architecture). Si un système d'exploitation est disponible pour plusieurs gamme

s machines différentes, alors le même code source est compilé [1] et adapté à chaque gamme de machine. La liste exacte des machines sur lesquelles il peut être utilisé dépend aussi de la palette de pilotes inclus dans le système d'exploitation.

Selon sa construction, un système d'exploitation peut être multi-tâches ou alors monotâche, multi-utilisateurs ou alors mono-utilisateur, il peut aussi être multiprocesseurs et/ou en temps réel.

  • Un système d'exploitation est dit multi-tâches quand il permet l'exécution simultanée de plusieurs programmes. Les premiers systèmes d'exploitation multi-tâches sont apparus dans les années 1960, et aujourd'hui tous les systèmes d'exploitation contemporains sont multi-tâches.
  • Il est dit multi-utilisateurs quand il est conçu pour être utilisé simultanément par plusieurs usagers, souvent à travers un réseau informatique. De tels systèmes d'exploitation sont typiquement utilisés pour des serveurs ainsi que des mainframe ou des superordinateurs, ils sont multi-tâches et sont souvent sécurisés c'est-à-dire qu'il vont refuser toute opération pour laquelle l'usager n'a pas préalablement reçu la permission.
  • Il est dit multi-processeurs quand il est conçu pour exploiter un ordinateur équipé de plusieurs processeurs. Dans de tels systèmes d'exploitation plusieurs programmes sont exécutés simultanément par les différents processeurs.
  • Il est dit temps réel quand les opérations sont garanties d'être effectuées dans un temps très court, et ce quelles que soient les conditions d'utilisation. De tels systèmes d'exploitation sont utilisés dans l'industrie, l'aéronautique ou l'électronique grand public pour créer des systèmes temps réel.

par exemple OS/2 est un système d'exploitation multitâches mono-utilisateur pour les ordinateurs personnels à l'architecture compatible PC, alors que Solaris est un système d'exploitation multi-utilisateurs et multiprocesseurs pour les stations de travail, les serveurs et les superordinateurs construits par Sun Microsystems. voir plus loin d'autres exemples.

Histoire

Dans les années 1940 les ordinateurs étaient programmés par manipulation d'interrupteurs à bascule, puis plus tard en perçant des trous dans des cartes perforées et en introduisant une pile de cartes dans un lecteur à la mécanique similaire aux pianos mécaniques.

Les ordinateurs, très coûteux, des années 1940 à 1960 étaient la propriété des entreprises et des institutions. Chaque utilisateur avait le droit d'utiliser l'ordinateur pendant un temps donné. Le temps était souvent déterminé par une horloge murale ou une pointeuse, l'utilisateur avait alors à disposition la totalité du matériel de l'ordinateur. Il apportait avec lui une pile de cartes perforées qui contenait les instructions du ou des programmes à exécuter.

Les ordinateurs de cette époque effectuaient une seule tâche à la fois, au service d'un seul utilisateur. Les programmes pour ces ordinateurs contenaient toutes les instructions nécessaires pour manipuler le matériel de l'ordinateur. Si la logithèque pour cet ordinateur comportait 50 programmes, les instructions nécessaires pour manipuler le matériel se retrouvaient dans tout les 50 programmes.

Avec l'agrandissement de la logithèque, l'idée est venue d'isoler les instructions routinières dans un programme séparé. Un programme qui réside continuellement dans la mémoire, quel que soit le programme en cours d'exécution.

1960, La multiprogrammation

Les ordinateurs des années 1960 étaient typiquement équipés d'un lecteur de carte perforée, d'une imprimante et d'un disque dur. Les ingénieurs ont constaté que les ordinateurs passaient plus de temps à attendre qu'un périphérique termine son travail qu'à exécuter des instructions.

Les systèmes d'exploitation ont alors été construits de manière à permettre l'exécution de plusieurs programmes à la fois. Un premier programme est exécuté, puis, dès que le premier attend sur un périphérique, le système d'exploitation enchaîne sur l'exécution d'un deuxième programme, voire un troisième et ainsi de suite. Cette technique dite de multiprogrammation est le précurseur du multitâche des systèmes d'exploitation d'aujourd'hui, proche du multitâche coopératif qui a été utilisé jusque dans les années 1990.

Les premiers systèmes d'exploitation multi-utilisateurs sont apparus dans les années 1970. Sur le principe de la multiprogrammation, le système d'exploitation exécute des programmes au service d'un des utilisateurs pendant une durée déterminée (quelques millisecondes), puis sert un autre utilisateur. Ce temps - très court par rapport au délai entre chaque frappe au clavier - donnait à l'utilisateur l'illusion que la machine travaillait uniquement pour lui - une illusion qui existe encore avec les systèmes d'exploitation contemporains.

La possibilité pour un ordinateur de servir simultanément plusieurs personnes augmentait le retour sur investissement de l'achat de matériel très coûteux par les entreprises et les institutions.

En 1965 le Massachusetts Institute of Technology se lance dans la création du premier système d'exploitation multitâches et multi-utilisateurs: Multics (pour multiplexed computing system ou système d'exploitation multiplexé). Ecrit en langage de programmation PL/1, trop complexe pour les ordinateurs de l'époque, Multics fût un échec commercial.

En 1969 les ingénieurs Ken Thompson et Dennis Ritchie des laboratoires Bell rêvent d'utiliser le système d'exploitation Multics, mais le matériel pour le faire fonctionner est tout simplement hors de prix. Ils se lancent alors dans l'écriture de leur propre système d'exploitation, qui reprends les idées de Multics, utilise un langage de programmation plus approprié (le C), et qu'il appellent avec humour Unix (pour uniplexed computing system)[2][3].

1975, Les micro-ordinateurs

Sorti en 1975, le Altair 8800 était le premier micro-ordinateur du monde. Un appareil livré en kit au prix approximatif de 400 $, et qui se programmait en inversant une série d'interrupteurs à bascule situés sur la face avant de l'appareil. Le prix du Altair 8800 le rendait accessible pour une personne seule. Mais son utilisation compliquée (qui rappelle les ordinateurs centraux des années 1940) limitait son utilisation à des passionnés et des hobbyistes.

En 1975 les micro-ordinateurs n'avaient pas une puissance de calcul suffisante pour être équipés d'un système d'exploitation comme Unix ou OS/360. Gary Kildall, ingénieur pour Intel crée CP/M, le premier système d'exploitation pour micro-ordinateur.

En 1980, IBM prend contact avec Gary Kildall, pour lui demander d'adapter CP/M à son nouveau micro-ordinateur, le Personal Computer (abrégé PC). Gary Kildall refuse de signer le contrat, et IBM se tourne alors vers Microsoft. La startup de Bill Gates, qui n'a encore jamais développé de système d'exploitation prend six mois pour créer MS-DOS sur la base de QDOS - un système d'exploitation quick-and-dirty pour les processeurs Intel 8086[4].

C'est à la même é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 sociétés majeures de l'époque s'intéresse à l'optique de Steve Jobs, réunit une poignée de scientifiques et d'ingénieurs dans son centre de recherche de Palo Alto, et, sur la base de thèses et d'études effectuées les années auparavant, développe le premier micro-ordinateur équipé d'une interface utilisateur graphique. Le résultat des recherches, le Xerox Star ne sera jamais commercialisé et c'est Apple, dix ans plus tard, avec le Macintosh, qui popularise les recherches effectuées par Xerox[5].

1990, Les systèmes d'exploitation sous licence libre

en 1987, Andrew Tanenbaum, professeur à l'Université libre d'Amsterdam crée le système d'exploitation Minix, dont le code source est destiné à illustrer son cours sur la construction des systèmes d'exploitation. La totalité du code source se trouve dans son livre Operating Systems: Design and Implementation. Inspiré — mais peu convaincu[6] — par les travaux de Tanenbaum, Linus Torvalds, étudiant à l'université d'Helsinki se lance dans le développement de son propre système d'exploitation: Linux.

En même temps, Richard Stallman du Massachusetts Institute of Technology lance l'idée d'un système d'exploitation sous licence libre, qu'il appelle GNU. Il développe des programmes destinés aux programmeurs, des logiciels utilitaires, et crée la GNU General Public License - un contrat de licence exempt de droits d'auteur.

De l'autre côté des États-Unis, les étudiants et les rechercheurs de l'université de Berkeley créent des logiciels utilitaire pour Unix. Ces logiciels sous licence libre sont vendus avec le noyau Unix de AT&T, lui-même sous licence propriétaire, sous le nom Berkeley Software Distribution (traduction: la suite de logiciels de Berkeley) - abrégé BSD.

Cette double licence de BSD est à l'origine de plusieurs années de litiges entre l'Université de Berkeley et AT&T[7]. Les étudiants de l'université travaillent à remplacer des programmes développés par AT&T par leurs propres programmes, sous licence libre, afin de résoudre le litige. Cette situation dura jusqu'à la sortie de 4.4BSD en 1994. Quelque temps après l'université de Berkeley abandonne le développement de BSD[8].

C'est à la suite des initiatives et travaux de Linus Torvalds et Richard Stallman, aidés par des milliers de bénévoles et à la suite des travaux des étudiants de l'université de Berkeley que GNU/Linux et 4.4BSD sont devenus les premiers systèmes d'exploitation sous licence libre[9].

Composition

Un système d'exploitation comporte typiquement de nombreux programmes. La palette de programmes incluse diffère d'un système d'exploitation à l'autre en fonction de l'ordinateur cible pour lequel il est prévu (ordinateur personnel, serveur, assistant personnel...).

Si le système d'exploitation est destiné à être utilisé sur un ordinateur personnel ou une console de jeu vidéo, l'interface graphique sera raffinée et ergonomique. S'il est destiné à être utilisé sur un serveur, il comprendra une large palette de protocoles et de pilotes pour du matériel réseau, sera multitâches et muni de contrôles d'accès.

Un système 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. Et le nombre de pilotes sera restreint au minimum et le système d'exploitation sera prévu pour être enregistré sur une mémoire morte s'il est destiné à un assistant personnel ou un téléphone portable.

Interface de programmation

Article détaillé : Interface de programmation.

Le système d'exploitation effectue de nombreuses actions sur demande des logiciels applicatifs. Le point d'interaction entre un logiciel applicatif et le système d'exploitation est appelé interface de programmation (anglais Application Programming Interface abrégé API). Ce peut être des fonctions mises à disposition dans des bibliothèques logicielles, ou des logiciels serveur qui répondent aux requêtes envoyées par les logiciels applicatifs.

L'utilisation de la même interface de programmation quel que soit le matériel, le protocole ou le système de fichier concerné assure la portabilité des logiciels applicatifs : un logiciel applicatif donné pourra fonctionner sur différents ordinateurs, quelle que soit leur configuration, en particulier quel que soit le matériel, le système de fichier ou le protocole utilisé.

POSIX (acronyme de l'anglais Portable Operating System Interface) est une norme relative à l'interface de programmation du système d'exploitation. De nombreux systèmes d'exploitation sont conformes à cette norme, notamment les membres de la famille Unix.

L'ordonnanceur

Article détaillé : Ordonnanceur.

L'ordonnanceur (anglais scheduler) est le programme du système d'exploitation qui contrôle le déroulement des autres programmes. C'est le premier programme exécuté au démarrage du système d'exploitation. Dans un système d'exploitation multitâches l'ordonnanceur assure l'exécution simultanée de plusieurs programmes (concurrence) ainsi que les échanges d'informations entre les programmes.

L'exécution simultanée de plusieurs programmes est réalisée de la manière suivante: l'ordonnanceur commande l'exécution à tour de rôle de chaque programme par le ou les processeurs de l'ordinateur, chaque processeur exécute les instruction d'un programme pendant une fraction de seconde, puis l'ordonnanceur effectue une commutation de contexte (anglais context switch), suspend l'exécution du programme en cours et passe au programme suivant.

Les échanges d'informations entre les programmes se font à l'aide de messages stockés en mémoire, l'ordonnanceur s'occupe de collecter les messages et les mettre à disposition de chaque destinataire. Tout programme qui attend un message sera interrompu jusqu'à l'arrivée d'un message et l'ordonnanceur évitera toute commutation de contexte vers le programme en attente.

La mémoire virtuelle

Article détaillé : mémoire virtuelle.

Le mécanisme dit de mémoire virtuelle est destiné à simuler la présence ou l'absence de mémoire centrale par manipulation de l'unité de gestion mémoire (anglais Memory Management Unit abrégé MMU). C'est un mécanisme courant dans les systèmes d'exploitation.

L'unité de gestion mémoire est un composant matériel présent dans de nombreux ordinateurs. Il est branché entre le processeur et la mémoire centrale. Un programme du système d'exploitation manipule les tables de correspondance de l'unité de gestion mémoire. Ce qui a l'effet suivant: lorsque le processeur - conformément aux instruction d'un programme - va rechercher des informations à une adresse mémoire précise (adresse virtuelle), il demande à l'unité de gestion mémoire, qui va alors aller rechercher cette information à l'emplacement qui correspond selon la table de correspondance (adresse physique).

L'unité de gestion mémoire possède plusieurs tables de correspondance. Les systèmes d'exploitation utilisent généralement deux tables: une pour le mode kernel et une pour le mode utilisateur. La table du mode kernel est arrangée de manière à permettre au processeur d'utiliser la totalité de la mémoire centrale disponible, cette table est utilisée lors de l'exécution des programmes du noyau du système d'exploitation. La table du mode utilisateur est arrangée de manière à simuler la présence de mémoire et protéger le noyau ; cette table est utilisée lors de l'exécution des programmes hors du noyau.

Pour simuler la présence de mémoire (mémoire virtuelle), le système d'exploitation manipule les tables de correspondance de manière à ce que plusieurs emplacements de la table correspondent tous à un seul emplacement de mémoire centrale. Lorsque le processeur - conformément aux instruction d'un logiciel applicatif - va rechercher des information à un de ces emplacements, l'unité de gestion mémoire déclenche l'exécution d'un programme particulier du système d'exploitation. Ce programme va alors échanger (anglais swap) le contenu de cet emplacement de mémoire centrale avec une copie du contenu enregistrée dans un emplacement de mémoire de masse prévu à cet effet - typiquement un fichier ou une partition de disque dur. Pour le logiciel applicatif tout se passe comme si l'ordinateur avait plus de mémoire que ce qui est réellement disponible en mémoire centrale.

L'unité de gestion de mémoire est aussi utilisée pour réaliser la protection du noyau du système d'exploitation. Lorsqu'un logiciel applicatif est en cours d'exécution, la table de correspondance est arrangée préalablement par le système d'exploitation de manière à ce que les adresses mémoires du noyau correspondent à un autre emplacement, le noyau est ainsi invisible pour le logiciel en question. Cette technique est aussi utilisée pour isoler les logiciels applicatifs l'un de l'autre.

Pilotes

Article détaillé : Pilote informatique.

Un pilote (anglais driver) est un programme qui contient les instructions à exécuter pour utiliser un certain périphérique informatique, il assure l'utilisation banalisée du périphérique. Les pilotes sont fournis par l'auteur du système d'exploitation ou le fabricant du périphérique.

Un système d'exploitation contient typiquement de nombreux pilotes correspondant à de nombreux composants matériel susceptibles d'être montés dans l'ordinateur. L´interface de programmation est similaire sur tous les pilotes, tandis que les instructions du programme différent en fonction des caractéristiques de chaque composant matériel.

Le système d'exploitation dirige l'utilisation des pilotes par les logiciels applicatifs. Il intervient lorsque plusieurs logiciels applicatifs tentent d'utiliser le même matériel en même temps, et active ou désactive les pilotes en fonction du matériel présent dans l'ordinateur.

Lors de chaque événement survenu sur un périphérique (celui-ci a reçu des informations, il a fini de les envoyer, l'utilisateur a effectué une manipulation...), celui-ci provoque une interruption matérielle, un mécanisme électronique qui provoque une commutation de contexte; le système d'exploitation déclenche alors l'exécution des instructions du pilote concerné.

Les logiciels applicatifs ainsi que le système d'exploitation peuvent également, au besoin, déclencher l'exécution des instructions d'un pilote.

Système de fichiers

Article détaillé : Système de fichier.

Un système de fichier (anglais file system) est une structure en arbre dans laquelle sont stockés des fichiers ainsi que d'autres informations. Divers programmes du système d'exploitation s'occupent de répartir les fichiers sur les mémoires de masse tels que les disque durs et de les relier pour former la structure du système de fichiers.

Il existe diverses manières de disposer les fichiers dans une mémoire de masse. Une mémoire de masse qui a été remplie avec un système d'exploitation selon une disposition donnée sera reconnue par un autre système d'exploitation uniquement si celui-ci reconnaît la disposition en question. Les mémoires amovibles telles que les CD ou les DVD ont une disposition normalisée dont les spécifications sont publiques, ce qui assure leur reconnaissance par tous les systèmes d'exploitation (voir ISO 9660 et UDF).

Un système d'exploitation contient typiquement différents programmes qui servent à manipuler un système de fichier. Chaque programme manipule les fichiers conformément à une disposition donnée. Ces programmes effectuent des opérations telles que créer des fichiers, les copier, les supprimer, créer et supprimer des répertoires ainsi que formater la mémoire de masse c'est-à-dire créer une structure vide. voir FAT, HFS ou ext2fs.

Lorsque le système de fichier est distribué, c'est-à-dire que les fichiers sont stockés sur différents ordinateurs d'un réseau informatique, le système d'exploitation envoie une requête à l'ordinateur qui stocke le fichier pour chaque opération à effectuer (voir NFS ou CIFS).

Dans un système d'exploitation multi-utilisateurs, les programmes qui manipulent le système de fichier effectuent des contrôles pour vérifier qu'aucun fichier n'est manipulé par une personne non autorisée. Le système d'exploitation refusera toute manipulation non autorisée.

Réseau

Article détaillé : Réseau informatique.

Dans un réseau informatique, deux ordinateurs reliés arrivent à communiquer du moment que les communications se font de part et d'autre selon les mêmes protocoles réseau. Selon le modèle OSI, les différents protocoles existants sont répartis sur sept niveaux, où un protocole d'un niveau donné peut être combiné avec n'importe quel protocole des niveaux situés en dessus et en dessous (voir encapsulation).

Un système d'exploitation contient typiquement plusieurs programmes nécessaires pour des échanges d'informations dans différents protocoles des niveaux 1 à 4. Tandis que les niveaux 5 à 7 sont pris en charge par les logiciels applicatifs.

Pour les échanges d'informations selon les protocoles de niveau 1 et 2, le système d'exploitation demande l'opération au matériel de l'ordinateur par l'intermédiaire d'un pilote informatique, pilote qui peut faire partie intégrante du système d'exploitation ou être fourni par le constructeur du matériel.

Lors de l'envoi d'informations sur le réseau, un logiciel applicatif crée une information, la met en forme conformément aux protocoles des niveaux 7 à 5, puis la transmet au système d'exploitation. Divers programmes du système d'exploitation vont découper cette information en trames, puis vont mettre en forme les trames et les envoyer conformément aux protocoles des niveaux 4 à 1.

Lors de la réception de trames depuis le réseau, divers programmes du système d'exploitation vont tenter de les décoder conformément à différents protocoles des niveaux 1 à 4, puis transformer la suite de trames en un flux continu, qui sera envoyé au logiciel applicatif destinataire. Le logiciel va alors décoder le flux conformément aux protocoles de niveaux 5 à 7. Le logiciel applicatif effectue préalablement une connexion, c'est-à-dire une liaison logique par laquelle il va s'associer avec un flux particulier.

Le choix exact des protocoles utilisés dépend de l'ordinateur concerné et des liaisons réseau qui vont être utilisées. Divers paramètres de configuration permettent d'influencer le choix des protocoles. Ils permettent par exemple d'empêcher l'utilisation de protocoles interdits sur le réseau concerné.

Contrôle d'accès

Article détaillé : contrôle d'accès logique.

Dans un système d'exploitation multi-utilisateurs, un ensemble de programmes assure la sécurité des informations enregistrées dans les mémoires ainsi que la disponibilité de l'ordinateur, ceci afin de préserver la confidentialité et éviter que de manipulations effectuées par un utilisateur perturbent l'utilisation de l'ordinateur par les autres utilisateurs. Cette fonctionalité est souvent absente des systèmes d'exploitation pour les appareils personnels.

Dans ces systèmes d'exploitation tout utilisateur doit préalablement décliner son identité avant d'utiliser l'ordinateur. Puis un programme du système d'exploitation vérifie cette identité par rapport à un annuaire ou un référentiel (voir authentification). Le système d'exploitation établit alors une liste des opérations autorisées ou interdites à l'utilisateur en fonction des règlements (anglais policies) qui ont été introduits par l'administrateur sécurité - la personne responsable de la sécurité des informations.

Lors de chaque opération demandée par un logiciel applicatif, le système d'exploitation vérifie préalablement si l'utilisateur qui manipule le logiciel applicatif est autorisé à effectuer cette opération. La vérification se fait sur la base des règlements ainsi que des listes de droits d'accès introduits par l'administrateur sécurité. Le système d'exploitation refusera toute opération non autorisée et inscrira le refus dans un journal d'activité.

En particulier, le système d'exploitation peut refuser à un utilisateur de lire, de modifier, ou de supprimer un fichier, selon la liste des droits d'accès introduits concernant ce fichier. Le nom des personnes autorisées à modifier les listes de droit d'accès est également indiqué dans la liste de droits d'accès.

Le système d'exploitation va également refuser la mise hors service de programmes centraux tels que les logiciels serveur ou des programmes du système d'exploitation par tout utilisateur qui n'a pas préalablement recu le privilège d'effectuer cette opération - selon les règlements introduits par l'administrateur de sécurité.

Lorsqu'un logiciel autonome (bot informatique) demande des opérations au système d'exploitation, le logiciel doit préalablement décliner son identité en tant que produit puis, sur la base de cette identité, le système d'exploitation effectue les mêmes vérifications que pour une personne physique.

Les mécanismes de contrôle d'accès ont aussi pour effet de lutter contre les logiciels malveillants - ceux-ci effectuent souvent des opérations susceptibles de perturber l'utilisation de l'ordinateur.

Interface utilisateur

Un ensemble de programmes du système d'exploitation réceptionnent les informations envoyées par les logiciels applicatifs, et les placent sur une image numérique qui sera envoyée au matériel par l'intermédiaire d'un pilote. En complément un autre ensemble de programmes réceptionnent les manipulations effectuées par l'usager par l'intermédiaire de pilotes puis les transmettent au logiciel concerné. Ces deux ensembles créent l'interface homme-machine qui permet à un usager d'interagir avec la machine.

Le système d'exploitation peut également dialoguer avec un usager par l'intermédiaire d'un autre ordinateur ou d'un terminal (interface distribuée). Les informations envoyées par les logiciels applicatifs seront alors envoyées à l'autre ordinateur selon un protocole prévu à cet effet, tandis que l'autre ordinateur enverra les manipulations effectuées par l'utilisateur. voir SSH, RFB ou X Window System.

Lorsque l'interface est en mode texte, l'image numérique est une grille dans laquelle sont placés des caractères d'imprimerie, la grille comporte typiquement 80 colonnes et 35 lignes. L'interface se manipule typiquement avec un clavier. Ce type d'interface, qui existe depuis les début de l'informatique est aujourd'hui remplacé par les interfaces graphiques.


111