2015年08月25日の日記です


ntsysv の名前の由来  2015-08-25 18:44:17  コンピュータ

久しぶりにサーバー設定していて、ntsysv を起動してから、あぁ、そうじゃなくて何だっけ、普通にコマンドラインで設定するやつ、と思った。


正解は chkconfig なのだけど、まぁ、そこはどうでも良い話。



わけわからん、という人のために書いておくと、サーバー起動と同時にデーモン(サービスプログラム)を起動したい、ということは多い。

というか、いちいち必要なデーモンを手動で起動なんてしてられない。


コマンドラインでその設定をするソフトが chkconfig 。

chkconfig をわかりやすく、カーソルキーだけで設定させてくれるソフトが ntsysv 。





まぁ、ともかくその時は chkconfig が思い出せなかった。

ntsysv って、検索してみたら、こんな質問があった。



ntsysvコマンドは、何の略ですか?



New Technologies System Virtualisation だ、という唯一の答えがベストアンサーだ。


いや、明らかに違うから。それ、単に VMware 好きな技術者が書いている、ブログのタイトルだから。


以前書いた通り、こうしたQ&Aコミュニティはまともな答えが出ないと思っているけど、その答えがベストアンサーとして残るのはどうもいただけない。



でも、じゃぁ ntsysv が何の略か、というと僕も答えを持ち合わせていない。

答えを知らないのであれば、上のベストアンサーが間違っている、と言い切る根拠だってないことになる。




推測に過ぎない、と断った上だけど、後半部分はわかる。sysv の部分だ。


System V というのは、AT&T が作った UNIX ディストリビューションの名前だ。

というか、UNIX は AT&T が生み出したものだから、本家だな。


V というのは、ローマ数字で 5 のこと。バージョン5だから System V 。「しすてむふぁいぶ」と読むこと。



Linux は、基本的に System V 互換を目指して作り出されたフリーの UNIX 環境だ。

カーネル以外は BSD 由来の部分が多いので BSD っぽい操作をするところも多いのだけど、System V を目指した。ここが重要。



そして、多くの Linux ディストリビューションが、サーバ起動時のデーモン起動方法として、System V 互換の手法を取っている。

/etc/rc.d/ ディレクトリ下に、起動のためのスクリプトを置いておく、というやつだ。



実際には、/etc/rc.d/init.d/ にスクリプトが置かれ、/etc/rc.d/rc3.d/ なんかの下に、起動順位に従ったファイル名でリンクされる。

起動時には、このリンクをファイル名順に実行することで、デーモンが起動される。


つまり、chkconfig の正体は、init.d のスクリプトを他のディレクトリの下にリンクしたり、リンクを削除したりするプログラムだ。

ntsysv は、init.d の中のファイル一覧を表示して、カーソルキーとスペースキーで、起動するか再起動するかを変更できるプログラムだ。


…というわけで、ntsysv は、System V のデーモン起動方法と深く結びついている。

だから、sysv の部分は System V の略だと考えて、まず間違いないと思われる。




まずやって見たのは、man ntsysv だ。

マニュアルが読める。


特に名前に関する情報は無かった。


次に、ntsysv と System V を並べてググってみる。

ntsysv は、ほにゃらら System V の略だよ、って書いたページがあることを期待したのだ。


期待したのだけど…なかった。少なくとも、僕は見つけられなかった。


でも、「ntsysv は ncurses ベースで作られた、System V 起動ファイルの設定ソフトだよ」ってページは多数見つかった。


なるほど、これで n に関してはわかった。ncurses の n のようだ。



ちなみに、ncurses は new curses の略だ。「新しい呪い」ではなくて、curses は cursor を操作するためのライブラリプログラム。


その昔、UNIX にはテレタイプが付けられていた。コンピューターにはテレタイプ、が当たり前だった時代だ。


でも、そのうち「ビデオテレタイプ」と呼ばれる、CRT 端末が登場した。

そうした端末では、カーソル位置を自由に設定するコマンドが存在していることがあって、文字を自由な位置に配置できた。


でも、端末ごとに互換性が無くて非常に面倒くさい。

これをうまく吸収してしまい、プログラマは「カーソルを指定位置へ」と命令するだけでよきに計らってくれるライブラリが作られた。


端末ごとに全く異なる、カーソル(cursor)を巡る呪い(curses)のような状況から解放してくれる呪文(curses)だ。



…でも、あるころに、何らかの事故によりソースファイルが失われたらしい。

非常に便利なソフトで、無くなってしまうのは困るので、同じ機能のものが作り直された。

