'터미널', '쉘', 'tty'및 '콘솔'의 정확한 차이점은 무엇입니까?


1235

느슨하게 사용될 때 이러한 용어는 거의 같은 것을 의미한다고 생각합니다.

  • 단말기
  • 껍질
  • tty
  • 콘솔

이 용어들 각각은 정확히 무엇을 의미합니까?



28
나는 그것에 '명령 줄'을 추가하고 싶습니다 :-)
teeks99

1
명령 행은 터미널 / 터미널 에뮬레이터의 쉘에서 실행중인 명령 행 인터프리터로 명령을 보내는 데 사용되는 언어입니다.
Marty Fried

1
텔레타이프 (TTY)는 처음에 뉴욕에있는 역학 연구소 운영에 넣어 전시되었다 1844 en.wikipedia.org/wiki/Teleprinter
서지 Stroobandt에게

두 가지 유용한 링크 -feyrer.de/NetBSD/ttys.htmlquora.com/…
Nishant

답변:


1198

터미널은 전선 끝에 있고 쉘은 거북이의 집이며 tty는 이상한 약어이며 콘솔은 일종의 캐비닛입니다.

어쨌든 어원 적으로 말하면

유닉스 용어에서 짧은 대답은

  • 터미널 = tty = 텍스트 입력 / 출력 환경
  • 콘솔 = 물리적 터미널
  • 쉘 = 명령 줄 인터프리터

콘솔, 터미널 및 tty는 밀접한 관련이 있습니다. 원래 그들은 유닉스 초기에 컴퓨터와 상호 작용할 수있는 장비를 의미했습니다. 이것은 타이프 라이터와 유사한 텔레 프린터 스타일의 장치로 , 텔레 타이프라이터 (teletypewriter)라고도하며, 속기는“tty”였습니다. “터미널”이라는 이름은 전자적 관점에서,“콘솔”이라는 이름은 가구 관점에서 나왔습니다. 유닉스 역사 초기에 전자 키보드와 디스플레이가 터미널의 표준이되었습니다.

유닉스 용어로, tty 는 읽기 및 쓰기 이외 의 많은 추가 명령 ( ioctls ) 을 구현하는 특정 종류의 장치 파일 입니다 . 가장 일반적인 의미에서 터미널 은 tty와 동의어입니다. 일부 tty는 하드웨어 장치를 대신하여 커널에서 제공합니다. 예를 들어 키보드에서 입력을 받고 출력을 텍스트 모드 화면으로 보내거나 입력 및 출력을 직렬 회선을 통해 전송합니다. pseudo-ttys 라고도하는 다른 tty 는 Xterm ( X Window System 에서 실행 ), Screen 과 같은 터미널 에뮬레이터 라는 프로그램에 의해 (씬 커널 계층을 통해) 제공됩니다.(프로그램과 다른 터미널 간의 격리 계층 제공), Ssh (한 시스템의 터미널을 다른 시스템의 프로그램과 연결), Expect (스크립팅 터미널 상호 작용의 경우) 등

단어 터미널은 또한 컴퓨터와 일반적으로 키보드 및 디스플레이와 상호 작용하는 장치의보다 전통적인 의미를 가질 수 있습니다. 예를 들어, X 터미널은 일종의 씬 클라이언트 (thin client)로 , 키보드, 디스플레이, 마우스 및 때로는 다른 인간 상호 작용 주변 장치를 구동하고 실제 응용 프로그램을보다 강력한 다른 컴퓨터에서 실행하는 특수 목적 컴퓨터입니다.

콘솔은 일반적으로 어떤 정의하여 컴퓨터에 연결된 단말 기본 물리적 인 의미에서 단말이다. 콘솔은 운영 체제에 (커널 구현) tty로 나타납니다. Linux 및 FreeBSD와 같은 일부 시스템에서는 콘솔이 여러 개의 tty로 나타납니다 (특별 키 조합이이 tty간에 전환됨). 문제를 혼동하기 위해 각 특정 tty에 부여 된 이름은 "콘솔", "가상 콘솔", "가상 터미널"및 기타 변형이 될 수 있습니다.

참조 왜 가상 터미널 "가상", 무엇을 / 왜 / "진짜"터미널입니까? .


쉘은 그 주된 목적은 다른 프로그램을 시작하는 것입니다 그들은 로그인 할 때 사용자에게 표시되는 기본 인터페이스입니다. (원래의 은유가 쉘이 사용자의 홈 환경인지 또는 쉘이 다른 프로그램에서 실행되고 있는지 여부는 알 수 없습니다.)

