ncurses - ncurses

ncurses
Linux-menuconfig.png
menuconfig на основе ncurses
Разработчики) Томас Э. Дики
Первый выпуск 1993 ; 28 лет назад ( 1993 )
Стабильный выпуск
6.2 / 12 февраля 2020 г . ; 20 месяцев назад ( 2020-02-12 )
Репозиторий
Написано в C
Операционная система POSIX
Тип Набор инструментов для виджетов
Лицензия Лицензия X11
Веб-сайт остров-невидимка .net / ncurses / Отредактируйте это в Викиданных

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

ncurses - это бесплатная эмуляция curses System V Release 4.0 (SVr4) .

Существуют привязки для ncurses на различных языках программирования, включая Ada , Python , Gambas , Ruby , PHP , JavaScript и Perl .

История

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

проклятия

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

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

курсы

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

ncurses

Библиотека 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 GPL или LGPL . Вместо этого он распространяется под разрешающей лицензией на свободное программное обеспечение , т. Е. Под лицензией MIT . Это связано с соглашением, заключенным с Free Software Foundation в то время, когда разработчики передали свои авторские права.

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

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

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

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

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

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

использованная литература

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