“shell”이라는 단어가 명령 줄 인터페이스를 설명하는 데 사용 된 이유는 무엇입니까?


28

"쉘"이라는 용어가 궁금합니다. 나는 그것이 무엇인지 알고 있다고 생각하지만 ( "쉘"과 "터미널"의 구별은 여전히 ​​모호하지만) 왜 "쉘"이라는 단어가 이런 유형의 프로그램을 설명하기 위해 선택 되었습니까?

이것은 중요하지 않은 것처럼 보일 수 있지만 일반적으로 선택이라는 단어가 나를 미스터리하게 만들면 내 이해에 차이가 있음을 나타냅니다.


터미널은 장치 또는 I / O 파이프입니다. 쉘은 대화식으로 대화식으로 터미널에서 사용자 입력을 수신 한 후이를 기반으로하는 실행 프로그램입니다. 직접적인 대화식 사용을 제공하지 않는 "쉘"은 기술적으로 어떤 종류의 해석기를 스크립팅하는 것입니다.
LawrenceC

답변:


8

멀 틱스 용어는 단서를 제공 할 수 있습니다. 쉘은 다음과 같이 정의됩니다.

Multics 명령 프로세서는 셸이라고 불렀습니다. 이 프로그램에는 리스너가 실행할 명령 행이 전달됩니다. 행을 명령 이름과 인수로 구문 분석하고 명령을 찾아서 시작한 다음 PL / I 문자열 인 인수를 사용하여 명령 프로그램을 호출합니다. cu_ $ set_cp를 호출하여 기본 시스템 제공 쉘을 사용자 제공 프로그램으로 간단하게 교체 할 수 있습니다 (abbrev 참조). 유닉스 쉘은 Multics 의미에서 쉘과 리스너의 개념을 모두 포함합니다.

껍질청취자 의 관계는 어원 적으로 그리고 은유 적 으로 의미가있다 [1].

[1] "껍데기는 권위, 연설 및 청각의 상징이기 때문에 예언의 상징이라고 할 수 있습니다."



10

에서 http://en.wikipedia.org/wiki/Thompson_shell#History

"명령 줄 인터프리터의 이름"shell "과 운영 체제 커널 외부에서 사용자 프로그램으로 쉘을 만드는 개념은 Unix의 전구체 Multics에 도입되었습니다."

wikipedia 토끼 구멍 아래로 "Louis Pouzin, Multics에서 사용되는 명령 언어에 대한 쉘이라는 용어가 도입되었습니다"라는 문구가 있습니다.

나는 그것을 완전히 읽지는 않았지만 여기에 쓴 글은 당신에게 답을 줄 것입니다 : http://www.multicians.org/shell.html

편집 : 실제로 설명되지 않았습니다. 그는 단지 그 용어를 "동전"했다. 당신이 기대하던 재미있는 이야기가 아니 었습니까?


3
불만족 스럽지만 때때로 그렇게되는 방법입니다.
Eric Wilson

10

어쩌면 표면이기 때문에 내부 커널을 사용자로부터 보호합니까? 따라서 커널은 쉘 내부의 진주 일 것입니다.


필자는 항상 쉘이 사용자를 커널로부터 보호하는 보호 계층이라고 들었습니다.
Glorytoad

1

답이 여기에있는 것처럼 보입니다.

역사적 메모 : 원래 Multics 쉘 (센스 1)은 쉘 (센스 3)이기 때문에 그렇게 불렀습니다. 별도의 프로세스를 시작하지 않고 프로그램을 자체 코드에 동적으로 링크하고 서브 루틴으로 호출 한 다음 리턴시 동적으로 링크를 해제하여 사용자 프로그램을 실행했습니다. VMS 명령 인터프리터는 여전히 이와 같은 작업을 수행합니다.

- 위키 백과

즉, "쉘 (shell)"은 유닉스의 전신 인 멀티 크 (Multics)가 어떻게 프로그램을 실행했는지에 대한 훌륭한 실제 비유였습니다.


위키피디아는 소스가 아닙니다. 그것을 하나로 사용하면 Wikipedia가 사이트를 소스로 사용하고 자체적으로 Wikipedia를 소스로 사용하는 순환 소싱이 발생합니다. 그대로, 이것은 순수한 추측입니다.
Evi1M4chine

0

내가 이해하는 것처럼 "쉘"은 이제 "기본 사용자 인터페이스"라고 부르는 용어의 오래된 용어입니다. 현대의 모든 유사한 시스템은 데스크탑 은유를 사용하기 때문에 현대의 유사한 용어는 "데스크탑 환경"입니다.


1
겹치는 부분이 많지만 정확하지 않습니다. 모든 쉘은 사용자 인터페이스입니다. 그러나 모든 사용자 인터페이스가 셸인 것은 아닙니다. 쉘은 모든 것을 중심으로 모든 것이 시작되는 기본 사용자 인터페이스입니다. 운영 체제의 기본 사용자 인터페이스입니다.
Evi1M4chine

-2

커널은 시스템의 핵심이며 쉘은이를 둘러싸고 있으며 커널과 사용자 사이의 인터페이스입니다.

모든 UNIX 시스템 내에서, 심지어 Linux 시스템에서도 쉘은 시스템 관리자가 시스템을 구성하고 관리하는 장소입니다.

현대 용어는 종종 CLI 또는 명령 행 인터페이스라는 용어를 사용하여 쉘 프롬프트를 설명합니다. 이것은 GUI 또는 그래픽 사용자 인터페이스와 관련이 있습니다. 그러나 실제 Sysadmin은 GUI 도구를 사용하여 UNIX / Linux를 구성하지 말고 쉘 명령 프롬프트에서만 직접 작업해야한다는 것을 알고 있습니다.

오늘날 일부 Linux 애호가가 "리눅스를 사용하지만 실제로 CLI를 배우지 못했습니다"와 같은 말을 듣는 것은 더욱 관련이 있습니다.

구식 속담이 진행되면서 "쉘 프롬프트에서 할 수 없다면 할 수 없습니다."


나는 진실을 말함으로써 투표를 받았습니다. 아 잘 ...
Colinux
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.