GETTYTAB(5)

명칭
gettytab - 단말 설정 데이타베이스

서식
gettytab

해설
gettytab 파일은 termcap(5) 데이타베이스를 단순화 한 버젼으로, 단말 회선을 기술하는데 이용됩니다. 모두에 기동되는 단말 로그인 프로세스 getty(8) (은)는 기동될 때마다 gettytab 파일에 액세스 하므로, 비교적 간단하게 단말의 특성을 재설정할 수가 있습니다. 데이타베이스의 각 엔트리는, 각각 1개의 단말 클래스를 기술하는데 이용됩니다.

디폴트의 단말 클래스 default 하지만 존재해, 다른 모든 클래스에 대한 글로벌인 기본값을 기술하는데 이용됩니다. (바꿔 말하면, 우선, default 엔트리를 읽어들여, 그 후로, 필요한 클래스의 엔트리를 읽어들여, 디폴트의 설정을 클래스 고유의 설정으로 덧쓰기합니다. )

케이파비리티
파일 레이아웃의 해설에 대해서는, termcap(5) (을)를 참조해 주세요. 이하의 디폴트 란은, 사용하는 단말용의 테이블에 값이 없고, 특별한 default 테이블에도 값이 없는 경우에 이용되는 값입니다.
명칭형 디폴트 해설
ac | 캐릭터 라인 | unused | 모뎀 응답을 위한 상정 캐릭터 라인-응답 chat script
al | 캐릭터 라인 | unused | prompt를 내지 않고 자동 로그인하는 유저
ap | bool | 가짜 단말은 어느 패리티에서도 받아들인다
bk | 캐릭터 라인 | 0377 | 대용의 줄 끝 캐릭터 (입력 브레이크)
c0 | 수치 | unused | 메세지 서두를 위한 tty 제어 플래그군
c1 | 수치 | unused | 로그인명 읽을 유익의 tty 제어 플래그군
c2 | 수치 | unused | 단말을 떠날 때의 제어 플래그군
ce | bool | 가짜 | crt 캐릭터 소거 알고리즘을 이용한다
ck | bool | 가짜 | crt 행 삭제 알고리즘을 이용한다
cl | 캐릭터 라인 | NULL |
화면 삭제 순차 순서
co | bool | 가짜 콘솔 -
‘\n’ (을)를 로그인 prompt의 뒤에 추가한다
ct | 수치 | 10 | ac/ic 스크립트를 위한 채팅 타임 아웃
dc | 수치 | 0 | 채팅 디버그용 비트 마스크
de | 수치 | 0 | 이 초수만큼 기다려, 최초의 prompt를 쓰기 전에 입력을 플래시 한다
df | 캐릭터 라인 | %+ | 배너 메세지중의 %d 로 사용하는 strftime(3) 서식
ds | 캐릭터 라인 | ‘^Y’ |
지연 된 중지 캐릭터
dx | bool | 가짜 |
DECCTLQ (을)를 세트 한다
ec | bool | 가짜 | echo 를 남긴다
OFF
ep | bool | 가짜 단말은 짝수 패리티를 이용한다
er | 캐릭터 라인 | ‘^?’ |
소거 캐릭터
et | 캐릭터 라인 | ‘^D’ |
텍스트의 끝 (EOF) 캐릭터
ev | 캐릭터 라인 | NULL |
환경 변수의 초기설정
f0 | 수치 | unused | 메세지 서두를 위한 tty 모드 플래그군
f1 | 수치 | unused | 로그인명 읽을 유익의 tty 모드 플래그군
f2 | 수치 | unused | 단말을 떠날 때의 tty 모드 플래그군
fl | 캐릭터 라인 | ‘^O’ |
출력 플래시 캐릭터
hc | bool | 가짜 |
마지막 클로우즈 때에 회선을 행업 시키지 않는다
he | 캐릭터 라인 | NULL |
호스트명 편집 캐릭터 라인
hn | 캐릭터 라인 | hostname | 호스트명
ht | bool | 가짜 단말에 진짜의 탭이 실장되고 있다
hw | bool | 가짜 | cts/rts 에 의한 하드웨어 플로우 콘트롤을 실시한다
i0 | 수치 | unused | 메세지 서두를 위한 tty 입력 플래그군
i1 | 수치 | unused | 로그인명 읽을 유익의 tty 입력 플래그군
i2 | 수치 | unused | 단말을 떠날 때의 tty 입력 플래그군
ic | 캐릭터 라인 | unused | 모뎀 초기화를 위한, 상정 입력-출력 chat script
if | 캐릭터 라인 | unused | prompt의 전에, /etc/issue 와 같이 이름으로 지정한 파일을 표시한다
ig | bool | 가짜 로그인명에 포함되는 가베지 캐릭터를 무시한다
im | 캐릭터 라인 | NULL |
모두의 (배너) 메세지
in | 캐릭터 라인 | ‘^C’ |
세치기 캐릭터
is | 수치 | unused | 입력 스피드
kl | 캐릭터 라인 | ‘^U’ |
행 소거 캐릭터
l0 | 수치 | unused | 메세지 서두를 위한 tty 로컬 플래그군
l1 | 수치 | unused | 로그인명 읽을 유익의 tty 로컬 플래그군
l2 | 수치 | unused | 단말을 떠날 때의 tty 로컬 플래그군
lm | 캐릭터 라인 | login: | 로그인 prompt
ln | 캐릭터 라인 | ‘^V’ |
다음의 캐릭터가 리터럴치인 것을 나타내는 캐릭터
lo | 캐릭터 라인 | /usr/bin/login |
이름을 얻었을 때에 실행하는 프로그램
mb | bool | 가짜 캐리어에 근거한 flow control를 실시한다
nc | bool | 가짜 단말은 캐리어를 서포트하지 않는다 (clocal 를 세트)
nl | bool | 가짜 단말에는 개행 캐릭터가 있다 (혹은, 있을 것이다)
np | bool | 가짜 단말은 패리티를 이용하지 않는다 (즉 8 비트 캐릭터)
nx | 캐릭터 라인 | default | (속도의 자동 선택을 위한) 다음의 테이블
o0 | 수치 | unused | 메세지 서두를 위한 tty 출력 플래그군
o1 | 수치 | unused | 로그인명 읽을 유익의 tty 출력 플래그군
o2 | 수치 | unused | 단말을 떠날 때의 tty 출력 플래그군
op | bool | 가짜 단말은 홀수 패리티를 이용한다
os | 수치 | unused | 출력 스피드
pc | 캐릭터 라인 | ‘\0’ |
패드 캐릭터
pe | bool | 가짜 프린터의 (하드 카피) 캐릭터 소거 알고리즘을 이용한다
pf | 수치 | 0 | 최초의 prompt와
계속하는 플래시의 사이의 지연 (초수)
pp | 캐릭터 라인 | unused | PPP 인증 프로그램
ps | bool | 가짜 회선은
MICOM 포트 실렉터에 접속되고 있다
qu | 캐릭터 라인 | ‘^\’ |
종료 캐릭터
rp | 캐릭터 라인 | ‘^R’ |
행의 재타입 캐릭터
rt | 수치 | unused | ac 사용시의 ring 타임 아웃
rw | bool | 가짜 입력에 raw 모드를
이용하지 않고 , cbreak 를 이용한다
sp | 수치 | unused | (입력 및 출력의) 회선 속도
su | 캐릭터 라인 | ‘^Z’ |
중지 캐릭터
tc | 캐릭터 라인 | none | 테이블의 계속
to | 수치 | 0 | 타임 아웃 (초수)
tt | 캐릭터 라인 | NULL |
단말의 형태 (환경 변수용)
ub | bool | 가짜 | (prompt등의) 버퍼링 하지 않는 출력을 실시한다
we | 캐릭터 라인 | ‘^W’ |
단어 소거 캐릭터
xc | bool | 가짜 제어 캐릭터를
‘^X’ 의 형태로 출력 하지 않는다
xf | 캐릭터 라인 | ‘^S’ | XOFF
(출력 스톱) 캐릭터
xn | 캐릭터 라인 | ‘^Q’ | XON
(출력 개시) 캐릭터
Lo | 캐릭터 라인 | C | 배너 메세지에서의 %d 를 위해서(때문에) 이용하는 로케일

