less than 1 minute read

STDIN, STDOUT, STDERR

표준 스트림(standard stream)이라고 하며 POSIX 기반의 OS에서 기본적으로 제공하는 추상화된 입출력 장치를 의미합니다.

  • 표준입력(STDIN): 표준 입력 장치의 ID 는 숫자로는 0 이며 일반적으로는 키보드가 됩니다.
  • 표준출력(STDOUT): 출력을 위한 스트림으로 표준 출력 장치의 ID 는 1이며 일반적으로는 현재 쉘을 실행한 콘솔(console)이나 터미널(terminal)이 됩니다.
  • 표준에러(STDERR): 에러를 위한 스트림으로 표준 에러 장치의 ID 는 2이며 일반적으로는 표준 출력과 동일합니다.

역사적 배경

초기 컴퓨터는 매우 비쌌기때문에 사용할 수 있는 인원이 한정되어 있었다. 이후 다중프로그래밍 컨셉의 시분할(time sharing) 방식이 개발된 후로 dummy terminal 을 사용해서 메인프레임에 연결해서 사용했습니다.

리눅스도 유닉스 계열이므로 위와 같은 구조를 갖고 있으며 tty 는 pseudo-teletype multiplexor 로 SW 적으로 TeleTYpewriter(TTY) 를 에뮬레이션 해준다.

pts는 Pseudo TTY Slave의 약자이다. pty(pseudo tty)의 구성요소인 ptmx(port 개념, 커널 영역), ptm(master, 커널 영역), pts(slave, /dev/pts에 존재) 중의 하나인데 말 그대로 가짜 tty이다.

tty 는 현재 표준 입력과 연결된 터미널이 무엇인지 출력해 주는 명령어이기도 하다.

tty

/dev/pts/0

Leave a comment