Почему слово «shell» использовалось для описания интерфейса командной строки?


28

Мне любопытно, что такое термин «оболочка». Я думаю, что знаю, что это такое (хотя различие между «оболочкой» и «терминалом» все еще нечетко), но почему слово «оболочка» было выбрано для описания этого типа программы?

Это может показаться неважным, но обычно, когда слово «выбор» озадачивает меня, оно указывает на пробел в моем понимании.


Терминал - это устройство или канал ввода / вывода. Оболочка - это исполняемая программа, которая в реальном времени в интерактивном режиме получает пользовательский ввод от терминала, а затем выполняет действия на его основе. «Оболочки», не предусматривающие прямого интерактивного использования, являются технически написанными интерпретаторами некоторого вида.
LawrenceC

Ответы:


8

Глоссарий Multics может дать ключ. Оболочка определяется так:

Командный процессор Multics раньше назывался оболочкой. Эта программа передает командную строку для выполнения слушателем; он разбирает строку на имя и аргументы команды, находит команду и запускает ее и вызывает программу команды с аргументами, которые являются символьными строками PL / I. Системную оболочку по умолчанию легко заменить предоставленной пользователем программой, вызвав cu_ $ set_cp (см. Аббревиатуру). Оболочка Unix включает в себя понятия оболочки и слушателя в смысле Multics.

Отношения между оболочкой и слушателем имеют смысл как этимологически, так и метафорически [1].

[1] «Поскольку оболочка является символом власти, речи и слуха, то есть символом пророчества ...»



10

От http://en.wikipedia.org/wiki/Thompson_shell#History

«Название« оболочка »для интерпретатора командной строки и концепция превращения оболочки в пользовательскую программу вне ядра операционной системы были введены в предшественнике Unix Multics».

Далее в кроличьей норе Википедии можно найти следующее: «Луи Поузин ввел термин« оболочка »для командного языка, используемого в Multics»

Я не прочитал это полностью, но его письмо здесь может дать вам ответ: http://www.multicians.org/shell.html

РЕДАКТИРОВАТЬ: действительно это не объясняется. Он просто «придумал» термин. Не та забавная история, на которую ты надеялся, не так ли?


3
Неудовлетворительно, но так иногда и бывает.
Эрик Уилсон

10

Может потому, что это поверхность, экранирующая внутреннее ядро ​​от пользователя? Таким образом, ядро ​​будет жемчужиной внутри скорлупы.


Я всегда слышал, что оболочка была защитным слоем, который защищал пользователя от ядра.
Glorytoad

1

Похоже, ответ лежит здесь:

Историческая справка. По-видимому, исходная оболочка Multics (смысл 1) была названа так, потому что это была оболочка (смысл 3); он запускал пользовательские программы не путем запуска отдельных процессов, а путем динамического связывания программ в своем собственном коде, вызова их в качестве подпрограмм и последующего динамического удаления их по возвращении. Интерпретатор команд VMS все еще делает что-то очень похожее на это.

- Википедия

То есть «оболочка» была хорошей реальной аналогией с тем, как Multics, предшественник Unix, запускал программы.


Википедия не является источником, хотя. Использование его как единого приводит к круговому источнику, где Википедия использует сайт в качестве источника, который сам использовал Википедию в качестве источника. В нынешнем виде это чистая спекуляция.
Evi1M4chine

0

Насколько я понимаю, «оболочка» - это более старый термин, который мы сейчас назвали бы «Основной пользовательский интерфейс». Современным аналогичным термином будет «Окружение рабочего стола», поскольку практически все современные системы используют метафору рабочего стола.


1
Есть много совпадений, но это не совсем правильно. Каждая оболочка - это пользовательский интерфейс. Но не каждый пользовательский интерфейс является оболочкой. Оболочка - это основной интерфейс пользователя, вокруг которого все и с чего все начинается. Это основной пользовательский интерфейс операционной системы.
Evi1M4chine

-2

Ядро является ядром системы, а оболочка окружает его и является интерфейсом между ядром и пользователем.

В любой системе UNIX и даже в системах Linux оболочка - это место, где системные администраторы работают над настройкой и управлением системой.

Современная терминология часто использует термин CLI или интерфейс командной строки для описания приглашения оболочки. Это связано с графическим интерфейсом или пользовательским интерфейсом. Однако любой настоящий системный администратор знает, что вам не следует использовать инструменты с графическим интерфейсом для настройки UNIX / Linux и работать только непосредственно в командной строке оболочки.

Это еще более актуально в наши дни, когда мы слышим, как некоторые начинающие энтузиасты Linux говорят такие вещи, как «Я использую Linux, но я на самом деле не изучил CLI».

Как гласит старая поговорка: «Если вы не можете сделать это по приглашению оболочки, вы не можете сделать это».


Я получил голос за то, что сказал правду. Ах, хорошо ...
Colinux
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.