Pourquoi le mot «shell» a-t-il été utilisé pour décrire une interface de ligne de commande?

28

Je suis curieux de connaître le terme «coquille». Je pense que je sais ce que c'est (bien que la distinction entre "shell" et "terminal" soit encore floue) mais pourquoi le mot "shell" a-t-il été choisi pour décrire ce type de programme?

Cela peut sembler sans importance, mais généralement lorsque les choix de mots me mystifient, cela indique une lacune dans ma compréhension.

Eric Wilson
la source
Un terminal est un périphérique ou un tuyau d'E / S. Un shell est un programme exécutable qui, en temps réel, reçoit de manière interactive les entrées de l'utilisateur à partir d'un terminal et fait ensuite les choses en fonction de celui-ci. Les "shells" sans disposition pour une utilisation interactive directe sont techniquement des interpréteurs de script d'une certaine sorte.
LawrenceC

Réponses:

8

Le glossaire Multics peut fournir un indice. La coque est définie ainsi:

Le processeur de commandes Multics s'appelait autrefois le shell. Ce programme reçoit une ligne de commande pour être exécutée par l'auditeur; il analyse la ligne en un nom de commande et des arguments, localise la commande et l'initie, et appelle le programme de commande avec des arguments qui sont des chaînes de caractères PL / I. Il est simple de remplacer le shell fourni par défaut par un système fourni par l'utilisateur, en appelant cu_ $ set_cp (voir abréviation). Un shell Unix inclut les concepts de shell et d'écouteur au sens Multics.

La relation entre le shell et l' auditeur a un sens à la fois étymologiquement et métaphoriquement [1].

[1] "Puisque la coquille est un symbole d'autorité, de parole et d'audition, c'est-à-dire un symbole de prophétie ..."

jasonwryan
la source
19

L'analogie est avec un écrou : l'extérieur est la coquille, l'intérieur est le noyau.

avec succès
la source
10

Depuis http://en.wikipedia.org/wiki/Thompson_shell#History

"Le nom" shell "pour un interpréteur de ligne de commande et le concept de faire du shell un programme utilisateur en dehors du noyau du système d'exploitation ont été introduits dans les Multics précurseurs d'Unix."

Plus bas, le trou du lapin wikipedia trouve ceci: "Louis Pouzin, a introduit le terme shell pour le langage de commande utilisé dans Multics"

Je ne l'ai pas lu en entier, mais son écriture ici peut vous donner la réponse: http://www.multicians.org/shell.html

EDIT: en effet ce n'est pas expliqué. Il a simplement "inventé" le terme. Pas l'histoire drôle que vous espériez, n'est-ce pas?

draeath
la source
3
Insatisfaisant, mais c'est parfois comme ça que ça se passe.
Eric Wilson
10

Peut-être parce que c'est la surface, protégeant le noyau intérieur de l'utilisateur? Le noyau serait donc la perle à l'intérieur de la coquille.

Utilisateur inconnu
la source
J'ai toujours entendu dire que la coque était une couche protectrice qui protégeait l'utilisateur du noyau.
Glorytoad
1

On dirait que la réponse se trouve ici:

Note historique: Apparemment, le shell Multics d'origine (sens 1) a été ainsi appelé parce qu'il s'agissait d'un shell (sens 3); il a exécuté des programmes utilisateur non pas en démarrant des processus séparés, mais en liant dynamiquement les programmes dans son propre code, en les appelant comme sous-programmes, puis en les dissociant dynamiquement au retour. L'interpréteur de commandes VMS fait toujours quelque chose de semblable.

- Wikipédia

C'est-à-dire que "shell" était une bonne analogie du monde réel pour la façon dont Multics, un prédécesseur d'Unix, exécutait les programmes.

Alex W
la source
Wikipédia n'est cependant pas une source. L'utiliser comme un seul conduit à un approvisionnement circulaire, où Wikipedia utilise un site comme source, qui a lui-même utilisé Wikipedia comme source. À l'heure actuelle, il s'agit de pure spéculation.
Evi1M4chine
0

Si je comprends bien, «shell» est un terme plus ancien pour ce que nous appellerions maintenant «interface utilisateur principale». Le terme analogue moderne serait "environnement de bureau", car virtuellement tous les systèmes modernes utilisent la métaphore du bureau.

Teddy
la source
1
Il y a beaucoup de chevauchements, mais ce n'est pas exactement correct. Chaque shell est une interface utilisateur. Mais toutes les interfaces utilisateur ne sont pas un shell. Un shell est l'interface utilisateur principale, autour de tout et à partir de laquelle tout commence. Il s'agit de l'interface utilisateur principale du système d'exploitation.
Evi1M4chine
-2

Le noyau est le noyau du système, tandis que le shell l'entoure et est l'interface entre le noyau et l'utilisateur.

Dans tout système UNIX, et même avec les systèmes Linux, le shell est l'endroit où les administrateurs système travaillent pour configurer et gérer un système.

La terminologie moderne utilise souvent le terme CLI ou interface de ligne de commande pour décrire l'invite du shell. C'est par déférence pour l'interface graphique ou l'interface utilisateur graphique. Cependant, tout véritable administrateur système sait que vous ne devez pas utiliser d'outils GUI pour configurer un UNIX / Linux et travailler uniquement directement à l'invite de commande du shell.

C'est encore plus pertinent de nos jours lorsque nous entendons des passionnés de Linux débutants dire des choses comme "J'utilise Linux, mais je n'ai pas vraiment appris la CLI".

Comme le dit le vieil adage "Si vous ne pouvez pas le faire à l'invite du shell, vous ne pouvez pas le faire."

Colinux
la source
J'ai obtenu un vote pour avoir dit la vérité. ah bien ...
Colinux