データ - みる会図書館


検索対象: UNIX MAGAZINE 2004年4月号
53件見つかりました。

1. UNIX MAGAZINE 2004年4月号

特集 テパッガの基礎知識 アクセスできないアドレスについて ログラムのなかの静的変数、或変数、 malloc で確保した領域が 自分で書いたソースコードをコンパイルして実行形式を作成し、 データ・セグメントに割り当てられます。この領域にはデータが それを実行するとき、実祭には何か起こっているのでしようか。 置かれているので、読出しだけでなく書込みも可能です。データ・ 実行形式とは、 C 言語 ( やその他の言語 ) で言古杢されたプログラ セグメントは、さらに下記の 3 つの領域に分かれています。 ムを、マシンが解釈できる言葉 ( マシン語 ) に奐したファイルで す。このファイルには、プログラムの命令やデータが含まれてい ・データ : 静的変数やた或変数のうち、初期値カ寸定されている ます。この実行形式を実行するとメモリ上にプログラムカ己置さ データが置かれる。 れますが、その際にプログラムの、命令 " や、データ " の部うゞど 伊リ : static int n = 10 ; のように配置されるのかは決められています。この配置を、メモ この変数 n はデータ領域に割り当てられます。 リマップ " といいます。 たいていの UNIX システムでは、メモリマップは下図のよう ・ BSS : 静的変数やた或変数のうち、初期値カ甘定されていない になっています。 データが置かれる。 例 : static int a; 0X0 この変数 a は BSS 領域に割り当てられます。 ・ヒープ : malloc で確保される変数の領域カり当てられる。 例 : char *p ; p = (char*)ma110c(100) ; この malloc で割り当てられた 100 バイトはヒープ領域に確 保されます。 スタック・セグメントは、スタックを置くための領域です。ス タックにはプログラムの自動変数カリり当てられます。たとえば、 main() int a ; 0xffffffff という関数が定義されていれば、この自動変数 a はスタックに割 り当てられます。 この図からも分かるように、メモリマップはおおまかに 3 つの 関数カ剛乎び出されると、スタックフレームという単位でスタッ 部分 ( テキスト・セグメント、 データ・セグメント、スタック・ ク上に領域カ保され、そこに自動変数や関獅乎出し時の引数の セグメント ) に分けられます。データ・セグメントは、さらにデー 情報、関数カ唳るべきアドレスなどの情報が入れられます。関数 夕、 BSS 、ヒープと呼ばれる 3 つの領域に分けられます。 が終了すると、対応するスタックフレームは削除されます。プロ テキスト・セグメントとは、マシン語の命令が置かれる場所で グラムの実行中は、関数の呼出しによってスタック領域は増えたり す。雹歔この領域は読出しや実行は可能ですが、書込みは禁止 減ったりしています。 されています。したがって、プログラムがこの領域に書込みをお このように、プログラムの実行時には、メモリ上の領域は割り こなおうとするとエラーが発生します。 当てられた領域によって役目が異なっているのです。 データ・セグメントはデータの領域です。 C 言語の場合は、プ ドを実行してみると、 core. 1751 ( 数値はそのときの状況に unlimited よって異なります ) というファイルができています。 ・ tcsh の場合 % 1imit coredumpsize coredumpsize 0 kbyt e s % ls % 1imit coredumpsize unlimited a. out core .1751 samplel . c % limit coredumpsize unlimited coredumpsxze 用語のところでちょっと書いたように、コアファイルの サフィックスの数字 ( この例では 1751 ) は、このプログラ さて、制限を解除してから再度プログラムを実行すると、 ムを実行したときのプロセス番号です。このように、出力 今度はさきほどの例のように、、セグメントエラー (core を されたコアファイルに自動的にプロセス番号を付与してく 出力しました ) " と表示されるはずです。ここで、 ls コマン テキスト・セグメント プ テータ・セグメント スタック・セグメント 33 UNIX MAGAZINE 2004.4

2. UNIX MAGAZINE 2004年4月号

