Curses

curses(カーシス、カーズィス)はUnix系システムでの端末制御ライブラリである。テキストユーザインタフェース (TUI) アプリケーションを作成するのに使われる。名称は“cursor optimization”に由来する。文字のみを表示する端末(例えばVT100)を表示に使うアプリケーションが画面を管理する機能を集めたライブラリである[1]

概要

cursesのAPIの解説書はいくつかある[2]。最も一般的な実装では、数千に及ぶ様々な端末の機能を示したデータベースを利用している。端末データベースではなく専用デバイスドライバを採用している実装としては PDCurses があるが、そのような例は少ない。ほとんどの実装ではterminfoを使っており、一部はtermcapを使っている。古い端末でもほとんどの場合動作可能であり、単純な点が長所である。ビットマップ画像や様々なフォントを必要としないアプリケーションでは、X Window System を使うよりも curses を使った実装の方が単純で高速である。

cursesを使用すると、プログラマは特定の端末装置を考慮せずに文字ベースのアプリケーションを書くことができる。cursesライブラリは、実行時に使用している端末装置を判別して適切に制御コードを送ることができる。cursesでは、実画面を1つ以上のウィンドウをマップしたものとしてモデル化する。各ウィンドウは文字の行列であり、プログラマは必要なウィンドウを実際に表示させたいように内容を設定して、cursesに対して画面の更新を指示する。cursesは内容の更新状況を調べ、実際に画面上で書き換える必要があるところだけを書き換えるような制御文字列を生成する。つまり、プログラマは画面にどう表示したいのかを文字行列で示し、cursesがそれを実際に表示する作業を受け持つ。

歴史

ケン・アーノルドが開発し、BSD UNIXの一部としてリリースし、ローグというゲームなどで使用された[3][4][5]

"curses" という名称はcursor optimizationに由来する[6]。また、ときおりviエディタでcursesが使われているという趣旨の解説が記載されている場合があるが、実際にはその逆で、viのカーソル移動のコードを参考にしてcursesが書かれた[4]

当初、termcapライブラリを使って実装された。数年後、カリフォルニア大学バークレー校viとtermcapを改良していたマーク・ホートン英語版AT&Tに行き、terminfoを使った別のバージョンを作り、それがUNIX System IIIUNIX System Vに採用された。後者はライセンス上の制限があるため、BSDとAT&Tそれぞれのバージョンは独立に開発されている。AT&T版ではterminfoを使っただけでなく、以下のような改良も行われている。

  • ハイライト表示(ボールド表示、アンダーライン表示) - BSD版では単に「強調」として一種類しかサポートしていなかった。
  • 枠線の描画 - BSD版ではこの部分が貧弱だった。
  • 色付きの表示 - BSD版では全く対応していない。

AT&Tでのcurses開発は1990年代中ごろに終り、同じころX/OpenがcursesのAPIを定義した[7]。その後もncursesPDCurses英語版の開発は継続されている。BSD版cursesはNetBSDで保守されており、多バイト文字対応、termcapからterminfoへの移行などが行われている。

pcursesとPDcurses

ncursesはcursesの代替としてLinuxOpenBSDFreeBSDNetBSD向けにGNUプロジェクトで作られたライブラリであり、その後、POSIX準拠のUNIXに移植されていった。PDCurses (Public Domain Curses) はUNIX以外の DOSWindowsOS/2など向けに作られたcursesとほぼ同じ機能を提供するライブラリである。クロスプラットフォームのゲームなどで、Linuxではncurses、WindowsではPDCursesを使っているものがある。

1990年代には、4.4BSDでBSD版cursesにハイライト表示方法を複数サポートするなどの改良を施した。しかしこちらはあまり普及しなかった。それとは別に、AT&T版を真似た別のバージョンの開発が始まっていた。これには少なくとも2つの実装がある。pcurses(1982年開始)とPDCurses(Public Domain curses、1987年開始)である。

ncurses

ncurses (new curses) はpcursesから派生したもので、1993年にバージョン1.8.1から始まった[8]。ncursesは今では最も普及している実装であり、これに刺激されてNetBSDプロジェクトでのBSD版cursesの開発などが進められた[9][10]

