터미널 (통신)
터미널(Terminal)은 통신의 처음과 마지막에 위치하는 장치로, 컴퓨터나 컴퓨팅 시스템에 데이터를 입력하거나 표시하는 데 쓰이는 하드웨어 기기이다.[1][2]
개요
터미널은 컴퓨터와 사용자 간 서로 소통해주는 인터페이스라고 할 수 있다. 인터페이스란 텍스트 기반과 그래픽 기반(GUI) 두 가지 기반을 포함하는 용어이다. 터미널은 컴퓨터와 소통하기 위해 키보드를 사용하는 것을 뜻하고, 어떻게 만들지에 따라 컴퓨터 간의 소통도 가능하다. 터미널은 기본적으로 셸(Shell)을 사용한다.[3] 맥 OS와 리눅스에는 터미널 애플리케이션이 기본적으로 제공된다. 텍스트 기반과 그래픽 기반을 포함하는 인터페이스와 달리, 리눅스 터미널은 텍스트 기반만을 말한다. 셸과 같이 명령을 기반으로 하는 프로그램이 주로 사용되기 때문에 커맨드라인 인터페이스라고도 한다. 이 터미널은 물리 하드웨어를 소프트웨어로 구현한 애플리케이션이다.[4]
셸
특정한 목적을 가지고 실행되는 프로그램이라기보다는 컴퓨터에 명령을 내리기 위한 인터페이스 역할을 한다. 즉, 문자 기반의 명령어들을 컴퓨터 언어로 변환하여 컴퓨터와 소통을 가능하게 해준다. 기본적으로 bash, tcsh 등이 사용되고, 윈도에서는 cmd를 기반으로 사용된다. 커맨드라인 인터페이스로 구현된 가장 대표적인 프로그램이다.[3][4] 셸은 크게 그래픽 사용자 인터페이스(Graphic User Interface, GUI), 명령 줄 인터페이스(Command Line Interface, CLI)로 나눌 수 있다. 그래픽 사용자 인터페이스(GUI)는 사용자가 편리하고 직관적으로 알아볼 수 있도록 그래픽으로 입출력 등의 기능을 수행해서 보여준다. 편리성과 쉬운 접근성으로 대부분의 운영체제는 그래픽 사용자 인터페이스 기반이지만, 그래픽 사용자 인터페이스가 필요하지 않은 환경에서 또는 명령 줄 인터페이스로 더 간편하고 빠르고 자동화하여서 할 수 있는 일들이 존재해서 명령 줄 인터페이스가 많이 사용된다. 명령 줄 인터페이스(CLI)는 터미널 등의 프로그램을 통해서 문자열을 입력하고, 문자로 반환되는 결과를 확인하는 인터페이스이다. 맥(Mac)과 리눅스는 유닉스 기반으로 만들어진 운영체제이기 때문에 명령 줄 인터페이스에서 사용되는 명령어가 대부분 비슷하거나 같다.[5]
입력 모드
터미널은 다양한 오퍼레이션을 제공한다. 오퍼레이션이 입력 모드에 따라서 다르게 동작한다. 정규 모드(Canonical Mode)는 줄 단위로 터미널 입력을 처리하고, 줄 편집이 활성화되어 있다. 이 모드는 기본 입력 모드이다. 비정규 모드(Noncanonical Mode)는 줄 단위 편집이 아닌 문자 단위 편집 기능을 제공한다. 터미널은 일반 문자뿐만 아니라 다양한 특수 문자도 해석하고, 특수 문자는 고유의 기능이 있다.[6]
가상 터미널
터미널 동장 방식에 대한 추상적인 표현으로, 원격지 터미널 에뮬레이터 기능을 하는 가상 단말 서비스 및 프로토콜을 총칭한다. 에뮬레이터(Emulator)는 한 시스템에서 다른 시스템을 복제하는 것으로, 그리하여 두 번째 시스템이 첫 번째 시스템을 따라 행동하는 것이다.[7] 터미널 에뮬레이터로 유닉스에 로그인을 하게 되면 가상 터미널을 이용하게 된다. tty 명령어를 실행하면 현재 사용하고 있는 가상 터미널의 디바이스 명을 확인할 수 있다.[8] pseudo-device들의 쌍으로 존재하고, 구성요소는 기능에 따라 마스터(Master), 슬레이버(Slaver)로 구분된다. 마스터는 에뮬레이터가 슬레이버를 제어할 수 있는 방법을 제공하고, 슬레이버는 tty의 디바이스처럼 실제 터미널의 디바이스를 의미한다.[9] 터미널 동작 방식을 에뮬레이터하기 위해 동작 특성 관점에서 터미널의 상태를 표현하는 자료구조의 생성과 유지, 실제 터미널 특성 규칙으로의 번역이 필요하고, 네트워크 세션 관점에서는 두 응용 엔티티 간에 연결 설정 및 관리와 연결을 통해 수행되는 허용 가능한 동작에 대한 협상이 필요하다.[10]
기타
콘솔(console)은 시스템 제어를 위한 특수 목적 터미널로, 시스템 또는 특정 기능들을 한 곳 또는 한 화면에 모아두고 손쉽게 제어하고, 수행하기 위한 조정용 터미널, 화면, 장치 등을 일컫는다. tty는 Teletypewriter의 약자로, 과거 유닉스에서 중대형 호스트에 비동기 직렬 통신 방식으로 연결된 문자 중심의 입출력 장치를 뜻하는 용어이다. 일반 명령 줄 인터페이스(CLI)용 콘솔인 tty, 시리얼 통신용 콘솔인 ttys, 기본 X 윈도를 위한 가상 콘솔인 pts, 외부 원격 접속을 위한 가상 콘솔인 pty가 있다.[2][11] 또한, 입출력 제어 장치와 1대 이상의 입출력 장치가 있고, 전송 제어 장치를 통해서 시스템에 접속되는 리모트 터미널(Remote Terminal), 미니컴퓨터를 내장하고 있는 단말기로써, 데이터의 입출력뿐만 아니라 입출력 데이터의 체크, 편집, 파일링, 간단한 연산, 터미널 제어, 통신 제어 등의 기능을 가지고 있는 인텔리전트 터미널(Inteligent Terminal)이 있다. 인텔리전트 터미널을 플로피 디스크나 자기 디스크, 디지털 카세트 레코더 등을 시스템으로써 가지고 있는 것도 있다.[12]
각주
- ↑ 〈단말기〉, 《위키백과》
- ↑ 2.0 2.1 〈[http://www.ktword.co.kr/test/view/view.php?nav=2&no=730&sh=%ED%84%B0%EB%AF%B8%EB%84%90 Terminal 터미널, 단말기]〉, 《정보통신기술용어해설》
- ↑ 3.0 3.1 〈[https://ji-ggu.tistory.com/entry/3Linux-%ED%84%B0%EB%AF%B8%EB%84%90 #3.Linux 터미널]〉, 《티스토리》, 2015-04-04
- ↑ 4.0 4.1 Daegwon Nacyot Kim, 〈커맨드라인 인터페이스, 셸, 터미널이란?〉, 《44bits》, 2021-01-22
- ↑ younuk23, 〈(TIL) 리눅스&터미널 간략 개념 정립〉, 《velog》, 2020-08-01
- ↑ 〈터미널〉, 《티스토리》, 2013-07-17
- ↑ 〈에뮬레이터〉, 《위키백과》
- ↑ 친절한 찬찬이 아빠, 〈(RHEL 공통)터미널(단말)이란〉, 《티스토리》, 2021-02-18
- ↑ 〈가상터미널〉, 《티스토리》, 2013-07-20
- ↑ 〈VT Virtual Terminal, Remote Login 가상 단말, 가상 터미널, 원격 로그인〉, 《정보통신기술용어해설》
- ↑ George 혜성 Hyesung, 〈운영체제(os), 쉘(shell), 콘솔(console), 터미널(terminal), 커널(용어 개념 정리〉, 《티스토리》, 2019-12-05
- ↑ 〈6.11. 단말기란 무엇인가?〉, 《IT문화원》
참고자료
- 〈단말기〉, 《위키백과》
- 〈Terminal 터미널, 단말기〉, 《정보통신기술용어해설》
- 〈#3.Linux 터미널〉, 《티스토리》, 2015-04-04
- Daegwon Nacyot Kim, 〈커맨드라인 인터페이스, 셸, 터미널이란?〉, 《44bits》, 2021-01-22
- younuk23, 〈(TIL) 리눅스&터미널 간략 개념 정립〉, 《velog》, 2020-08-01
- George 혜성 Hyesung, 〈운영체제(os), 쉘(shell), 콘솔(console), 터미널(terminal), 커널(용어 개념 정리〉, 《티스토리》, 2019-12-05
- 〈터미널〉, 《티스토리》, 2013-07-17
- 〈6.11. 단말기란 무엇인가?〉, 《IT문화원》