連載 / Pe 日活用のヒント ・同じ姓の複数の書き方 索用のデータを用意することである。たとえば、齋藤とい 基本は、名前や会社名とは別に、名前検索用、会社名検 は以下のようにしている。 こうした点に対処する方法はいくつかあると思うが、私 対応策 法人の種別を表す部分を入力しないことが多い。 会社名の検索の際に、、株式会社 " 、、有限会社 " といった 工株 ) と後ろに付く場合 ( アト株 ) とがある。利用者は、 のとき、会社名の前に株式会社カ咐く場合 ( いわゆるマ 会社日立製作所 " 、、ソニー株式会社 " のようになる。 会社の登記簿上の正式名称は、オに会社であれば、、株式 ・法人の種別を表す文字列 索できてほしい。 ティードコモエヌティテイドコモ " と入力しても検 称は、、エヌ・ティ・ティ・ドコモ " だが、、、エヌティー の有無は無視すべきである。 NTT DoCoMo の正式名 検索の際は、カタカナの会社名の中点 ( ・ ) や長音符 ( ー ) 無視すべき文字 応できるようになっていてほしい。 写真フィルム " 、、日本トイザラス " などと入力しても対 る綴りの場合がある。検索の際は、、、キヤノン " 、、富士 だけひらがな ) のように、正式な会社名が通常とは異な さいかな ( 拗音 ) ではない ) 、、、日本トイザらス " ( 、、ら " 、、キヤノン " 、、富士写真フィルム " ( 、、ヤ " や、、イ " が小 通常とは異なる綴り になっていてほしい。 日本製鉄 " のように新字体で入力しても対応できるよう を使っている会社がある。検索の際は、、、野村証券 " 、、新 、、野村證券 " 、、新日本製鐵 " のように、正式名称に旧字体 ・旧字体と新字体 の項目がすべて表示されてほしいだろう。 は、これらのうちのどれを指定しても 4 種類のサイトウ 藤、斎藤、齊藤、齋藤の 4 つの書き方がある。検索の際 たとえばサイトウという姓には、おもなものだけでも斉 UNIX MAGAZ 工 NE 2004.4 検索用データに加工するための関数を用意し、これを姓 検索用姓 : 斉藤 姓 : 齋藤 う人物を登録する際は以下のようにする。 に適用して、その結果を検索用姓として記録しておくので ある。そして、姓で検索する際は、入力に対して同じ処理 を適用する。その結果、、、斉藤 " 、、斎藤 " 、、齊藤 " 、、齋藤 " は 検索用会社名 : 野村証券 会社名 : 野村證券株式会社 登録は以下のようになる。 会社名についても同様である。 項目から探すのである。 いずれも、、斉藤 " に加工される。これをもとに、検索用姓の 、、野村證券株式会社 " の 無視すべき文字として、中点、長音符、空白、半角記号 strip-msignificant-jp 小さくない ( 拗音や促音ではない ) カタカナである。 字の場合は文字コードが一一 - ・番小さいもの、かなの場合は 字を代表する文字に置き換える。代表する文字とは、漢 、、斉斎齊齋 " 、、言登 " 、、ヤャ " など、同一と解釈できる文 variant2regular-jp 成した。 私は、検索用データカ旺のために以下の 3 つの関数を作 検索用テータ加工のための関数 タ加工の際に、、オに会社 " を削除する必要がある。 会社日立製作所 " のレコードをみつけるには、検索用デー におこなえる。前方一致検索で、、日立製作所 " から、、株式 タのフィールドに索引力咐いていれば、前方一致は効率的 がリレーショナル・データベースに入っていて、検索用デー タ全体を調べなくても検索カ院了する。たとえば、データ 実装にすれば、データの索引 ( インデックス ) があればデー しない。一方、入力文字列で始まるものを探す ( 前方一致 ) では、保存されているデータ全体を調べないと検索カ院了 社 " を削除する必要はあまりない。しかし、そのような実装 ので、入力文字列を含むものを探す実装であれば、、、本に会 除している。検索時に、、株式会社 " を入力することは稀な この例では、検索用データ加工の際に、、株式会社 " を削 を適用し、その結果をもとに検索用会社名から探す。 会社名で検索する際は、入力に検索用データ加工の処理 の法人の種別を表す文字列を削除する。 、、オに会社 " をはじめ、、、 ( 株 ) " 、、有限会社 " 、、 ( 有 ) " など strip.org/type-jp を削除する。 65

3. UNIX MAGAZINE 2004年4月号

連載 / 旧ルーティング UNIX MAGAZINE 2004.4 呼ばれることもあります。無限カウント問題自体は、 3 者 、、バウンシング・エフェクト (Bouncing Effect)" と で互いに依存するようなタイプの無限カウント問題は、と こまでに説明した、 2 者のあいだ 状況で起こりえます。 ング・メッセージ送受信のタイミングにより、さまざまな 無限カウント問題は、ネットワーク・トボロジーやルーティ 象が、、無限カウント問題 (Counting to infinity)" です。 このように、糸各のメトリックを順々に増やしていく現 しい糸各に収束することになります。 し、 N5 へは到達不可であることを認識してはじめて正 きます。両方のルータがこの経路のメトリックを 16 に 状況は、メトリックが到達不可を示す 16 になるまで続 ータからみると 2 っすっ増えることになります ) 。この れぞれでメトリックが 1 つずっ増やされるため、各ル いくことになります ( 経路メッセージの往きと帰りのそ ージを交換するたびにメトリックを 2 つずっ増やして メトリックを決めるため、 RIP ルーティング・メッセ ると、両者は互いのメトリックを利用して自分の経路の 。こうな 信してメトリック = 6 となります ( ステップ 4 ) ータ B ではルータ A からのメトリック 5 の広告を受 らのメトリック 4 の広告を受信してメトリック = 5 、ル は、この N5 への経路は、ルータ A ではルータ B か 次に RIP ルーティング・メッセージを交換するとき プ = ルータ A と言 t 算されます。 と言 t 算され、ルータ B ではメトリック = 4 、ネクストホッ ルータ A ではメトリック = 3 、ネクストホップ = ルータ B あいだでループしていることになります。 N5 への糸各は、 こで、 N5 への糸各は、ルータ A とルータ B との トホップ = ルータ A としてインストールします ( ステップ され、ルータ B は N5 への糸各をメトリック = 4 、ネクス ( 16 ) を比較します。その結果、受信した糸各カ噺たに採用 リック 3 に 1 を足して、それと自分の経路のメトリック たとします。すると、ルータ B は、受信した経路のメト ルータ A の 30 秒ごとの定期イ各広告がルータ B に届い 達不可とみなされます ( ステップ 2 ) 。このとき、たまたま ける N5 への経路のメトリックは 16 となり、 N5 へは到 ルータ C がダウンして 180 秒経っと、ルータ B にお 表から変更されたエントリを太枠で囲っています。 の経路工ントリ以外は省略しています。また、直前の糸各 態が示されています。ステップ 2 以降では、注目する N5 SC 翡 ァータ構造と刊レゴリズムの フロクラミングに活かす 好評発売中 ! 0 N ー X データ構造とアルゴリズムの プログラミングに活 第員史 基礎知識 基礎知識 ・今泉貴史著 ・ A5 判、 288 ページ ・ ISBN 4-7561-4452-7 ・本体 2 , 700 円十税 これからアルゴリズムやデータ構造について の勉強を始めようと思っている人、数式をみ るのは苦手だけれどもアルゴリズムについて 学びたい人、学校でアルゴリズムの授業を受 けたけれど、いまひとつ理解しきれなかった 人、そんな人にお薦めします。 【目次から】 1 章配列・添字 / ポインタ / 添字型 / 多次元配列 / 動的配列 2 章再帰的データ構造・配列の問題点 / 配列を使った解決 方法 / ポインタの利用 / 再帰的テータ構造 / リンクされたリ スト / ニ重にリンクされたリスト / リストを使う便利なデ ータ構造 3 章探索・探索とは何か / 逐次探索 / 番兵 / 整列済み配列 / リスト構造での探索 / 自己再構成リスト / 二分探索 / 内挿探 索 / 手間の見積り方 4 章木構造・二分探索の探索系列 / 木構造とは何か / 二分探 索木 / AVL 木 / 2-3 木、 2-3-4 木 / B 木 / トライ、バトリシア 5 章スキップリスト・リストでの二分探索 / スキップリス トの概要 / スキップリストの実装 6 章ハッシュ法・ハッシュ法の概要 / 分離連鎖法 / 線形探 査法 / 二重ハッシュ法 7 章文字列探索・カすくの探索法 / KMP 法 / BM 法 / Rabin-Ka 「 p 法 8 章基礎的な整列アルゴリズム・整列問題 / シェルソート / クイックソート 9 章最悪の場合を保証する整列法・マージソート / ヒープ 1 0 章比較によらない整列法・七並べで整列 / 分配計数法 / ビンソート / 基数交換法 / 直接基数法 / 基数整列法の改良 アルゴリズムの選び方・問題の整理と分析 / アルゴリズム の選択と手間の見積り / UN Ⅸコマンドの利用 株式会社アスキー 〒 1 60 ー 8584 東京都新宿区信濃町 34 J 日信濃町ビル 出版営業部電話 (03) 5362 ー 8800 109

4. UNIX MAGAZINE 2004年4月号

連載 / UN Ⅸ便利帖ー 0 リスト 4 ラ立データを言泉するスクリプト $logfile fopen("position. 10g" $logline = date("U") $lat $ns $ew $ 10 Ⅱ . $acc if (flock($logfile , LOCK-EX) ) { fwrite($logfile, $logline) ; flock($logfile , LOCK—UN) ; fclose($logfile) ; greSQL を利用しています。たしかに、こうしておけばデ ータカ膨大になってもシステムは破綻しませんし、将来的 な拡張なども可能です。しかし、今回のシステムでは、、素 早く作って、とにかく試す " を重視したので、測位データ についてはテキスト形式でファイルに追記することにしま した。もちろん、後々のことを考えれば、 PostgreSQL や MySQL などのデータベース・システムを導入したほうが よいと思いますが、、、素早く " 作ることを優先させて、もっ とも簡単な方法で実現することにしました。 リスト 4 が、測位データをファイルに言泉するスクリプ トです。ここでは、記録するデータとして次のものを選び ました。 ・現在時刻 (UNIX 時刻 ) ・北緯を表す文字、、 N " ・緯度 を表す文字、、 E " ・測位レベル これらのデータをカンマで区切って並べ、最後に改行コ ードを入れて 1 回ぶんのデータを 1 行で表すようにしまし た。測地系については、おそらく世界測地系から切り替わ ることはないと考え、言泉からは省いてあります。 リスト 4 の 1 行目では position. 10g というファイル を追記型でオープンし、 2 ~ 4 行目で言泉のための行を作成 しています。このファイルのパーミッションは、もちろん WWW サーバーを動かしているユーザーの権限で中身の 追加ができるように設定しておく必要があります。 5 行目で、同時アクセスに備えて念のためファイルをロッ クします。そして、 6 行目でファイルに言泉を追加し、 7 行 目でロックを解除、 9 行目でファイルを閉じています。 の WWW ページには自分以外はアクセスしないはずです 142 から、同時アクセスの可能性はきわめて低いと思いますが、 念には念を入れて、ファイルに書き込んでいるあいだはロ ックするようにしています。 このスクリプトは、リスト 3 のスクリプトの後ろに挿入 1075791426 , N , 34.59.22.37 , E , 135.46.40.40 , 1 1075790597 , N , 34.59.22.44 , E , 135.46.40.22 , 2 1075790554 , N , 34.59.22.74 , E , 135.46.40.48 , 1 なかたちで行数カ社曽えていきます。 言泉を追記していくファイル position. 10g は、次のよう しておけばよいでしよう。 UNIX MAGAZ 工 NE 2004.4 カ灘点です。 ジにジャンプできます。ただ、携帯電話では画面カ鴃いの リンクをたどることで視覚的に分かりやすい WWW ペー の URI などを作成して一緒に表示するようにすれば、その しかし、測位データはそのまま残っているので、周辺地図へ このままでは、お世辭にも分かりやすいとはいえません。 番号カ賑られて表示されることになります。 結果としてもっとも旧いデータから順に 1 、 2 、 3 、 れ、個々のデータをく li 〉 ~ い i 〉で括って出力しているため、 プト全体を回〉 ~ 〈 / ol 〉 ( 番号付きの箇条書き ) のなかに入 タを取り込んで、それをほばそのまま表示します。スクリ sition.log を読取り専用で開き、地頁から順に 1 行すっデー するためのスクリプトをリスト 5 に示します。これは、 p 。ー このファイルを読み込んで、自分の居場所の履歴を表示 tion) とは国際字宙ステーションのことで、条件がよけれ ジを提供しています。 ISS (lnternational Space Sta- 発機構 ) が、、 ISS を見よう " という i モードの WWW ペー ほかにおもしろいところでは、 JAXA ( 宇宙航空研究開 様にして作れるでしよう。 辺地図や情報などの WWW ページへのリンクも、同 の URI はリスト 7 のようにすれば作れます。その他の周 のようなスクリプトで作成できますし、、、 AD 乗換案内 " へ たとえば、、、ゼンリン孑マップ " への URI はリスト 6 の URI を抜き出せば作れます。 、、 GPS リンク集 " のなかでイ財リだと感じた WWW ページ のリンクを表示するようにしましよう。これらの URI は、 最後に、周辺地図や青報のための WWW ページへ 実験その 4

5. UNIX MAGAZINE 2004年4月号

コンピューティング用 DB システムの構 築が可能。 DB 管理ソフトウェア「 Ora- cle Database 10g 」、アプリケーション・ 「 Oracle Application Server 10g 」、システム統合管理ツール「 Oracle Enterprise Manager 10g 」から構成。 2 CPU までのシステムで利用可能な「 Or- acle Standard Edition One 」 (Linux/ Windows (32bit) 以外は ICPU まで ) 、同 しく 4CPU までの「 Oracle Database 10 g Standard Edition 」 (Real Applica- tion Clusters が付属 ) 、 5CPU 以上のシ ステムを対象とした「同 Enterprise Edi- tion 」がある。 対応 OS は、 SoIaris (SPARC) 、 HP— UX (PA—RISC) 、 AIX 5L 、 Linux など。 Windows にも対応の予定。 1 指名ユーサー / ICPU あたりのライセ ンス価格は、 OracIe Standard Edition One が 18 , 600 円 ( 最少 5 ユーサー ) / 624 , •VERITAS S aris 対応ストレージ管理ソフトウェア べリタスソフトウェア (Tel 03 ー 5532 ー 8241 ) は、ストレージ管理ソフトウェア 「 VERITAS Storage Foundation 4.0 for Solaris 」を販売する。 ファイル管理ソフトウェア VERITAS File System とストレージ仮想化ソフト ウェア同 Volume Manager を組み合わ せた、、同 Foundation Suite 〃の機能強化 製品。ストレージの利用効率を高め、シス テムの移行を容易にする機能を備える。 新たに、ポリシーにもとづきアクセスの少 ないファイルを高価なストレージから安 •Sybase Linux 版データウェ、ウス用 DB 工ンジン 米 Sybase (E—maiI sales@sybase.co. jp : サイベース ) は、 DB 工ンジン「 Sybase IQ 12.5 」の Linux 対応版の販売を開始 意思決定支援システム用の分析工ンジ ン。分析性能の改善によりデータ検索を 高速化し、数千ューサー / クエリー、数十 ノード、数百 CPU の環境に対応。独自の ・ Sybase 企業向けアプリケーション・サーバー 米 Sybase (E—mail sales@sybase.co. jp : サイベース ) は、アプリケーション・ rSybase EAServer 5.0 」を販 サーバー 売する。 J2EE 1.3 、 C/C 十十、 PowerBuiIder 、 Web サービス、 COM を統合する企業向 けのアプリケーション・サー 。新た に Web サービス用の開発ツールを追加。 •VERITAS NetBackup 5. O Server 英語版 べリタスソフトウェア (Tel 03 ー 5532 ー 8241 ) は、バックアップ・ソフトウェア 「 VERITAS NetBackup 5.0 Server 」の 販売を開始した。 中規模システム向けのバックアップ / リ カバリー・ソフトウェア。異機種混在環 UN 工 X MAGAZINE 2004.4 境に対応し、ディサスタ・リカバリー データデバイス管理などの機能を備え る。デスクトップ / ラップトップ PC の 保護機能 ( オプション ) により、クライア ント PC のデータ保護処理のリアルタイ ム同期が可能。既存の中小企業向け製品 NEWS 400 円、 Oracle Database 10g Standard Edition が 37 , 500 円 ( 同 ) / 187 万 5 , 000 円、 同 Enterprise Edition が 100 , 000 円 / 500 万円。出荷は 4 月 5 日。 同時に、 Microsoft SQL Server 4.2 以上のライセンス保有者を対象とした 「 SQL Se Ⅳ er 下取りプログラム」も実 施する。期間は 2004 年 4 月 5 日 ~ 12 月 31 日。 価なストレージに自動的に移す Quality of Storage Service 、異なる OS 間でのデ ータ移行を容易にするポータブル・データ コンテナ、テンプレートによるストレージ・ プロビジョニングなどの機能を追加。パ ス冗長化機能、スナップショット機能な どを強化。 対応 OS は SoIaris 7 / 8 / 9 。 出荷は 4 月中旬の予定。 データ圧縮アルゴリズムによりデータ容 量を最大 70 % 低咸できる。 19 償で移行可能。 BusinesServer の保守契約ューザーは無 価格は 363 , 000 円から。 NetBackup dO Ⅵ。 対応 OS は、 UNIX 、 Linux 、 Win- る制限をなくした。 ライアント数、テープストレージに関す NetBackup BusinesServer 4.5 からク 出荷は今春。 対応 OS は、 SoIaris 、 Windows など。 UDDI などの標準 Web サービスに対応。 能を強イし JAX API 、 SOAP 、 WSDL 、 性能チューニング / デバッグッールの機 司等の予定。 UNIX/Windows 版 ( 450 万円から ) とは 国内での出荷は今春で、価格は既存の 価格は 30 , 000 ドル (ICPU あたり ) 。

6. UNIX MAGAZINE 2004年4月号

UNIX MAGAZINE 主要記事ー 2003 / 04 110 ( 5 ) アルゴリズムとデータ構造の基礎知識 ・プログラミング入門 ( 今泉貴剋 ・ 2003 / 05 102 ( 3 ) プリンタの設疋・・ ( 2 ) ゲスト OS をイリに使うための定・・・・ 2003 / 04 27 ・ VMware Workstation 3.2 特集 ( 本鬱鷓 ) ( 6 ) アルゴリズムとデータ構造の基礎知識 - 文字列探索・・・ 見 ・ 2003 年 4 月 ~ 2004 年 3 月 2003 / 05 88 ( 7 ) アルゴリズムとデータ構造の基礎知識 134 ( 8 ) アルゴリズムとデータ構造の基石懸日識 2003 / 08 90 ( 9 ) アルゴリズムとデータ構造の基礎知識 2003 / 09 115 ・ SoIaris 9 の里と運用 ( 長原辯台 ) バックアップとリストア、パッチの適用 ・ SunScreen 3.2 ( 長原辯台 ) Solaris 9 でファイアウォールを作る・ ・ Linux で RAID 伏下秀冷 ) ・ 2003 / 06 38 2003 / 05 32 UNIX MAGAZINE 2004.4 XCAST6/Linux 佐藤純次・・・・・・ 2003 / 10 127 XCAST6/FreeBSD 長尾寛行・・・・・・ 2003 / 10 122 XCAST6 の概要今井祐二・・・・・ 2003 / 10 118 ・ XCAST6 (2)Web プラウザ、文書の整形、プリンタの接続・・・・・ 2003 / 11 88 (1)Linux のインストール、ユーザーエ竟の言定・・・・・・ 2003 / 10 36 ・プログラマーが自宅で使う UNIX ( 中屋金子 ) IPv6 の基礎、 IPv6 と DNS 、 IPsec ・・・・ 2003 / 09 43 (Timo Sivonen) ・ SoIaris と FreeBSD で IPv6 を使う 38 ( 2 ) ネームサービスの設疋、 LDAP サーバーの応用・・・・・・ 2003 / 08 (I)Solaris 9 の LDAP 認証機能・・・・・・ 2003 / 07 103 ・ LDAP でネームサービス展原台 ) 新機能の言田、旧バージョンからの移行・・・・・・ 2003 / 07 27 ・ VMware Workstation 4 ( 白崎博生 ) ミラーディスクからのプート・・ ・ 2003 / 06 109 整列・・・・・・ 2003 / 06 ー第リ②・・ ・ Broadband SoIution Showcase ( 沖本忠久 ) プロードバンド・ネットワークの言齬 t と運用・・・・・・ 2003 / 11 27 ・メーリングリスト十で情報を活かす ( 大下令 ) Majordomo 十 MHonArc/MaiIman 、 Namazu ・・ 2003 / 12 30 劃田耐各スイッチの曲塑症 ( / 林ロ真 ) スイッチと NIC の相互接続性本館正、↑社ヒ較・・・・・・ 2003 / 12 98 ・安全なネットワークの言雌十と構築 ( 白崎博生 ) ( 1 ) ネットワーク言妬 t の基本、ファイアウォールの構築・ 2004 / 01 41 ( 2 ) 各種サーバーの構築、 PPTP で VPN ・・・・・・ 2004 / 02 114 ・お手軽メールシステムを作ろう ( 大下令 ) fetchmail 、 Web メール、 procmail ・ ・ネットワーク・トラブルの調べ方 ( 1 ) ネットワーク・ツール、 TCP/IP の基礎、トラカレの追跡 荒井美千子 / : ロ恵・・・・ 2004 / 02 27 ( 2 ) 事例にみるトラブル解灣去ー実足躡扁荒井美千子・・ 2004 / 03 99 ・ VMware Workstation 4.0.5 ( キ鷓甦 ) Windows XP で Red Hat Linux 9 を使う・・・・・・ 2004 / 03 23 ・ FreeBSD のブートプロセスをみる ( 白崎博 ( 1 ) Boot Manager ・・ 2003 / 10 180 ( 2 ) b00t1 ・・・・ 2003 / 11 185 ( 3 ) b00t2 ーー BTX の初期化処理・・・・・・ 2003 / 12 175 ( 4 ) b00t2 ーーカーネルのロード・・・・ 2004 / 02 158 (5)btext ・・・・ 2004 / 03 154 ・ IPv6 の実装 ( 島慶ー ) (17)IP セキュリティ・・ ・ 2003 / 04 91 ( 18 ) 言正へッダの処理・・・・・・ 2003 / 05 66 (19)IP セキュリティの出力処理・・・・・・ 2003 / 06 77 ( 20 ) 暗号化へッダの処理・・・・・・ 2003 / 07 57 (21)IP セキュリティの出力処理 ( 2 ) ・・・・ 2003 / 08 65 (22)IPv6 モビリティ・ ・ 2003 / 10 86 ・ 2004 / OI 139 連載 (23)IPv6 モビリティ ( 2 ) ・・ (24)IPv6 モビリティ ( 3 ) ・・ (25)IPv6 モビリティ ( 4 ) ・・ 2003 / 11 74 2004 / 01 97 ・ 2004 / 02 82 189

7. UNIX MAGAZINE 2004年4月号

連載 /Red Hat Linux のツールたち ・イメージファイルの CD - R への書込み 172 に書き込む機能 ( オン・ザ・フライ ) ももっています。 作成してから CD-R に書き込むのではなく、奐をおこないながら CD-R 1 Windows 用の CD - R 作成ソフトウェアの多くは、イメージファイルを いなければ、、、 rpm -Uvh パッケージ・ファイル名 " を 前で料求されています。パッケージがインストールされて ル CD の 2 枚目に mkisofs ー 1.10 ー 11. i386. rpm という名 ではバイナリ・パッケージが用意されており、インストー bin/mkisofs コマンドを使います。 Red Hat Linux 7.3 UNIX 系の OS では、イメージファイルの作成に / usr / mkisofs ジ " や、℃ D イメージ " などと呼ばれることもあります ) 。 換後のデータが、、イメージファイル " です ( 、、 ISO イメー ァイルのように 1 つのファイルにまとめられます。この変 ければなりません。通常、変換後のデータはアーカイプ・フ CD-ROM の論理フォーマットに沿ったデータに変換しな クの論理フォーマットに従って保存されているデータを、 PC のファイルを CD-R に保存するには、ハードディス CD-R の論理フォーマットは CD-ROM に準じるので、 トを定めています。 ( ロングファイル名 ) への対応を中心とする拡張フォーマッ 系の OS では Joliet など、 8 十 3 文字よりも長いファイル名 す。そこで、 UNIX 系の OS では RockRidge 、 Windows かく、現在の OS ではひどく使いづらい仕様になっていま ご覧のように、 MS-DOS か -- ヨ殳的だったころならとも ・ディレクトリの階層数は 8 まで アンダースコア ( ー ) のみ ・ファイル名に使える文字の種類は半角大文字の英数字と ・ファイル名の長さは 8 十 3 文字 ( 3 文字は拡張子 ) ています。 もっとも制約の多いレベル 1 の仕様は次のように定められ ースにしています。 IS09660 には 1 ~ 3 のレベルがあり、 フォーマットである、、 IS09660 " という国際標準規格をベ CD-ROM は、コンピュータのデータを扱うための論理 イメージファイルのイ乍成 以下、それぞれについて説明します。 これらの作業には、それぞれ異なるツールを使います 1 実行してインストールしましよう。 基本的に、 mkisofs は、引数に指定したディレクトリを ルートとして、その下にあるファイルやディレクトリを ( 階 層構造を保持したまま ) 1 つのイメージファイルに変換し ます。たくさんのオプションがありますが、私がよく使う ものを以下に示します ( 詳しくは、オンライン・マニュア ル mkisofs(8) などを参照してください ) 。 Windows の拡張フォーマットである Joliet をサポー トします。後述の RockRidge をサポートするオプシ ョン ()r または一 R ) と併用すると、ロングファイル名 が UNIX でも W ⅲ d 。 ws でも正しく扱えるようになり ます。 ー 0 五 le れ 07 e mkisofs カ咄力するイメージファイルのノヾス名を指定し . is 。 ' など ます。拡張子はとくに決まっていませんが、 にしておくと分かりやすいでしよう。 UNIX 系 OS の拡張フォーマットである RockRidge をサポートします。 基本的には一 R オプションと同様ですが、イメージファイ ルに含まれるファイルのユーザー ID とグループ ID が すべて 0 ( ゼロ ) にセットされます。ー R オプションの場 合は、ファイルのユーザー ID/ グループ ID はそのまま イ尉寺されますが、ある UNIX マシンで作成した CD-R を別の UNIX マシンでマウントしても、ユーザー ID/ グループ ID の割当て方が異なれば意味がありません。 それどころか、パーミッションの設疋によっては、別の UNIX マシンの一殳ユーザーにはファイルカ第売めないこ ともあります。 したがって、ユーザー ID / グループ ID の割当て方が異 なる UNIX マシンで扱う可能性があるのなら、 -R で はなく一 r を指定するほうがよいでしよう。 —V の 0 ん me ー CD-R のポリューム ID の文字列をゼ 0 ん me ー記に指定 します。空白を含む場合には、二重引用符で囲みます。 イメージファイルの作成処理の過程が、端末に詳しく出 UNIX MAGAZINE 2004.4

8. UNIX MAGAZINE 2004年4月号

連載 /FreeBSD のブートプロセスをみる 図 3 kenv コマンドの実彳デ列 LINES="24" acpi—10ad='tYESt' bootfile="kernel" console="vidconsole" currdev="disklsla: " hint . acpi . 0 . oem="PTLTD unsigned ssd—limit unsigned ssd—xx : 4 1391 : } ; 図 4 63 図 5 セグメント・デスクリプタ 484746454443 4039 5655 54 535251 0> リミット 32 べース ( 31...24 ) GDE< ( 19...16 ) P DPLS タイプ A べース ( 23 … 16 ) べース ( 15...0 ) リミット ( 15...0 ) hint . acpi . 0 . reviSIon="1" hint . acpi . 0 . rsdt="Ox01efaf80" 内容か環境変数としてカーネルのなかに静的に組み込まれ soft-segment-descriptor 構制本 ます。 env " MYKERNEL . env " struct soft—segment—descriptor { base unsigned unsigned unsigned ssd—p: 1 unsigned unsigned unsigned ssd—def32: 1 ssd unsigned ssd—type : 5 ssd ssd—gran : 1 ssd xx1:2 —dpl : 2 ファイル MYKERNEL. env は、カーネル成疋ファイ ルと同じディレクトリに作成してください。このファイル には、変数名と値を次のような書式で 1 行に 1 つ記述し kern . 五N="100" ます。 の名前の環境変数を読み込んで大域変数に設定します。 1 , 955 行目で呼び出している init-paraml() は、以下 1301 : 1302 : / * GLDT— SEL LDT デスクリプタ * / {(int) ldt, sizeof(ldt)—l, 0X2 , 3 , 1 , 0 , 0 , 0 , 0 } , ern. hZ ern. maxswzone ern. maxbcache ern. maxtsiz ・ kern. dfldsiz ・ kern. maxdsiz ・ kern. dflssiz ・ kern. maxssiz ・ kern. sgrowslz 竟変数がない場合は、デフォルトの値を設定します。 GDT の再言聢 次に、ⅲ it386 ( ) は GDT を再設定します。 1254 : struct soft-segment—descriptor 1255 : 1256 : 1264 : 1265 : 1273 : 1274 : 1282 : 1283 : 1291 : 1292 : gdt-segs ロ = { { 0X0 , 0X0 , 0 , / * GCODE_SEL { 0X0 , Oxfffff, / * GDATA_SEL { 0X0 , Oxfffff , / * GPRIV_SEL { 0X0 , Oxfffff , 0 , 0 , 1 , 1 } , カーネル用データセグメント * / 0 , 0 , 1 , 1 } , カーネル用コードセグメント * / 0 , の , 0X13 , 0 , 1 , 0x1b , 0 , 1 , 0 , 0 , 0 , 0 , / * GPROCO_SEL swapper 用 TSS デスクリプタ * / 0X13 , 0 , 1 , 0 , 0 , 1 , 1 } , CPU 用データセグメント * / 0X9 , 0 , 1 , 0 , 0 , 0 , 0 } , { 0X0 , sizeof (struct i386tss)—1 , UN 工 X MAGAZINE 2004.4 1 , 254 ~ 1 , 391 行目の配列 gdt-segs は、 GDT デスク リプタの元データを定義しています。ⅲ it386 ( ) は、いく っかのデスクリプタのべースアドレスとリミット値を環境 に合わせて設定します。ところが、実際のデスクリプタ は図 4 のような配置になっているため、べースアドレスと リミット値をあとで変更しようとすると、ビットを左へ回 したり右へ回したりと目が回りそうです。そこで、配列 gdt-segs ではデスクリプタの内容を変更しやすいように 図 5 に示す構造体のデータを用意し、 CPU にロードする 直前にビットを並べなおして図 4 の形式のデスクリプタに 変換した GDT を作成します。 実際のコードでは 15 個のデスクリプタを定義していま すが、こではそのうちの 6 つだけに注目します。 1 , 256 行目は GDT の、、お約束 " で、 1 番目には空デス クリプタを設定しなければなりません。 その次の 1 , 264 ~ 1 , 274 行目は、カーネルを実行するた めのコードとデータセグメントです。この 2 つのセグメン トはべースアドレスが 0 から始まり、その大きさは 4GB ( リミット =FFFFFH かっ G=I) です。ユーザープロセ ス用のセグメントについては後述しますが、 FreeBSD カ ーネルでは、図 6 に示すようにカーネルとユーザープロセ 163

9. UNIX MAGAZINE 2004年4月号

連載 / Pe 日活用のヒント 64 2 1 2 http://openlab.ring ・ gr ・ jp/Jcode/index-j. html 1 http://srekcah.org/jcode/ グ以外にも考えるべきことが多い。以下、私が解決しなけ プログラムで日本語を扱う場合は、文字工ンコーディン 工ンコーティングの先にある課題 ・ Jcode. pm ・ jcode. pl 役に立つはずである。 もおこなわれるだろう。その際には、以下のモジュールが 利用した日本語処理がよくおこなわれてきたし、これから Perl は任意のノヾイト列を容易に扱えるので、その性質を 不完全な Unicode 機能を使う価値はない。 用には適さないと思う。 PerI 5.8 がある現在、 PerI 5.6 の PerI 5.6 にも Unicode の機能はあるが、開発途で実 Perl 5.6 として解釈される。 codetest2. pl では、、ソ " の 2 バイト目はバックスラッシュ れは PerI 5.6 までの挙動と同じである。したがって、 en- 理は何もおこなわれず、バイト列に対する処理となる。こ や、その有効範囲外では文字工ンコーディングに関する処 これに対して、、 use encoding ” shiftjis ” ; " がない場合 は UTF-8 のデータがシフト JIS に変換される。 UTF-8 に変換される。 print などでのファイル出力の際 ASC Ⅱ文字はシフト JIS コードと解釈され、そのうえで が入る。また、、く STDIN 〉 " などのファイル入力の際も、非 では $ a に UTF-8 フラグが立った UTF-8 形式のデータ えで UTF-8 に変換される。この結果、 encodetestl. pl 非 ASCII 文字がシフト JIS コードと解釈され、そのう コープ ) では以下のことが起こる。ます、プログラム内の use encoding ' ' shiftjis" ; " があると、その有」範囲 ( ス 列に対応した処理のどちらをおこなうかが決まる。 フラグの有無で Unicode 文字に対応した処理と、バイト 扱っている。値の属性として UTF-8 フラグが導入され、 Perl 5.8 は、 Unicode のデータを内部では UTF-8 で こでは概要に触れておこう。 doc Encode::JP" などを参照してもらうことにして、 については、 perldoc utf8" perldoc Encode" perl- ればならなかった問題点とその対応策、 PerI の関数を説明する。 文字列の正規イヒ 関数 : canonicalize-jp ・検索用データ加工 ならびに作成した 関数 : variant2regular-jp 、 strip-insignificant-jp 、 strip.org/type-jp ・辞書式川印での並べ替えのためのキー作成 関数 : kana2sortkey 今回紹介する Perl の関数は、 EUC 工ンコーディングで 内部処理をおこなっているプログラムでのみ利用できる。 以降の説明では、顧客情報を言冢するアプリケーション を前提として考える。言泉する内容は、顧客の名前や役職、 部署名、会社名、住所である。そして、データの入力や閲 覧は複数の利用者がおこなうものとする。 文字列の正規イヒ カタカナと英数記号には、それぞれ全角と半角がある。 顧客情報として保存する場合、たとえばカタカナはすべて 全角、英数記号はすべて半角のように統一したほうがよい。 顧客に出す郵便物の宛名が会社名は全角カタカナなのに部 署名が半角カタカナでは、先方からいい加減な会社だと思 われてしまうかもしれない。また、不統一だと検索の際に 困る可能性がある。 カタカナはすべて全角、英数記号はすべて半角で入力す ることにしたとしても、利用者に 100 % 彳前民させることは 不可能である。したがって、利用者の入力は検索のためで あれ、登録 / 更新のためであれ、まず正規化する必要があ る。具体的には、半角のカタカナは全角に、全角の英数記 号は半角に置き換える。 私は、このような文字列の正規化のための関数として canonicalize-jp を作成した。 留意すべき点 利用者は、顧客情報を顧客の名前か会社名で検索でき ると仮定しよう。利用者カ球めるような検索結果にするに は、以下の事柄に留意しなければならない。 UN 工 X MAGAZ 工 NE 2004.4

10. UNIX MAGAZINE 2004年4月号

UNIX 入門から、サーバ構築まで。 Linux 、 BSD 、 SO ね s すべてのⅣーユーザーに デーモン君の ソース探慣 コドを第悪ー験響たをのための第層書 Kirk Wainrow 著 / 金田芳明訳 各 : A5 判 / 240 ページ 本体価格 2 , 000 円 LJN Ⅸでは管理・保守などすべきことは多い。最近は GUI ツール から管理を行うことも可能ですが「 00t たるものどんな状況でも管 理・保守できなければなりません。より便利なコマンドの利用法、 効果的なシェルスクリプトを実際の事例に即して解説します。 http://www.ascii-store.com/ Web で OK!! デーモン君のソース探検 BSD のソースコードを探る 冒険者たちのための手引き書 の便利ワサ UNIX UN Ⅸの便利ワサ ・ネットワーク裏技編 ISBN 4-7561-3370-3 ・ファイル小技編 ISBN 4-7561-3371-1 氷山素子著 A5 判 / 208 ページ / 本体価格 2 , 200 円 BSD magazineC. 好評連載中の 「デーモン君のソース探検」を単行本化 ! NetBSD のソースを教材に、中学生のデーモン 君がデーモンババとデーモンママに助けられな がら宿題を解くというユニークなシチュエーショ ンを通じてソースの読み方をたのしく学べます。 ISBN 4-7561-4415-2 CO 亂【 C れ 0 、 UNIX 選りすぐり ーション ワークステ のおと ン ョ すテおれ ~ スの プログラミング・ テクニック プログラミング テクニック .. プロクラミン・ま 多治見寿和著 B5 判 / 240 ペーシ 本体価格 1 , 800 円 ISBN 4-7561-4389- X UNIX MAGA 刀 NE に玄子ま平連載中の BSD 作者たちによる解説書、 「プログラミング・テクニック」を単行本化 待望の翻訳版登場 ! IJN Ⅸ上で使われている OS の各種コマンドのソースコード 4.4BSD の作者たち自身が内部構造と機能を実装す を読みながら、ちりばめられた " 名匠の技 " を学びます。 C プ る上で採用された概念、データ構造、アルゴリズムにつ ログラミングのさまざまな手法が身につく、実践的な解説書。 いて実装を例にして詳しく解説したバイプル本です。 4.4BSD の 4 ・ 4BSD の 設計と実装設計と実装 Marshall Kirk McKusick ほか著 砂原秀樹監訳、七丈直弘訳 B5 判 / 624 ペーシ 本体価格 5 , 800 円 lSBN4-7561-4346-6 坂下秀著 B5 版 / 176 ペーシ 本体価格 1 , 600 円 ISBN 4-7561-4410-1 UNIX MAGAZ ーⅣ E に子ま平連載中の 「ワークステーションのおと」を単行本化 システムやネットワークの管理にかかわるテーマを中心 に実際のコマンドソースをもとにした実践的な解説をし ます。軽妙な筆致のなかにきらりと光る知恵が満載の 1 冊。 フリーゾフトゥフリーソフトウェアと 、》自由な社会 自由な社会み 日曜、町 M, 引第 m ーれ工 ( ゝ—Richard M. St 訓 man 工ッセイ集 入門 UNIX 改訂新版 実用 UNIX データ処理編 入門 実用 UNIX UNIX 改訂新版 テータ処理編 Richard M. Stallman 著 長尾高弘訳 A5 判 / 368 ページ 本体価格 3 , 200 円 ISBN 4-7561-4281-8 著作権からフリーソフトウェア運動の UNIX 初心者用の教科書として最適 ! IJ Ⅳー x のデータ処理をマスター ! 歴史まで重な資料ばかり フリーソフトウェア財団 ( FSF ) の創立者 Richa 「 d M. IJN Ⅸの基礎知識とその考え方から実用的なコマンド sed 、 awk 、 perl によるテキスト処理、 G ー MP による St 訓 man 初の工ッセイ集。オープンソース界のカリスマが の使い方まで丁寧にわかりやすく解説。 PC - LJN Ⅸ グラフィック加工、 XMMS や刈 NE によるマルチメデ 語るフリーの真意とは ? (Linux/FreeBS D) 対応にした改訂版です。 ィア処理まで、 Linux / IJN Ⅸのデータ処理を徹底解説 ! eræs マルチリンガルエデイタ Mu 厄 2.0 の初歩から解説。 大木敦雄著 / A5 判 / 224 ページ / 本体価格 1 , 748 円 ISBN 4-7561-0300-6 X やキャラクタなど各環境別に日本語環境設定を解説。 松田晃ー、暦本純一共著 / A5 判 / 272 ページ / 本体価格 2 , 136 円 ISBN 4-7561-0354-5 環境設定方法をテーマ別にやさしく解説。 久野禎子、久野靖共著 / A5 判 / 208 ページ / 本体価格 1 , 748 円 ISBN 4-7561-0284-0 tcl/tk で多様な GUI を実現。 久野靖著 / A5 判 / 244 ページ / 本体価格 2 , 80 円 ISBN 4-7561-1293-5 羽山博著 B5 変型判 / 256 ペー ン 本体価格 1 ,900 円 ISBN 4-7561-3381-9 羽山博著 B5 変型判 / 336 ページ 本体価格 2 , 500 円 ISBN 4-7561-4248-6 JavaScript プログラミングの入門書。 久野靖著 / A5 判 / 224 ページ / 本体価格 1 , 88 円 ISBN 4-7561-3871-3 WWW情報発信の核となる正しい技術を解説。 久野靖著 / A5 判 / 256 ページ / 本体価格 2 , 000 円 ISBN 4-7561-3652-4 デバイスドライバなど F 「 eeBSD カーネルを初心者向けに解説。 大木敦雄著 / B5 判 / 192 ページ / 本体価格 2 , 80 円 ISBN 4-7561-3313-4 LJN Ⅸの基礎の基礎を習得。 久野靖著 / A5 判 / 220 ページ / 本体価格 1 , 553 円 ISBN 4-7561-0316-2 入門 JavaScript 入門 WWW -UN Ⅸでの情報発信技術 - FreeBSD カ - ネル入門 改訂版 UN Ⅸの基礎概念 〒 160-8584 東京都新宿区信濃町 34 番地 JR 信濃町ビル電話 ( 03 ) 5362-3300 http:″www.ascii.cojp/ 株式会社アスキー