これが new curses 。ncurses だ。



余談だけど、1文字の大きさが変わったりする日本語では、curses はまともに動かなかった。新たな呪いだ。


日本語対応にした curses を、ペリカン curses という。


文字データが端末に「流れ込んでいく」と考えると、文字化けをするのは、何かが通せんぼしているからだ。

curses が日本語だけを通せんぼしているのであれば、日本語が通るようにしてやらなくてはならない。



「日本語が通る」なので、最初は「日通」と呼ばれたらしい。

でも、日通といえばペリカン便。そこで、日本語対応の curses を「ペリカン curses」と呼ぶようになったのだ。


嘘みたいな本当の話。

UNIX のソフトには、こんな名前の由来が沢山ある。




話がそれた。


ntsysv の t の部分だけど、考えられそうなのが2つ。


一つは、text 。ncurses を使った text 画面ベースだ、という主張。


というのも、このソフトが作られたのは 1997 年ごろのようで、世の中がコマンドラインインターフェイスからグラフィカルインターフェイスへ変わっていく頃なのだ。


「ビジュアルに」設定したいのであれば、X Window という手だってある。


でも、X Window は「手軽」に見えるけど「気軽」ではない。

ビジュアルに表現していても、テキスト画面で使えることを重視したのではないかと思う。



もう一つは、toggle 。

ntsysv を使ったことある人はわかると思うけど、各種デーモンを「起動するかしないか」だけを選ぶため、カーソルでリストの中を動いて、スペースキーを押すと起動するかどうかを切り替えられる。


起動設定を簡単に toggle 出来る、という意味で、この t でもおかしくない気はする。




このプログラム作った人、man ntsysv で連絡先まで書いてあるから、聞いてみればわかるんだろうけどね。




後日追記 2015.8.30

コメント欄で「nt は newt の略」という説を頂いた。


不勉強で newt を知らなかったのだけど、教えてもらってから調べてみたらすごく信憑性高い。多分それ。


ncurses は、画面の好きな位置にカーソルを移動したり、文字に色を付けたりするための仕組み。

BASIC 時代を知っている人には、color と locate が使えるようになる「だけ」だと思ってもらっていい。


#パソコン通信時代を知る人なら、エスケープシーケンスを適切に選ぶだけのライブラリ、と言えばさらに理解してもらえるか。



newt は、ncurses を利用して、テキスト画面でウィンドウシステムを実現してしまおう、というライブラリだ。


X-Window では画面描画を行う方法を提供するけど、ウィンドウシステムは提供しない。

ウィンドウシステムとして使いたければ、好きなウィンドウマネージャを組み合わせる必要がある、というのと似ている。


ntsysv の説明では「ncurses based」であることを書いてあることが多いのだけど、実は newt based でもあった。



そして、この newt は、 RedHat 社が開発したものだ。


RedHat のテキストベースのインストーラが作り出す画面は newt によるもの。

名前も詳細も知らなかったのだけど、統一された操作感だから、なんかライブラリがあるんだろうな、程度には感じていた。


#最近は X-Window ベースでインストールできるので、この画面はあまり見なくなった。



そして、newt の開発者と ntsysv の開発者は、同一人物だった。Erik Troan さん。


そんなわけで、ntsysv の「nt」は newt の略ではないか、という説には非常に信憑性がある。



ところで、newt は「イモリ」の意味だ。公式には Not Erik's Windowing Toolkit の略となっている。

Erik さんが作ったのに、なんで Not Erik's なのかは知らない。


でも、curses(呪文)と一緒に使う、って時点で「イモリ」の名前が先にあったんじゃないかという気がする。

なかなか良いネーミングセンスだ。




同じテーマの日記(最近の一覧)

コンピュータ

別年同日の日記

02年 飲み

02年 JAVA

04年 あと少し

04年 結構忙しい

06年 携帯電話

14年 チキンラーメンの誕生日(1958)

16年 Linuxの存在が明かされた日(1991)


申し訳ありませんが、現在意見投稿をできない状態にしています

あきよし】 情報ありがとうございます! なるほど、ntsysv と newt 、作者さんが同じなのですね。恥ずかしながら newt の存在を知りませんでした。本文に追記します。 (2015-08-30 12:03:46)

【m.ukai】 newt ベースで作られているようなので、NewT SYStem V の略という説を唱えてみます。(で newt が何の略かという泥沼)  (2015-08-26 10:16:38)


戻る
トップページへ

-- share --

0001

-- follow --




- Reverse Link -