stringtranslate.com

ncurses

ncurses (новые проклятия ) — это библиотека программирования , предоставляющая интерфейс прикладного программирования (API), который позволяет программисту писать текстовые пользовательские интерфейсы (TUI) независимым от терминала способом. Это набор инструментов для разработки прикладного программного обеспечения с графическим интерфейсом , работающего под управлением эмулятора терминала . Он также оптимизирует изменения экрана, чтобы уменьшить задержку при использовании удаленных оболочек .

ncurses — это бесплатная программная эмуляция проклятий System V Release 4.0 (SVr4) .

Существуют привязки для ncurses к различным языкам программирования, включая Ada , [4] Python , [5] Gambas , [6] Ruby , [7] PHP , [8] JavaScript , [9] и Perl . [10]

История

В качестве новой версии ncurses представляет собой бесплатную программную эмуляцию Curses System V Release 4.0 (SVr4) , которая сама по себе была улучшением по сравнению с прекращенными Curses 4.4 BSD. [11] Стандарт XSI Curses, выпущенный X/Open , явно и точно смоделирован на System V.

проклятия

Первая библиотека проклятий была разработана в Калифорнийском университете в Беркли для операционной системы BSD примерно в 1980 году для поддержки Rogue , текстовой приключенческой игры. Первоначально он использовал библиотеку termcap , которая использовалась в других программах, таких как редактор vi . [11]

Успех библиотеки проклятий BSD побудил Bell Labs выпустить расширенную библиотеку проклятий в своих системах Unix System V Release 2 . Эта библиотека была более мощной и вместо использования termcap использовала terminfo . Однако из-за политики AT&T в отношении распространения исходного кода эта улучшенная библиотека проклятий не получила большого признания в сообществе BSD. [11]

деньги

Примерно в 1982 году Павел Кертис начал работу над бесплатным клоном проклятий Bell Labs под названием pcurses , который поддерживался разными людьми до 1986 года .

ncurses

Библиотека pcurses была дополнительно улучшена, когда Зейд Бен-Халим взял на себя разработку в конце 1991 года. [11] [12] [13] Новая библиотека была выпущена как ncurses в ноябре 1993 года, причем версия 1.8.1 стала первым основным выпуском. . Последующую работу над версией 1.8.8 (M1995) проводил Эрик С. Рэймонд , который добавил библиотеки форм и меню, написанные Юргеном Пфайфером. [1] С 1996 года его поддерживает Томас Э. Дики. [12]

Большинство вызовов ncurses можно легко перенести на старые проклятия. Реализации проклятий System V могут поддерживать программы проклятий BSD с помощью простой перекомпиляции . [14] Однако некоторые области являются проблематичными, например, обработка изменения размера терминала, поскольку в старых проклятиях не существует аналога.

База данных терминала

ncurses может использовать либо terminfo (с расширяемыми данными), либо termcap . Другие реализации проклятий обычно используют terminfo ; меньшинство использует termcap . Лишь немногие (mytinfo был более старым исключением [15] ) используют оба.

Лицензия

ncurses является частью проекта GNU , но не распространяется под лицензией GNU GPL или LGPL . Вместо этого оно распространяется под разрешительной лицензией свободного программного обеспечения , то есть лицензией MIT . [16] Это связано с соглашением, заключенным с Фондом свободного программного обеспечения на момент передачи разработчиками своих авторских прав.

Когда было заключено соглашение о передаче прав ФСФ, там был пункт, в котором говорилось: [16]

Фонд обещает, что любое распространение Пакета или любой работы, «основанной на Пакете», которое происходит под контролем Фонда или его агентов или правопреемников, будет осуществляться на условиях, которые явно и бессрочно разрешают любому обладателю копии произведение, к которому применяются эти условия, и имея точное уведомление об этих условиях, перераспределять копии произведения кому-либо на тех же условиях.

По словам сопровождающего Томаса Э. Дики, это исключает повторное лицензирование GPL в любой версии, поскольку это наложит ограничения на программы, которые смогут ссылаться на библиотеки. [16]

Программы, использующие ncurses

Существуют сотни программ, использующих ncurses. [17] [18] Некоторые, такие как GNU Screen и w3m , используют только интерфейс termcap и сами выполняют управление экраном. Другие, такие как GNU Midnight Commander и YaST , используют программный интерфейс Curs.

Смотрите также

Примечания

Рекомендации

  1. ^ ab «NCURSES — Часто задаваемые вопросы (FAQ): Кто написал NCURSES?».
  2. ^ ab «NCURSES — Лицензирование» . Проверено 9 июля 2013 г.
  3. ^ "ncurses 6.4" . Проверено 1 января 2023 г.
  4. ^ «Привязка Ada95 для ncurses» .
  5. ^ «Программирование проклятий на Python — документация Python» .
  6. ^ "gb.ncurses - Гамбас Wiki" .
  7. ^ "ncurses Ruby - RubyGems.org" .
  8. ^ «Функции Ncurses — Руководство по PHP» . Архивировано из оригинала 28 марта 2021 г. Проверено 4 февраля 2020 г.
  9. ^ «Плагин nc: привязки ncurses для SpiderApe» .
  10. ^ «Curses::UI — объектно-ориентированная структура пользовательского интерфейса, основанная на проклятиях» .
  11. ^ abcd Эрик С. Рэймонд (сентябрь 1995 г.). «ncurses: портативная обработка экрана для Linux». Linux-журнал .
  12. ^ abc Томас Э. Дики (декабрь 1996 г.). «НКУРСЫ - Новые проклятия».
  13. ^ В файле README в ncurses 1.8.1 указано «v0.1 31 июля 1992 г.» и «v1.8.1 5 ноября 1993 г.», что соответствует файлу NEWS (список изменений).
  14. ^ «Руководство хакера по внутреннему устройству Ncurses» .
  15. ^ Сидней С. Вайнштейн (апрель 1993 г.). «В сетях». Журнал пользователей C/C++. Архивировано из оригинала 11 августа 2014 г. Проверено 15 сентября 2017 г.
  16. ^ abc «NCURSES — Часто задаваемые вопросы (FAQ): это GPL?».
  17. ^ «Результаты поиска: +ncurses на Freshmeat.net» . Архивировано из оригинала 18 февраля 2012 года . Проверено 10 мая 2013 г.
  18. ^ «Проекты с меткой 'ncurses'» . охлох.

Внешние ссылки