이하의 케이파비리티는 이미 getty(8) 에 의해 서포트되고 있지 않습니다.
bd | 수치 | 0 | 백 스페이스에서의 지연
cb | bool | 가짜 | crt 백 스페이스 모드를 이용한다
cd | 수치 | 0 | 복귀 (carriage return)에서의 지연
fd | 수치 | 0 | form feed (수직 이동)에서의 지연
lc | bool | 가짜 단말에서는 소문자를 사용할 수 있다
nd | 수치 | 0 | 개행 (라인 피드)에서의 지연
uc | bool | 가짜 단말에서는 대문자 밖에 사용할 수 없다

회선 속도가 지정되어 있지 않은 경우, getty 가 기동되었을 때로 설정되어 있는 속도는 변경되지 않습니다. 입력 속도 또는 출력 속도를 지정했을 때는, 지정한 방향의 회선 속도만이 덧쓰기 갱신됩니다.

메세지의 출력시, 로그인명의 입력시, getty 가 처리를 끝마쳐 단말을 손놓을 때에 이용한다 단말 모드의 값은 불형 플래그의 지정에 근거해 결정됩니다. 만약 이 결정이 적절하지 않은 것이 밝혀졌을 경우, 이것들 3개의 어떤 것인가 (혹은 모두)의 값은, 수치 지정 c0, c1, c2, i0, i1, i2, l0, l1, l2, o0, o1, o2 의 어느쪽이든으로 덧쓰기됩니다. 이러한 수치 지정에서는, 플래그의 값 (통상은, 0 을 머리에 붙인 8 진수) 그것을 지정할 수가 있습니다. 이러한 플래그는 termio 의 c_cflag, c_iflag, c_lflag, 및 c_oflag 의 각 필드에 각각 대응합니다. 그러한 세트의 각각은, 완전하게 지정하지 않으면 유효하게 되지 않습니다. f0, f1, 및 f2 (은)는 TTY 하부조직의 구판의 실장에 대한 후방 호환성을 의도한 것입니다. 이러한 플래그에는, sgttyb 의 sg_flags 필드의 (32 비트) 값의 하위 16 비트가 포함됩니다. 또, 상위 16 비트는 로컬 모드를 거두는 워드를 나타냅니다.