유닉스 서클에서 명령 줄 을 전문으로 하며 시작하려는 응용 프로그램의 이름을 입력 한 다음 응용 프로그램이 작동 해야하는 파일 또는 기타 객체의 이름을 입력하고 Enter 키를 누릅니다. 다른 유형의 환경에서는 "쉘"이라는 단어를 사용하지 않습니다. 예를 들어, 창 시스템에는 "쉘"이 아닌 " 창 관리자 "및 " 데스크탑 환경 "이 포함됩니다.

유닉스 쉘에는 여러 가지가 있습니다. 대화식으로 사용 되는 일반적인 셸에는 Bash (대부분의 Linux 설치에서 기본값), zsh (전원 및 사용자 지정 가능성 을 강조 함) 및 fish (단순성을 강조 함)가 포함됩니다.

명령 줄 셸에는 명령을 결합하기위한 흐름 제어 구문이 포함되어 있습니다. 대화식 프롬프트에서 명령을 입력하는 것 외에도 스크립트를 작성할 수 있습니다. 가장 일반적인 쉘에는 Bourne_shell 기반의 공통 구문이 있습니다 . “ 쉘 프로그래밍 ”을 논의 할 때 , 쉘은 거의 항상 Bourne 스타일 쉘로 암시됩니다. 스크립팅에 자주 사용되지만 고급 대화식 기능이없는 일부 쉘에는 Korn 쉘 (ksh) 및 많은 변형이 포함됩니다. 대부분의 유닉스 계열 시스템에는 /bin/sh일반적으로 ash, ksh 또는 bash 와 같은 Bourne 스타일 쉘이 설치되어 있습니다.

유닉스 시스템 관리에서, 사용자의 은 로그인 할 때 호출되는 프로그램입니다. 일반 사용자 계정에는 명령 줄 셸이 있지만 액세스가 제한된 사용자에게는 제한된 셸 이나 다른 특정 명령 (예 : 파일 전송)이있을 수 있습니다. 계정 만).


