Чому слово "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

EDIT: насправді це не пояснено. Він просто "придумав" цей термін. Не смішна історія, на яку ви сподівалися, чи не так?


3
Незадовільно, але так це часом буває.
Ерік Вілсон

10

Може тому, що це поверхня, яка захищає внутрішнє ядро ​​від користувача? Так ядро ​​було б перлиною всередині оболонки.


Я завжди чув, що оболонка була захисним шаром, який захищав користувача від ядра.
Glorytoad

1

Схоже, відповідь лежить тут:

Історична примітка: Мабуть, оригінальну оболонку Multics (сенс 1) так називали, оскільки вона була оболонкою (сенс 3); він запускав користувацькі програми не запускаючи окремі процеси, а динамічно пов'язуючи програми з власним кодом, викликаючи їх як підпрограми, а потім динамічно відключаючи їх при поверненні. Інтерпретатор команд VMS все ще робить щось дуже подібне.

- Вікіпедія

Тобто, "оболонка" була хорошою аналогією у реальному світі щодо того, як Multics, попередник Unix, керував програмами.


Однак Вікіпедія не є джерелом. Використовуючи його як єдине, веде до циркулярного пошуку, де Вікіпедія використовує сайт як джерело, який сам використовує Вікіпедію як джерело. На сьогодні це чисті спекуляції.
Evi1M4chine

0

Як я розумію, "оболонка" - це більш давній термін для того, що ми зараз би називали "Первинний інтерфейс користувача". Сучасним аналогічним терміном буде "Настільне середовище", оскільки віртуально всі сучасні системи використовують метафору настільних ПК.


1
Перекриттів багато, але це не зовсім правильно. Кожна оболонка - це інтерфейс користувача. Але не кожен користувальницький інтерфейс є оболонкою. Оболонка - це головний користувальницький інтерфейс, навколо якого і з чого все починається. Це основний користувальницький інтерфейс операційної системи.
Evi1M4chine

-2

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

У будь-якій системі UNIX, навіть у системах Linux, оболонка - це місце, де системні адміністратори працюють для налаштування та управління системою.

Сучасна термінологія часто використовує термін CLI або інтерфейс командного рядка для опису рядка оболонки. Це стосується GUI або графічного інтерфейсу користувача. Однак будь-який справжній Sysadmin знає, що не слід використовувати засоби графічного інтерфейсу для налаштування UNIX / Linux і працювати тільки безпосередньо в командному рядку оболонки.

Це ще більше актуально сьогодні, коли ми чуємо, як деякі молодші ентузіасти Linux говорять такі речі, як "я використовую Linux, але я не дуже навчився CLI".

Як свідчить стара приказка: "Якщо ви не можете зробити це за допомогою оболонки, ви не можете цього зробити".


Я отримав голос за те, що говорив правду. ну добре ...
Colinux
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.