저주(프로그래밍 라이브러리)

curses (programming library)
욕설
Termapi.svg
Fmli lu.PNG
Live Upgrade(lu) 명령어로 Curses를 사용하는FMLI를 기반으로[discuss] 합니다.
개발자켄 아놀드
기입처C
유형위젯 툴킷

curses는 Unix 계열 시스템용 터미널 제어 라이브러리이며 Text User Interface(TUI; 텍스트 사용자 인터페이스) 애플리케이션 구축을 가능하게 합니다.

이 이름은 "cursor optimization"이라는 용어의 말장난입니다.문자 셀 터미널(: VT100)[1]에서 응용 프로그램의 디스플레이를 관리하는 기능의 라이브러리입니다.

개요

프로그래머는 저주를 사용하여 텍스트 기반 응용 프로그램을 작성할 수 있습니다.단말기의 종류에 따라 직접 작성하지 않아도 됩니다.실행 중인 시스템의 저주 라이브러리는 터미널 유형에 따라 올바른 제어 문자를 보냅니다.터미널 화면에 매핑되는 하나 이상의 창을 추상화합니다.각 창은 문자 행렬로 나타납니다.프로그래머는 각 창의 원하는 모양을 설정한 다음 저주 패키지에 화면을 업데이트하도록 지시합니다.라이브러리는 디스플레이를 업데이트하기 위해 필요한 최소한의 변경 사항을 확인한 후 단말기의 특정 기능과 제어 시퀀스를 사용하여 이러한 변경 사항을 실행합니다.

간단히 말해서, 이것은 프로그래머가 단순히 화면이 어떻게 보여야 하는지에 대한 문자 매트릭스를 만들고 저주가 작업을 처리하도록 한다는 것을 의미한다.

curses API는 여러 [2]곳에서 설명됩니다.대부분의 저주 구현은 수천 개의 다른 단말기의 기능을 설명할 수 있는 데이터베이스를 사용합니다.PDCurses 등 터미널 데이터베이스가 아닌 특수한 디바이스 드라이버를 사용하는 구현이 몇 가지 있습니다.대부분의 구현에서는 termfo를 사용합니다.termcap을 사용하는 경우도 있습니다.Curses는 문자 셀 단말기에 대한 백포터빌리티와 단순성이라는 장점이 있습니다.비트맵 그래픽스나 여러 글꼴을 필요로 하지 않는 어플리케이션에서는 일반적으로 욕을 사용하는 인터페이스 구현이 X 툴킷을 사용하는 것보다 훨씬 간단하고 빠릅니다.

역사

최초의 저주 라이브러리는 Ken Arnold에 의해 작성되었으며, 원래 BSD UNIX와 함께 출시되었으며, 여러 게임, 특히 [3][4][5]Rogue에서 사용되었습니다.BSD 라이브러리는 1990년대에 "4.4BSD" 욕설로 인해 여러 유형의 비디오 [citation needed]하이라이트를 제공하기 위해 일부 개선되었습니다.하지만 그것들은 널리 쓰이지 않는다.

"curses"라는 이름은 커서 [6]최적화에 대한 말장난입니다.vi 에디터에 의해 욕이 사용되었다고 잘못 기재되어 있는 경우가 있습니다.실제로 화면상의 한 장소에서 다른 곳으로 커서를 이동시키는 것을 최적화하는 저주의 코드는 [4]저주의 선행 코드인 vi에서 차용되었다.

Goodheart에 따르면, Ken Arnold의 저주의 원래 구현은 termcap 라이브러리의 기능을 재사용하고 거기에 [7]추가함으로써 시작되었다.몇 년 후, 버클리 대학에서 vitermcap 소스를 유지하던 Mary Ann Horton은 AT&T Corporation에 가서 termfo를 사용하여 다른 버전을 만들었고, 이는 UNIX System IIIUNIX System V의 일부가 되었습니다.후자의 라이센스 제한으로 인해 라이브러리의 BSD 및 AT&T 버전은 독립적으로 개발되었습니다.AT&T 버전에서는 termcap/termfo 개선 외에 다음과 같은 개선사항이 추가되었습니다.

비디오 하이라이트(굵은 글씨, 밑줄)
BSD 버전에서는 스탠드아웃만 지원되었습니다.
회선 교환
BSD 버전은 여기서 거의 지원되지 않습니다.
색채
이것은 BSD 버전에서는 지원되지 않습니다.

AT&T는 X/Open Curses가 [8]정의된 1990년대 중반에 개발이 중단된 것으로 보인다.그러나 ncursesPDCurses의 개발은 계속되고 있다.BSD 욕설 버전은 NetBSD 운영체제에서 계속 유지됩니다(전체 문자 지원, termcap에서 termfo로의 이행 등).

PCurs 및 PDCurs

