Ncurses - Ncurses

ncurses
menuconfig на основе ncurses
на основе ncurses menuconfig
Разработчики)Проект GNU
изначальный выпуск1993; 27 лет назад (1993)
Стабильный выпуск
6.2 / 12 февраля 2020; 9 месяцев назад (2020-02-12)
Репозиторий Отредактируйте это в Викиданных
Написано вC
Операционная системаPOSIX
ТипНабор инструментов для виджетов
ЛицензияЛицензия X11[1]
Интернет сайтостров-невидимка.сеть/ ncurses/ Отредактируйте это в Викиданных

ncurses (новые проклятия) это библиотека программирования предоставление интерфейс прикладного программирования (API), который позволяет программисту писать текстовые пользовательские интерфейсы независимо от терминала. Это инструментарий для развития »GUI -подобно" программное обеспечение что работает под эмулятор терминала. Он также оптимизирует смену экрана, чтобы уменьшить задержка испытывал при использовании удаленного снаряды.

Существуют привязки для ncurses на разных языках программирования, включая Ада,[2] Python,[3] Гамбас,[4] Рубин,[5] PHP,[6] JavaScript,[7] и Perl.[8]

История

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

проклятия

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

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

курсы

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

ncurses

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

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

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

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

Лицензия

Ncurses является частью Проект GNU. Это один из немногих файлов GNU, не распространяемых под GNU GPL или же LGPL; он распространяется под разрешающая лицензия свободных программ, аналогично Лицензия MIT.[15] Это связано с соглашением, заключенным с Фонд свободного программного обеспечения в то время разработчики передали свои авторские права.

Когда было заключено соглашение о передаче прав FSF, был пункт, который гласил:[15]

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

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

Программы с использованием ncurses

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

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

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

  1. ^ «NCURSES - Лицензирование». Получено 9 июля, 2013.
  2. ^ Привязка Ada95 для ncurses
  3. ^ Curses Programming with Python - документация Python
  4. ^ gb.ncurses - Gambas Wiki
  5. ^ ncurses Ruby - RubyGems.org
  6. ^ Функции Ncurses - Руководство по PHP
  7. ^ Плагин nc: привязки ncurses для SpiderApe
  8. ^ Curses :: UI - Фреймворк объектно-ориентированного пользовательского интерфейса на основе curses.
  9. ^ а б c d Эрик С. Раймонд (сентябрь 1995 г.). "ncurses: Portable Screen-Handling для Linux". Linux журнал.
  10. ^ а б c Томас Э. Дики (декабрь 1996 г.). «НКУРСЫ - Новые проклятия».
  11. ^ В ПРОЧТИ МЕНЯ в ncurses 1.8.1 указано "v0.1 31 июля 1992 г." и "v1.8.1 5 ноября 1993 г.", что согласуется с Файл NEWS (журнал изменений)
  12. ^ NCURSES - Часто задаваемые вопросы (FAQ): Кто написал NCURSES?
  13. ^ Руководство хакера по внутреннему устройству Ncurses
  14. ^ Сидней С. Вайнштейн (апрель 1993 г.). «В сетях». Журнал пользователей C / C ++. Архивировано из оригинал на 2014-08-11. Получено 2017-09-15.
  15. ^ а б c NCURSES - Часто задаваемые вопросы (FAQ): есть ли GPL?
  16. ^ "Результаты поиска: + ncurses на freshmeat.net". Архивировано из оригинал 18 февраля 2012 г.. Получено 2013-05-10.
  17. ^ "Проекты с тегом 'ncurses'". охлох.

внешняя ссылка