만약 getty(8) 하지만 널 캐릭터 (회선 브레이크를 나타내는 것이라고 보여집니다)를 받았을 경우, 프로그램은 nx 엔트리에 나타난 테이블을 이용해 재시 동요합니다. 만약 이 엔트리가 없으면, 지금까지 이용하고 있던 테이블을 다시 이용합니다.

지연은 밀리 세컨드 단위로 지정해, tty 드라이버가 사용 가능한 지연의 쳐 가장 가까운 것이 이용됩니다. 보다 큰 확실성이 필요한 경우는, 0 에서 1, 2, 3 까지의 값의 지연은 드라이버의 특별한 지연 알고리즘으로부터 선택하는 것이라고 해석됩니다.

cl 화면 소거 캐릭터 라인에는, 그 전에 필요한 지연 시간을 밀리 세컨드 단위의 (10 진수) 수치로 (termcap 풍으로) 쓸 수가 있습니다. 이 지연은 패딩 캐릭터 pc (을)를 반복해 이용하는 것으로 시뮬레이트 됩니다.

초기화 메세지 im 로그인 메세지 lm 및 초기화 파일 if (은)는, 이하의 캐릭터의 줄을 어떤 것에서도 포함할 수가 있습니다. 이것들은 getty(8) 하지만 실행되고 있는 환경으로부터 얻은 정보에 전개됩니다.

%d  현재의 일자와 시간을, Lo (와)과 df 에 따라 정형한 것.

%h  머신의 호스트명. 통상은 gethostname(3) 에 의해 시스템으로부터 얻습니다만, 테이블의 hn 엔트리로 지정해, 이 값을 고쳐 쓸 수가 있습니다. 어느 쪽의 경우에서도, 이것은 he 캐릭터 라인을 이용해 편집할 수가 있습니다. he 캐릭터 라인안에 있는 1 개의 '@'는 실제의 호스트명으로부터 최종적인 호스트명에 1 캐릭터의 카피를 일으킵니다. he 캐릭터 라인중의 '#'는 실제의 호스트명의 다음의 1 캐릭터를 스킵 시킵니다. '@'에서도 '#'도 아닌 각 캐릭터는 최종적인 호스트명에 카피됩니다. 여분의 '@'와 '#'는 무시됩니다.

