Interface système
Pour les articles homonymes, voir shell ou coque.
Une interface système ou coque logicielle[1] (shell en anglais[2]) est une couche logicielle qui fournit l'interface utilisateur d'un système d'exploitation. Il correspond à la couche la plus externe de ce dernier. L'interface système est utilisée comme diminutif de l'interface utilisateur du système d'exploitation.
Sommaire
1 Étymologie et histoire
2 Définition
3 Sous Unix
4 Sous Mac OS X
5 Sous Microsoft Windows
5.1 Ligne de commande
5.2 Interface graphique
6 Annexes
6.1 Notes et références
6.2 Articles connexes
6.3 Liens externes
Étymologie et histoire |
Le terme anglais « shell » vient à l'origine de la terminologie employée avec les premiers systèmes d'exploitation de type Unix où il avait le sens plus spécifique de shell Unix. Cette appellation est une métaphore (on peut la traduire par coque en français) pour désigner la couche la plus haute des interfaces des systèmes Unix, par opposition à la couche de bas-niveau, appelée noyau.
Les premiers concepteurs informatiques américains avaient l’habitude de décrire les différentes couches logicielles d’un système par une analogie : celle du noyau et de la coque de noix[3].
En anglais, le mot « kernel » désigne le cerneau, la partie comestible du noyau de la noix[4]. Il s’agit de la partie renfermée dans la coque. La coque étant la partie non comestible du fruit, appelée « shell » en anglais. L’idée sous-jacente étant que « pour accéder à la partie comestible (utile), il faut passer par la coque ».
L’expression très employée en anglais « in a nutshell » pour désigner l’essence d’un concept en un mot n’est pas étrangère à cette analogie.
Avec l'arrivée de la souris et des interfaces graphiques, cet anglicisme a fini par être démocratisé pour désigner tous les types d'interfaces entre l'homme et la machine (IHM) propre à chaque système d'exploitation, qu'elles soient textuelles ou graphiques.
Définition |
La coque logicielle d'un système d'exploitation peut prendre deux formes distinctes[5] :
- L'interface en ligne de commande (CLI, de l'anglais « command line interface ») permet à l'utilisateur d'interagir avec le système à partir de commandes qui sont adaptées au mode texte et qui permettent, entre autres, l'exécution d'applications affichées à l'origine (dans un système moderne, l'environnement graphique est aussi pris en compte) dans un environnement en mode texte (TUI pour text user interface) ;
- La coque logicielle de type graphique fournit à l'utilisateur un environnement graphique (GUI, pour graphical user interface), généralement un environnement de bureau ou un écran d'accueil.
Les mérites relatifs d'une interface système de type CLI ou GUI sont souvent débattus. Les partisans de CLI avancent que certaines opérations se font beaucoup plus rapidement sous un shell CLI que sous une interface GUI (déplacement de fichier, par exemple). Cependant, les partisans d'interfaces GUI préfèrent leurs caractères intuitifs.
Deux méthodes d'accès à la coque logicielle sont possibles en fonction des ressources matériels disponibles, du système d'exploitation ou du paramétrage utilisé :
- Le mode console qui affiche une coque logicielle unique en plein écran, c'est l'interface utilisateur de base du système d'exploitation ;
- Le mode terminal qui émule une console et qui affiche en général la coque logicielle dans une portion de l'écran.
Sous Linux les consoles sont au nombre de six par défaut. Sur un serveur X ces consoles sont accessibles depuis l'interface graphique avec les raccourcis Ctrl + Alt + Fx[6]. Il ne s'agit plus de véritable coque logicielle puisqu'elles sont appelées à partir d'un environnement différent mais l'expression demeure pour désigner l'affichage et le mode de fonctionnement.
Unix a été l'un des premiers systèmes d'exploitation dont l'interpréteur de commandes est un programme plutôt simple (donc remplaçable par un autre). Dans d'autres systèmes, les commandes sont interprétées en partie par le noyau.
Une propriété particulière d'un shell est la réentrance ; à partir d'une coque logicielle on peut lancer une application qui, à un moment déterminé, peut lancer une autre coque logicielle avec laquelle l'utilisateur peut lancer une autre commande, ce qui permet de faire une petite parenthèse de recherche puis de retourner à l'application initiale, au point où elle en était.
Sous Unix |
Sous Mac OS X |
Depuis la sortie de Mac OS X, un système d'exploitation de la famille des Unix (et en particulier de BSD), les Mac disposent d'un shell qui est accessible par l'intermédiaire de l'utilitaire Terminal.
À l'origine, l'interpréteur de commandes par défaut était tcsh, mais depuis Mac OS X 10.3 Panther, c'est bash qui est utilisé.
Terminal est particulièrement apprécié des utilisateurs avancés de Mac OS X pour personnaliser des fonctions système, créer des scripts shell et résoudre des problèmes de fonctionnement de Mac OS X.
Sous Microsoft Windows |
Sous Windows, l'appellation « shell » regroupe deux concepts :
- Comme pour Unix, l'interpréteur en ligne de commande ;
- L'interface graphique, en général l'explorateur Windows. Dans des versions plus anciennes de Windows (Windows 3.x), le Program Manager était utilisé.
Ligne de commande |
C'est en général Command.com pour les versions de Windows basées sur MS-DOS, et cmd pour celles qui reposent sur Windows NT.
Il existe des shells alternatifs, comme 4DOS et 4NT. Il existe également des portages des shell Unix, comme dans le système Cygwin ou UWIN [7] qui offrent la sémantique exacte et complète de type Unix.
Avec Windows Vista est apparu un nouvel interpréteur de commande, le Windows PowerShell (utilisable aussi sous Windows XP), orienté objet.
Interface graphique |
Dans l'API Windows, les fonctions du shell se rapportent à l'utilisation des widgets de l'explorateur dans les programmes. Par exemple, les fonctions de copie/déplacement/effacement de fichiers peuvent être accomplies par l'appel à la fonction API SHFileOperation() qui s'occupe de tout (opération en elle-même, confirmation des écrasements, barre de progression etc.).
Des programmeurs non satisfaits par l'interface de Windows Explorer ont développé des composants qui permettent de changer de shell : LiteStep, GeoShell, Aston ou encore BB4Win.
Annexes |
Notes et références |
Jérôme Gianoli, « Windows 10, Microsoft veut la même apparence sur PC et smartphone », sur ginjfo.com, Ginjfo, 19 janvier 2017(consulté le 27 juin 2017) : « Le projet « Composable Shell » vise à développer une « coque logicielle » commune »
Henri Lilen, Dictionnaire informatique et numérique, edi8, 2014, 2e éd., 175 p. (ISBN 2-75405-960-1, présentation en ligne)
(en) IJT, « Unix for beginners », sur bbk.ac.uk, Birkbeck College, University of London, Department of Biological Sciences, 6 octobre 1999
(en) « kernel », sur thefreedictionary.com, TheFreeDictionary.com (en)
Virginie ZAMPA, « Système d’exploitation », sur Université Stendhal - Grenoble 3, 2008(consulté le 18 septembre 2013), p. 1.
« La console », sur ubuntu-fr (consulté le 3 avril 2014).
Le Korn shell ou ksh est un shell Unix inclus dans UWIN et qui fonctionne sur une plate-forme Microsoft Windows.
Articles connexes |
- Interpréteur de commandes
Shell Unix
Bourne-Again shell, le shell GNU utilisé notamment par les systèmes d'exploitation Linux- csh
- tcsh
- Korn shell
- Z Shell
GNU Rush, adapté pour l'accès à distance à des sites web ou autres ressources limitées.
- Shell Windows
Command.com, interpréteur de commandes MS-DOS
cmd.exe, interpréteur de commandes Windows NT
Windows PowerShell de Microsoft, ancien nom de code : Monad
- Windows Explorer
- Langage de script
- Shell graphique
Liens externes |
Apprendre le bash (initiation)
- Portail de l’informatique