쉘(컴퓨팅)

Shell (computing)
1980년대 후반의 그래픽 인터페이스로, 남성 페이지용 TUI 창, 모양 창(오클록) 및 여러 아이콘화된 창 등이 있다.오른쪽 하단에는 사용자가 단말기에 앉아 있는 것처럼 명령을 입력할 수 있는 Unix 셸을 실행하는 단말기 에뮬레이터가 보인다.

컴퓨팅에서 운영 체제의 서비스를 인간 사용자나 다른 프로그램에 노출시키는 컴퓨터 프로그램이다.일반적으로 운영 체제 셸은 컴퓨터의 역할과 특정 작동에 따라 명령줄 인터페이스(CLI) 또는 그래픽 사용자 인터페이스(GUI)를 사용한다.그것은 운영체제를 중심으로 가장 바깥쪽 층이기 때문에 쉘이라고 불린다.[1][2]

명령줄 셸은 사용자가 명령어와 해당 호출 구문을 숙지하고 셸별 스크립팅 언어(예: bash)에 대한 개념을 이해하도록 요구한다.

그래픽 셸은 초기 컴퓨터 사용자에게 낮은 부담을 주며, 사용하기 쉬운 것이 특징이다.대부분의 GUI 지원 운영 체제는 CLI 셸도 제공한다.

개요

운영 체제는 파일 관리, 프로세스 관리(애플리케이션 실행 및 종료), 배치 처리, 운영 체제 모니터링 및 구성 등 사용자에게 다양한 서비스를 제공한다.

대부분의 운영체제 셸은 셸이 컴퓨터에 직접 부착된 주변 장치를 통해 사용자와 통신한다 하더라도 기본 셸에 대한 직접 인터페이스가 아니다.셸은 사실 커널 API를 다른 애플리케이션 프로그램에서 사용하는 것과 동일한 방식으로 사용하는 특별한 애플리케이션이다.셸은 사용자의 입력을 유도하고, 사용자의 입력을 해석한 다음 기본 운영 체제의 출력을 처리함으로써 사용자-시스템 상호작용을 관리한다(읽기-평가-인쇄 루프, RET와 유사함).[3]운영 체제 셸은 실제로 애플리케이션이기 때문에 대부분의 운영 체제에서는 다른 유사한 애플리케이션으로 쉽게 대체될 수 있다.

로컬 시스템에서 실행되는 쉘 외에도, 로컬 사용자가 원격 시스템을 사용할 수 있도록 하는 다양한 방법이 있다. 이러한 접근 방식을 일반적으로 원격 액세스 또는 원격 관리라고 한다.처음에는 직렬 회선이나 모뎀을 통해 메인프레임에 연결된 텍스트 단말기를 통해 각 활성 사용자의 텍스트 기반 UI를 동시에 제공하는 다중 사용자 메인프레임에서 사용할 수 있게 되었고, 원격 액세스는 유닉스 유사 시스템과 마이크로소프트 윈도까지 확장되었다.유닉스 유사 시스템에서는 일반적으로 텍스트 기반 쉘에 Secure Shell 프로토콜이 사용되며, X Window 시스템 기반 그래픽 사용자 인터페이스(GUI)에 SSH 터널링을 사용할 수 있다.Microsoft Windows에서는 원격 데스크톱 프로토콜을 사용하여 GUI 원격 액세스를 제공할 수 있으며, Windows Vista부터는 PowerShell Remote를 WMI, RPC, WS-Management를 통한 텍스트 기반 원격 액세스에 사용할 수 있다.[4]

대부분의 운영 체제 쉘은 명령줄과 그래픽의 두 가지 범주 중 하나로 분류된다.명령줄 셸은 운영 체제에 명령줄 인터페이스(CLI)를 제공하는 반면 그래픽 셸은 그래픽 사용자 인터페이스(GUI)를 제공한다.다른 가능성은 그리 흔하지는 않지만 음성 사용자 인터페이스와 CLI가 아닌 텍스트 기반 사용자 인터페이스(TUI)의 다양한 구현이 포함된다.CLI와 GUI 기반 쉘의 상대적인 장점들은 종종 논의된다.

명령줄 셸

명령 프롬프트, 윈도우즈의 CLI 셸
널리 채택된 유닉스 셸바시

