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 :
- masquer les dĂ©tails complexes du matĂ©riel physique de lâordinateur en le gĂ©rant pour les utilisateurs et les applications;
- 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;
- permettre un accĂšs facile aux ressources disponibles sur lâordinateur;
- 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.

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.

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
- Gestion de la mĂ©moire : allouer et libĂ©rer de lâespace mĂ©moire pour les applications;
- Gestion des processus ou Programmateur : dĂ©marrer, arrĂȘter, suspendre et reprendre des applications; bref, gĂ©rer la prochaine instruction Ă exĂ©cuter;
- 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;
- Gestion des fichiers : organiser les fichiers sur le disque dur, les lire, les écrire, les effacer, etc.
- 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)
- Interface en ligne de commande : une fenĂȘtre de texte oĂč lâutilisateur tape des commandes pour demander des services;
- Interface graphique : une fenĂȘtre avec des icĂŽnes, des menus et des boutons pour demander des services;
- 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.
- 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
- ĂnumĂ©rez les systĂšmes dâexploitation que vous avez dĂ©jĂ utilisĂ©s ou que vous utilisez encore.
- Identifiez 3 utilitaires que vous avez déjà utilisés sur un cellulaire ou un ordinateur. Pour chacun indiquez :
- son nom et sa fonction;
- sâil est un interface graphique ou en ligne de commande;
- sâil est directement liĂ© Ă un service du noyau (oui/non - si oui, lequel).
- ĂnumĂ©rer 2 Ă 5 applications que vous avez installĂ©es sur votre cellulaire ou ordinateur.
- 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 :
- ouvrir un fichier;
- 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).
-
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Ă©). â©