Keyboard shortcuts

Touchez ← ou → pour naviguer les chapitres

Touchez S ou / pour chercher dans le livre

Touchez ? pour afficher ce message

Touchez Esc pour masquer ce message

Accueil > Logiciels du systĂšme >

📚 Machines virtuelles

Survol et attentes

À part les pĂ©riphĂ©riques comme le clavier, la souris, le microphone, etc. vous n’avez jamais manipuler directement les composants d’un ordinateur pour traiter les valeurs binaires.

Définitions

Entre vous et la machine rĂ©elle se trouve une ou plusieurs couches qui s’appellent la machine virtuelle. Elle est plus intuitive Ă  utiliser. C’est sa tĂąche de traduire toutes vos interactions avec l’ordinateur en binaire pour la machine rĂ©elle.

Les parties de la machine virtuelle que vous manipulez s’appellent l’interface utilisateur. Il y a d’autres parties de la machine virtuelle qui sont utilisĂ©es par les logiciels afin qu’elles aient accĂšs aux ressources de l’ordinateur. Cette partie s’appelle l’interface de programmation.

Un autre nom pour la machine virtuelle principale sur un appareil est le systùme d’exploitation, comme Windows, macOS, iOS, Android, Ubuntu.

Objectifs d’apprentissage

À la fin de cette leçon vous devrez ĂȘtre en mesure de :

  • dĂ©crire le systĂšme d’exploitation et les grandes catĂ©gories de logiciels du systĂšme;
  • diffĂ©rencier la machine rĂ©elle de la machine virtuelle et l’interface utilisateur de l’interface de programmation;
  • diffĂ©rencier les types d’interfaces utilisateurs : ligne de commande, graphique et rĂ©alitĂ© virtuelle.

CritĂšres de succĂšs

  • Je peux identifier les types de logiciels du systĂšme et dĂ©crire ce que chacun fait.
  • Je peux dĂ©crire les diffĂ©rences entre une machine virtuelle et rĂ©elle et entre une interface utilisateur et une interface de programmation.
  • Je peux identifier le type d’interface utilisateur Ă  partir d’une description ou d’une image.

Notes

On ne manipule pas des bits ni des octets en travaillant avec un ordinateur. On utilise un clavier, une souris, etc. On travaille alors avec une machine virtuelle qui traduit nos gestes en informations et instructions binaires pour la machine rĂ©elle. C’est encore un niveau d’abstraction plus Ă©levĂ©e, comme les portes logiques, les composants et les systĂšmes de l’architecture von Neumann : les dĂ©tails du fonctionnement de la machine rĂ©elle sont cachĂ©s.

Pour rendre un ordinateur pratique pour un utilisateur du grand public qui n’est pas nĂ©cessairement expert en informatique, les systĂšmes d’exploitation ont Ă©tĂ© dĂ©veloppĂ©s, p. ex. MS-DOS, Apple DOS (des “Disk Operating Systems”), Unix, Windows, macOS, iOS, Android, Linux/GNU, ChromeOS. Un systĂšme d’exploitation est une suite de logiciels qui prĂ©sente une interface entre l’utilisateur et le matĂ©riel physique. Cette interface est une machine virtuelle ou environnement virtuel.

La machine virtuelle fait les quatre choses suivantes :

  1. masquer les dĂ©tails complexes du matĂ©riel physique de l’ordinateur en le gĂ©rant pour les utilisateurs et les applications;
  2. prĂ©senter l’information d’une façon naturelle (caractĂšres, nombres dĂ©cimaux, Ă©lĂ©ments graphiques, etc.) qui ne demande aucune connaissance de la structure interne des donnĂ©es;
  3. permettre un accùs facile aux ressources disponibles sur l’ordinateur;
  4. prévenir les dommages accidentels ou intentionnels du matériel, des programmes ou des données.

Interface utilisateur, interface de programmation et interface interne

Les utilisateurs ne manipulent pas directement le matĂ©riel de l’ordinateur. Ils utilisent une interface utilisateur pour demander des ressources ou des services. Par exemple, un utilisateur peut cliquer sur une icĂŽne pour ouvrir un fichier. L’interface utilisateur, au moyen d’une suite de logiciels du systĂšme, traduit ce geste en une sĂ©rie d’instructions binaires pour la machine rĂ©elle.

interface utilisateur

De mĂȘme, toutes les applications installĂ©es sur un systĂšme d’exploitation n’accĂšde pas directement au matĂ©riel. Elles utilisent une interface de programmation pour demander des ressources ou des services au systĂšme d’exploitation. Par exemple, une application de traitement de texte n’écrit pas directement sur le disque dur. Elle demande au systĂšme d’exploitation de le faire pour elle.