명령줄 인터페이스(CLI)는 키보드에 입력된 영숫자 문자를 사용하여 운영 체제에 명령과 데이터를 대화식으로 제공하는 운영 체제 셸이다.예를 들어, 텔레타이프 작성자는 컴퓨터에서 실행 중인 명령 통역 프로그램에 키 입력을 나타내는 코드를 보낼 수 있고, 명령 통역자는 키 입력 순서를 구문 분석하여 문자 순서를 인식할 수 없는 경우 오류 메시지로 응답하거나, 애플리케이션 p 로딩과 같은 다른 프로그램 작업을 수행할 수 있다.로그램, 파일 나열, 사용자 로그인 및 기타 여러 가지.UNIX와 같은 운영체제는 POSIX 셸이 기본이 되는 등 명령어, 구문, 기능이 서로 다른 프로그램을 다양하게 갖추고 있다.일부 운영 체제는 단일 스타일의 명령 인터페이스만 가지고 있었다. MS-DOS와 같은 범용 운영 체제는 표준 명령 인터페이스(CORM)와 함께 제공되었다.COM) 그러나 타사 인터페이스도 자주 사용할 수 있어 메뉴 설정이나 원격 프로그램 실행과 같은 추가 기능이나 기능을 제공했다.

응용 프로그램 프로그램은 명령줄 인터페이스도 구현할 수 있다.예를 들어 유닉스 유사 시스템에서 텔넷 프로그램에는 원격 컴퓨터 시스템에 대한 링크를 제어하기 위한 다수의 명령이 있다.프로그램에 대한 명령은 원격 컴퓨터로 전송되는 데이터와 동일한 키 입력으로 이루어지기 때문에, 이 둘을 구별할 수 있는 어떤 수단이 필요하다.이스케이프 시퀀스는 절대 전달되지 않지만 항상 로컬 시스템에 의해 해석되는 특수 로컬 키 스트로크를 사용하여 정의할 수 있다.프로그램이 모달(모달)이 되어 키보드에서 명령을 해석하거나 키 입력을 처리할 데이터로 전달한다.

많은 명령줄 셸의 특징은 재사용을 위한 명령 시퀀스를 저장할 수 있다는 것이다.데이터 파일에는 사용자가 입력하는 것처럼 CLI가 수행할 수 있는 명령 시퀀스가 포함될 수 있다.이러한 저장된 지침을 수행할 때 CLI의 특수 기능이 적용될 수 있다.이러한 배치 파일(스크립트 파일)은 시스템을 재시작할 때 프로그램 집합의 초기화와 같은 일상적인 작업을 자동화하는 데 반복적으로 사용할 수 있다.셸의 배치 모드 사용은 대개 구조, 조건, 변수 및 프로그래밍 언어의 다른 요소들을 포함한다. 어떤 것들은 그러한 목적을 위해 필요한 기본적인 것들을 가지고 있고, 다른 것들은 그 자체로 매우 정교한 프로그래밍 언어들이다.반대로, 일부 프로그래밍 언어는 운영 체제 셸 또는 특별 제작된 프로그램에서 대화형으로 사용될 수 있다.

명령줄 셸은 사용자가 입력하는 몇 개의 문자를 기반으로 통역자가 명령을 확장하는 명령줄 완료와 같은 기능을 제공할 수 있다.명령줄 통역기는 사용자가 시스템에 실행된 이전 명령을 호출하고 반복할 수 있도록 기록 기능을 제공할 수 있으며, 가능한 경우 일부 편집 기능을 사용할 수 있다.운영체제에 대한 모든 명령은 사용자가 입력해야 했기 때문에 프로그램 옵션을 나타내기 위한 짧은 명령명과 컴팩트 시스템이 일반적이었다.짧은 이름은 때때로 사용자가 기억하기 어려웠으며, 초기 시스템은 상세한 온라인 사용자 지침 가이드를 제공하기 위한 스토리지 리소스가 부족했다.

그래픽 쉘

그래픽 사용자 인터페이스(GUI)는 창 사이포커스를 전환하고, 창 열기, 닫기, 이동 및 크기 조정과 같은 작업을 허용함으로써 프로그램을 그래픽으로 조작할 수 있는 수단을 제공한다.그래픽 쉘은 데스크탑 환경에 포함되거나 느슨하게 결합되는 유틸리티의 집합으로서도 별도로 제공될 수 있다.

대부분의 그래픽 사용자 인터페이스는 데이터 파일이 마치 책상 위의 종이 문서인 것처럼 표현되는 "전자식 데스크톱"의 은유법을 개발하며, 애플리케이션 프로그램도 명령 이름에 의해 호출되는 대신 그래픽 표현을 유사하게 한다.