移植性

ncursesライブラリは当初LinuxOpenBSDFreeBSDNetBSDを対象としていたが、その後POSIX準拠の各種Unix系システムに移植された。PDCursesはAPIや機能はncursesと全く同一ではないが、DOSWin32OS/2のコンソール端末やX11などで動作する。この両者間での移植は難しくはない。例えばローグライクゲームADOM英語版はLinux上でncursesを使って書かれたが、後にDOS上でPDCursesを使って移植された[11]

cursesを使ったソフトウェア

Tin(ニュースリーダー)。cursesを使ってカラー表示している。
Jack(CDリッパー)。cursesを使用

cursesは、テキストのみの表示デバイス(PCのコンソールモード、ANSI端末、telnetSSHのクライアントなど)でGUI風の機能を提供するよう設計されている。

cursesを使ったプログラムは、テキストのみの表示デバイスでよくあるコマンドラインインタフェース (CLI) ではなく、一般的なGUIに似たユーザインタフェースを採用することが多く、テキストボックスやスクロール可能なリストといったウィジェットを使う。それによってCLIよりも使いやすいものになり、同時にテキストのみを表示する各種デバイスでも利用可能である。また、GUIを使うよりも少ないリソースで動作可能である。

SVR4ではcursesを利用した言語 FMLI を導入し、それを使ったテキストのみのユーザインタフェースFACEを実装した。FACEはシステム管理用インタフェースに使われた。FMLIはSolarisでも使われていた。

cursesを使ったソフトウェアが必ずGUI風のテキストユーザインタフェースを採用するとは限らない。例えばviエディタはTUI/GUI的なインタフェースではない。

脚注

  1. ^ Thomas E. Dickey. “NCURSES - Frequently Asked Questions”. 2012年4月6日閲覧。
  2. ^ John Strang, Programming with curses, O'Reilly, ISBN 0-937175-02-1
  3. ^ Peter H. Salus (1994年10月). “The history of Unix is as much about collaboration as it is about technology”. Byte. 2012年4月6日閲覧。
  4. ^ a b Arnold, K. C. R. C. (1977). Screen Updating and Cursor Movement Optimization: A Library Package.. University of California, Berkeley. 
  5. ^ Kenneth C. R. C. Arnold; Elan Amir (1992年12月). “Screen Updating and Cursor Movement Optimization: A Library Package”. 2012年4月6日閲覧。
  6. ^ Thomas E. Dickey. “NCURSES - Frequently Asked Questions”. 2012年4月6日閲覧。
  7. ^ X/Open Curses, Issue 4 Version 2, Reference Pages”. The Open Group (1997年). 2012年4月6日閲覧。
  8. ^ Thomas E. Dickey (1996年12月). “NCURSES - New Curses”. 2012年4月6日閲覧。
  9. ^ NetBSD project (2004年2月). “CURSES_SCREEN(3), NetBSD Library Functions Manual”. 2012年4月6日閲覧。
  10. ^ Ruibiao Qiu (2005年9月). “NetBSD-SoC: Wide Character Support in NetBSD curses Library”. 2012年4月6日閲覧。
  11. ^ Thomas Biskup (1994-2007). “ADOM - The Past”. 2007年11月16日閲覧。

外部リンク

Read other articles:

2015 American crime drama television series This article is about the ABC TV series. It is not to be confused with American Crime Story. American CrimeGenreCrime dramaCreated byJohn RidleyStarring Felicity Huffman Timothy Hutton W. Earl Brown Richard Cabral Caitlin Gerard Benito Martinez Penelope Ann Miller Elvis Nolasco Johnny Ortiz Lili Taylor Trevor Jackson Connor Jessup Joey Pollari Angelique Rivera Regina King ComposerMark IshamCountry of originUnited StatesOriginal languages English Spa...

 