개발의 다른 노선들이 AT&amp를 모방함으로서&T욕설, 적어도 3구현:파벨 커티스(1982년에서 시작되)에 의해 pcurses에서 시작되면, PDCurses 마크 Hessling에 의해 지원하기 위해(공공 영역을 저주)그의 편집자 독자(1987년에 시작했다)뿐만 아니라 Rexx[9]과 PC저주(버전 1.4및 이전에 BjornLarsson-based에서 얻은 영감으로 Pav.커트 엘is'는 1990년 이전 라이브러리입니다.)[10][11][discuss]

인식하다

ncurses([13][14]새로운 저주)는 "pcurses로 시작되어 1993년 말에 ncurses 1.8.1로 재발행되었습니다.".[12]ncurses는 가장 널리 알려진 저주 구현이며 NetBSD 프로젝트에서 BSD 저주 등 다른 변형을 더욱 발전시키는 계기가 되었습니다.

휴대성

ncurses 라이브러리는 처음에 Linux, OpenBSD, FreeBSD 및 NetBSD에서 개발되었지만 주로 토마스 디키에 의해 다른 많은 ANSI/POSIX UNIX 시스템으로 이식되었다.PDCurses는 ncurses와 동일하지 않지만 Ncurses와 동일한 함수 호출을 사용하며 DOS, Win32, OS/2 X11콘솔 창 등 다른 디바이스를 대상으로 하는 것을 제외하고 동일한 방식으로 작동합니다.둘 사이의 이동은 어렵지 않다.예를 들어, Roguelike 게임 ADOM은 Linux 및 ncurses용으로 작성되었으며, 나중에 DOS 및 PDCurses로 [15][16]이식되었습니다.

스크린샷

저주 기반 소프트웨어

저주 기반 소프트웨어는 저주 라이브러리 또는 호환되는 라이브러리(ncurses 등)를 통해 사용자 인터페이스가 구현되는 소프트웨어입니다.

Curses는 콘솔모드로 동작하는PC, 하드웨어 ANSI 단말기, Telnet 또는 SSH 클라이언트 등 텍스트 전용 디바이스에서 GUI와 같은 기능을 쉽게 하도록 설계되어 있습니다.

저주 기반 프로그램에는 텍스트 전용 장치에서 흔히 볼 수 있는 명령줄 인터페이스(CLI)가 아닌 텍스트 상자 및 스크롤 가능 목록과 같은 '위젯'을 포함한 기존 그래픽 사용자 인터페이스가 있는 경우가 많습니다.이를 통해 CLI 기반 프로그램보다 사용자 친화적이면서도 텍스트 전용 디바이스에서 실행할 수 있습니다.또한 저주 기반 소프트웨어는 GUI 기반 소프트웨어보다 리소스 풋프린트가 적고 다양한 시스템(하드웨어와 소프트웨어 모두)에서 작동할 수 있습니다.여기에는 텍스트 전용 디스플레이를 사용하는 최신 임베디드 시스템과 함께 1990년 이전의 오래된 시스템이 포함됩니다.

Microsoft Windows실장도 존재하지만, 일반적으로 Unix 와 같은 operating system과 관련지어집니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Thomas E. Dickey. "NCURSES - Frequently Asked Questions".
  2. ^ 저주의 프로그래밍, O'Reilly, ISBN 0-937175-02-1
  3. ^ Peter H. Salus (October 1994). "The history of Unix is as much about collaboration as it is about technology". Byte.
  4. ^ a b Arnold, K. C. R. C. (1977). "Screen Updating and Cursor Movement Optimization: A Library Package". University of California, Berkeley. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  5. ^ Kenneth C. R. C. Arnold; Elan Amir (December 1992). "Screen Updating and Cursor Movement Optimization: A Library Package".
  6. ^ Thomas E. Dickey. "NCURSES - Frequently Asked Questions".
  7. ^ Goodheart, Berny (1991). UNIX Curses Explained. Prentice Hall. p. xi. ISBN 0-13-931957-3.
  8. ^ "X/Open Curses, Issue 4 Version 2, Reference Pages". The Open Group. 1997.
  9. ^ Mark Hessling (2008). "Rexx/Curses". SourceForge project rexxcurses. Retrieved 2014-02-10.
  10. ^ F. Ellermann (1993-07-26). "CURSES.NEW in pccurses.zip". Retrieved 2014-02-10. based on PC curses (version 1.4) written by Bjorn Larsson[영구 데드링크]
  11. ^ Bjorn Larsson (1990-01-14). "README.NOW in pccurs14.zip". Archived from the original on 2014-02-23. Retrieved 2014-02-10. PCcurses is a port/rewrite of Pavel Curtis' [package]
  12. ^ Thomas E. Dickey (December 1996). "NCURSES - New Curses".
  13. ^ NetBSD project (February 2004). "CURSES_SCREEN(3), NetBSD Library Functions Manual".
  14. ^ Ruibiao Qiu (September 2005). "NetBSD-SoC: Wide Character Support in NetBSD curses Library".
  15. ^ Thomas Biskup (1994–2007). "ADOM - The Past". Archived from the original on 2007-10-10. Retrieved 2007-11-16.
  16. ^ Thomas Biskup (March 15, 1996). "New Game: ADOM (MS-DOS, MS-Windows, and Linux only)". Newsgroup: rec.games.roguelike.announce. Retrieved 2007-11-16.

외부 링크