유닉스 유사 시스템

KDE에서 KDesktopKonkeror 사이의 파일 그룹에 대해 수행된 끌어서 놓기 작업

그래픽 쉘은 일반적으로 윈도우 시스템 위에 구축된다.X 윈도우 시스템이나 웨이랜드의 경우, 쉘은 설치된 애플리케이션을 시작하고, 열린 윈도우와 가상 데스크톱을 관리하고, 종종 위젯 엔진을 지원하는 기능을 제공하는 하나 이상의 프로그램뿐만 아니라, 각각 X 윈도우 관리자 또는 웨이랜드 컴포지터로 구성된다.

macOS의 경우 Quartz Compositioner가 윈도잉 시스템 역할을 하며, 은 파인더,[5] 도크,[5] 시스템으로 구성된다.UISERVER,[5] 그리고 관제 센터.[6]

마이크로소프트 윈도

최신 버전의 마이크로소프트 윈도우즈 운영 체제는 윈도우즈 셸을 셸로 사용한다.윈도 셸은 데스크톱 환경, 시작 메뉴, 작업 표시줄과 함께 운영 체제의 파일 관리 기능에 액세스하기 위한 그래픽 사용자 인터페이스를 제공한다.또한 이전 버전에는 Microsoft Windows의 3.x 시리즈를 위한 쉘이었던 Program Manager가 포함되어 있으며, 실제로 최소한 Windows XP를 통해 95 및 NT 유형의 최신 버전과 함께 제공되었다.윈도 버전 1과 2의 인터페이스는 확연히 달랐다.

데스크톱 애플리케이션도 타사 엔진을 사용하는 한 쉘로 간주된다.마찬가지로, 윈도 탐색기의 인터페이스에 불만을 품은 많은 개인과 개발자들은 셸의 기능과 외관을 바꾸거나 완전히 대체하는 소프트웨어를 개발했다.StarDockWindowBlinds는 이전 어플리케이션의 좋은 예다.LiteStep이머징 데스크톱은 후자의 좋은 예다.

상호운용성 프로그램과 목적에 맞게 설계된 소프트웨어는 윈도우 사용자들이 매킨토시뿐만 아니라 아래에서 논의한 많은 다양한 유닉스 기반 GUI의 동등한 것을 사용할 수 있게 해준다.버전 3.0용 OS/2 프리젠테이션 매니저와 동등한 수준으로 윈도 NT 버전에서 OS/2 환경 하위 시스템을 사용하는 일부 조건에서 일부 OS/2 프로그램을 실행할 수 있다.

기타 용도

"Shell"은 또한 자연에서 발견되는 쉘과 유사하게 웹 브라우저나 이메일 클라이언트와 같은 특정 구성요소를 "주위에 구축"한 애플리케이션 소프트웨어를 설명하는 데 느슨하게 사용된다.실제로 (명령줄) 쉘은 운영체제 커널을 캡슐화한다.이것들은 때때로 "wrappers"[2]라고도 불린다.

전문가 시스템에서 셸은 특정 응용 분야에 대한 지식 기반이 없는 "빈" 전문가 시스템인 소프트웨어의 한 부분이다.[7]

참고 항목

참조

  1. ^ "The Internet's fifth man", Brain scan, The Economist, London: Economist Group, December 13, 2013, Mr Pouzin created a program called RUNCOM that helped users automate tedious and repetitive commands. That program, which he described as a “shell” around the computer’s whirring innards, gave inspiration—and a name—to an entire class of software tools, called command-line shells, that still lurk below the surface of modern operating systems.
  2. ^ a b Raymond, Eric S. (ed.). "shell". The Jargon File.
  3. ^ "Operating system shells". AIX 6.1 Information Center. IBM Corp. Retrieved September 16, 2012.
  4. ^ Wheeler, Sean (14 October 2018). "Running Remote Commands". Microsoft Docs. Microsoft. Retrieved 30 June 2019. You can run commands on one or hundreds of computers with a single PowerShell command. Windows PowerShell supports remote computing by using various technologies, including WMI, RPC, and WS-Management.
  5. ^ a b c "The Life Cycle of a Daemon". Apple Inc.
  6. ^ "Restart Mission Control in OS X Lion". OSXDaily. Nov 23, 2011.
  7. ^ British Computer Society: The BCS glossary of ICT and computing terms. Pearson Education. 2005. p. 135. ISBN 978-0-13-147957-9.