Soma Novothny Nazionalità  Ungheria Altezza 185 cm Peso 78 kg Calcio Ruolo Attaccante Squadra  Ruch Chorzów Carriera Giovanili 1999-2011 Veszprém2012-2013 Napoli Squadre di club1 2010-2012 Veszprém16 (10)2012-2013 Napoli0 (0)2013-2014→  Paganese24 (2)2014-2015→  Mantova13 (0)2015→  Südtirol18 (4)2015-2016→  Diósgyőr27 (8)2016 Sint-Truiden0 (0)2016-2017→  Diósgyőr23 (4)2017-2019 Újpest54 (26)2019→  Bus...

 

Questa voce sull'argomento calciatori italiani è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Luigi Mainardi Mainardi al Perugia della stagione 1967-1968 Nazionalità  Italia Altezza 177 cm Peso 76 kg Calcio Ruolo Attaccante Termine carriera 1969 Carriera Giovanili Plateola Sampdoria Squadre di club1 1961-1962 Siena30 (11)1962-1963 Sampdoria1 (0)1962-1964 Siena52 (21)1964-1965...

For the asteroid named after Nikolaus Lenau, see 7400 Lenau. Austrian poet Lenau in 1839 Nikolaus Lenau was the pen name of Nikolaus Franz Niembsch Edler von Strehlenau (13 August 1802 – 22 August 1850), a German-language Austrian poet. Biography Lenau's Grave in Weidling, Austria He was born at Csatád (Schadat), Kingdom of Hungary, now Lenauheim, Banat, then part of the Habsburg monarchy, now in Romania. His father, a Habsburg government official, died in 1807 in Budapest, leaving his chi...

 

Division of Jharkhand, India This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Santhal Pargana division – news · newspapers · books · scholar · JSTOR (August 2016) (Learn how and when to remove this message) Division of Jharkhand in IndiaSanthal Pargana divisionDivision of JharkhandLocation of Santhal Pargana ...

 

Державний комітет телебачення і радіомовлення України (Держкомтелерадіо) Приміщення комітетуЗагальна інформаціяКраїна  УкраїнаДата створення 2003Керівне відомство Кабінет Міністрів УкраїниРічний бюджет 1 964 898 500 ₴[1]Голова Олег НаливайкоПідвідомчі ор...

Map all coordinates using OpenStreetMap Download coordinates as: KML GPX (all coordinates) GPX (primary coordinates) GPX (secondary coordinates) Tasmania's Gordon Dam, one of the largest in Australia, was constructed in the 1970s. It has a catchment area of 1,280 km2 (494 sq mi). Dams and reservoirs in Australia is a link page for any dam or reservoir in Australia. Australian Capital Territory There are three key water storage facilities located in the Australian Capital Territory. The fourt...

 

This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Taikus, California – news · newspapers · books · scholar · JSTOR (April 2021) Taikus (also, Tagas, Tagus, Taiku, Taikushi, and Tigres) is a former Maidu settlement in Butte County, California. It was located near Cherokee at the head of Dry Creek; its...

 

Untuk museum bernama sama, lihat Museum Negeri Mpu Tantular. Kakawin Sutasoma karya Mpu Tantular Mpu Tantular yang hidup pada abad ke-14 di Majapahit adalah seorang pujangga ternama Sastra Jawa. Ia hidup pada pemerintahan raja Rājasanagara (Hayam Wuruk). Ia masih saudara sang raja yaitu keponakan (bhrātrātmaja dalam bahasa Kawi atau bahasa Sanskerta) dan menantu dari adik wanita sang raja Hayam Wuruk. Nama Tantular terdiri dari dua kata: tan (tidak) dan tular (tular atau terpengaruhi). Art...

Diplomatic missions of India   Countries that host an Indian embassy or high commission   Countries that do not host Indian missions   Republic of India The Republic of India has one of the largest diplomatic networks, reflecting its links in the world and particularly in neighbouring regions: Central Asia, the Middle East, East Africa, Europe, Southeast Asia, and the rest of the Indian subcontinent. There are also far-flung missions in the Caribbean and the Pac...

 

