Article de reference

Shell (informatique)

Une interface graphique semblable à celles de la fin des années 1980, comprenant une fenêtre graphique pour la page de manuel , une fenêtre en forme d'horloge ainsi que plusieur...

Une interface graphique semblable à celles de la fin des années 1980, comprenant une fenêtre graphique pour la page de manuel , une fenêtre en forme d'horloge ainsi que plusieurs fenêtres réduites à des icônes . En bas à droite, on aperçoit un émulateur de terminal exécutant un shell Unix , dans lequel l'utilisateur peut saisir des commandes comme s'il était devant un terminal .

L'interface d' un système d'exploitation est un programme informatique qui offre un accès relativement étendu et direct au système sur lequel il s'exécute. Le terme « interface » fait référence à sa nature de couche relativement mince autour du système d'exploitation.

La plupart des interpréteurs de commandes sont des programmes en ligne de commande (CLI). Certaines interfaces graphiques (GUI) incluent également des interpréteurs de commandes.

Aperçu

Les systèmes d'exploitation fournissent divers services à leurs utilisateurs, notamment la gestion des fichiers , la gestion des processus (exécution et arrêt des applications ), le traitement par lots , ainsi que la surveillance et la configuration du système d'exploitation.

La plupart des interpréteurs de commandes des systèmes d'exploitation ne constituent pas des interfaces directes avec le noyau sous-jacent , même s'ils communiquent avec l'utilisateur via des périphériques connectés directement à l'ordinateur. Les interpréteurs de commandes sont en réalité des applications spécialisées qui utilisent l' API du noyau de la même manière que les autres programmes. Un interpréteur de commandes gère l'interaction utilisateur - système en invitant l'utilisateur à saisir des données, en interprétant ces données, puis en traitant la sortie du système d'exploitation (à la manière d'une boucle lecture-évaluation-affichage, REPL ). Étant donné que l'interpréteur de commandes est une application à part entière, il peut être facilement remplacé par une application similaire sur la plupart des systèmes d'exploitation.

Outre les shells exécutés sur les systèmes locaux, il existe différentes manières de rendre les systèmes distants accessibles aux utilisateurs locaux ; ces approches sont généralement désignées sous les termes d’accès distant ou d’administration à distance. Initialement disponible sur les mainframes multi-utilisateurs , qui offraient des interfaces utilisateur textuelles simultanées à chaque utilisateur actif via un terminal texte connecté au mainframe par ligne série ou modem , l’accès distant s’est étendu aux systèmes de type Unix et à Microsoft Windows. Sur les systèmes de type Unix, le protocole Secure Shell (SSH) est généralement utilisé pour les shells textuels, tandis que le tunneling SSH peut être utilisé pour les interfaces graphiques ( GUI) basées sur le système X Window . Sous Microsoft Windows, le protocole RDP (Remote Desktop Protocol) permet de fournir un accès distant via interface graphique. Depuis Windows Vista , PowerShell Remote est disponible , et depuis Windows 10 (build 1809), SSH peut également être utilisé pour l’accès distant textuel via WMI, RPC et WS-Management.

La plupart des interpréteurs de commandes des systèmes d'exploitation se répartissent en deux catégories : les interpréteurs en ligne de commande et les interpréteurs graphiques. Les interpréteurs en ligne de commande offrent une interface en ligne de commande (CLI) au système d'exploitation, tandis que les interpréteurs graphiques offrent une interface utilisateur graphique (GUI). D'autres possibilités, moins courantes, incluent les interfaces vocales et diverses implémentations d'interfaces utilisateur textuelles (TUI) autres que les CLI, comme les systèmes de menus textuels. Les avantages respectifs des interpréteurs en ligne de commande et des interpréteurs graphiques font souvent l'objet de débats. De nombreux utilisateurs d'ordinateurs utilisent les deux en fonction de la tâche à accomplir.

Histoire

Les premiers systèmes interactifs offraient un interpréteur de commandes simple intégré au moniteur résident . Cet interpréteur pouvait porter différents noms, comme COMCONsur les systèmes DEC TOPS-10 . Il exécutait des commandes prédéfinies, dont l'une permettait de lancer un programme utilisateur. Les commandes courantes permettaient de se connecter et de se déconnecter, d'allouer, de libérer et de manipuler des périphériques et des fichiers, et d'obtenir diverses informations sur le système ou un processus utilisateur.

L'objectif d'une telle procédure est de créer un milieu d'échange permettant d'activer n'importe quelle procédure, comme si elle était appelée depuis l'intérieur d'un autre programme . Par souci de simplification, nous désignerons cette procédure par le terme « SHELL ».

— Louis Pouzin, The SHELL : Un outil global pour appeler et chaîner des procédures dans le système

En 1964, pour le système d'exploitation Multics , Louis Pouzin a conçu l'idée d'« utiliser des commandes à la manière d'un langage de programmation » et a forgé le terme « shell » pour la décrire. Dans un document de 1965, le shell est défini comme « une procédure commune appelée automatiquement par le superviseur lorsqu'un utilisateur saisit un message sur sa console, à un moment où aucun autre processus n'est en cours d'exécution sous le contrôle de cette console. Cette procédure sert d'interface entre les messages de la console et les sous-programmes [du superviseur] ». Ce système a été implémenté pour la première fois par Glenda Schroeder et un collaborateur anonyme de General Electric .

Multics a également introduit la fonction active , un concept clé dans certains shells ultérieurs. Celle-ci est définie comme

une chaîne de caractères... qui est remplacée par une valeur de retour de type chaîne de caractères avant l'exécution de la ligne de commande la contenant. Les fonctions actives sont souvent utilisées... pour implémenter des macros du langage de commande.

En 1971, Ken Thompson a développé le shell Thompson dans la première version d'Unix. Bien que plus simple que le shell Multics, il contenait certaines fonctionnalités innovantes, qui ont été reprises dans les shells modernes, notamment l'utilisation de < et > pour la redirection des entrées et des sorties .

L'interface graphique est apparue pour la première fois dans le système NLS de Douglas Engelbart , présenté en décembre 1968 lors de la Fall Joint Computer Conference à San Francisco, dans ce qui est resté dans les annales comme la « mère de toutes les démos » . Les collègues d'Engelbart au Stanford Research Institute ont ensuite introduit le concept au Xerox Palo Alto Research Center (PARC), où il a été intégré à l' Alto , lancé en 1973. De là, l'idée s'est répandue, notamment avec le Lilith de Niklaus Wirth en 1980 et l' Apple Lisa en 1983, avant de devenir omniprésente.

Interfaces en ligne de commande

Coques graphiques

Les versions modernes du système d'exploitation Microsoft Windows utilisent l' interface Windows Shell comme interface utilisateur. Celle-ci fournit l'environnement de bureau , le menu Démarrer et la barre des tâches , ainsi qu'une interface graphique permettant d'accéder aux fonctions de gestion des fichiers du système d'exploitation. Les versions plus anciennes incluaient également le Gestionnaire de programmes , qui constituait l'interface utilisateur de la série 3.x de Microsoft Windows et qui était d'ailleurs fourni avec les versions ultérieures de Windows 95 et NT, au moins jusqu'à Windows XP. Les interfaces des versions 1 et 2 de Windows étaient sensiblement différentes.

Les applications de bureau sont également considérées comme des interfaces externes, dès lors qu'elles utilisent un moteur tiers. De même, de nombreux utilisateurs et développeurs insatisfaits de l'interface de l'Explorateur Windows ont créé des logiciels qui modifient son fonctionnement et son apparence, voire la remplacent entièrement. WindowBlinds de StarDock est un bon exemple du premier type d'application. LiteStep et Emerge Desktop sont de bons exemples du second.

Les programmes d'interopérabilité et les logiciels dédiés permettent aux utilisateurs de Windows d'utiliser des équivalents de nombreuses interfaces graphiques Unix, ainsi que de Macintosh, présentées ci-dessous. Un équivalent du Gestionnaire de présentation OS/2 pour la version 3.0 peut exécuter certains programmes OS/2 sous certaines conditions, grâce au sous-système d'environnement OS/2, dans les versions de Windows NT.

Appel depuis un programme

Un shell peut généralement aussi être invoqué depuis un programme via des fonctions système standard comme system(), popen()et exec()ce, sans aucune interface utilisateur.

Outre ces fonctions standard, Windows fournit par exemple l'API Shell Windows, qui expose un ensemble de fonctions permettant aux programmes d'interagir avec l'interface Windows. Ces fonctions sont fournies dans des DLL (comme shell32.dll et shlwapi.dll) et ne nécessitent pas l'exécution de l'interface graphique par défaut de Windows (explorer.exe). Explorer.exe et ses équivalents utilisent généralement l'API Shell Windows pour offrir aux utilisateurs une interface graphique sans avoir à implémenter eux-mêmes les fonctionnalités principales de l'interface (fournies par shell32.dll et shlwapi.dll). Cependant, les programmes peuvent utiliser l'API Shell Windows à d'autres fins, sans pour autant proposer d'interface utilisateur.

Autres utilisations

Le terme « shell » est également employé de manière plus générale pour décrire les logiciels d’application « construits autour » d’un composant particulier, tels que les navigateurs web et les clients de messagerie, par analogie avec les coquilles d’œufs présentes dans la nature. En effet, le shell (en ligne de commande) encapsule le noyau du système d’exploitation . On les appelle parfois aussi « wrappers ».

Dans les systèmes experts , un shell est un logiciel qui est un système expert « vide » sans base de connaissances pour une application particulière.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index