%t  tty 의 이름.

%m, %r, %s, %v
    각각, uname(3) 하지만 돌려준다 머신의 형태, operating system의 릴리스, operating system의 이름, 그리고 커널의 버젼입니다.

%%  1 개의 “%” 캐릭터.

getty 가 로그인 프로세스 (통상은 “/usr/bin/login” 그렇지만, lo 캐릭터 라인으로 지정되어 있으면 그것)을 실행할 때, 이 프로세스의 환경에는 tt 캐릭터 라인 (가 존재하면)으로 지정했다 단말의 형태가 설정됩니다. ev 캐릭터 라인은, 프로세스의 환경에 데이터를 추가하기 위해서 사용할 수가 있습니다. 이것은 콤마로 단락지어진 캐릭터 라인으로부터 되어, 각각은, name=value 그렇다고 하는 형식이 되어 있으면(자) 가정됩니다.

만약 타임 아웃으로서 to 에 0 이외의 값을 지정했을 경우, 지정된 초수경과한 후에 종료합니다. 즉, getty 는 로그인명을 받아 제어를 login(1) 에 건네주는지, 또는 alarm 시그널을 받아 종료합니다. 이것은 통화중 회선을 행업 하기 위해서 유용합니다.

getty(8) (으)로부터의 출력은, op 인가 np 하지만 지정되었을 경우를 제외해, 짝수 패리티를 이용합니다. op 캐릭터 라인과 ap (을)를 함께 지정하면(자), 입력으로서는 패리티가 무엇으로 있어도 허가해, 출력으로서는 홀수 패리티를 생성합니다. 주의: 이것은, getty 가 실행되고 있을 때 마셔 적용되어 단말 드라이버의 제한에 의해 여기까지 완전한 실장을 할 수 없을지도 모릅니다. getty(8) 하 RAW 모드 때는 입력 캐릭터의 패리티 검사를 실시하지 않습니다.

만약 pp 캐릭터 라인이 지정되어 있어, PPP 링크 확립 순차 순서가 인식되면(자), getty 는 pp 옵션으로 지정되어 있는 프로그램을 기동합니다. 이것은 PPP 착신을 취급하기 위해서(때문에) 이용할 수가 있습니다.

getty (은)는 이하의 2개의 케이파비리티를 이용해 이용할 수 있는 chat script 기능을 제공합니다. 이것에 의해, 기본적인 인텔리전트 모뎀을 어느 정도 취급할 수 있도록(듯이) 합니다.

ic  모뎀을 초기화하는 chat script.
ac  콜에 대답하는 chat script.

chat script는, 수신을 상정한 캐릭터 라인/송신하는 캐릭터 라인의 대의 일렬로 정렬함 (으)로부터 됩니다. 채팅 캐릭터 라인이 시작될 때, getty (은)는 최초의 캐릭터 라인을 기다려, 그 캐릭터 라인을 찾아내면(자) 2 번째의 캐릭터 라인을 보냅니다. 이후도 이와 같이 처리를 진행시킵니다. 지정된 캐릭터 라인은 1 개 이상의 탭 혹은 스페이스에서 단락지어지고 있습니다. 캐릭터 라인에는 표준 ASCII 캐릭터와 특별한 「이스케이프」를 포함하는 것이 할 수 있습니다. 이스케이프는, backslash에 계속되어 1 캐릭터 이상의 캐릭터가 계속된 것으로, 그것은 이하와 같이 해석됩니다.

\a  벨 캐릭터.
\b  백 스페이스.
\n  개행.
\e  이스케이프.
\f  form feed.
\p  0.5초의 일시정지.
\r  복귀 캐릭터.
\S, \s
    공백 캐릭터.
\t  탭.
\xNN
    16 진수의 바이트치.
\0NNN
    8 진수의 바이트치.

‘\p’ 캐릭터 라인은 송신 캐릭터 라인에서만 유효해, 전의 캐릭터와 다음의 몬지를 보내는 동안에 0.5 초의 일시정지를 발생하는 것에 주의. 16 진수치는 최대로 16 진수 2 자리수로, 8 진수치는 최대로 8 진수 3 자리수입니다.

