--sighandler-t という型を新たに定義し、それを使って 型亘暠をおこなっています。こちらのほうはたいへんすっ きりとした宣言になっているのか分かるでしようか。 それでは、 telnet のソースコードでシグナルを扱って いる部分をみていきましよう。シグナルはいくつかのファ イルで扱っていますが、 こでは sys-bsd. c ファイルを とりあげます。 ファイルのう頁のはうでは、シグナルハンドラの戻り値 の型を決定しています。 ソースコード * when SIGINFO is received . ayt-status() (void) call(status, #endif "status " "notmuch" #def ine #e1se #endif #if defined(CRAY) Ⅱ (defined(USE_TERMIO) & & ! defined(SYSV_TERMIO) ) SIG_FUNC_RET #define SIG_FUNC_RET void int 関数の定義でも、 SIGINFO に関する ifdef で括って おくことで不要な関数定義を避けています。また、この関 数には有効な引数がないことも分かります。ここでは引数 のあるシグナルハンドラしカ呂介していませんが、このよ うな関数でも正しくコンパイルすることができます。 sys-bsd. c ファイルに戻りましよう。次にシグナル里 の言当か現れるのは、 TerminaINewMode という巨大な 関数のなかです。ここでも、ます SIG-FUNC-RET 型 のシグナルハンドラとして旦暠しています。このとき、関 数カ躾際に必要かどうかを、登録したいシグナルが定義さ れているかて判断しています。 シグナルハンドラの戻り値は、システムによって void となっていたり int となっていたりします。これらの違 いを吸収するために、 SIG-FUNC-RET というマクロを 利用しています。シグナルハンドラの戻り値の型をこのマ クロに成疋しておくことで、シグナルハンドラの旦暠時に 考慮する必要がなくなっています。 このコードのすぐ後ろに、実際に SIG-FUNC-RET を使ってシグナルハンドラを定義している部分がありま す。このコードは SIGINFO に関する ifdef て話られて います。ここで旦暠している ayt-status は、 SIGINFO のシグナルハンドラとして用意されている関数です。 SIG- INFO カイ吏えないシステムでは不要なので、このようにし #endif extern SIG—FUNC_RET ayt—status ( ) ; #ifdef SIGINFO ています。 72 * Function that gets called #ifdef SIGINFO れています。その部分は次のようになっています。 この関数は、実際には commands. c ファイルで旦暠さ す。 を戻り値の型とし、 K&R 形式の宣言をおこなっていま 型宣言としては、さきほど決定した SIG-FUNC-RET #ifdef #endif #ifdef #endif SIGTSTP SIG_FUNC_RET susp ( ) ; / * SIGTSTP * / SIGINFO SIG_FUNC_RET ayt ( ) ; 関数を宣言したあとは、同様に ifdef て才舌りながら sig- nal 関数を使ってシグナルハンドラを登録します。 #ifdef #endif #ifdef #endif SIGTSTP (void) signa1(SIGTSTP, susp) ; / * SIGTSTP * / SIGINFO (void) signa1(SIGINFO, ayt) ; signal 関数の戻り値はすでに設定されているシグナル ハンドラですが、こでは void 型にキャストすることで、 返される値を捨てています。このプログラムでは、以前に 登録されていたシグナルハンドラを再度設定する操作は発 生しないので、これを保存しないのは糸断昇できます。さら にいえは、 signal 関数の実行が成功したかどうかをチェッ クしたほうがよいのでしようが、失敗していたとしてもど ちらのシグナルもプログラムの実行に必須ではないため、 そのままプログラムの実行か継続されます。つまり、 sig- Ⅱ al 関数が失敗したことが分かっても何も処理しないこと UNIX MAGAZINE 2002.2
特集ネットワークの基礎知識 0 がどのように登録するかは、メーリングリストの内容に応 して決まります。たとえば、メールで購読登録をする形式 にすれば、原則として誰でも登録できるようになります。 これに一定の枠をはめたいのであれは、メーリングリスト 管理者による登金莉寉認、、あるいはなんらかの制限を設ける ことなども必要になるでしよう。 メーリングリストへの参加登録は誰もかオ責極的におこな いますが、月店旦の手続きをしない人も多い点に注意すべき です。これを防ぐには、 「あなたは〇〇メーリングリストに登録されています。 のメーリングリストの購読がすでに不要になったのなら、 下記のガ去で月旦することができます。 のようなメッセージを定期的に送るといったガ去も必に なるでしよう。 情報の招共 メーリングリストのよくある利用形態の 1 つが、情幸財是 供です。内容は新製品情報だったり、システム管理者のた めのパッチ情報リストだったりといろいろですが、基本的 にはなんらかの情報を伝える目的で作られます。このよう なメーリングリストを運用する場合には、次の点に注意す る必要があります。 ・才第高者の制限 情報の提供を主体にしている場合には、その情報窈是供 者 ( 個人やグルーフつカ鴃まっていて、内容にも一定の イ衄生があることか求められます。誰でもメーリングリ ストに情報を流せるのでは、運用目的に適いません。 方、描匠では、メーリングリストに対して SPAM が送 られるケースも多発しています。頻繁に SPAM か送ら れてくるようなメーリングリストでは、いすれは参加者 がいなくなってしまうでしよう。その意味でも、情報 提供を主目的とするメーリングリストでは、高できる ューサーを制限する必要があります。 ・メールの配送オ冓のオーバーヘッド メンノヾーか数ート人程度のメーリングリストなら、メール の配送にもそれほど時間はかからないでしよう。しか し、参加者か数百人以にになってくると、メールの 処理にかなりの負荷がかかるようになります。メーリン グリストの管理者は、どのくらいの参加者かる当求されて 98 いるかをつねに石忍し、メールの酉当処理に要する日判爿 を定期的に監視す , 、くきです。そして、メールの幻こ 定程度以の嗤間がかかるようになってきたら、 MTA を強化したり、 MTA として利用しているシステムの 能強化を図るといった対処をする必要があります。ま た、あまりに規模カ吠きくなってしまった場合は、 ISP に運営を依頼するといった、外部への委託を考慮すべき かもしれません。 ・醋不能アドレスの扱い さきほども述べたように、購読手続きは誰でも気軽にお こないますが、月旦の処理は忘れる傾向があります。 のため、ある程度以上の規模のメーリングリストでは、 酉占不能アドレスが発生することは避けられません。し たがって、これらの醪不能アドレスを抹消する手続き についても町寉に定める必要があります。 ・受信者の秘匿 SPAM 対策の一環として、メールアドレスなどの参加 者の情幸ヾ届洩しないように一ト分主意すべきです。同窓 会や社員名簿などがいわゆる名簿業者に持ち込まれるの と同様、電子メールを用いたダイレクトメールのために メールアドレスを収集し、それを販売する不届き者もあ とを絶ちません。したがって、メーリングリストを管理 する側では、参加者リストか漏れないように厳重に管理 すべきでしよう。とくに、組織タ ) 人が登録されている メーリングリストでは、十分な注意が必要です。 ☆ Majordomo と fml を例に、メーリングリスト管理ソ フトウェアのインストールと設定の基本的な手順を駆け足 て説明しました。 Majordomo は 10 年はど前に公開されて以来、世界中 の多くの人びとに利用されています。そのぶん、安定して 運用できるという安じ、感があります。一方の fml も、山も丘 はひろく使われており、開発も活発に続けられているよう です。いすれも詳細なドキュメントが付属しているので、 これらをよく読み、効果的な情報共有の手段として活用し ましよう。 UNIX MAGAZINE 2002.2
連載 /JavaServer Pages—@ 図 8 アクセスカウンタ直の表示 (counterl ・ jsp) “方イル編表示強常ジやンプ 0 プめマーりタスうヘルフせ 木私索ロカりマゆ戔一物““。、新着、お第、メントズ ドゞ第いに 0 - 0 にこを 3 回目のアクセスです。 cou れ te 「 1 . jsp 物オ : 発 73 薹 図 9 counter2. jsp は増える レ ! こにい - にい [ 3 新 にアクセスしてもアクセスカウンタの値 亠フ E ) 編集 ) 示常 0 ジやンプフマーり ( 印タスりヘルフ 気ホーム気うカりゆ、橋”。、新、おをゆ、メントズ 4 回目のアクセスてす。 counte 「 2 .jsp counterl. 」 sp に 3 回アクセスしてから counter2. jsp にアクセスしたときのプラウサ画面か図 9 です。表示され ているアクセスカウンタの値が 4 になっていることを 石忍してください。 application オプジェクトを介してア クセスカウンタを受け渡しているので、 counterl. jsp と counter2. jsp のどちらにアクセスしてもアクセスカウン タの値は更新されます。 ファイルのインクルード アクセスカウンタの説明の箇所で、、はとんど同し " JSP ファイルの例を挙げたのを機にまたすこし横道に逸あ るファイルから別のファイルをインクルードする ( 読み込 む ) 去を紹介しておきます。 さきほどとりあげた例では、アクセスカウンタのコード が counterl. jsp と counter2. jsp の 2 つのファイノレにだ け書かれていました。ところが、アプリケーションのすべ てのページに対するアクセスの総数を調べるには、すべて の JSP ページに図 7 の JSP コードが必要になります。 図 7 のように JSP コードをそれぞれのファイルに埋め 込んでしまうと、 JSP コードを修正する必要が生したとき に、コードが埋め込まれたすべてのファイルを 1 つ 1 つ 修正しなくてはなりません。 則回は、 pageContext 暗黙オプジェクトの include() メソッドを利用してファイルを読み込む去を説明しまし 80 た。今回は、 C プログラムの、、 #include" マクロに似た、 2 不頁のファイル耳石ムみ機能について説明します。 include ティレクティフ ページに記する必要があるときに便利です。 これらの機能は同し内容、とくに JSP コードを複数の ・ⅲ clude アクション ・ include ディレクテイプ 関する JSP コードを含む counter ファイルです。 き換えたもの、図 11 はアクセスカウンタの計算と表示に 図 10 は、 include ディレクテイプを使って図 7 を書 みましよう。 図 7 をⅲ clude ディレクテイプを使って作りなおして く %@ include file = " 〃観ん " % > には読み込むファイルの相対パスを指定してください。 以下にⅲ clude ディレクテイプの文法を示します。観ん 注意してください。 込む側のページからの相対 URL として解釈されることに にほかのページへの相対 URL が含まれている場合、読み せて市忍してください。また、読み込まれる側のファイル などの不整合カ起きていないかをすべてのファイルの組合 漢字コードか読み込む側のファイルと異なっている ・不要な JSP や HTML のヘッダか記述されている けれはなりません。 取り込まれた場所に展開されたときに整合陸がとれていな いていなくてもかまいません。ただし、ファイルの内容は ん。・ jsp や . html 、 . txt である必要はなく、拡張子が付 読み込まれる側のファイルの拡張子に制約はありませ ことになります。 送られる 3. コンパイル後のプログラムを実行した結果カワラウザに 2. Java ファイルに変換してコンパイルされ 1. ファイルを取り込んだあとに もとの JSP ファイルは、 置に任意のファイルの内容をそのまま取り込む機能です。 include ディレクテイプは、ファイル内の指定した位 UNIX MAGAZINE 2002.2
ー横着】ブログラミ / グ② が速く移動できる。つまり、インクリメンタル本館きは・関直 なテキスト編集作業にも不可欠な機能なのである。 日本語のインクリメンタル検索 しかし、日本語でインクリメンタル検索をおこなおうと すると、かな漢字変換という壁に突き当たる 4 。インクリ メンタル検索では、 1 文字入力するごとに検索を進めてい く点か重要だが、かな漢字変換では、単語の読み本を入 力してから漢字に変換するという手順が欠かせない。その ため、 1 文字入力単位のインクリメンタル検索は不可能で ある。一方、英語の場合は、入力する文字とキーが 1 対 1 に対応しているため、このようなイに合は起きない。 ー引殳に、かな漢字変換には次の 3 つのステッフ。が必要 になる。 ・読みをローマ字として入力する。 ・読みを漢字に変換する。 ・変擲甫から適切な単語お尺する。 たとえは、日本語で「奇という文字を入力するには、 [ 新司 k i k a i [ 新司區底司區応田 [ 亘司のよ 、 10 回ものキー入力が必要になる 5 。このため、かな 漢字変換をともなう場合には、キーワードの最初の数文字 を入力するだけて検索が可能なインクリメンタル検索はで きない。これでは、あまりに面倒で頭がおかしくなりそう である。 そこで、ローマ字で日本語のインクリメンタル検索を おこなうシステム Migemo[1] を開発した。私の場合、 Emacs 上でインクリメンタル検索を頻繁におこなうため、 実装も Emacs 用とした。 Migemo では、かな漢字変換のステップを省略し、ロー マ字のまま日本語を検索する。図 2 は、 Migemo を用い てキーワード「奇をインクリメンタル本 ! する過程を 示している。 4 T-Code や TUT-Code など、漢字を妾入力するカ試もあるが、あ まり一 JC 、はない。 5 [ 新司 : かな漢字変換を開始、 [ 0 新近巨 ] : かなを漢字に変換、 [ ] : 変換↑嚇甫から適切な単語お尺、第亟司 : かな漢字変換ク冬了、をそ Migemo とは 130 れぞれ意床する。 図 2 Migemo によるインクリメンタル くつかの綺麁な語句と奇怪な御世辞 (Fundame.nt.a1 l-search : 、くかの綺麁な語句と奇怪な御世辞 l-search : k 、上 * * [l ⅱ只を 0 [ Fundamenta1 いくつかのな語ロと奇怪な御世 l-search : 缸 、上 * * ⅱ e 0 (Fundamenta1 いつかの綺麁な語句と御辞 l-search: k 、 J:** ⅱ窰 e 0 (Fundmenta1 この例では、ユーザーは C-s k i k の 4 打鍵で目的の テキスト位置に到達している。一方、かな漢字変換をとも なう検索では、前記のとおり最低でも 10 打鍵が必要にな る。このように、 Migemo を使えは、かな漢字変換の手 間が省け、スムーズな日本語のインクリメンタル検索が可 能になる。 Migemo のインストール Migemo は Emacs 上で動くソフトウェアである。手 許の環竟では、 Emacs 20 / 21 で動くことを石忍している。 Migemo を利用するには、下記のソフトウェアをイン ストールする必要がある。 ・ Emacs[2] : 執引 ! での最第〒版は 21.1 ・ APEL[3] : Emacs Lisp で不身生の高いプログラムを 書くためのライプラリ ・ Ruby 1.6 以降 [ 4 ] : オプジェクト孑スクリプト言語 ・ Ruby/Bsearch[5] : 配列を 2 分探索する Ruby 用のラ イプラリ ・ Ruby/Romkan[6] : ローマ字とひらがなを相互に変換 する Ruby 用のライプラリ ・ Migemo : Migemo 本イ本 Ruby/Bsearch と Ruby/Romkan は、 Migemo の ために開発したライプラリである。 それぞれ、以下のようにしてインストールする 6 6 ruby —rrbconfig —e 'puts Config::CONFlG 「 'sitelibdir ” ] ' を実行して表示されるディレクトリに bsearch. rb および romkan. rb をコピーする。 UNIX MAGAZINE 2002.2
・ makedepend Cyrus IMAP サーバーのソースパッケージを展開した ディレクトリに、 makedepend というサプディレクト リがあります。その下に必要なファイルが置かれている ので、事前にインストールしておきましよう。 ・ PerI バージョン 5 以上が必要です ( 推奨は 5.005 ー 02 ) 。 Brandon Allbery 氏が作成した cyradm (IMAP サ ーバー管理用プログラム ) を利用する際に必要になり ます。 ・ OpenSSL バージョン 0.9.4 以降が必要です。 STARTTLS や SSL を利用して通信をおこなう場合に必要です。 ・ libwr ap Wietse Venema 氏か物発した IP べースのアクセス制 御ライプラリです。 ftp://ftp.porcupine ・ org/pub/security/ から tcp-wrapper パッケージとして取得できます。 ・ LMTP (Local Mail Transfer Protocol) [ 9 ] に対応 した MTA sendmail 8.10.0 以降を推奨します。 postfix での使用 例もあるようです。 ・ INN NetNews を読む場合はインストールします。 ・ AgentX と pthread SNMP で IMAP サーバーをモニタリングする場合に 必要です。下記の URL から、 CMU カ躾装している SNMP サーバーが入手できます。 http://www.net.cmu.edu/groups/netdev/ agentx/ インストール それでは、インストール作業を始めましよう。まず、 Cyrus の SASL ライプラリと IMAP サーバーの両方に 必な BerkeIey DB をインストールします。図 23 にイ ンストールの手順を示します。 この例では、 /usr/locaI/BerkeleyDB. 3.3 ディレクト リが作成さその下に各種のプログラムとライプラリ、 べツーダフーアーイルがイーンストールされます。さきほども述 UNIX MAGAZINE 2002.2 図 23 BerkeIey DB のインストール手】頂 % tar xvzf db ー 3.3.11. tar ・ gz % cd db—3.3. ll/build_unix . /dist/configure % make % su # make install べたように、 /usr/Iocal/BerkeleyDB. 3.3/lib ディレク トリを共有ライプラリのパスに追加する必要があります。 続いて、 Cyrus SASL ライプラリをインストールしま す。手順を図 24 に示します。 configure を実行する際に、さきはど導入した Berke- ley DB のための環境変数を設定しています。 -—with- dblib=berkeley は、データベースの管理に BerkeIey DB を利用するための指定です。また、 —enable-login は、 login 方式の認証を可能にするための指定です。あま りお勧めできませんが、旧いクライアントのなかには、 のカ試しか利用できないものもあります。 最後にシンポリック・リンクを張っています。デフォ ルトの設定でインストールすると、プラグインの共有ラ イプラリを /usr/lib/sasl として検索しますが、実際に は /usr/local/lib/sasl にインストールされています。そ こで、整合性をとるためにリンクを張っています。 —enable-plugindir=/usr/local/lib/sasl を指定し た場合は、 ここでシンポリック・リンクを張る必要はあ りません。 いよいよ本番です。 Cyrus IMAP サーノヾーのインス トールについて説明します。ソースパッケージは、 Cyrus SASL と同し FTP サイト、 ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ から入手します。執筆琲点の最新版は cyrus-imapd-2.0. 16. tar. gz です。 インストール作業を始める前に、運用時の安全のために IMAP 用のアカウントを作成しておくことをお勧めしま す。ここでは、 cyrus という名前のアカウントを作成する ことにします。 adduser コマンドで作成するか、もしくは vipw コマンドで直接 /etc/passwd ファイルを編集しま す。今回は vipw を使い、 passwd ファイルに図 25 の工 ントリを追加しました。 IMAP サーバーのインストールの手順を図 26 に示し 109
けつま 3 びっ u ド などのイ乍業カきる竟てす。そこで、上記のイ 1 に必要 なソフトウェアをインストールし、環竟設定をしていきま す。 なアプリケーションの選定 前述のとおり、 OS としては NetBSD-1.5.2 をインス トールしました。この OS を選んた理由は簡単です。最初 から NetBSD を使おうと決めていましたが、 current バ ージョンを追いかけるには実力も気力も不足しています。 そこで、 release バージョンのなかて最啼万のものお尺し たわけです。 さらに、彳するアプリケーションのパッケージを取得 して /local/pkgsrc に展開しました。ふだん使う一ヨ殳ュー ザーのアカウントも作成しておきます。 さて、上で列挙した作業ができるようにするためには、 具 f 勺にどのアプリケーションを使ってどんな環竟を構築 すればよいのでしよう。ます、 X ウインドウ・システムは 必須てす。 X か設定できたら、ウインドウ・マネージャー も用意しなけれはなりません。自分が一ヨ殳ューザーとして 使うシェルも必要です。これらを用意したら、あとはこ の PC でおこなう竹業に必要な各アプリケーションをイ ンストールしていけはいいはすです。山も匠は NetBSD の パッケージ (pkgsrc) も充実しており、簡単にインストー ルできるアフリケーションがたくさんあります。実際にイ ンストールしたアプリケーションについてはあとで紹介し ます。なお、今回のインストール竹喋はすべて root でお こないました。 X の選択 XFree86 を使う X ウインドウ・システムのインストールおよひ薇疋につ いては、これまで、、とても面倒な作業 " というイメージを もっていました。マウスの不鶤頁やディスプレイの解像度、 ピデオカードの不鶤頁など、自分ではどう調べてもよく分か らないことを 1 っ 1 つ考えながら設定していく必喫があっ たからです。とくに新しいノート PC では、 XFree86 が うまく重川乍しないこともありました。 しかし、最新の XFree86 には自動的に設定ファイル を生成する機能があります。 XFree86 Project の Web 138 ページ (http://www.xfree86.org/) て市寉認したところ、 疋ファイルの自重力生 . 成機能は XFree86 ノヾージョン 4 シ リーズで新しく追加されたようです。 X の設定が大の苦手 の私としては、ぜひこのバージョン 4 を使いたいと思いま ところが、 NetBSD-1.5.2 に付属しているのは XFree 86 3.3.6 です。となると、 XFree86 ノヾージョン 4 のソー スを取得してバイナリの構築からやりなおさなけ川まなら ないのか・ ・・と考えました。時間がかかりそうで、ちょ っと腰が引けます。 X について何か情報がないかと思い、 NetBSD-1.5.2 のリリースノート 2 を読んでみました。期 待どおり X ウインドウ・システムに関する説明があり、 XFree86 ノヾージョン 4.1.0 をもとにした NetBSD/i386 1.5. x 向けパイナリ・スナップショット が用意されていると書かれていました。このスナップショ ットを取得して XFree86 3.3.6 のバイナリと取り替えれ ば、 X カ噺しくなり設定ファイルの自重丿吽成機能も使え るはすです。ソースからの構築も必要なく、簡単に新しい バージョンが使えそうなので、この去で X を入れなお すことにしました。 X の取得とインストール さっそくリリースノートて紹介されていた FTP サイト (ftp://ftp.jp.netbsd.org/pub/NetBSD/arch/i386/) に接続して調べてみると、 XF86 ー 4.1.0 ー 1.5.2 ディレクト リに NetBSD ー 1.5.2 対応のノヾイナリファイル (xfree410- 152. tgz ) がありました。このファイルを取得して、用意 しておいたイ 1 三業用ディレクトリに保存しました。かなり大 きなファイルて陬得には少々時間がかかりましたが、ソー スから構築する手間にくらべれば簡単なものです。 Xfree410-152. tgz ファイルと同しディレクトリにある README ファイルには、このファイルを展開するため の手順か書かれていました。そ窈旨示に従って、コマンド ラインで、 tar p1zvxCf / xfree410. tgz を実行しました。すると、 /usr/X11R6/Iib/X11 以下に ファイルがインストールさオ XFree86 4.1.0 が使える 2 日本語訳は http://www.jp.netbsd.org/ja/ReIeases/formal- 1.5/NetBSD-1.5.2. htmlo UNIX MAGAZINE 2002.2
工ラー発生状況に対応できるように言 t するかか重要にな る。そのうえで、開発したソフトウェアについて徹底した 試験をおこない、トラブルを起こさないようにシステムを 構成する必要がある。さらに、 OS などのバージョンアッ フ。が本当に必喫なのかといったことも慎重に検討す , 、くきで ある。 種子島宇宙センターを訪れて驚かされたのは、数年前 に言されたシステムがたくさん使われていたことである ( もちろん、その一方で新しいシステムも数多く稼動して いたが ) 。たとえば、いくつかのセンサーのインターフェ イスには、数年前まで販売されていた PC98NX などカリ 用されていた。職員の方に訊くと、 「不知カ実績があり、現実に運用されているため、そう簡単 には新しいシステムに移行できない。しかし、経年嶂な どを考慮すると、近いうちに新たなシステムを導入する必 要があるのは分かっている」 という答であった。運用中のシステムの移行は、どこでも 連載 UNIX Communication Notes—O ソースコード 頭の痛い問題のようだ。 UNIX MAGAZINE 2002.2 法の一 1 ーづである。 ラスタ化も、システムの可用性 (availability) を高める手 徹底した多重化である。前回までに説明したサーバーのク システムの信頼性を高める定石的方法ともいえるのが、 多重化による信頼性 型プラットホームを使う利点だと述べていた。 すことができる。スタッフの方も、それがオープンソース し、結果として、信頼性を高めるための作業の手間を減ら は、システムカ皰えている問題を根本に遡って調べられる では Linux が使われていた。ソースコードが参照できれ るようだ。事実、今回の訪問中に見たシステムのいくつか されているシステムを用いた開発も並行して始められてい いる。しかし、去も匠は Linux などのソースコードが公開 かぎりでは ) 多くの業務に Windows システムがイ叫つれて たしかに、現在の種子島宇宙センターでは、 ( 私の見た の導入を進めているそうだ。 NASDA でも、ソースコードが公開されているシステム していない問題点についても早く発見できる。そのため、 運用中のシステムのソースコードがあれば、また顕在化 種子島宇宙センターでも、多重化によってシステムの 信頼生を高めようとしている。ただし、同センターのコン ピュータとネットワークは、きわめて巨大なシステムと して構成されている。このため、いわゆる、、 single point 。 ffailure3 " がいろいろなところに潜んでいる。もちろん、 そのすべてを取り除くのは、技勺にもコスト的にも不可 能に近い。このため、システムの構成解析をおこなって single point of failure を探しあて、それぞれについて 、、インパクト評価 " を実施する必要がある。つまり、その ような箇所を放置した場合、拠にほかの要素に対して どの程度の景をなえるのかを謌・ヾたり、あるいは、イ弋替 手段があるかを詩・ヾるのである。 このような作業はまさしく、、言うは易く、おこなうは難 し " であり、稼動中のシステムへの適用には大変な労力が 必要になる。とくに、長年にわたって拡張され続けてきた システムや、構成管理か徹底していない場合にはきわめて 難しい。私カ釜験した事例から 1 つ紹介しておこう。その システムには、図面でみるかぎりは single point of fail- ure はなさそうだった。しかし、現実には運用上の都合で Ethernet を延はす必要があり、フリーアクセスのなかに 小さな Ethernet スイッチが設置されていた。このスイツ チがダウンすると、二重化されたサーバーへの通信が巒色 する状況になっていたのである。したがって、インパクト 評価をおこなう場合には、図面だけではなく、ネットワー クがどのように構成されているか、サーバーシステムがど のように接続されているかを目て市薩忍しながらイ乍業しなけ ればならない。 種子島宇宙センターのシステムは柤圧に接続された巨大 なものであり、そこに使われている技術も多種多様であ る。インターネット技術を用いて構成しているところも あれば、従来からのチャネル技術を活用している部分もあ る。各システムも、それぞれに異なる用途のために構築さ れている。システム間に依存関係があるうえに、各システ ムカ購築された日月も異なり、刻長もさまざまなかたちで おこなわれてきた。もちろん、システムの構成角 i とイン パクト調面は実施されていると思うが、どのようなガ去を 用いたのかは訊きそこねたため、いまのところは疑問のま ま残されている。近いうちに NASDA の方と会う機会か 3 システムク成要素の 1 つでし魁章害が、システム全体クを害を惹き 起こすこと。また、そのような椥友要素を孑嗣 - 。 53
V, 期Ⅳ 0 「 e Workstation 3.0.0 図 20 ゲスト OS の言聢を DMA モードにしなさいとの警告 YO リ「ⅵ員 u 引 machine has sent ATAPI (CDROM) command thatis on ツ suppotted when programming Ⅲ 8 drive via DMA. You ⅱ need tO configure your guest operating system 扣 use DMA when communicating with DVD/CDROM devices. N0te that $0me op 印・ ng systems will PO は DMA av 曲 without actually using 化 those cases, normal CDROM OP 齟 ons will $tlll be avallable, but special features will 0 川 y be available 『 you 肥 - CO 涌 gu the vjrtual device as a SCSI device 」 Oon ・ t ever 物 hint again OK プロノヾティの順で〕尺し、、、この CD-ROM テンヾイスで デジタル音楽 CD を使用可能にする " をチェックして再起 動します。 、、 CD-ROM (raw access)" を設定したデバイスでは、 DVD ピデオを鑑賞することもできます ( もちろん、そ のドライプて物理的に DVD を読めることが必須条件で す ) 。仮想ドライプのインターフェイスは、 ATAPI でも SCSI でも問題なく楽しめました。ビデオを観るソフト ウェアは、 MPEG をソフトウェアでデコードするもの (PowerDVD など ) を使います。さらに、ぎくしやくし ないスムーズな映像をお望みなら、それなりに速い CPU ( おそらく 750MHz 以いが必要です。もちろん、サウン ドは 5. lch ではなく、普通のステレオになります。 CD-R/RW についてはび頁で説明します。 ATAPI CD-ROM のテンヾイスによっては、 RAW ア クセスができないものもあり、このときはゲスト OS が CD-ROM テンヾイスを認識できなかったり、 VMware が パニックしてしまうこともあります。その場合は、さきは ど紹介した ide-scsi を組み込み、 SCSI CD-ROM として セットアップし、仮想 CD ー ROM のインターフェイスに SCSI と IDE の両方を試してみてください。また、 CD- ROM を RAW アクセスするとたくさんのログか書き出 されることがあります ( ログファイルは設定ファイルと同 じディレクトリにあります ) 。なので、 RAW アクセスす るときはディスクの残り容量に注意してください。 CD-R/RW 3.0 では、ゲスト OS から CD-R/RW に書き込めるよ うになりました。 Configuration Editor などの言殳定項目 ーーー ~ ーにはー' 、 CD-R/RW" という文字はなく、 VMware のホー UNIX MAGAZINE 2002.2 ムページにもリリースノートにも、 ( ダウンロードできる ) マニュアルにも書かれていません。なぜ、そんなに冷遇さ れているのかは分かりませんが、もしかすると、ほかの機 能 (RAW アクセスや USB) を実装したら、、、ついでに できちゃった " 程度の認識なのかもしれません。 私は、 BHA の B's Recorder GoId と roxio の Easy CD Creator 5 で試しましたが、 CD-R および CD-RW への書込みには間題はありませんでした。 CD-R/RW へ の物ムみには、次の 3 つの手段があります。 ・ USB ・ RAW アクセス ・ Generic SCSI おそらく、もっとも簡単なのは USB 接続の CD-R/ RW テパイスでしよう。何も考えすに、ただコネクタを挿 すだけて準備カ院了します。テンヾイスカ坏要になったら、 コネクタを抜くだけです。ただし、ホスト PC に USB インターフェイスが必要であり、 ATAPI インターフェイ スのものと上交してデバイスが高価だという欠点がありま す。また、システムによってはカーネルのバージョンを アップグレードしなけれはなりません。 RAW アクセスは、最初に面倒な設定をしなけれはな りませんが、その後は必要なときに接続 / 切断力加勺にで きるので扱いが楽です。ただし、さきほども書いたように ノヾージョン 2.4. x のカーネルが必要です。 最後の Generic SCSI については、上交的旧いバージョ ンの Linux カーネルでも動き、最初の設定も簡単ですが、 動的な接続 / 切断ができない ( かもしれない ) という欠点 があります。 これらのガ去について順に説明します。 USB デパイスの CD-R/R 、 USB インターフェイスの CD ー R / R Ⅵードライプは、た だ挿すだけです。コネクタを接続すると自重加勺にドライバ がインストールさデバイスか動き始めます。その後、 ライティング・アプリケーションをインストールすれは準 備完了です。 RAW アクセスの CD-R/RW CD-R/RW ドライプのインターフェイスが ATAPI の 場合は、カーネルに ide-scsi モジュールを組み込みます 35
UNIX Communication 高性能サーバーを目指して ( 4 ) 山口英 Notes 写真 1 糸て作業中の H-IIA 型ロケット測矣機 2 号機 信頼性とは 50 せる野心的な町はみもおこなわれている。 内に設けられた NASDAi を中心としたセミナーーや展示などをリンクさ に Web ページでの帯財是供と、東京・浜を判・の世界貿易センターピル 同事業団のプロジェクトなどに関する膨丿 ( な、情報カ鈆開されている。さら 1 宇宙開発事業のホームページ (http://www ・ nasda ・ go ・ jp/) では、 ある。もっとも、これは米国の NASA も同オ鞦ごから、日 なかで、必然的に運営コストの賊を求められているので なわれている。したがって、国家予算の歳出見直しが進む は膨大な資金が必要であり、その大部分は国の予算でまか 1 つは、国家予算の歳出力ットの景である。宇宙開発に 現在、 NASDA はきわめて厳しい状況に置かれている。 本体の組立てが進められている真っ最中であった。 ケット試験機 2 号機 ( 写真 1 ) の打上げを控え、ロケット のは、 2002 年 1 月 31 日に予定されている H-IIA 型ロ 世界でもっとも美しい発射場といわれている。和訟訪れた された。まさに、日本の宇宙開発の最前線であり、同時に ち上げられた H-IIA 型ロケットも、同センターから発射 呼ふ ) として重要な彳齬リを担っている。 2001 年 8 月に打 発における打上け拠点 ( ロケット業界用語では、、射点 " と 周知のように、種子島宇宙センターは日本のロケット開 ( NASDA ) 1 の種子島宇宙センター (TNSC) があった。 出張先のなかに、鹿児島県種子島にある宇宙開発事業団 宇宙開発事業団 それを紹介する。 そのなかでたい一、、ん興架い経験をしたので、今回はます る 2001 年 12 月、私は日本各地を出張て飛び回っている。 師走だからというわけではないが、この原稿を書いてい 本に限った話ではない。もう 1 つは、 H-II 型ロケット で連続して発生した事故により、 NASDA による商用ロ ケット打上げそのものに対して懐疑の眼カけられている ことだ。 こういった状況のなかで、 NASDA では最斤の H-IIA 型ロケットの打上げをなんとしても成功させようと努力し てきた。 2001 年 8 月の H - IIA 型ロケット試験機 1 号機 の打上げに成功し、 NASDA の面目が保たれたかたちに なってはいるが、事業団内部では、 2 号機の羽上げに失敗 したらあとがない " という認識か共通のものになっている ようだ。 打上げは究極発勝負 もとより私はロケットの専門家ではないので、打上け作 業と聞いても、、、大変なんだろうなあ " というばんやりと した考えしかもっていなかった。しかし、ロケットの打 UNIX MAGAZINE 2002.2
0 けつま 3 びっ ◎バッケージを使ったインストール X の設定まで完了したので、続いて必要なアプリケー ションをインストールしていきます。できるかぎり作業を 簡略化し、かつ一貫性を保っため、パッケージでインス トールできるものはすべてパッケージを使うことにしまし た。日本語のかな漢字変換については Wnn7 という商用 ソフトウェアを使うため、ここではインストールしていま せん。前述したこのノート PC でおこないたい「ド業の分 類に沿って、インストールしたパッケージを紹介していき ます。 なお、パッケージのインストールにはすべて同しガ去が 使えます。インストールしたいパッケージのディレクト make install make リで、 NetBSD では OS に組み込まれているので、パッケージ 署名 ) を利用するためのアプリケーションです。 SSH は、 としてコマンドを実行するための、 gnupg は PGP ( 電子 ージです。 sudo は su コマンドでログインせすに root どちらも security ディレクトリに置かれているパッケ ・ gnupg ・ St1dO セキュリティ関連のパッケージ て動かないということはありません。 れるので、たいていの場合、足りないソフトウェアがあっ 関連して必要なソフトウェアも同時にインストールしてく アのソースか取得さインストールがおこなわれます。 というコマンドを実行すれは、自重加勺に必要なソフトウェ 140 ・ emacs (Emacs 20.7.1 ) ・ ack ・ nkf ・ ja-less ・ term 文書作成関連のパッケージ でのインストールは必要ありませんでした。 ・ acroread 文書の作成や閲覧に必要なアプリケーションです。 kterm は、英語以外の言語をサポートしている端末ウ インドウ・エミュレータです。 xl 1 ディレクトリに置か れています。ⅳは多言語を表示できるべージャで、 misc ディレクトリにありました。 ja-less は日本語を表示でき るべージャ、 nkf と ack は漢字コード変換ソフトウェア で、いすれも japanese ディレクトリに置かれています。 emacs はエデイタで、 editors ディレクトリに置かれてい ます。 acroread は Acrobat Reader のノヾッケージです。 print ディレクトリに置かれています。なお、 acroread は Linux 用のアプリケーションなので、このパッケージ をインストールすると、同時に Linux 工ミュレーション UNIX MAGAZINE 2002.2 japanese ディレクトリにあります。 リに置かれています。 namazu は検索ソフトウェアで、 mew は Emacs 用のメーラーで、 mail ディレクト 電子メール関連の / ヾッケージ print ディレクトリにあります。 ghostscript は X 上での PostScript インタープリタで、 となります。 japanese ディレクトリに置かれています。 DVI ファイルを閲覧するために使い、コマンドは vfxdvi 日本語版の DVI プレビューアです。 rIbX で生成される dvik は、 vflib ( 日本語フォント・ライプラリ ) を利用した アプリケーション ) などのツールも含まれています。 vfx- 版 dvips (DVI から PostScript へのファイル形式変換 語版モジュール (p1VfX 、 JTEX 、 MuLTVfX) で、日本語 用 es ディレクトリです。このパッケージは ' I しの日本 レクトリに置かれています。 TeXfamiIy があるのは dist- teTeX は rl おディストリビューションで、 print ディ ・ ghost sc ript ・ vfxdvik ・ TeXfamily ・ teTeX び / 印刷関連のパッケージ 機能もインストールされます。