ncurses
ncurses | |
nástroj menuconfig, využívajúci ncurses | |
Základné informácie | |
---|---|
Posledná stabilná verzia | 6.3 (08. november 2021 ) |
Vyvinutý v | C |
Operačný systém | POSIX |
Typ softvéru | widget toolkit |
Licencia | X11 licencia[1] |
Prvé vydanie | 1993 |
Ďalšie odkazy | |
Webová stránka | invisible-island.net/ncurses |
Commons | ncurses |
Pozri aj Informačný portál |
ncurses (new curses) je programátorská knižnica poskytujúca aplikačné programovacie rozhranie (API), ktoré umožňuje programátorovi vytvárať používateľské rozhranie v textovom režime spôsobom nezávislým od terminálu. Je to sada nástrojov na vývoj aplikačného softvéru podobného „GUI“, ktorý beží v emulátore terminálu. Tiež optimalizuje zmeny obrazovky tak, aby sa znížila latencia pri používaní prostredníctvom vzdialeného shellu.
Ncurses je možné použiť v rôznych programovacích jazykoch, vrátane Ada,[2] Python,[3] Gambas,[4] Ruby,[5] PHP,[6] JavaScript,[7] a Perl.[8]
História
[upraviť | upraviť zdroj]Od novej verzie je ncurses slobodný softvér emulácii curses knižnicu zo System V Release 4.0 (SVr4), ktorý bol sám o sebe vylepšením voči pozastavenému vývoju curses knižnice z 4.4 BSD.[9] Štandard XSI Curses vydaný spoločnosťou X/Open je výslovne a úzko modelovaný v UNIX System V.
curses
[upraviť | upraviť zdroj]Prvá knižnica curses bola vyvinutá na Kalifornskej univerzite v Berkeley pre operačný systém BSD okolo roku 1980 na podporu textovej adventúry Rogue. Hra pôvodne používala knižnicu termcap, ktorá sa používala v iných programoch, napríklad v editore vi.
Úspech knižnice curses pre BSD prinútil Bell Labs vydať vylepšenú knižnicu curses v ich systémoch Unix System V verzie 2. Táto knižnica bola výkonnejšia a namiesto použitia termcap použila terminfo. Avšak kvôli politike AT&T týkajúcej sa distribúcie zdrojového kódu nemala táto vylepšená knižnica curses v komunite BSD veľké prijatie.
pcurses
[upraviť | upraviť zdroj]Okolo roku 1982 začal Pavel Curtis pracovať na freewarovom klone curses knižnice Bell Labs s názvom pcurses, ktorá do roku 1986 bola spravovaná viacerými ľuďmi.[10]
ncurses
[upraviť | upraviť zdroj]Knižnica pcurses sa ďalej vylepšovala, keď sa jej vývoja koncom roku 1991 ujal Zeyd Ben-Halim.[10][11] Nová knižnica bola vydaná ako ncurses v novembri 1993, pričom verzia 1.8.1 bola prvým hlavným vydaním. Ďalšie prácu, prostredníctvom verzie 1.8.8 (M1995), viedol Eric S. Raymond, ktorý pridal do knižnice formuláre a menu napísané Juergenom Pfeiferom.[12] Od roku 1996 ju udržiava Thomas E. Dickey.
Väčšina volaní ncurses sa dá ľahko preniesť na staré curses knižnice. Implementácie knižnice curses zo System V môžu podporovať programy curses BSD iba s novou kompiláciou.[13] Niekoľko oblastí je však problematických, napríklad manipulácia s veľkosťou terminálu, pretože staré curses nemajú na to žiaden ekvivalent.
Terminálová databáza
[upraviť | upraviť zdroj]Ncurses môžu používať buď terminfo (s rozšíriteľnými údajmi), alebo termcap. Ostatné implementácie curses používajú všeobecne terminfo; menšina používa termcap. Máloktorá používa oboje (mytinfo[14] bola staršia výnimka).
Licencia
[upraviť | upraviť zdroj]Ncurses je súčasťou projektu GNU. Je to jeden z mála GNU projektov, ktorý sa nedistribuuje pod GNU GPL alebo LGPL, ale distribuuje sa na základe permissive free software licence, podobnej licencii MIT.[15] Je to dôsledkom dohody s FSF v čase, keď vývojári udeľovali svoje autorské práva.
Keď bola uzavretá dohoda o postúpení práv na FSF, existovala klauzula, ktorá uvádzala:[16]
Nadácia sľubuje, že akákoľvek distribúcia Balíka alebo akejkoľvek práce „založenej na Balíku“, ktorá sa uskutoční pod kontrolou Nadácie alebo jej zástupcov alebo nadobúdateľov, sa uskutoční za podmienok, ktoré výslovne a trvalo umožňujú každému, kto vlastní kópiu diela, na ktoré sa vzťahujú podmienky, a s presným oboznámením s týmito podmienkami, za účelom ich redistribúcie rozmnoženiny diela komukoľvek za rovnakých podmienok.
Podľa správcu Thomasa E. Dickeyho to vylučuje zmenu licencie na GPL v akejkoľvek verzii, pretože by to obmedzovalo programy, ktoré sa budú s knižnicami linkovať.[16]
Programy využívajúce ncurses
[upraviť | upraviť zdroj]Existujú stovky programov využívajúcich ncurses.[17][18] Niektoré, napríklad GNU Screen a w3m, využívajú iba rozhranie termcap a správu obrazovky vykonávajú sami. Ostatné, napríklad GNU Midnight Commander a YaST, využívajú programovacie rozhranie curses.
Referencie
[upraviť | upraviť zdroj]- ↑ NCURSES — Licensing [online]. . Dostupné online.
- ↑ Ada95 Binding for ncurses [online]. invisible-island.net, [cit. 2021-04-03]. Dostupné online.
- ↑ Curses Programming with Python — Python 3.9.3 documentation [online]. docs.python.org, [cit. 2021-04-03]. Dostupné online.
- ↑ gb.ncurses - Gambas Wiki
- ↑ ncurses-ruby | RubyGems.org | your community gem host [online]. rubygems.org, [cit. 2021-04-03]. Dostupné online.
- ↑ Ncurses functions - PHP Manual [online]. [Cit. 2021-04-03]. Dostupné online. Archivované 2021-03-28 z originálu.
- ↑ SpiderApe: ncurses bindings for JavaScript [online]. spiderape.sourceforge.net, [cit. 2021-04-03]. Dostupné online. Archivované 2020-08-04 z originálu.
- ↑ Curses::UI - A curses based OO user interface framework
- ↑ RAYMOND, Eric S.. ncurses: Portable Screen-Handling for Linux [online]. Linux Journal, September 1995. Dostupné online.
- ↑ a b . Dostupné online.
- ↑ The README file in ncurses 1.8.1 states "v0.1 July 31, 1992" and "v1.8.1 November 5, 1993", which agrees with the NEWS (changelog) file
- ↑ NCURSES — Frequently Asked Questions (FAQ) [online]. invisible-island.net, [cit. 2021-04-03]. Dostupné online.
- ↑ A Hacker's Guide to Ncurses Internals [online]. invisible-island.net, [cit. 2021-04-03]. Dostupné online.
- ↑ Archivovaná kópia [online]. [Cit. 2021-04-03]. Dostupné online. Archivované 2014-08-11 z originálu.
- ↑ NCURSES — Frequently Asked Questions (FAQ) [online]. invisible-island.net, [cit. 2021-04-03]. Dostupné online.
- ↑ a b NCURSES - Frequently Asked Questions (FAQ): Is it GPL'd?
- ↑ . Dostupné online.
- ↑ Archivovaná kópia [online]. [Cit. 2021-04-03]. Dostupné online. Archivované 2013-05-15 z originálu.
Pozri aj
[upraviť | upraviť zdroj]- conio.h – C hlavičkový súbor používaný v kompilátoroch pre MS-DOS na vytváranie textových používateľských rozhraní
- dialóg (softvér)
- S-Lang (programovacia knižnica)
- SMG$ – Knižnica na správu obrazoviek dostupná v OpenVMS
Externé odkazy
[upraviť | upraviť zdroj]- Oficiálna stránka
- Psaní aplikací pro terminál: jak funguje knihovna ncurses – úvod série článkov Pavla Stěhuleho na serveri Root.cz