ncurses-based menuconfig | |
Разработчик (и) | Проект GNU |
---|---|
Первоначальный выпуск | 1993; 27 лет назад (1993 г.) |
Стабильный выпуск | 6.2 / 12 февраля 2020 г.; 8 месяцев назад (12.02.2020) |
Репозиторий | |
Написано на | C |
Операционной системе | POSIX |
Тип | Набор инструментов для виджетов |
Лицензия | Лицензия X11 |
Веб-сайт | invisible-island.net / ncurses / |
ncurses (новые проклятия) библиотека программирования, обеспечивающая интерфейс прикладного программирования (API), который позволяет программисту писать текстовые пользовательские интерфейсы независимо от терминала. Это набор инструментов для разработки «GUI -подобного» прикладного программного обеспечения, которое работает под эмулятором терминала. Он также оптимизирует смену экрана, чтобы уменьшить задержку, возникающую при использовании удаленных оболочек.
. Для ncurses есть привязки на различных языках программирования, включая Ada, Python, Gambas, Ruby, PHP, JavaScript и Perl.
Как новая версия, ncurses представляет собой бесплатную эмуляцию System V Release 4.0 (SVr4) curses, которая Сама по себе была улучшением по сравнению с более ранними версиями 4.4 BSD curses. Стандарт XSI Curses, выпущенный X / Open, явно и подробно смоделирован на основе System V.
Первая библиотека curses была разработана в Калифорнийском университете в Беркли, для операционной системы BSD, около 1980 года для поддержки Rogue, текстовой приключенческой игры. Первоначально он использовал библиотеку termcap, которая использовалась в других программах, таких как vi editor.
Успех библиотеки BSD curses подсказал Bell Лаборатория по выпуску расширенной библиотеки curses в своих системах System V Release 2 Unix. Эта библиотека была более мощной и вместо termcap использовала terminfo. Однако из-за политики ATT в отношении распространения исходного кода эта улучшенная библиотека curses не получила широкого распространения в сообществе BSD.
Примерно в 1982 г. Павел Кертис начал работу над бесплатным клоном curses Bell Labs, названным pcurses, который поддерживался разными людьми до 1986 года.
Библиотека pcurses была дополнительно улучшена, когда Зейд Бен-Халим взял на себя разработку в конце 1991 года. Новая библиотека была выпущена как ncurses в ноябре 1993 года с версией 1.8.1 в качестве первого основного выпуска. Последующая работа, вплоть до версии 1.8.8 (M1995), проводилась Эриком С. Реймондом, который добавил библиотеки форм и меню, написанные Юргеном Пфайфером. С 1996 года его поддерживает Томас Э. Дики..
Большинство вызовов ncurses можно легко перенести на старые curses. Реализации curses System V могут поддерживать программы curses BSD с помощью только перекомпиляции. Однако некоторые области являются проблематичными, например, обработка изменения размера терминала, поскольку в старых версиях curses нет аналогов.
Ncurses может использовать либо terminfo (с расширяемыми данными), либо termcap. Другие реализации curses обычно используют terminfo ; меньшинство использует termcap. Немногие (mytinfo был более старым исключением) используют оба.
Ncurses является частью проекта GNU. Это один из немногих файлов GNU, не распространяемых под GNU GPL или LGPL ; он распространяется под разрешающей лицензией свободного программного обеспечения, аналогичной лицензии MIT. Это связано с соглашением, заключенным с Free Software Foundation в то время, когда разработчики передали свои авторские права.
Когда было заключено соглашение о передаче прав FSF, был пункт, который гласил:
Фонд обещает, что все распространение Пакета или любой работы "основано на Пакете", которая осуществляется под контролем Фонда, его агентов или правопреемников, должна осуществляться на условиях, которые прямо и постоянно разрешают любому, кто владеет копией работы, к которой применяются эти условия, и имеет точное уведомление об этих условиях, распространять копии работу кому угодно на тех же условиях.
По словам сопровождающего Томаса Э. Дики, это исключает повторное лицензирование GPL в любой версии, так как это накладывает ограничения на программы, которые смогут связываться с библиотеками.
Существуют сотни программ, использующих ncurses. Некоторые из них, такие как GNU Screen и w3m, используют только интерфейс termcap и сами выполняют управление экраном. Другие, такие как GNU Midnight Commander и YaST, используют программный интерфейс curses.