Ncurses

Från Wikipedia
Ncurses
ncurses-baserad meny
UtvecklareGNU-projektet
Först släppt1993 under namnet ncurses
Senaste utgåva6.4
(31 december 2022)
UtvecklingsstatusAktiv
OperativsystemPOSIX
TypGUI toolkit
LicensX11 License[1]
Webbplatsinvisible-island.net/ncurses
cmus, en musikspelare baserad på ncurses

Ncurses (new curses) är ett programvarubibliotek som används för att göra TUI-program (Text User Interface). Det hanterar till exempel så att användaren kan placera textsträngar på en angiven yta (x,y). Användaren kan göra menyer till sina program som sedan kan köras genom terminalen.

Historia[redigera | redigera wikitext]

N i Ncurses kommer från ordet new, eftersom Ncurses är en fri mjukvaruklon av System V Release 4.0 (SVr4)-curses, som i sin tur var en förbättring av det avslutade projektet 4.4 BSD curses.[2]

Curses[redigera | redigera wikitext]

Det första curses-biblioteket utvecklades vid University of California i Berkeley, för ett BSD-operativsystem, omkring 1980, för att stödja skärmorienterade spel. Det använde ursprungligen termcap-kod som bland annat användes i texteditorn Vi.[2]

BSD curses framgångar uppmuntrade Bell Labs att släppa en förbättrad curses-version till sitt System III och System V Release 1 Unix-system. Det nya biblioteket var mer kraftfullt och använde terminfo istället för termcap. På grund av AT&T:s policy för källkodsdistribuering hade denna förbättrade curses-version svårt att nå acceptans inom BSD-kretsar.[2]

Pcurses[redigera | redigera wikitext]

Runt 1982 började Pavel Curtis arbeta på en freeware-klon av Bell Labs curses, pcurses, som underhölls av olika människor fram till 1986.[3]

Ncurses[redigera | redigera wikitext]

Pcurses-biblioteket förbättrades ytterligare när Zeyd Ben-Halim tog över utvecklingsarbetet i slutet av 1991.[2][3] Det nya biblioteket släpptes som ncurses i november 1993, och med version 1.8.1 som den första större versionen. Efterföljande arbete, genom version 1.8.8 (1995), drevs av Eric S. Raymond, som lagt till form och menykod skriven av Juergen Pfeifer.[4] Sedan 1996 har ncurses underhållits av Thomas E. Dickey.[3]

Licens[redigera | redigera wikitext]

Ncurses är del av GNU-projektet. Det är ett av endast ett fåtal GNU-program som inte är släppt under GNU GPL eller LGPL. Det är istället släppt under en licens som liknar MIT-licensen,[5] "permissive free software licence". Detta är på grund av de krav som ställdes när ncurses utvecklarna skrev över programmet i Free Software Foundations ägor.

När avtalet gjordes att överföra rättigheterna till FSF fanns det en klausul som löd ungefär:

"Stiftelsen lovar att all distribution av programmet, eller något arbete "baserat på programmet", som äger rum under kontroll av stiftelsen eller dess agenter eller innehavare, skall vara på villkor som uttryckligen och ständigt tillåter någon som har en kopia av det arbete som de villkor gäller och som har korrekt meddelande om dessa villkor, att sprida kopior av det arbete som alla på samma villkor."[5]

Enligt den ansvarige Thomas E. Dickey, hindrar detta nytt omlicensiering till GPL i någon version, eftersom det skulle innebära restriktioner för de program som kommer att kunna länka till biblioteken.[5]

Referenser[redigera | redigera wikitext]

Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia, Ncurses, 25 februari 2012.

Noter[redigera | redigera wikitext]

Externa länkar[redigera | redigera wikitext]