용어집
TermcapTermcap(터미널 기능)은 Unix 계열 시스템에서 사용되는 소프트웨어 라이브러리 및 데이터베이스입니다.이를 통해 프로그램이 디스플레이 컴퓨터 단말기를 장치에 의존하지 않고 사용할 수 있게 되어 휴대용 텍스트 모드 응용 프로그램을 쓰는 과정이 크게 간소화됩니다.빌 조이는 1978년[1][2] 버클리 유닉스 운영체제용 최초의 termcap 라이브러리를 작성했다.그 이후로 대부분의 유닉스 및 유닉스 유사 환경, 심지어 OS-9에도 [3]이식되었다.보도에 따르면 Joy의 디자인은 초기 호환성이 없는 타임셰어링 [4][better source needed][dubious ]시스템의 터미널 데이터 저장소 설계에 영향을 받았다고 한다.
용어 상한 데이터베이스는 수백 개의 다른 표시 단자의 기능을 설명할 수 있습니다.이것에 의해, 단말의 타입에 관계없이, 프로그램에 문자 베이스의 디스플레이 출력이 가능하게 됩니다.vi나 emacs 등의 온스크린 텍스트 에디터는 termcap을 사용할 수 있는 프로그램의 예입니다.기타 프로그램은 [Termcap]카테고리에 표시됩니다.
데이터베이스 설명의 예는 다음과 같습니다.
- 디스플레이의 너비 열 수
- 커서를 임의의 위치로 이동하기 위해 전송할 문자열(행 및 열 번호 인코딩 방법 포함)
- 화면을 한 줄 또는 여러 줄 위로 스크롤하는 방법
- 이러한 스크롤 조작에 필요한 패딩의 양.
데이터 모델
Termcap 데이터베이스는 터미널에 대한 하나 이상의 설명으로 구성됩니다.
인덱스
각 설명에는 단말기의 표준 이름이 포함되어야 합니다.또, 단말기의 이름의 에일리어스를 1개 이상 포함할 수도 있습니다.표준 이름 또는 별칭은 라이브러리가 용어 캡 데이터베이스를 검색하는 데 사용되는 키입니다.
데이터 값
설명에는 일반적인 이름을 가진 기능이 하나 이상 포함되어 있습니다.기능에는 부울, 숫자 및 문자열이 있습니다.termcap 라이브러리에는 각 기능 이름에 대해 미리 결정된 유형이 없습니다.다음 구문에 따라 각 기능의 유형이 결정됩니다.
- 문자열 기능에는 기능 이름과 값 사이에 "="가 있습니다.
- 숫자 기능에는 기능 이름과 값 사이에 "#"이 있습니다.
- 부울 기능에는 관련된 값이 없습니다(지정된 경우 항상 true입니다).
termcap을 사용하는 응용 프로그램에서는 일반적으로 사용되는 기능에 대해 특정 유형을 예상하고 데이터베이스 내용이 가정된 유형과 일치할 때만 정상적으로 반환되는 라이브러리 호출을 사용하여 termcap 데이터베이스에서 기능 값을 가져옵니다.
계층
termcap description은 어떤 설명의 내용을 다른 설명에 포함시키거나 포함된 설명에서 기능을 억제하거나 기능을 덮어쓰거나 추가하는 방법으로 구성할 수 있습니다.어떤 스토리지 모델을 사용하든 termcap 라이브러리는 요청된 설명에서 터미널 설명을 구성합니다(요청 시점의 억제 또는 오버라이드 포함).
스토리지 모델
용어 캡 데이터는 텍스트로 저장되므로 쉽게 수정할 수 있습니다.termcap 라이브러리로 파일 또는 환경 변수에서 텍스트를 검색할 수 있습니다.
환경 변수
TERM 환경변수에는 단말기 유형 이름이 포함됩니다.
TERMCAP 환경변수는 termcap 데이터베이스를 포함할 수 있습니다.터미널 에뮬레이터가 셸 및 종속 프로그램에 단말기의 특성을 제공하기 위해 설정한 단일 용어 캡 설명을 저장하는 데 가장 많이 사용됩니다.
TERMPATH 환경변수는 새로운 termcap 구현에서 지원되며 termcap 파일의 검색 경로를 정의합니다.
플랫 파일
termcap 라이브러리의 원래 구현(가장 일반적인 구현)은 플랫 텍스트 파일에서 데이터를 가져옵니다.500kB와 같은 큰 termcap 파일 검색은 느릴 수 있습니다.퍼포먼스를 향상시키기 위해 리오더 등의 유틸리티를 사용하여 가장 자주 사용되는 엔트리를 파일 선두 부근에 배치합니다.
해시 데이터베이스
4.4BSD 기반 termcap 구현은 터미널 설명을 해시 데이터베이스에 저장합니다(예: 버클리 DB 버전 1.85).여기에는 정규 엔트리를 가리키는 에일리어스와 정규 엔트리의 두 가지 유형의 레코드가 저장됩니다.용어 캡 항목의 텍스트는 문자 그대로 저장됩니다.
제한 및 확장
원래 termcap 구현은 메모리를 거의 사용하지 않도록 설계되었습니다.
- 이름은 두 글자로 16비트로 되어 있다.
- 기능 이름은 두 문자입니다.
- 설명은 1023자로 제한됩니다.
- 정의와 함께 termcap 엔트리를 하나만 포함할 수 있으며, 그 끝에 있어야 합니다.
termcap 인터페이스의 새로운 실장에서는, 통상은 엔트리의 선두에 2 문자의 이름이 필요 없습니다.
모든 구현에서 기능 이름은 여전히 두 글자입니다.
단말기의 설명을 읽기 위해 사용되는 tgetent 함수는 데이터에 충분한 사이즈의 버퍼를 사용하며 1024자로 가정합니다.termcap 인터페이스의 새로운 실장은 고정 버퍼 대신 [5]늘 포인터를 허용하거나 NetBSD termcap의 [6]ZZ 기능을 통해 맞지 않는 데이터를 숨김으로써 이 제약을 완화할 수 있습니다.termfo 라이브러리 인터페이스도 termcap 인터페이스를 에뮬레이트하여 실제로는 고정 크기의 버퍼를 사용하지 않습니다.
termfo 라이브러리의 termcap 에뮬레이션에서는 위치를 제한하지 않고 다른 여러 엔트리를 포함할 수 있습니다.termcap 라이브러리의 다른 몇 가지 새로운 구현에서도 이 기능이 제공될 수 있습니다.다만,[7] 이 기능은 문서화되어 있지 않습니다.
사용되지 않는 기능
특별한 기능인 "Hz" 기능은 제어 시퀀스 인트로듀서로 [8][discuss]ASCII 칠데 문자('~')를 사용하는 불행한 특성을 가진 Hazeltine 1500 터미널을 지원하기 위해 특별히 정의되었습니다.이 단말기를 지원하려면 데이터베이스를 사용하는 코드가 특정 제어 시퀀스를 도입하기 위해 칠드를 사용하는 것을 알아야 할 뿐만 아니라 텍스트 내의 칠드가 단말기에 의해 제어 시퀀스의 시작으로 해석되기 때문에 표시되는 텍스트 내의 모든 칠드에 대해 다른 인쇄 가능한 문자를 대체해야 합니다.텍스트와 화면이 [9]흐트러지는 원인이 됩니다.또한 속성 마커(밑줄의 시작 및 끝 등) 자체가 [citation needed]화면의 공간을 차지했습니다.데이터베이스 소스 코드의 코멘트는 종종 이것을 "헤젤틴 뇌손상"[10]이라고 부릅니다.1970년대 [citation needed]후반에는 Hazeltine 1500이 널리 사용되는 단말기였기 때문에, 응용 프로그램에서 그 한계를 다룰 수 있는 것이 중요했습니다.
「 」를 참조해 주세요.
- ANSI 이스케이프 시퀀스, 다수의 시퀀스 통합 시도
- 컴퓨터 단말기
- 저주(프로그래밍 라이브러리)
- 용어집
- 터미널 에뮬레이터
레퍼런스
- ^ Peter H. Salus, "유닉스의 역사는 테크놀로지에 관한 것인 만큼 공동작업에 관한 것입니다.", Byte, 1994년 10월.
- ^ Kenneth C. R. C. Arnold와 Elan Amir, "화면 업데이트 및 커서 이동 최적화:라이브러리 패키지"
- ^ Joel Mathew Hegberg (November 1994). "Tackling Termcap, Part I". OS-9/OSK Answers!. Retrieved 26 April 2021.
- ^ Mark Crispin (7 Oct 1998). "Re: KL Console Commands". Newsgroup: alt.sys.pdp10.
- ^ GNU Termcap 라이브러리
- ^ NetBSD termcap 파일 형식
- ^ vi에서의 term cap에 대한 설명
- ^ – BSD 파일 형식 설명서
- ^ Stallman, Richard M. (1992). "The Termcap Library and Database, Second Edition". Gnu.org. Retrieved 17 May 2014.
- ^ "termcap.src". Apple Computer. Retrieved 17 May 2014.
외부 링크
- 현재 용어 상한 데이터
- Eric S의 Termcap/Termfo Resources 페이지. 레이먼드 웹사이트