ic 채팅 순차 순서는 모뎀이나 거기에 유사한 디바이스를 초기화하는데 이용됩니다. 헤이즈 호환의 명령 세트를 가지는 모뎀용의 초기화 채팅 스크립트의 전형예는, 이하와 같은 것이지요.

    :ic="" ATE0Q0V1\r OK\r ATS0=0\r OK\r:

이 스크립트는 아무것도 기다리지 않고 (즉 항상 성공해), 모뎀이 올바른 모드 (명령 에코를 억제해, 응답을 돌려줄 때에 장황 모드로 돌려준다) 에 확실히 되는 것 같은 순차 순서를 보내, 그리고 자동 응답을 자릅니다. 종료하기 전에,"OK" 라고 하는 반응을 기다립니다. 이 초기화 순차 순서는, 모뎀의 응답을 체크해 모뎀이 올바르게 기능하고 있을까를 확인하기 위해서 이용됩니다. 초기화 스크립트가 완료하는데 실패했을 경우, getty (은)는 이것을 치명적인 상태이다고 봐, 그 결과적으로, syslogd(8) (을)를 이용해 로그를 남기고 나서 종료합니다.

같이 앤서 chat script는 (통상) "RING" 에 대해서 수동으로 전화에 응답하기 위해서 이용할 수가 있습니다. 앤서 스크립트를 지정해 기동했을 경우, getty (은)는 포트를 논브록킹모드로 오픈해, 그 이전의 여분의 입력을 모두 소거해, 포트에의 데이터를 기다립니다. 어떠한 데이터가 취득 가능하게 되자마자, 앤서 chat script가 개시해, 캐릭터 라인이 스캔 되어 앤서 chat script에 따라 응답합니다. 헤이즈 호환의 모뎀에서는, 스크립트는 통상 이하와 같은 느낌의 것이 되겠지요.

    :ac=RING\r ATA\r CONNECT:

이것은,"ATA" 명령에 의해 모뎀에 응답시켜, 계속되어 입력을 스캔 해 캐릭터 라인 "CONNECT" 를 찾습니다. 만약 ct 타임 아웃이 생기기 전에 이 캐릭터 라인을 받았을 경우, 통상의 로그인 순차 순서가 개시됩니다.

ct 케이파비리티는 모든 송신 캐릭터 라인 및 상정되는 입력 캐릭터 라인 에 적용되는 타임 아웃의 값을 지정합니다. 이 타임 아웃은 캐릭터 라인 대기를 실시하는 마다, 및 캐릭터 라인 송신을 실시할 때 마다 설정됩니다. 적어도 리모트와 로컬의 모뎀의 사이의 connection가 확립된다 의에 걸리는 시간 (통상 대략 10 초)만의 길이는 필요합니다.

대부분의 정황으로, connection가 검출된 후에 추가의 입력의 모든 것을 플래시 하고 싶다고 생각하는 것입니다만, 이 목적으로는 de 케이파비리티를 사용할 수가 있습니다. 이것은, connection가 확립된 다음에 단시간의 지연을 걸쳐 그 사이에 접속 데이터가 모두 모뎀에 의해 보내져 버리는 것과 같은 효과를 가집니다.

관련 항목
login(1), gethostname(3), uname(3), termcap(5), getty(8), telnetd(8)

버그
특수 캐릭터 (캐릭터 소거, 행 삭제 등)는 login(1) 에 의해 시스템의 디폴트에 재설정되어 버립니다. 항상, 로그인명으로서 타이프 친 '#'혹은 '^H'는 1 캐릭터 소거로서 다루어져'@'하행 소거로서 다루어집니다.

지연 기능은 열매 클락입니다. 전반적으로 유연성이 없다고 하는 문제는 접어두어, 지연 알고리즘의 몇개인가는 실장되고 있지 않습니다. 단말 드라이버가 정상적인 지연의 설정을 서포트하고 있을 필요가 있습니다.

he 케이파비리티는 전혀 지적이 아닙니다.

꺼림칙하다 termcap(5) 포맷보다, 좀 더 합리적인 물건을 선택해야 했습니다.

역사
gettytab 파일 포맷은 4.2BSD 그리고 등장했습니다.