Empress of Austria from 1854 to 1898 Elisabeth of Bavaria redirects here. For other people with the same name, see Elisabeth of Bavaria (disambiguation) and Elisabeth of Austria. ElisabethElisabeth in 1867Empress consort of AustriaQueen consort of Hungary Queen of Bohemia Queen of Galicia and Lodomeria Queen of Croatia, Slavonia and Dalmatia (more...) Tenure24 April 1854 – 10 September 1898Coronation8 June 1867, BudapestQueen consort of Lombardy-VenetiaTenure24 April 1854 – 12 October 186...

 

Woman employed as a teacher in a private household For the obsolete term for an executive governing official, see Governess (government). For the film, see The Governess. This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (April 2009) (Learn how and when to remove this message) In Rebecca Solomon's 1851 painting The Governess, the title figure (seated right, with...

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (ديسمبر 2018) مقاطعة موور     الإحداثيات 43°40′N 92°45′W / 43.67°N 92.75°W / 43.67; -92.75 ...

 

Ritratto di Ermak (ca. XVII secolo) Ermak Timofeevič, noto semplicemente come Ermak (in russo Ермак Тимофеевич?; Granducato di Mosca, 1532 - 1542 – Siberia, 6 agosto 1585), è stato un militare russo cosacco, comandante in capo delle truppe russe che invasero il khanato di Sibir tra il 1579 e il 1585 ed esploratore della Siberia. La sua campagna militare in Siberia segnò l'inizio della colonizzazione russa in quelle regioni. Biografia La morte di Ermak, dipinto di Bori...

 

President of Peru from 1912 to 1914 This article is about the Peruvian president. For other uses, see Billinghurst (disambiguation). In this Spanish name, the first or paternal surname is Billinghurst and the second or maternal family name is Angulo. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Guillermo Billinghurst – n...

Sporting event delegationLesotho at theParalympicsIPC codeLESNPCNational Paralympic Committee of LesothoMedals Gold 0 Silver 0 Bronze 0 Total 0 Summer appearances2000200420082012201620202024 Lesotho made its Paralympic Games début at the 2000 Summer Paralympics in Sydney. It has competed in every edition of the Summer Paralympics since then, but never in the Winter Paralympics. Lesotho has never won a medal at the Paralympic Games.[1] A total of four athletes have represented Lesotho...

 

В Википедии есть статьи о других людях с фамилией Салас. Марио Салас Общая информация Полное имя Марио Альфредо Салас Сайег Родился 11 октября 1967(1967-10-11)[1] (56 лет)Винья-дель-Мар, Вальпараисо, Вальпараисо, Чили Гражданство  Чили Рост 178 см Позиция полузащитник Информац�...

 

Camillien Houde (1930) Camillien Houde (* 13. August 1889 in Montreal, Québec; † 11. September 1958 ebenda) war ein kanadischer Politiker. Er war viermal Bürgermeister von Montreal: von 1928 bis 1932, von 1934 bis 1936, von 1938 bis 1940 und von 1944 bis 1954. Darüber hinaus war er in den Jahren 1923 bis 1931 und 1939 bis 1944 Abgeordneter der Nationalversammlung von Québec. Während des Zweiten Weltkriegs war er vier Jahre lang ohne Anklage inhaftiert, da er sich vehement gegen die Ein...

此條目剧情、虛構用語或人物介紹过长过细,需清理无关故事主轴的细节、用語和角色介紹。 (2020年7月29日)劇情、用語和人物介紹都只是用於了解故事主軸,輔助讀者了解現實向的內容,而不是像資料庫般將所有出現的內容記下。请协助清理不必要的细节、用語和角色,让情节介绍更为简洁。ACG类條目的故事簡介不宜超过1000全角字。 琥珀望远镜第一版作者菲力普·普尔曼类...

 

Azerbaijani naval officer Fuad YusubovCommander of the Azerbaijani NavyIn office1993–1999PresidentHeydar AliyevPreceded byRafig AsgarovSucceeded byShahin Sultanov Personal detailsBorn15 March 1951 (1951-03-15) (age 73)Baku, Azerbaijan SSR, USSRMilitary serviceBranch/service Azerbaijani NavyYears of servicetill 1999RankCaptain First class Captain First Class Fuad Yusubov was the Commander of Azerbaijani Naval Forces.[1][2] He was replaced in 1999 by Vice Admira...