close

Ncurses

Ga naar navigatie Ga naar zoeken
ncurses
Onderdeel van het GNU-project
linux-menuconfig.png
linux menuconfig
Algemene informatie
programmatype: widget-toolkit
ontwikkelaar GNU-project
Eerste uitgave 1993
Licentie MIT
Technische informatie
gepland in C
versies
Laatste stabiele versie 6.3 ( info ) (09 november 2021 (11 maanden en 5 dagen))
GNU -projectserie
Vloeken en pcurses
ncurses
Links

Ncurses is een programmeerbibliotheek die een API biedt waarmee de programmeur op tekst gebaseerde interfaces , TUI's, kan schrijven . Het optimaliseert ook de verversingssnelheid van het scherm, wat de latentie kan verminderen die wordt ervaren bij het gebruik van externe shells .

Ncurses staat voor "nieuwe vloeken", omdat het een vervanging is voor de stopgezette klassieke 4.4BSD- vloeken .

Het project biedt officiële API's in C , C++ en Ada , hoewel er ook bindingen zijn voor andere talen, zoals Perl , Python of Vala .

Het maakt deel uit van het GNU- project . Het is een van de weinige GNU - programma 's die noch onder de GPL noch onder de LGPL wordt gedistribueerd , maar eerder onder de MIT - licentie .

Geschiedenis

De 'N' in ncurses is een afkorting voor het woord nieuw . Dit komt omdat ncurses gratis emulatiesoftware is voor 'System V Release 4.0 (SVr4)' Curses, wat een verbetering was ten opzichte van de stopgezette klassieke '4.4 BSD Curses'.

Cursus

De eerste curses-bibliotheek werd halverwege de jaren tachtig ontwikkeld aan de University of California, Berkeley, voor een BSD -besturingssysteem om schermgeoriënteerde gameplay te ondersteunen. Oorspronkelijk werd de ' termcap' - bibliotheek gebruikt , die in andere programma's zoals de ' vi' -editor wordt gebruikt. Het succes van de curses-bibliotheek voor BSD bracht Bell Labs ertoe een verbeterde versie van de curses-bibliotheek uit te brengen in hun 'System III' en 'System V Release 1' (op Unix). Deze bibliotheek was krachtiger en in tegenstelling tot het gebruik van 'termcap', gebruikte het 'terminfo'. Vanwege een AT&T-beleid voor de distributie van broncode, sloeg de verbeterde vloekenbibliotheek echter niet aan in de BSD-gemeenschap.

PCcursussen

Medio 1982 begon Pavel Curtis te werken aan een gratis kloon op basis van de Bell Labs curses-bibliotheek, genaamd 'pcurses', die tot 1986 door verschillende programmeurs werd onderhouden.

Ncurses

De ncurses-bibliotheek werd verder verbeterd toen Zeyd Ben-Halim de ontwikkeling eind 1991 overnam. De nieuwe bibliotheek werd in november 1993 uitgebracht als 'ncurses', met versie 1.8.1 als de eerste grote release. In latere werken, tijdens versie 1.8.8 (jaar 1995), werd het gepusht door Eric S. Raymond, die het menu en de formulierbibliotheken toevoegde die waren geschreven door Juergen Pfeiffer. Sinds 1996 is het bijgewerkt door Thomas E. Dickey.

De meeste ncurses-oproepen kunnen gemakkelijk worden overgezet naar de oude vloeken.

Implementaties van System V curses kunnen BSD curses programma's ondersteunen met slechts één hercompilatie. Een paar gebieden zijn echter problematisch, zoals het omgaan met de grootte van de terminal, omdat er geen tegenhanger is in de oude vloeken.

Terminaldatabase

Ncurses kunnen ofwel 'terminfo' of 'termcap' gebruiken. Andere implementaties van vloeken gebruiken over het algemeen terminfo; een minderheidsgebruik termcap. In mindere mate zijn er maar weinig die beide gebruiken.

Licentie

Ncurses maakt deel uit van het GNU-project. Het is een van de weinige GNU-archieven die niet wordt gedistribueerd onder de GNU GPL of LGPL; Het wordt gedistribueerd onder een vrije softwarelicentie, vergelijkbaar met de MIT-licentie. Dit komt door een overeenkomst die is gesloten met de Free Software Foundation op het moment dat de ontwikkelaars hun auteursrechten toekenden. Toen de overeenkomst werd gesloten, om de rechten over te dragen aan de FSF, werd de volgende clausule opgenomen:

"De Stichting belooft dat elke distributie van het Pakket, of enig werk "gebaseerd op het Pakket", dat plaatsvindt onder de controle van de Stichting of haar agenten of rechtverkrijgenden, zal plaatsvinden onder voorwaarden die expliciet en permanent toestaan ​​dat iedereen een exemplaar bezit van het werk waarop de voorwaarden van toepassing zijn, en om exacte kennisgeving daarvan te hebben, om kopieën van het werk onder dezelfde voorwaarden aan iedereen te verspreiden."

Volgens updater Thomas E. Dickey sluit dit het opnieuw in licentie geven van de GPL in elke versie uit, omdat het beperkingen zou opleggen aan de programma's die de bibliotheken zouden kunnen koppelen.

Programma's die ncurses gebruiken

Er zijn honderden programma's die ncurses gebruiken. Sommige, zoals 'GNU Screen' en 'w3m', gebruiken alleen de 'termcap'-interface en doen de schermafhandeling binnen de applicatie. Anderen, zoals 'GNU Midnight Commander' en 'YaST' gebruiken de 'curses' programma-interface.

Externe links