Uneinterface système oucoque logicielle[1] (shell en anglais[2]) est unecouche logicielle qui fournit l'interface utilisateur d'unsystè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.
Le terme anglais « shell » vient à l'origine de la terminologie employée avec les premiers systèmes d'exploitation de typeUnix où il avait le sens plus spécifique deshell Unix. Cette appellation est unemétaphore (on peut la traduire par coque en français) pour désigner la couche la plushaute des interfaces des systèmes Unix, par opposition à la couche debas niveau, appeléenoyau.
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 denoix[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 lasouris et des interfaces graphiques, cetanglicisme 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.
L'interface en ligne de commande (CLI, de l'anglais « command line interface ») permet à l'utilisateur d'interagir avec le système à partir decommandes qui sont adaptées aumode 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 unenvironnement en mode texte (TUI pourtext user interface) ;
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 unshell 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érielles disponibles, du système d'exploitation ou du paramétrage utilisé :
Le modeconsole qui affiche une coque logicielle unique en plein écran, c'est l'interface utilisateur de base du système d'exploitation ;
Le modeterminal quiémule une console et qui affiche en général la coque logicielle dans une portion de l'écran.
SousLinux, les consoles sont au nombre de sixpar défaut. Sur unserveur X, ces consoles sont accessibles depuis l'interface graphique avec les raccourcisCtrl +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 lenoyau.
Une propriété particulière d'unshell est laré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.
Depuis la sortie deMac OS X, un système d'exploitation de la famille desUNIX (et en particulier deBSD), les Mac disposent d'un shell qui est accessible par l'intermédiaire de l'utilitaireTerminal.
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.
C'est en généralCommand.com pour les versions de Windows basées surMS-DOS, etcmd pour celles qui reposent surWindows NT.
Il existe des shells alternatifs, comme4DOS et4NT. Il existe également des portages desshell Unix, comme dans le systèmeCygwin ouUWIN[7] qui offrent la sémantique exacte et complète detype Unix.
Dans l'API Windows, les fonctions du shell se rapportent à l'utilisation deswidgets 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 APISHFileOperation() 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 encoreBB4Win.