터미널 에뮬레이터를 구현하는 경우 어떤 유형의 터미널이 지원됩니까? [폐쇄]

터미널 에뮬레이터를 구현하는 경우 어떤 유형의 터미널이 지원됩니까? [폐쇄]

VT100이 사실상의 표준이라고 들었습니다. 이는 VT100만 지원하면 내 터미널이 큰 문제 없이 기존 명령줄 응용 프로그램과 작동한다는 의미입니까? 그렇지 않다면 터미널이 실용적인지 어떻게 확인할 수 있습니까? 이 목표를 달성하는 데 도움이 될 수 있는 참고 자료가 있습니까?

답변1

토마스 디키가 과열되려고 합니다.

수년에 걸쳐 VT10x 터미널에 대해 순환하는 지하 정보를 무시하십시오. 대부분은 틀렸습니다. DEC VT100, VT101 및 VT102는 해당 문서를 읽어보면 이해할 수 있는 매우 구체적인 기능 세트를 구현합니다.

그건아니요그런데 이 용어를 실제 의미 vt100와 혼동하는 사람들은 무엇일까요 ? vt102보통 그들은 많은 일을 할 수 있는 터미널 에뮬레이션에 대해 이야기합니다.실제 VT10x보다 훨씬 낫습니다.더 적은. 예를 들어, 실제 DEC VT102에는 직렬 프린터가 연결되어 있고 이에 액세스하기 위한 제어 시퀀스가 ​​있습니다. 그것도 그랬어아니요사람들이 실수로 "vt102"라고 생각하는 최신 터미널 에뮬레이터와 실제 터미널에는 많은 제어 시퀀스가 ​​있습니다. 예를 들어 SGR 색상 변경 개념이 없습니다.

두 가지 기본 옵션이 있습니다.

  • termcap/terminfo 데이터베이스에 정의된 기존 터미널 유형과의 호환성을 구현합니다. 이렇게 하려면 모든 기존 터미널 유형에 대해 설명된 동작을 정확하게 복제하여 올바르게 수행해야 합니다. (nosh 도구 세트의 터미널 에뮬레이터는 Linux에서 터미널 유형을 에뮬레이션하여 이를 수행할 수 있습니다 . 확장 키 및 기능 키에 대한 터미널 유형의 독특하고 제한된 인코딩을 linux복제해야 합니다 .)linux
  • 사용자가 동작을 설계한 자신만의 터미널 유형을 구현한 다음 이를 termcap/terminfo 데이터베이스에 포함해야 합니다. 엄밀히 말하면 이것이 PuTTY 터미널 에뮬레이터가 수행하는 작업입니다. 올바른 terminfo 설명은 다음과 같습니다. putty,putty-256color, 또는putty-sco.

전자의 경우 표준이 무엇인지는 중요하지 않습니다. 아무리 비표준이더라도 설명된 동작을 복제해야 하기 때문입니다. 후자의 경우 사실상의 표준을 찾지 마십시오. 저것 좀 봐(이거실제표준 중 일부는 1976년부터 존재했습니다.

  • ECMA-48(1976년에 처음 발표되었으며 나중에 ISO/IEC 표준, ISO/IEC 6429로 채택됨)은 다음을 설명합니다.
    • C0 제어 코드,
    • C1 제어 코드(잘 알려지지 않았지만 탭 정지 설정/삭제 및 앞으로/뒤로 인덱싱과 같은 몇 가지 유용한 작업을 처리함)
    • 모든 C1 제어 코드에 대한 7비트 별칭(예: ESC [실제8비트 제어 문자 U+009B),
    • CSI에서 도입한 제어 시퀀스(표준에는 samizdat가 작성한 많은 제어 시퀀스 파서가 중단되는 범용 구문이 있음)
    • 그리고 다른 많은 것들.
  • ISO/IEC 2022에서는 7비트 문자 집합 간 전환을 설명합니다. 처음부터 UTF-8 기능을 구현하려는 경우 Markus Kuhn과 그의 발명가가 mosh알려 주듯이 ISO/IEC 2022를 완전히 무시하는 것이 가장 좋습니다.
  • ISO/IEC 8613-6(1989년 발행, 1994년 개정)은 팔레트에서 "인덱스 색상" 및 "직접 색상" RGB 선택을 포함하여 색상 SGR 제어 시퀀스에 대한 ECMA-48 확장을 설명합니다. (둘 다직접색그리고인덱스 색상ISO/IEC 8613-2에 정의되어 있습니다. 후자는 "256색"이라는 이름으로 알 수 있습니다. )

    중요한 팁: 거의 모든 구현은 실제 표준이 아닌 지하 소스에서 작동하기 때문에(또는 단순히 서로 복사하기 때문에) 이 표준을 잘못 구현합니다. 표준은 §13.1.8에서 콜론( :, "3/10")을 하위 매개변수 구분 기호로 사용하도록 지정합니다. 거의 모든 구현에서 세미콜론( ;)을 잘못 사용하여 구문 분석이 모호해집니다. 많은 소프트웨어에서 이 오류를 해결했습니다.

추가 읽기

관련 정보