나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2025-02-12 16:37:51

GNU Screen

<colcolor=#fff><bgcolor=#a32d2a> GNU Screen
파일:GNU head.svg
<colbgcolor=#a32d2a> 종류 터미널 멀티플렉서
최초 개발자 올리버 라우먼, 카르스텐 보르먼
개발 GNU
출시 1987년
언어 C 언어
플랫폼 UNIX 호환 운영체제
안정 버전 v5.0.0
라이선스 GPLv3
링크 파일:홈페이지 아이콘.svg Git
1. 개요2. 역사3. 기능
3.1. 세션3.2. 레이아웃
4. 기타5. 관련 문서

[clearfix]

1. 개요

파일:GNU Screen.jpg

GNU의 터미널 멀티플렉서(terminal multiplexer).

2. 역사

1987년, 당시 베를린 공과대학교 재학생이던 올리버 라우먼(Oliver Laumann)과 카르스텐 보르먼(Carsten Bormann)의 아이디어에서 출발했다.#

1990년 초반 최초 개발자인 라우먼은 개발 중이던 screen 코드의 유지보수 권한을 GNU 프로젝트로 이관했고, 이후 GNU의 기여를 받으며 스크롤 버퍼, 창 분할, 화면 공유 등 현재 screen의 대부분의 기능이 추가되었다.

3. 기능

3.1. 세션

screen의 가장 큰 특징이자 원래 개발 목적은 SSH와 같은 원격 접속(remote connection) 환경에서도 프로세스를 유지하는 것이다.# 가령 ssh로 서버에 접속해 무언가 오래 걸리고 중요한 계산 프로세스를 실행했다고 했을 때, 갑자기 정전이 되어 접속이 ssh 접속이 끊어진다면(reset by peer), 실행중이던 프로세스도 그대로 halt하게 된다. 또다른 예시로 원격 서버에 접속해 A 프로그램을 빌드하던 도중 B 파일의 백업을 진행해야 한다면 당장 진행중이면 A 빌드를 ^C로 중단하고 나갈 수밖에 없겠지만, 그렇게 되면 A 빌드는 처음부터 다시 시작해야 할 것이다.

가장 쉬운 해결 방법은 서버-클라이언트 형태의 모델을 만드는 것이다. 클라이언트가 명령을 내리고 연결을 끊어도 서버에서 계속 명령이 돌아가고 있다면 문제없다. 추가로 여러 클라이언트가 한 서버에 동시에 명령을 내릴 수도 있다. 이때 서버의 역할을 하는, 중단된 작업의 상태를 기억하고 매 연결마다 다시 재생(resume)하게 해 주는 논리적 진행을 세션이라고 하고, 이 세션에서 독자적으로 실행할 수 있는 각각의 상태를 윈도우(window)라고 한다.

3.2. 레이아웃

4. 기타

5. 관련 문서