ncurses

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
ncurses
Linux-menuconfig.png
ncursesベースのmenuconfig
開発者トーマス・E・ディッキー
初回リリース1993 ; 29年前 (1993
安定リリース
6.3 [1] /2021年10月21日; 4ヶ月前 (2021-10-21
リポジトリ
で書かれているC
オペレーティング・システムPOSIX
タイプウィジェットツールキット
ライセンスX11ライセンス[2]
Webサイトinvisible-island .net / ncurses / ウィキデータでこれを編集する

ncurses(新しいcurses)は、プログラマーが端末に依存しない方法でテキストベースのユーザーインターフェイスを記述できるようにするアプリケーションプログラミングインターフェイス(API)を提供するプログラミングライブラリです。これは、ターミナルエミュレータで実行される「 GUIのような」アプリケーションソフトウェアを開発するためのツールキットです。また、リモートシェルを使用するときに発生する遅延を減らすために、画面の変更を最適化します。

ncursesは、System V Release 4.0(SVr4)cursesのフリーソフトウェアエミュレーションです。

ncursesには、 Ada[3] Python[4] Gambas[5] Ruby[6] PHP[7] JavaScript[8]Perlなどのさまざまなプログラミング言語のバインディングがあります[9]

歴史

新しいバージョンとして、ncursesはSystem Vリリース4.0(SVr4)cursesのフリーソフトウェアエミュレーションであり、それ自体が廃止された4.4BSDcursesを拡張したものです。[10] X /Openによって発行されたXSICurses標準は、SystemV明示的かつ厳密にモデル化されています

のろい

最初のcursesライブラリは、テキストベースのアドベンチャーゲームであるRogueをサポートするために、1980年頃にカリフォルニア大学バークレー校でBSDオペレーティングシステム用に開発されました。もともとは、 viエディターなどの他のプログラムで使用されていたtermcapライブラリを使用していました。[10]

BSD cursesライブラリの成功により、BellLabsはSystemV Release2Unixシステムで拡張cursesライブラリをリリースするようになりましたこのライブラリはより強力で、termcapを使用する代わりに、terminfoを使用しました。ただし、ソースコードの配布に関するAT&Tのポリシーにより、この改善されたcursesライブラリはBSDコミュニティではあまり受け入れられていませんでした。[10]

pcurses

1982年頃、Pavel Curtisは、ベル研究所のcursesのフリーウェアクローンであるpcursesの作業を開始しました。これは、1986年までさまざまな人々によって維持されていました。[11]

ncurses

1991年後半にZeydBen-Halimが開発作業を引き継いだときに、pcursesライブラリはさらに改善されました。[10] [11] [12]新しいライブラリは1993年11月にncursesとしてリリースされ、バージョン1.8.1が最初のメジャーリリースになりました。 。その後の作業は、バージョン1.8.8(M1995)まで、JuergenPfeiferによって作成されたフォームおよびメニューライブラリを追加したEricS.Raymondによって推進されました。[13] 1996年以来、ThomasE.Dickeyによって保守されています。[11]

ほとんどのncurses呼び出しは、古いcursesに簡単に移植できます。System V cursesの実装は、再コンパイルするだけでBSDcursesプログラムをサポートできます。[14]ただし、古い呪いには対応するものが存在しないため、端末のサイズ変更の処理など、いくつかの領域に問題があります。

ターミナルデータベース

Ncursesは、terminfo(拡張可能なデータを含む)またはtermcapのいずれかを使用できます。cursesの他の実装では、通常、terminfoを使用します。少数派はtermcapを使用します。両方を使用するものはほとんどありません(mytinfoは古い例外[15]でした)。

ライセンス

NcursesはGNUProjectの一部ですが、GNUGPLまたはLGPLでは配布されていませ代わりに、パーミッシブフリーソフトウェアライセンス、つまりMITライセンスの下で配布されます。[16]これは、開発者が著作権を割り当てたときに フリーソフトウェアファウンデーションとの間で合意されたためです。

FSFに権利を譲渡することが合意されたとき、次のような条項がありました。[16]

財団は、財団またはその代理人または譲受人の管理下で行われるパッケージまたは「パッケージに基づく」作業のすべての配布は、明示的かつ永続的に、条件が適用される作品であり、これらの条件を正確に通知して、同じ条件で誰にでも作品のコピーを再配布すること。

保守者のThomasE.Dickeyによると、これは、ライブラリにリンクできるプログラムに制限を課すため、どのバージョンでもGPLへの再ライセンスを排除します。[16]

ncursesを使用するプログラム

ncursesを使用するプログラムは何百もあります。[17] [18] GNU Screenw3mなどの一部は、 termcapインターフェースのみを使用し、画面管理を自分で実行します。GNU Midnight CommanderYaSTなどの他の製品は、cursesプログラミングインターフェイスを使用します。

も参照してください

参照

  1. ^ 「ncurses6.3の発表」2021年11月11日取得
  2. ^ 「NCURSES—ライセンス」2013年7月9日取得
  3. ^ 「ncursesのAda95バインディング」
  4. ^ 「Pythonを使用したCursesプログラミング-Pythonドキュメント」
  5. ^ "gb.ncurses--GambasWiki"
  6. ^ "ncursesRuby-RubyGems.org"
  7. ^ 「Ncurses関数-PHPマニュアル」
  8. ^ 「ncプラグイン:SpiderApeのncursesバインディング」
  9. ^ 「Curses::UI-CursesベースのOOユーザーインターフェイスフレームワーク」
  10. ^ a b c d エリックS.レイモンド(1995年9月)。「ncurses:Linux用のポータブル画面処理」LinuxJournal
  11. ^ a b c トーマス・E・ディッキー(1996年12月)。「NCURSES-新しい呪い」
  12. ^ ncurses 1.8.1のREADMEファイルには、「v0.11992年7月31日」および「v1.8.11993年11月5日」と記載されており、 NEWS(変更ログ)ファイルと一致します。
  13. ^ 「NCURSES-よくある質問(FAQ):NCURSESを書いたのは誰ですか?」
  14. ^ 「Ncurses内部へのハッカーのガイド」
  15. ^ シドニーS.ワインスタイン(1993年4月)。「ネットワーク上」C /C++ユーザージャーナル。2014年8月11日にオリジナルからアーカイブされまし2017年9月15日取得
  16. ^ a b c "NCURSES-よくある質問(FAQ):GPLされていますか?"
  17. ^ 「検索結果:freshmeat.netの+ncurses」2012年2月18日にオリジナルからアーカイブされました2013年5月10日取得
  18. ^ 「'ncurses'とタグ付けされたプロジェクト" .ohloh。

外部リンク