터미널과 쉘 사이의 분업은 완전히 분명하지 않습니다. 주요 작업은 다음과 같습니다.

  • 입력 : 터미널이 키를 제어 순서로 변환합니다 (예 : Left\e[D). 쉘은 제어 순서를 명령으로 변환합니다 (예 : \e[Dbackward-char).
  • 쉘은 라인 편집, 입력 히스토리 및 완료를 제공합니다.
    • 터미널은 자체 라인 편집, 히스토리 및 완료를 대신 제공 할 수 있으며 실행 준비가 완료된 경우에만 쉘로 라인을 보낼 수 있습니다. 이런 식으로 작동하는 유일한 공통 터미널 M-x shell은 Emacs입니다.
  • 출력 : 쉘은 "디스플레이 foo", "포 그라운드 색상을 녹색으로 전환", "커서를 다음 행으로 이동"등과 같은 명령을 내 보냅니다. 터미널은이 명령에 따라 작동합니다.
  • 프롬프트는 순전히 쉘 개념입니다.
  • 쉘은 그것이 경로 재 지정되지 않는 한, 그것이 실행하는 명령의 출력을 보지 않습니다. 출력 기록 (스크롤 백)은 순전히 터미널 개념입니다.
  • 응용 프로그램 간 복사 붙여 넣기는 터미널에서 제공합니다 (보통 마우스 또는 Ctrl+ Shift+ V또는 Shift+ 와 같은 키 시퀀스를 사용하여 Insert). 셸에는 자체 내부 복사-붙여 넣기 메커니즘도있을 수 있습니다 (예 : Meta+ WCtrl+ Y).
  • 백그라운드에서 프로그램을 시작하고 관리하는 작업 제어 는 대부분 쉘에서 수행합니다. 그러나 Ctrl+ 와 같은 키 조합을 처리 C하여 포 그라운드 작업을 종료하고 Ctrl+ Z를 중단 하는 터미널입니다 .

50
오직 퀴즈 : 나는 두 종류의 tty가 커널에 의해 제공된다고 말하고 싶다. 내가 강조 할 차이점은 의사 tty는 하드웨어 tty (예 : 직렬 라인 및 내장 된 텍스트 모드 콘솔)의 한쪽 끝이 하드웨어에 연결되어 있고 다른 쪽 끝이 소프트웨어 (예 : 로그인 프로그램 및 / 또는 셸)에 연결되어 있다는 것입니다. 양쪽 끝은 소프트웨어에 연결되어 있습니다 (예 : 한쪽 끝은 터미널 에뮬레이터이고 다른 쪽 끝은 쉘).
Chris Johnsen

12
@phunehehe : 맞습니다. 운영 체제 설계에서 일반적으로 사용되는“쉘”과는 다른 의미입니다. 쉘은 커널의 외부입니다. 유닉스 용어가 아닙니다 : 유닉스 커널은 쉘이라고 부르는 구성 요소를 가지고 있지 않습니다.
Gilles

24
이것은 셸 은유에 대한 제 마음의 이미지입니다.
ændrük

12
리눅스에서는 "콘솔"의 또 다른 의미가 있습니다. 콘솔 (하나만 있음)은 printk충분한 우선 순위 가있는 곳 입니다 (예 : 커널 패닉). console=DEVICE,...커널 명령 행 (예 : console=ttyS0,115200첫 번째 직렬 포트의 경우 115,200bps) 을 전달 하여 설정됩니다 . 일반적으로 가상 터미널이 기본값이지만 커널을 컴파일 할 때 변경할 수 있습니다.
derobert

19
“… 터미널… 포 그라운드 작업을 종료하기 위해 Ctrl + C와 일시 중단을 위해 Ctrl + Z와 같은 키 조합을 처리합니다. . 기본적으로 tty 장치는 제어 문자를 쉘 (및 기타 프로세스)로 전송 된 신호로 변환합니다.
Chris 페이지

194

단말기콘솔은 사용자가 호스트와 상호 작용할 수있는 하드웨어를 사용하는 부분이다. 기본적으로 텍스트 화면과 연결된 키보드.
오늘날 거의 모든 터미널과 콘솔은 "가상"을 나타냅니다.

터미널을 나타내는 파일은 전통적으로 tty 파일 이라고 합니다. UNIX 시스템의 "/ dev"디렉토리를 보면 가상 콘솔 (예 : Linux의 tty1), 가상 터미널 (예 : pts / 0) 또는 물리적으로 연결된 하드웨어 (예 : ttyS0)에 연결된 많은 tty 파일이 있습니다. 호스트의 첫 번째 직렬 포트에 연결된 실제 직렬 터미널입니다 (있는 경우).

콘솔 하드웨어 물리적 접속 (또는 그 일부)는 호스트의 일부이어야한다. 시스템에서 특별한 역할을 수행합니다. 유지 보수를 위해 시스템에 액세스하는 주요 지점이며 일부 특수 작업은 콘솔에서만 수행 할 수 있습니다 (예 : 참조 single user mode). 단말기 , 그리고 일반적으로, 하드웨어의 원격 피스 캔.

마지막으로 제어 tty를 통해 사용자와 상호 작용하고 다른 프로그램 (예 : bash, csh, tcsh)을 시작하는 방법을 사용자에게 제공 하는 특수 프로그램입니다 .

단말기 에뮬레이터는 실제 단말기 (예 xterm이 그놈 단자, 전무)를 에뮬레이트하는 프로그램이다.

따라서 리눅스 시스템 (X11 아래)에서 "텍스트 창"을 살펴보면 가상 터미널에 연결된 터미널 에뮬레이터 ( tty 파일로 식별 됨) 가 을 실행합니다 .


2
모든 데스크탑 컴퓨터에는 시스템 콘솔이 있습니다 (2015 또는 포스터 2010에서는 중요하지 않음). 올바르게 언급했듯이 하드웨어입니다. 그러나“현재 거의 모든 콘솔은“가상”콘솔을 나타냅니다”라고 말하는 것은 거의 모순되며 분명히 좋지 않습니다.
Incnis Mrsi

1
"터미널 또는 콘솔은 사용자가 호스트와 상호 작용할 수있는 하드웨어입니다. 기본적으로 텍스트 화면과 연결된 키보드입니다." 구체적인 측면에서 멋진 설명
Webwoman

@andcoz- "텍스트 창"은 무슨 뜻입니까? 터미널 에뮬레이터가 가상 터미널이 아닙니까? ttyKDE Konsole과 같은 터미널 에뮬레이터에서 명령 을 실행하면 / dev / pts / 0이 출력됩니다.
동기 부여

1
@IncnisMrsi-데스크탑 컴퓨터가 콘솔이 아닙니까? 그렇지 않은 경우 시스템 콘솔이 있다는 것은 무엇을 의미합니까?
동기 부여

2
@Motivated /dev/pts/0는 커널에 의해 노출 된 프로그래밍 인터페이스에 대한 핸들러 인 tty 파일입니다. 이 핸들러를 통해 프로그램 (예 : 셸)은 터미널 (실제 또는 가상)과 상호 작용할 수 있습니다. 터미널 에뮬레이터는 터미널을 에뮬레이트하는 소프트웨어입니다. 에뮬레이터는 커널에게 프로그램이 자신과 상호 작용할 수 있도록 핸들러를 작성하도록 요청합니다 (참조 man openpty). 따라서 정보는 터미널 (에뮬레이터)에서 커널 tty 핸들러로, 프로그램으로 (또는 그 반대로) 흐릅니다. 프로그램과 터미널은 서로 직접 대화하지 않고 tty 파일 (핸들러)을 통해서만 대화합니다.
andcoz

48

짧은 설명 :

콘솔은 터미널입니다. 시스템에는 하나의 콘솔과 여러 개의 터미널이 있습니다. 콘솔은 일반적으로 예를 들어 여전히 부팅중인 컴퓨터를 관리하기위한 기본 인터페이스입니다.

터미널은 명령 행 프로그램의 입력 및 출력을 수신 및 송신 할 수있는 세션입니다. 콘솔은 특별한 경우입니다.

TTY는 본질적으로 의사 장치입니다. 커널 리소스라고하며 프로세스에서 특정 터미널에 액세스하는 데 사용됩니다. TTY는 직렬 포트와 같은 하드웨어에 연결되거나 가상 일 수 있습니다 (예 : 사용자가 네트워크를 통해 로그인 할 때 생성됨)

쉘은 프로그램을 제어하고 실행하는 데 사용되는 프로그램입니다. 종종 터미널을 통해 대화식으로 사용됩니다. Bash가 오늘날 가장 일반적으로 사용되는 셸 프로그램이 여러 개 있습니다. 특별한 순서가 아닌 다른 쉘에는 Bourne Shell, C-shell, Dash, Tsch, Ksh 및 점점 인기있는 zsh가 포함됩니다. 더 많은 것이 있습니다.

GUI가 있으면 터미널 프로그램을 사용하여 터미널 크기 조정이 가능한 멋진 테두리를 그리거나 스크롤 막대를 추가하고 텍스트 등을 포맷 할 수 있습니다. 이들은 종종 터미널 에뮬레이터라고하며 때로는 TAB 개념을 통해 여러 세션을 처리 할 수 ​​있습니다. 터미널 에뮬레이터는 종종 대화식으로 명령 줄에서 작업 할 수 있도록 셸을 시작합니다.


1
PTY는 의사 TTY입니다. TTY는 본질적으로 가상 (의사) 터미널 일 수는 없습니다.
Luciano

35

TTY (즉, T ELE TY pewriter가), 청각 장애 청각, 또는 어려운 사람들이 할 수있는 특별한 장치들이 문자 메시지를 입력 할 수 있도록하여, 사용을 통신 할 수있는 전화 연설을 장애인. 대화를하려면 대화의 양쪽 끝에 TTY가 필요합니다.
OR
TTY 는 문자 메시지를 입력하는 데 사용되는 터미널 입니다.


: 씨앗 즉 커널의 외부 보호 덮개 부분. 시스템의 중앙 또는 필수 부분에 대한
OR
프레임 워크 또는 외부 구조.
여기에 이미지 설명을 입력하십시오


콘솔 은 키보드와 모니터가 컴퓨터에 물리적으로 부착 된 것을 의미합니다.


28

이미 두 가지 훌륭한 답변이 있지만 "가상 터미널" 이라는 문구에 대한 정보를 추가하려고합니다 . 일반적으로, 이는 단말기의 외관 / 기능을 제공하는 것을 의미한다. 이자형. 넓은 의미 의 . 그러나 초기 리눅스 (1994-95)는 일부 개발자들에 의해 “가상 콘솔”(여러 관련없는 사용자 인터페이스)과 동의어로 사용 되었습니다. 이 사용법은 문서에서 지속됩니다. 서로 다른 두 용어는 tty1, tty2… 현재 (1996 년 이후)“가상 터미널”은 기반 터미널 에뮬레이터를 지칭 할 수도 있습니다 .

리눅스 vt(텍스트 모드 시스템 콘솔의 드라이버)는 커널의 첫 번째 조각이었다. 처음에는 메인 프레임에 연결하는 데 사용되었으며 이런 의미에서 "가상 터미널"이므로 이름입니다. 가상 콘솔을 제어하는 코드 에 있습니다vt.c 뿐만 아니라. Linux 커널 엔지니어는 "콘솔"이라는 단어를 일관되게 사용하여 tty1, tty2…를 나타내며 "vc_"접두사를 사용했습니다. 예를 들어 vc_allocate기능이 있습니다. 한편, 같은 사용자 공간 도구의 개발 kbdconsole-tools사용 "가상 콘솔"(VC)과 상호 교환 "가상 터미널"(VT). Ī̲ 님이 Andries E. Brouwer 님 에게 연락했습니다초기 개발자 (1994–95)가 사용한 용어를 명확하게 해달라고 요청했습니다. Andries는 친절하게 답변을 제공했습니다. 그는 VT와 VC는 동의어이며 "보이지 않는"약어라고 말합니다. -> 일반적으로 가상 콘솔은 가상 터미널이지만 대화는 사실이 아닙니다. 가상 콘솔이 아닌 "가상 터미널"은 실제로 의사 터미널입니다 (Andries가 말했듯이 VT는 아닙니다 ). 커널이 콘솔 응용 프로그램에 터미널 기능을 제공하는 가상 콘솔과 달리 의사 터미널 은 PTY“장치”를 사용하여 콘솔 응용 프로그램과 사용자 공간에서 실행되는 터미널 제작 프로그램 간의 통신을 정렬합니다 . X 기반 터미널 에뮬레이터와sshd각 로그인 세션에 의사 의사를 할당합니다. 의사는“콘솔”이라고 부르지 않을 수도 있습니다. 실수입니다.


14
  • 터미널 = 출력용 디스플레이와 쉘 세션에 입력하기위한 키보드를 제공하는 인터페이스입니다.

  • Shell = 문자열로 입력 된 명령을 실행하는 인터프리터

  • 콘솔 : 실제로 사용하는 두 가지 유형의 콘솔

    • 물리적 콘솔 = 시스템과 상호 작용하는 데 사용되는 하드웨어 디스플레이 및 키보드

    • 가상 콘솔 = 각각 독립적 인 로그인 세션을 지원할 수있는 여러 논리 콘솔 중 하나입니다.

  • tty (텔레 타입 즉 터미널). = 터미널은 기본적으로 입력 및 출력 메시지에 텍스트를 사용하는 사용자 인터페이스 장치입니다.


tty 란 무엇입니까? -그렇지 않으면, 당신의 대답은 내가 읽은 유일한 것입니다
loxaxs

8

역사 속으로 뛰어 들어야합니다.

종이와 키보드가있는 타자기와 같은 장치가있었습니다. 그것들은 텔레타이프 ( "원격"은 "원격"을 의미하기 때문에 "원격 타입"을 의미 함) 또는 짧게 tty 라고 불렸다 . 70 년대에 그들은 유리 ttys 라고 불리는 CRT 모니터를 가진 장치들에 의해 폐기되었습니다 .

모든 컴퓨터는 상태 및 오류를보고하고 명령을 수락 할 수있는 방법이 필요합니다. 거의 항상 컴퓨터에 직접 연결된 콘솔 을 통해 수행 됩니다. 따라서 콘솔에 대한 두 가지 의미 가 있습니다. 상태를보고하는 데 사용되는 것과 직접 연결된 것입니다.

UNIX는 대화식 시스템입니다. 여러 사용자가이 시스템에 연결하여 응용 프로그램을 시작할 수 있습니다. 첫 번째 컴퓨터는이를 위해 텔레타이프 ( tty )를 사용했습니다. 각 사용자는 텔레타이프를 직렬 회선 연결로 컴퓨터에 연결했습니다. 이러한 텔레타이프를 터미널 이라고 합니다. 유닉스는 또한 "터미널 뒤에 앉아있는 사용자"를 처리 할 수있는 특별한 서브 시스템을 가지고 있는데,이 터미널은 텔레타이프이기 때문에 tty 라고도한다 . 각 프로세스는 유닉스에서 tty에 연결될 수 있습니다. 그것은 사용자가 터미널 근처에 앉아 있다는 것을 의미합니다. 자세한 내용은 http://www.linusakesson.net/programming/tty/ 를 참조 하십시오 .

커널에게 응용 프로그램을 실행하도록 지시하는 방법이 필요합니다. (sh, bash, csh, ksh 등)이 사용됩니다. shelltty 에서 실행되고 사용자의 명령을 수락하고 커널에게 일부 앱을 실행하도록 요청합니다.

그러나 터미널이 항상 물리적으로 기계에 연결되는 것은 아닙니다. 사용자로부터 키 입력을 받아들이고 어딘가에 키 터미널을 "모방"하는 응용 프로그램이있을 수 있습니다 (xterm 및 ssh가 좋은 예입니다). 커널에는 pseudo terminal 이라는 API 가 있습니다. 따라서 tty 는 실제 터미널 대신 일부 응용 프로그램에 실제로 연결될 수 있습니다. Xterm은 X11을 사용하여 텍스트를 표시하고 ssh는 네트워크 연결을 사용합니다.

IBM PC에는 키보드 및 비디오 카드가 있습니다 ( 때로는 콘솔 이라고도 함). 리눅스는 다른 일을 할 수 있습니다 :

  • "오류 및 상태를보고하는 엔진"으로 사용하십시오 : Linux 콘솔. console = / dev / ttyS0을 커널에 전달하면 COM1에 연결된 것을 콘솔로 사용하고 그렇지 않으면 PC 콘솔을 사용합니다.
  • 가상 터미널 (vty) 이라고하는 터미널을 에뮬레이션하는 데 사용하십시오 .

또한 콘솔에서 터미널 에뮬레이션을 중지하고 일부 앱에 제공 할 수 있습니다. 앱이 비디오 모드를 전환하여 독점적으로 사용할 수 있습니다 (X11 또는 svgalib가이를 수행 할 수 있음).

여기 현대적인 의미가 있습니다.

  • 터미널 : 실제 사용자가 뒤에 앉아있는 것. 물리적 터미널 (희귀) 또는 의사 터미널 (xterm, ssh) 또는 가상 터미널 (Linux의 경우 vty)
  • shell : 사용자가 시스템과 상호 작용하는 데 도움이되는 응용 프로그램 (bash, tcsh 등)
  • tty : 터미널을 지원하기위한 터미널 또는 커널 서브 시스템.
  • 콘솔 : 상태 및 오류가보고 된 것 ( /dev/console) 또는 컴퓨터에 연결된 물리적 키보드 및 비디오 디스플레이.

7

여기에 짧은 대답이 있습니다-

커널 -실제 하드웨어와 직접 통신하는 최신 운영 체제의 가장 안쪽 부분입니다.

-실제 커널을 둘러싼 래퍼. 명령을 실행할 때마다 실제로 쉘과 대화하여 적절한 커널 명령을 호출합니다. 이 외에도 쉘은 명령, 파일 이름 짧은 손, 파이핑 명령 등을하면서 적절한 프로그램을 찾는 것과 같은 다른 작업을 수행 할 수 있습니다.

터미널 -초기 컴퓨팅 시대에는 컴퓨터 (메인 프레임)가 거대했습니다. 따라서 단일 처리 장치를 가지고 여러 곳에서 쉽게 연결할 수있었습니다. 터미널은 키보드와 출력 장치가 메인 프레임에 연결된 실제 하드웨어입니다.

콘솔 -OS 관리를 위해 메인 프레임에 직접 연결된 특수 유형의 터미널입니다.

청각 장애 -과 메인 프레임에서 데이터를 송수신하는 데 사용 텔레타이프. 비디오 터미널을 사용하기 전에 사용되었습니다. 그러나 일반적으로 여전히 tty로 명명되었습니다. 심지어 coommandstty

자세한 답변은 터미널, 콘솔, 셸, 커널, 명령-컴퓨터의 다른 부분입니다.


고마워하지만 기본적으로 터미널이 존재한다면 왜 alt + f-1 / 6으로 액세스 할 수있는 개인용 컴퓨터 용 우분투 시스템에도 여전히 존재합니까? 그래픽 시스템 사용없이 액세스 할 수 있다는 사실보다 유틸리티를 이해할 수 없습니다. 내가 잘 이해
했다면

1
@Webwoman- 콘솔 로그인을 root통해서 sudo또는 콘솔 로그인을 통해서만 계정에 액세스하도록 시스템을 구성했습니다 . 콘솔에 액세스 할 수있는 사람은 반드시 통신하는 컴퓨터에 물리적으로 액세스 할 수 있으므로 콘솔에는 특권이 부여됩니다. 그들은 또한 최후의 접근 방법입니다. OS가 부분적으로 끊어진 상태 인 경우 (이더넷 드라이버가 끊어진 것처럼) 여전히 콘솔에 액세스 할 수 있습니다. 그것은 항상 사용할 수 있어야 하나의 휴먼 인터페이스 장치이다 상관없이 어떤 상태 시스템에 없습니다.
갖가지 잡다한

"콘솔은 종종 액세스 권한이있는 사람이 통신하는 컴퓨터에 물리적으로 액세스 할 수 있기 때문에 콘솔에 특권이 부여됩니다."
Webwoman

@Webwoman-아니, 콘솔. TTY는 종종 컴퓨터에 직접 연결되지 않습니다. 그리고 콘솔은 전통적인 의미에서 종종 TTY가 아닙니다. 80 년대 후반에 MN에 갔을 때 임의의 TTY를 임의의 컴퓨터에 연결하기 위해 인터넷 프로토콜 (일명 IP)을 실행하지 않는 캠퍼스 전체의 특수 네트워크가있었습니다. IBM 메인 프레임도 비슷한 일을하고 있으며 IBM이 SNA를 만든 가장 큰 이유 중 하나였습니다. 그리고 일반적인 PC는 텍스트 만 보여줄 때도 여러면에서 TTY와 매우 다르므로 PC 콘솔은 실제로 TTY가 아닙니다.
전능 한

@Webwoman-콘솔의 정의 기능은 운영 체제를 실행하는 하드웨어에 직접 연결되어 있다는 것입니다. 이 아이디어는 현대의 '가상 머신'에서는 다소 흐려 지지만 기본 아이디어입니다.
전능 한

6

받아 들여진 대답과 TTY demystified 기사 외에도이 두 기사를 읽는 것이 정말 좋습니다 .

이것은 NetBSD를 기반으로합니다.

유닉스 시대에 컴퓨터 시스템은 메인 프레임, 메모리, 대용량 저장 장치 및 컴퓨팅 장치가 있으며 사용자 또는 운영자가 시작한 프로세스를 실행하는 깜박이는 조명 상자로 구성되었습니다. 하드웨어가 매우 비싸기 때문에 시스템은 진정한 다중 사용자 시스템으로 사용되었으며 많은 사람들이 동시에 시스템과 상호 작용합니다. 오늘날의 유닉스 워크 스테이션과 달리 일반적으로 없었던 것은 고정 모니터와 키보드였습니다. 대신 기계에 명령을 내리고 출력을 검색하는 것은 텔레 타이 퍼를 먼저 사용하고 나중에 CRT (cathode ray tube) 터미널을 사용하여 직렬 회선을 통해 수행되었습니다. Teletypers-Unix의 "ttys"는 직렬 회선을 통해 누른 키를 호스트로 보내는 전자식 타자기입니다.

이것은 Linux를 기반으로합니다.

터미널은 일반 파일, 파이프 및 소켓으로 얻을 수있는 것 이상의 향상된 입력 / 출력 기능을 제공하는 장치입니다. 이 기능은 사람이 컴퓨터와 쉽게 상호 작용할 수 있도록 설계되었으며 서로 대화하려는 프로그램에는 쓸모가 없습니다.


1

이것에 균열을 보자 ... 나는 유닉스와 리눅스를 거의 동의어로 사용할 것이다. 내가 리눅스의 존재 이전의 역사적인 것을 언급한다면, 나는 보통 "Unix"라고 쓸 것이고, 최근의 것, 또는 리눅스의 유닉스 특유의 것에 대해 이야기한다면, 나는 보통 "Linux를 쓸 것이다. ".

껍질

목록에서 다른 것들과 겹치지 않는 개별 개념 인 유일한 것은 '쉘'입니다. 쉘은 사용자와 의사 소통하고 운영 체제 운영을 수행하기위한 프로그램입니다.

가장 일반적인 쉘은 사용자에게 일종의 프롬프트를 보내고 텍스트 명령을 입력 할 때까지 기다린 다음 해당 명령을 수행하는 '명령 줄'이라는 기술을 사용합니다. 그러나 메뉴 기반 쉘, 심지어 Windows 파일 탐색기와 같은 그래픽 쉘도 있습니다.하지만 자존심있는 Unix 사용자는 그러한 것을 '쉘'이라고 부를 수는 없습니다.

유닉스에서 누군가가 무언가를 '쉘'이라고 부른다면, 방금 설명한 바와 같이 거의 확실하게 어떤 형태의 명령 행 인터페이스를 의미합니다. 그리고 유닉스 세계에서 내가 더 설명하는 tty 모델을 사용하여 사용자와 통신하지 않으면 '쉘'이라고 말하는 것이 매우 이상합니다.

TTY

이것은 몇 가지 다른 종류의 것들을 나타낼 수 있기 때문에 혼란스러운 것입니다.

리눅스에는 'tty'라는 장치가 있습니다. 이 장치는 사용자이거나 다른 방법으로 사용자로부터 입력을받는 것과 양방향 통신에 사용될 것으로 예상되는 추상 장치입니다. 때로는 해당 추상 장치가 실제 장치와 직접 일치 할 수 있습니다. 때로는 누군가에게 대화가 나타나고 사용자가 입력 할 수있는 창이있는 프로그램 일 수 있습니다.

그러나이 추상 장치가 존재하고 이것이 'tty'라고 불리는 이유는 'tty'가 'teletype'의 줄임말인데, 이는 키보드와 결합 된 종이에 인쇄 된 프린터가있는 실제 물리적 장치이기 때문입니다. 추상적 'tty'장치가 사용하는 프로그램에 제시하는 모델은 기본적으로 상대방에 텔레타이프가 있다는 것입니다. 문자를 보내면 해당 문자가 텔레타이프에 나타납니다. 문자를 읽을 때 해당 문자는 키보드에 입력 된 키를 나타냅니다.

오래된 종이 프린터 기반 tty는 비디오 tty로 빠르게 대체되었습니다. 물론, 롤 용지는 없습니다. 그리고 실제로 화면의 모든 문자를 덮어 쓸 수 있습니다. 그러나 프로그램에 일종의 추상적 인 '스크린'인터페이스를 제공하는 대신 프로그램은 다양한 작업을 수행하는 이스케이프 시퀀스라는 특수 문자 스트림을 대신 전송해야합니다. 일반적으로 화면 주위를 이동할 수있는 '커서'라는 추상적 인 요소가 있으며 전송 된 모든 문자는 커서에있는 모든 문자를 대체하고 커서는 한 문자 이상 이동합니다. 이스케이프 시퀀스로 인쇄하려는 문자의 색상을 변경할 수도 있습니다.

이 모델을 따르지 않는 'glass ttys'가 있으며 결과적으로 Unix 세계에서 제대로 처리되지 않습니다. IBM 3270 비디오 터미널 제품군은이 범주에 속합니다.

리눅스 / 유닉스 사람들이 일반적으로 '쉘 윈도우'라고 부르는 것은 그래픽 사용자 인터페이스를 사용하여 유리 tty를 에뮬레이션하는 것입니다. 내부적으로 쉘 윈도우 내부에서 실행되는 프로그램은 가상 tty 장치와 통신하는 경우가 있지만 가상 tty 장치는 의사 tty 또는 유사 터미널 (일명 pty)이라고도합니다.

단말기

터미널은 컴퓨터와 사람이 인터페이스해야하는 장소입니다. 프로그램이 기능을 사용하여이를 에뮬레이트 할 수 있더라도 터미널은 완전히 그래픽이어서 tty 모델을 따르지 않을 수 있습니다. 모든 실제 물리적 tty (유리 또는 기타)는 터미널입니다.

콘솔

콘솔은 일반적으로 운영 체제가 실행되는 하드웨어에 직접적인 보안 방식으로 연결되는 특수한 종류의 터미널입니다.

Linux에서 콘솔은 작은 방식으로 가상화되므로 특별한 키 입력을 사용하여 가상 콘솔간에 전환 할 수 있습니다. 그러나이 가상화는 커널의 소프트웨어에 의해 실제 하드웨어로 수행됩니다.

USB 포트와 같은 직렬 포트를 통해 컴퓨터에 연결된 콘솔 인 '직렬 콘솔'을 통해 Linux를 사용하는 방법이 있습니다. 상당히 엄격한 방식으로 오래된 텔레타이프 모델을 따릅니다.

다시 말하지만이 콘솔은 누군가가 연결할 수있는 일종의 네트워크를 통하지 않고 컴퓨터에 직접 물리적으로 연결되어 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.