Кіріспе
Терминалды басқару кітапханасы, мәтіндік пайдаланушы интерфейстерін құруға мүмкіндік береді.
curses – Unix сияқты жүйелер үшін мәтіндік пайдаланушы интерфейсі (TUI) қолданбаларын құруға мүмкіндік беретін терминалды басқару кітапханасы. Атауы "курсорды оптимизациялау" терминімен ойынға жақын. Бұл кітапхана, мінездемелік жасушалы терминалдарда (мысалы, VT100) қолданбаның дисплейін басқаратын функциялар жиынтығы болып табылады.
Шолу
Кернеулерді пайдалану арқылы бағдарламашылар нақты терминал түріне тікелей жазбастан мәтінге негізделген қосымшаларды жаза алады. Орындалатын жүйедегі curses кітапханасы терминал түріне сәйкес дұрыс басқару белгілерін жібереді. Ол терминал экранына бейнеленетін бір немесе бірнеше терезелердің абстракциясын ұсынады. Әрбір терезе таңба матрицасымен көрсетіледі. Бағдарламашы әрбір терезеге қажетті көріністі орнатады, содан кейін curses пакетіне экранды жаңартуды бұйырады. Кітапхана дисплейді жаңарту үшін қажетті ең аз өзгерістер жиынтығын анықтайды, содан кейін оларды терминалдың ерекше мүмкіндіктері мен басқару тізбектерін пайдалана отырып орындайды. Қысқасы, бағдарламашы экран қалай көрінуі керек екендігінің таңба матрицасын жасайды және curses жұмысты басқаруға жібереді. Curses API бірнеше жерде сипатталған. Curses-тің көптеген нұсқалары мыңдаған түрлі терминалдардың мүмкіндіктерін сипаттайтын деректер базасын пайдаланады. PDCurses сияқты кейбір іске асырулар терминал деректер базасының орнына арнайы құрылғы драйверлерін қолданады. Көптеген іске асырулар terminfo-ны; ал кейбіреулері termcap-ты пайдаланады. Curses-тің артықшылығы – таңбалық жасуша терминалдарына кері үйлесімділік және қарапайымдылық. Биттік карталы графиканы немесе бірнеше қаріптерді қажет етпейтін қосымша үшін curses-ты қолданатын интерфейс әдетте X құралдар жиынтығын қолданатындарға қарағанда әлдеқайда қарапайым және жылдам болады.
Тарих
Алғашқы curses кітапханасын Кен Арнольд жазды және ол бастапқыда BSD UNIX жүйесімен бірге шығарылды, онда ол бірнеше ойындарда, ең әйгілісі Rogue ойынында қолданылды. 1990 жылдары BSD кітапханасына "4.4BSD" curses ретінде бірнеше жақсартулар енгізілді, мысалы, бірнеше типтегі бейне бөлігін ерекшелеу мүмкіндігі қосылды. Алайда, олар кеңінен қолданылмайды. "Curses" атауы – курсорды оңтайландыруға қатысты ойын сөз. Кейде vi редакторы curses кітапханасын қолданды деген қате пікір таратылады. Шындығында, curses кітапханасының экрандағы курсорды бір жерден екінші жерге жылжытуды оңтайландыратын коды vi редакторынан алынған, ал vi curses кітапханасынан бұрын пайда болған. Бірнеше жылдан кейін, Берклидегі vi және termcap деректерін сақтаған Мэри Энн Хортон AT&T корпорациясына өтіп, terminfo қолданылатын басқа нұсқасын жасады, ол UNIX System III және UNIX System V жүйелерінің құрамына кірді. Соңғысына лицензиялық шектеулер салынғандықтан, кітапхананың BSD және AT&T нұсқалары тәуелсіз түрде әзірленді. Termcap/terminfo жақсартудан басқа, AT&T нұсқасында мынадай жақсартулар жасалды:
бейне бөлігін ерекшелеу (қалың, сызықталған). BSD нұсқасы тек "standout" мүмкіндігін қолдайды. BSD нұсқасы бұл мәселеде аз қолдау көрсетті. Түстер BSD нұсқасында қолдауға ие емес. AT&T curses кітапханасының дамуы X/Open Curses анықталғанда 1990 жылдардың ортасында тоқтаған сияқты. 1995 жылы BSD кітапханасын күтіп келген Кит Бостик curses кітапханасын ncurses пайдасына ресми түрде қолдануды тоқтатты. ncurses және PDCurses кітапханаларын дамыту жалғасуда. BSD curses кітапханасының нұсқасы NetBSD операциялық жүйесінде сақталады (кең таңбаларды қолдау, termcap-тен terminfo-ға көшу және т.б.).
video highlighting (bold, underline) The BSD version supported only standout. line drawing The BSD version gave little support here. colors This was not supported in the BSD version. AT&T curses development appears to have halted in the mid 1990s when X/Open Curses was defined. In 1995, BSD maintainer, Keith Bostic, officially deprecated the curses library in favor of ncurses. Development of ncurses and PDCurses continues. A version of BSD curses continues to be maintained in the NetBSD operating system (wide character support, termcap to terminfo migration, etc. ).
курстар мен ПДК курстары
Әртүрлі даму бағыттары AT&T қарғыстарын еліктеуден басталды, кем дегенде үш іске асыру арқылы: Павел Кертистің pcurses (1982 жылы басталған), Марк Гесслингтің PDCurses (Public Domain curses) өзінің THE редакторын қолдау үшін (1987 жылы басталған), сондай-ақ Rexx/Curses және Бьорн Ларссонның PC curses (1.4 нұсқасы және одан бұрынғысы, 1990 жылға дейін Павел Кертистің кітапханасынан шабыттанған).
құтылу
ncurses (жаңа curses) «pcurses ретінде басталып, 1993 жылдың соңында ncurses 1.8.1 нұсқасы ретінде қайта жарияланды». ncurses – curses-тің ең көп таралған іске асырылуы болып табылады және NetBSD жобасындағы BSD curses сияқты басқа да нұсқаларын дамытуға ықпал етті.
Көшіруге қабілеттілік
ncurses кітапханасы бастапқыда Linux, OpenBSD, FreeBSD және NetBSD үшін жасалған, бірақ одан кейін негізінен Томас Диккидің еңбегімен көптеген басқа ANSI/POSIX UNIX жүйелеріне көшірілді. PDCurses, ncurses-тен толыққанды ұқсамайтын болса да, сол функцияларды шақырып, ncurses сияқты жұмыс істейді, алайда PDCurses DOS, Win32, OS/2 консоль терезелері сияқты басқа құрылғыларға бағытталған, сондай-ақ X11-ге де қолданылады. Екі кітапхана арасында көшу қиындық тудырмайды. Мысалы, ADOM атты roguelike ойыны бастапқыда Linux және ncurses үшін жазылып, кейін DOS және PDCurses-ке көшірілді.
Қолданбалар
Curses графикалық интерфейске ұқсас функционалдықты тек мәтіндік құрылғыда, мысалы, консоль режимінде жұмыс істейтін компьютерде, аппараттық ANSI терминалында, Telnet немесе SSH клиентінде немесе осыған ұқсас жағдайда жеңілдету үшін жасалған. Curses-ке негізделген бағдарламалық қамтамасыз ету – бұл пайдаланушы интерфейсі curses кітапханасы немесе оған үйлесімді кітапхана (мысалы, ncurses) арқылы іске асырылған бағдарламалық қамтамасыз ету. Curses-ке негізделген бағдарламалардың пайдаланушы интерфейсі көбінесе мәтіндік құрылғыларда таралған командалық жол интерфейсінен (CLI) емес, мәтіндік өрістер мен прокруткаланатын тізімдер сияқты «виджеттерді» қамтитын дәстүрлі графикалық пайдаланушы интерфейсіне ұқсайды. Бұл оларды CLI-ге негізделген бағдарламаға қарағанда қолдануға ыңғайлырақ етеді, сонымен қатар тек мәтіндік құрылғыларда жұмыс істеуге мүмкіндік береді. Curses-ке негізделген бағдарламалық жасақтама ресурстарды аз қолданады және графикалық интерфейске негізделген бағдарламаларға қарағанда жүйелердің кең ауқымында (жабдық және бағдарламалық қамтамасыз ету жағынан) жұмыс істей алады. Бұл 1990 жылға дейінгі ескі машиналарды, сондай-ақ тек мәтіндік дисплейлерді қолданатын заманауи кіріктірілген жүйелерді қамтиды. Curses көбінесе Unix сияқты операциялық жүйелермен байланысты, бірақ Microsoft Windows үшін де нұсқалары бар.