interface de programmation

Dans les deux cas, les interfaces font le pont entre des demandes externes (d’une personne ou d’un programme) en les passant Ă  une interface interne - aussi appelĂ© le noyau - qui est en mesure d’exploiter les ressources matĂ©rielles directement via des donnĂ©es et des instructions en format binaire correspondant directement Ă  l’architecture matĂ©rielle installĂ©e.

Services du systĂšme

Le noyau (interface interne) : pour gérer le matériel directement

  1. Gestion de la mĂ©moire : allouer et libĂ©rer de l’espace mĂ©moire pour les applications;
  2. Gestion des processus ou Programmateur : dĂ©marrer, arrĂȘter, suspendre et reprendre des applications; bref, gĂ©rer la prochaine instruction Ă  exĂ©cuter;
  3. Pilotes de pĂ©riphĂ©riques : traduire les signaux des pĂ©riphĂ©riques d’entrĂ©e en instructions utilisables par le systĂšme d’exploitation et les autres applications et vice versa pour les pĂ©riphĂ©riques de sortie;
  4. Gestion des fichiers : organiser les fichiers sur le disque dur, les lire, les écrire, les effacer, etc.
  5. Gestion des autorisations : dĂ©terminer qui a le droit de faire quoi sur l’ordinateur; p. ex. si un utilisateur ou une application a le droit de faire certaines opĂ©rations normalement rĂ©servĂ©es au systĂšme d’exploitation.

Le shell (interface utilisateur)

  1. Interface en ligne de commande : une fenĂȘtre de texte oĂč l’utilisateur tape des commandes pour demander des services;
  2. Interface graphique : une fenĂȘtre avec des icĂŽnes, des menus et des boutons pour demander des services;
  3. Utilitaires : des applications qui offrent des services spĂ©cifiques, comme un explorateur de fichiers, un Ă©diteur de texte, un gestionnaire des tĂąches/performances, un navigateur web, un gestionnaire d’installation/dĂ©sinstallation d’applications, etc. Ces utilitaires peuvent exister Ă  la fois en versions ligne de commande et graphique, comme les gestionnaires de fichiers.
  4. Services de langages : des applications qui offrent des services de programmation, comme un assembleur, un compilateur, un débogueur, un éditeur de code, etc.

L’interface de programmation d’applications (API)

Les fonctions, structures de donnĂ©es et protocoles qui permettent aux applications de tous les niveaux (interne/noyau, utilisateur/shell) de demander des services aux autres applications. Par exemple, une application de traitement de texte peut demander Ă  une application de navigateur web de lui afficher une page web via l’API de l’application de navigateur web.

Exercices

📚 Tester la comprĂ©hension

aucun quiz de vérification des concepts ici encore

đŸ› ïž Pratique

  1. ÉnumĂ©rez les systĂšmes d’exploitation que vous avez dĂ©jĂ  utilisĂ©s ou que vous utilisez encore.
  2. Identifiez 3 utilitaires que vous avez déjà utilisés sur un cellulaire ou un ordinateur. Pour chacun indiquez :
    1. son nom et sa fonction;
    2. s’il est un interface graphique ou en ligne de commande;
    3. s’il est directement liĂ© Ă  un service du noyau (oui/non - si oui, lequel).
  3. ÉnumĂ©rer 2 Ă  5 applications que vous avez installĂ©es sur votre cellulaire ou ordinateur.
  4. Activez vos connaissances existantes de l’architecture matĂ©rielle de l’ordinateur et les joindre aux nouvelles connaissances sur les services du systĂšme pour dĂ©crire une sĂ©quence d’opĂ©rations raisonnable1 pour :
    1. ouvrir un fichier;
    2. lancer le navigateur web;

    Vous devrez faire le geste pour voir au moins les Ă©tapes visibles de l’interface utilisateur (les diffĂ©rentes vues/fenĂȘtres et interactions que vous faites). Ensuite, tentez d’associer vos gestes aux rĂ©ponses du systĂšme via la machine virtuelle (services du systĂšme) et la machine rĂ©elle (architecture Von Neumann).


  1. Raisonnable signifie que la sĂ©quence devrait ĂȘtre cohĂ©rente avec les diffĂ©rents services du systĂšme et les diffĂ©rents composants matĂ©riels mais pas nĂ©cessairement complĂšte ou exacte (ce qui nĂ©cessite plus de connaissances et plus de dĂ©tails sur le contexte
 ce sera un sujet pour un cours spĂ©cialisĂ© sur les systĂšmes d’exploitation Ă  l’universitĂ©). ↩

© 2022-2025 David Crowley