0 ータについては、 6 月号で紹介したように au の GPS 携 帯電話を利用したり、自分の居場所をときどきメモしてお けば簡単に記録できるでしよう。したがって、新たに撮影 する写真に関しては、あまり苦労せずに位置情報が得られ るはすです。 このような考えにもとづいて、手特ちのあらゆるデジタ ルカメラ画像に位置情報を登録し、活用する実験をおこな ってみました。 数えてみると、ここ数年のあいだに私がデジタルカメラ で撮った画像ファイルは、全部で 1 万枚以上もありました。 これはかなりの大仕事になりそうだと思ったのですが、実 際にはそれほどたくさんの場所を訪れているわけではない ので、ちょっとした空き時間にこっこっと作業し、延べ 10 日ほどですべてのデータに位置を付加することができまし 0 本来なら、写真だけでなく、メモなどのデータについて も位置情報を書き加えておいたほうがよいでしよう。しか し、撮影した場所をもとに写真を検索する機会はけっこう あっても、細かな位置情報とメモの内容力接に結びつい ているケースはあまりありません。そこで、とりあえずは 写真を撮影した場所だけ思い出せれば十分と割り切ること にしました。将来的には、あとで紹介するように、メモを 書くときに現在位置を記録する習慣をつければ、位置情報 によるメモの検索も実現できそうです。 デジタルカメラで撮った写真は、ほとんどすべて JPEG などを拡張した Exif という形式で格納されています。現 在の Exif には、撮景彡データや日時だけでなく、緯度経度な どの位置に関する情報もオ帑内できますから、手特ちの Exif ファイルに GPS 情報をどんどん書き込んでいけば、写真 ファイルに位置情報カ鯉め込めます。 しかし、残念ながら、私の調べた範囲では Exif に GPS 情報を付加する便利なライプラリはみつかりませんでした。 また、デジタルカメラで撮ったオリジナルのデータはなる べく修正せすに利用したかったので、 Exif データには GPS 情報を付加しないことにしました。その代わり、撮影時に 自分がどこにいたかを記録するデータベースを作成し、 位置情報の登録 174 れを使って間接的に写真の位置情報を算出する方法を利用 します。 今回の方針をまとめると、以下のようになります。 1. 自分の移動履歴データベースを作成する。 2. 分かる範囲で自分の移動履歴を言求する。たとえば、予 定表に、、 2004 / 6 / 24 13 : 00 秋葉原で会議 " と書いてあ ったら、この日時と秋葉原の緯度経度を登録する。 3. 手特ちのデジタルカメラ画像の一覧を作成する。 4. デジタルカメラ画像の時刻情報を取得する。 5. GPS 携帯電話で撮影した場合などは、画像ファイルに すでに GPS 情報が含まれているので、その情報を取得 して移動履歴データベースに登録する。 6. デジタルカメラ画像を日時川頁にソートし、移動履歴から 取得した位置の地図と写真を並べて表示する。 7. 地図と写真が一致していない場合は、正しい位置清報を 移動履歴データベースに追加する。 8.6 ~ 7 を繰り返す。 位置情報の登録は、自分で作った図 1 のようなシステム でおこないました。登録した位置に該当する場所付近の地 図を写真のすぐ横に表示しているため、位置情報と撮影場 所の不一致などがみつけやすくなっています。たとえば、 海岸で撮った写真であれば地図上にも海岸線が見えるはず なので、対応がとれていない ( 位置情報の登録カ坏十分で ある ) 場合もすぐにそれと分かります。 図 1 の写真と地図は、 2003 年 5 月の連休中に上野公園 から秋葉原まで散歩したときのもので、写真ごとにおおむ ね正しい緯度経度が入力されています。現実には、そのと きに上野公園や秋葉原にいたことさえ分かればよいはずで すから、それぞれの正確な位置を指定する必要はないでし よっ。 上記の手川頁のなかでもっとも手間がかかるのは、 7 の、地 図アプリケーションや地図サイトで緯度経度を調べて登録 する作業だと思います 2 。最初のうちはいいとしても、な んといっても単調な作業なので、ずっと続けていると飽き てしまいそうです。そこで、別の作業の合間におこないま したが、 2 週間ほどで手特ちの 1 万枚の写真のすべてに位 置情報をほば正しく関連づけることができました。 2 たとえば、 Yahoo! Maps (http://map ・ yahoo ・ co. jp/) のサイト で地図を表す - ると、 URL で緯度経度を知ることができます。 UNIX MAGAZ 工 NE 2005.8
フ 位置情報からの検索 ェ イ ス の 街 角 89 増井俊之■ 2002 年 11 月号で、写真やメモなどの近傍関係をたどる ことによって情報検索をおこなう「近傍検索システム」 1 を 紹介しました。これは次のようなシステムです。 たとえば、ある写真に関係のあるメールを検索したいと しましよう。この場合、写真ファイルから撮影日時を取り 出し、その日付のイベントを予定表などから取得して、こ れをもとにメールの全文検索を実行するという作業を 1 ク リックでおこないます。結果として、写真に関連するメー ルが簡単にみつけられるようになっています。 近傍検索システムでは、日時の近さや内容の類似性によ る検索がおこなえますが、これらに加えて場所の近さも利 用できると便利な場面も多そうです。たとえば、展示会な どでおもしろいシステムをみつけ、写真を撮ることがよく あります。従来の近傍検索システムでその写真をみつけよ うとした場合、展示会がどこで開かれていたかを憶えてい ても、展示会やシステムの名称、撮影した日付が分からな ければ探しだすのはかなり難しいでしよう。展示会の名前 や開催日時をなんらかの方法で思い出し、それをもとに検 索する必要があります。 しかし、展示会の開催場所は憶えているわけですから、近 傍検索システムにおいて位置情報も活用できるのなら眇 、卩ス 近傍検索と位置情報 当する写真も簡単にみつけられそうです。 UN 工 X MAGAZINE 2005 . 8 1 http://pitecan ・ com/papers/WISS2003/WISS2003.pdf 検索は、名前や日時を用いた検索と同じように有用なはず を記億している事柄はたくさんあるので、位置にもとづく 展示会やパーティー、旅行など、場所と関連づけて情報 です。ところが、実際には写真やメモに位置清報が関連づ けられていることはあまりないため、このような検索は事 実七不可能でした。 メモや写真などのデータに位置情報が含まれていれば、 場所を手がかりにした検索も可能になります。それなら ば、自分の持っているあらゆる写真に位置情報を付加して おけばよいでしよう。 とはいっても、メモやだいぶ前に撮った写真にすべて位 置情報を付加するには膨大な手間がかかりそうです。そう 思って場所を手がかりにした検索の実現はあきらめかけて いたのですが、よくよく考えると、それほど大変ではない ような気がしてきました。 現在の大多数のデジタルカメラで撮った写真には、撮影 日時の情報が含まれている。したがって、すべての写真 に位置情報を書き加えるのではなく、撮影したときの自 分の移動履歴を記録しておけば、写真の位置情報は容易 に引算できる。 いつも動きながら撮影しているわけではないので、記録 しなければならない位置情報は写真の総枚数にくらべる とかなり少ないと思われる。また、つねに正確な位置情 報を言泉する必要があるとはかぎらない。 これらの点を考慮すると、デジタルカメラで撮った画像 ファイルを眺めながら、撮影時の自分の移動履歴を登録す るという作業を地道に続けていけば、それほど大きな手間 をかけなくても、すべての写真の位置情報が得られそうで す。 しかし、今後、写真を撮るたびにこのような情報をいち いち登録しなければならないのは面倒です。ただ、移動デ 173
インターフェイスの街角 図 1 位置泉システム 図 2 位置にもとづく写真本 144 ヨ一物ま 3 、 52 ド Des は材 01 : 上野恩当園 顧文化第 . 、こ」 ~ 44 ヨ健一 3 ・ 3 を 02 上野公園 は 229 電肥に 4 を 05 6 な 131 ) 16 2 朝朝 1 1 2 ) : 0 ロ 1 2 12 い新、 42 前 けいせい 山登りの途中で撮影した場合などは、あらゆる写真に位 置情報を付加する作業は大仕事になってしまいます。そも そも、正確な位置が分からないことも多いので、一部のポ イントに絞って登録しています。このような場合には、 定のペースで歩いたと仮定して位置を補間していけば、も うすこし細かな座標が得られるかもしれません。 催された情報処理学会の、、プログラミング・シンポジウム " で撮った写真が含まれています。もちろん、実際にはそれ ぞれの場所でもっとたくさんの写真を撮っています。しか し、位置が近くても同じ日付の写真ばかりが集中しないよ うに工夫しているため、撮影日時の異なる写真が多く見ら れるわけです。 写真の日付をもとに近傍検索をおこない、その日に撮っ た写真や作成したメモをすべて一覧表示することができま す。 位置情報による写真検索 こまでの作業で、手特ちのすべての写真に位置情報を 付加したので、位置にもとづく写真の検索が叮能になりま 0 今回は、さきほど紹介したような方法で写真に位置情報 ある場所に関連する写真を検索する場合、単純に考える を付加し、それにもとづいた検索カ河能であることが分か と、その場所から近い順に写真を並べて表示すればよさそ りました。しかし、写真と位置情報を手作業で関連づけて うに思えます。ところが、 1 カ所につき 1 枚しか写真を撮 いくのはやはり大変です。今後は、このような手間をかけ らないといったケースは稀で、たいていはかなりの枚数を ずに同様の検索をおこなえるようにしたいものです。 撮影します。したがって、たんに近い順に写真を表示する 自分の移動履歴をつねに登録するように心掛けていれ と、同じ日付のものばかりが大量に並んでしまう可能性が ば、あらためて登録するまでもなく、写真に位置情報を関 あります。これを防ぐには、同じ日付の写真を必要以上に 連づけることができるでしよう。 表示しないような工夫が必要です。 携帯電話からの位置登録 図 2 は、箱根付近の緯度経度 ( 北緯 35.16.14.16 、嘱釜 138.58.47.88 ) をもとに検索した写真の一覧です。 2004 6 月号では、 GPS 携帯電話によって地図情報を活用す 年に箱根に観光に行ったときの写真や、ホテル小湧園で開 る方法を紹介しました。今回のシステムでは、これを拡張 自分の位置の記録 175 UNIX MAGAZINE 2005.8
図 8 north. example ・ com.zone ファイルの内容 $TTL 86400 ・一ゾーン情報の生存時間 工 N 工 N 工 N S OA NS ns . north . example . com. root . north. example . com. 2 0 0 5 0 6 010 0 10 8 0 0 3 6 0 0 6 0 4 8 0 0 3 6 0 0 Seria1 Refresh after 3 hours Retry after 1 hour Expire after 1 week Minimum TTL Of 1 day ns . nor し h. example . com. ゾーン全体に 関する設定 個別のホスト に関する設定 CNAME perseus A 192 . 168 . 10 . 1 2. セカンダリ・サーバー : プライマリ・サーハー ( など ) perseus IN から取得した情報のコピーをイ尉寺 プライマリ・サーバーを、、マスターサーバー セカン ダリ・サーバーを、、スレープサーバー " と呼ぶこともあり ます。 さきほども述べたように、この DNS サーバーは north. directory 設疋で指定した /etc/namedb ディレクトリ / で始まっていなければ options ステートメントの / で始まっていればルート・ディレクトリからのパス 定されたファイル名が、 named. conf の zone ステートメント内の file 設疋で指 に置いてください。 /etc/namedb/north. example. corn. zone 図 8 のような内容のファイルを作成し、 次にゾーンファイルを用意しましよう。 ソーンファイ丿レ ジナルの情報を管理しています。 example.com ゾーンのプライマリ・サーバーとしてオリ からのパス として解釈されます。 次に、ゾーンファイルの中身をみていきましよう。 ンファイルは 3 つの領域に分かれています。 1. 、、 $ TTL " で始まる行 2. 、、@ IN SOA " で始まるプロック 3. 上言明、外の部分 70 ゾー TTL UNIX MAGAZ 工 NE 2005 . 8 しよう。 がないゾーンなら、もっと長い TTL を設定すればよいで TTL を設定するようにしてください。逆にほとんど変更 ら、 3 時間あるいは 1 時間などのようにもうすこし短い ホスト名や IP アドレスなどを頻繁に変更するゾーンな の情報のデフォルトの肩効期間は 1 日です。 86400 " は 24 時間ですから、 north.example.com/zone $TTL の単位は、、秒 " です。図 8 のなかで指定している ャッシュされた情報カ陏効な期間を表します。 をキャッシュしておく機構が用意されており、 TTL はキ このような状況を避けるため、 DNS には取得した情報 Web ページの表示なども遅くなります。 た、サーバーの負荷が大きいと名前解決に時間がかかり、 と、サーバーの負荷が極端に大きくなってしまいます。ま ータを管理している DNS サーバーに問い合わせたりする Web サーバーへのアクセスやメールの送信のたびにデ などのコストを考慮する必要があります。 ・ DNS サーバーの負荷 ・問合せと応答にかかる時間 インターネット上での名前解決では、 表しています。 Live) 、すなわち情報カ陏効な期間がどれくらいの長さかを は、ゾーン情報のデフォルトの生存時間 (TTL: Time To $TTL 86400 ゾーンファイルの : 先豆頁の、
0 図 3 不カログ 2005 / 06 / 16 19 : 47 : 38 N34.44.0126E13520.31.74 っています。 ・ 2005 / 6 / 21 20 : 06 : 48 @秋葉原 位置情報サービスアイデア . 上の例では、この時刻に秒 ( 葉原にいたことが分かります。 これを移動履歴データベースに登録しておけば、秋葉原の 位置清報からこのメモを検索することができます。 ー音〒 2005 / 06 / 16 19 : 4829 N34.43.5224 EI 3520.3278 2005 / 06 / 16 19 : 52 : 46 N34.43.41.65 EI 35.19.17.06 :q¯ 日 おわりに 2005 / 06 / 16 19 : 55 : 37 N34.42 夘印印 35.1021 ーー・ - ~ - 。 1 芦屋出入口 1 月号や 6 月号などで、位置情報を活用する方法を解説 しました。この種のシステムは、もちろん単独で使っても それなりに便利です。しかし、あとで検索する際に便利だ ということがはっきりしているのなら、こまめに位置情報 を記録したり、検索するようになるでしよう。 先日、ある会議で、、べロウソフ・ジャポチンスキー (Be- lousov—Zhabotinskii) 反応 " という興味深い化学反応に ついての講演を聴きました。そこで示された写真と同じも のを、以前に理科学研究所のオープンハウスで見て撮影し た憶えがあったのですが、見学時には更の名前をメモと して残していませんでしたし、オープンハウスの日時など もきれいさつばり忘れていたため、その写真を検索するの にかなり苦労してしまいました 4 。今回紹介したような位 置情報にもとづく検索システムがあれば、理科学研究所の ある和光市の緯度経度をキーにして簡単に写真をみつけら れたはずです。このように、見学や旅行などに関連する写 真を検索する際には、今回のシステムはかなり効果がある と思います。 自宅やオフィスなど、かならず行く場所を対象とすると、 写真と位置清報にもとづく検索はうまくいかないかもしれ ません。しかし、これらの場所で写真を撮るのは、客を招 いたときのように特別な場合が多いのではないでしようか。 したがって、このような場所カ寸象であっても、位置にも とづく検索はヨ - 分有効に働くと考えられます。 位置情報も利用する近傍検索がどの程度有用かはまだ実 正していませんが、今後も使い続けて、この手法がどのく らい役立つかをみきわめようと思います。 ( ますい・としゆき産業技術総合研万 ) 4 、理研 " や、公開 " などのキーワードで全文検索をおこなったあと、関連する メールに含まれていた公開日時から近傍検を実行し、ようやくみつけること ができました。 出入口 2005 / 06 / 16 19 : 59 : 53 N34 、 41 ℃ 6. 印 35.12.13 、 07 く 浜辺通 して拷電話の移動履歴ログを保持するようにしています。 図 3 は、 au の GPS 携帯電話を使って自分の位置をサー バーに連続的に通知した結果を表示したものです。この例 では、阪神高速を西宮から神戸に移動している様子力第己録 されています。 携帯電話から地図情報サービスシステムにアクセスして GPS を利用したとき、拷帯電話のサプスクリプション ID と GPS 情報の組をサーバーに残すことで、携帯電話の移 動履歴を記録する仕組みになっています 3 。このサービス を使うと自分の移動履歴が自動的に保存されるので、これ をデータベースとして利用できます。 位置のメモ メモを書くとき、日時を一緒に記録している人は多いと 思います。これに加えて、メモをとった場所も記録する習 慣をつけておけば、位置情報として使えるでしよう。 たとえば、このところ私は以下のような形式でメモをと 3 サプスクリプション ID のハッシュ値を利用しているため、他人の携若電話 のサプスクリプション ID は分からないようにしてあります。 一三ロ 176 UNIX MAGAZINE 2005.8
レい 3 工「い工しい工い工いユ工い J い気工いしい工い工い工い工い : 工い : 工い J い工い工い℃い冫い 33 い : 〕 j い工に第 33 : 〕工い工い」工「い 3 工い工しいこい工い工い工 を提供するサーバー・ソフトウェアの機能修正パッチです。 今回のパッチファイルとそれを適用した最新のソース全 Newsgroups. alt.hackers. malicious,alt.sources, ・今月の *. sources. * ダイジェスト 体は web サイト 1 からも入手できます。 UN 工 X MAGAZINE 2005.8 1 http://hp.vector.co.jp/authors/VA012337/soft/mhpopd/ 対応する漢字を当てたりするテストに使うこともできるそ ランス語やドイツ語の単語の意味を当てたり、ひらがなに るため、自分で任意の問題データファイルを用意すれば、フ 問題データファイルの形式は英単語以外にも対応してい カ俵示されます。 れ、正しいと思う文章の番号を入力すると正解か不正解か 語とその意味を説明する複数の文章 ( 番号付き ) が表示さ グラムを実行すると、問題データファイルを読み込んで単 英単語の語彙力をテストできるプログラムです。このプロ GNU Emacs 上で専用の問題データファイルを使って 作者 . Alexander L. Belikoff さん Message-lD. く一 mb 厄 .14513 $ Ⅸ 4.4906@twister.nyc.rr. Subject: voctest. el 2.0 ー vocabulary drill Newsgroups: gnu. emacs. sources サーバーを利用しています。 ドレス情報を表小する checkip.dyndns.org という Web を調べるために、アクセスしてきたクライアントの IP ア ッチファイルから構成されています。 PC の IP アドレス るプログラム、そしてこの 2 つを組み合わせて実行するバ IP アドレスを調べるプログラム、情報をメールで送信す スを知ることができます。 ときにこの一連のプログラムを使うと、簡単に IP アドレ る IP アドレスか変更されることがあります。そのような プロバイダに接続している場合、 PC に割り当てられてい ログラムです。 DHCP を使用していたり、 ADSL などで 情報を任意のメールアドレスにメールで送信する一連のプ 自分の PC か現在使っている IP アドレスを調べ、その 作者 . mach さん nym. alias. net 〉 Message-lD: 〈 20050530180246.31028. qma ⅱ@ owned boxen Subject: Keeping track of DHCP IPs issued to a に 2600 うです。 このプログラムは web サイト 2 からも入手できます。 151 3 http://www.geocities.com/user42-kevin/chart/ 2 http://www.belikoff.net/software/voctest.el 述することができます。 を読み込むことで、ノヾージョン情報関連の処理を簡単に記 任意の Emacs Lisp プログラム内にこのサプルーチン などをおこなう機能を提供するサプルーチン集です。 ージョン番号の比較やバージョン情報文字列と数値の変換 際に、そのプログラムのバージョン情報を参照したり、バ GNU Emacs 用の Emacs Lisp プログラムを作成する 作者 Vinicius 」 ose Latorre さん emacs-sources@gnu.org 〉 Message-lD. く ma ⅱ man. 39 ユ 118714319.2837. gnu ー Sub. 」 ect: versions. el vl 3.2 Newsgroups: gnu. emacs. sources このプログラムは web サイト 3 から入手できます。 えるそうです。 必要ですが、 Emacs 用プログラムは文字端末さえあれば使 ます。グラフ表示プログラムにはウインドウ・システムが た銘柄の値動きの情報を監視するプログラムも含まれてい グラフ表示プログラムのほか、 GNU Emacs 上で指定し ある Guile および GUI 作成ライプラリ Gtk で作られた これには、プログラム言語 Scheme のインタープリタで するプログラムの最新版公開のお知らせです。 らデータを取得し、株や先物取引の値動きのグラフを表示 Yahoo! Finance やその他のマーケット情報サイトか 作者 : Kevin Ryde さん emacs-sources@gnu org 〉 Message-lD. く ma ⅱ man. 1988.1117154853.25862. gnu ー ity quotes Subject: Chart version 4 ー chart. el stock and commod- Newsgroups: gnu. emacs. sources
ネットワーク・ミニ実験室 0 図 2 名前解決の流れ ()o ドメインの情報がキャッシュされている 生しません。さらに、 mof ドメインの DNS サーバーの キャッシュに kantei ドメインの情報が保存されていれば、 kantei ドメインの DNS サーバーに直接問い合わせること ができます。 キャッシュの利点は、よく利用するドメインや上位のド メインの情報ほどキャッシュされやすいことです。 図 3 のように、 com ドメインのホストから jp ドメイン のホストの名前解決をおこなう場合でも、 example ドメイ 1. ルートドメインを管理しているルートサーバーに問い合 わせ、目的のホストのトップレベル・ドメインを管理し ンの DNS サーバーに jp ドメインの情報がキャッシュさ れていれば、ルートサーバーに問い合わせる必要はありま ている DNS サーバーを紹介してもらう 2. トップレベル・ドメインの DNS サーバーに問い合わせ、 せん。 jp ドメインを基点として hostl を知っている DNS サーバーをみつけ、 hostl の名前解決がおこなえます。 目的のホストのセカンドレベル・ドメインを管理してい る DNS サーバーを紹介してもらう DNS サーバーを動かしてみる のような問合せを、目的のホストの情報を知っている DNS それでは、テスト用の DNS サーバーを実際に動かして サーバーに到達するまで繰り返します。 実験してみましよう。 しかし、この仕組みだけでは、インターネット中のホス DNS サーバーの実装にはいくつかの種類がありますが、 トで名前解決がおこなわれるたびにルートサーバーへの問 こでは BIND (Berkeley lnternet Name Domain) 合せが発生するほか、ルートに近い DNS サーバーほどよ を使います。 BIND は名前が示すとおり、 Berkeley 版 く利用されて負荷が集中し、かなり、、マズイ " 状況になって UNIX とともに配布されていた DNS サーバーです。現 しまいます。 在は ISC (lnternet Systems Consortium) が開発 / 配 そこで、負荷の集中を避け、名前解決を素早くおこなう 布しており、下記の Web サイトから入手できます。 ためにキャッシュの仕組みカ坏リ用されています。 ・ http://www.isc.org/ DNS サーバーには、管理しているホストの名前解決の ほかにも、さまざまな機能をもたせることができます。 以下では、最新バージョンの BIND 9.3.1 を使います。 ISC の Web サイトでは、 BIND4 、 BIND8 などの別 ・ DNS クライアントとして動作し、他の DNS サーバー のバージョンも提供されていますが、メジャー・バージョ に名前解決をイ頁する機能 ンが異なると設疋ファイルの形式や機能がかなり違うので 名前解決で得た情報をキャッシュする機能 注意してください。 たとえば、図 2 の host2 が、 hostl のアドレスの名前 BIND のコンパイル 解決をする場合を考えてみましよう。 mof ドメインを管理 する DNS サーバーがあり、 host2 はこの DNS サーバー BIND のコンパイルはさほと灘しくありません。 を介して名前解決をすると仮定します。 ソースコードは tar. gz 形式でアーカイプされており、そ 原則的には、ルートサーバーへの問合せから始まり、 kan- れを展開すると b ⅲ d ー 9.3.1 というディレクトリが作成さ tei ドメインの DNS サーバーに到達するまで問合せと応答 れます。図 4 は、このディレクトリのファイルを ls コマ カ髞り返されます ンドで表示した様子です。 しかし、 , , 、 of メイの DNS サー , 、一のキャ、 , シに 次に、 b ⅲ d ー 9.3.1 ディレクトリに移動して以下のコマン go ドメインの情報が保存されていれば、最初から go ドメ ドを実行します。 インの DNS サーバーに問い合わせるので ( 図 2 ) 、ルート . /configure サーバーや jp ドメインの DNS サーバーへの問合せは発 make 場合 ) CO hostl kantei go JP mof host2 67 UNIX MAGAZINE 2005.8
写真 6 方器の装着 サーボの制御 UN 工 X MAGAZ 工 NE 2005 . 8 複数のサーボのどれかを宛先に指定してコマンドが送れる ーボの ID が含まれている。したがって、接続されている 各サーボには一意な ID カ賑られており、コマンドにはサ けてコマンドを送る。 RS485 による接続はバス形式だが、 態になる。この段階で、コンピュータは特定のサーボに向 システムの初期化カ院了すると、各サーポは受信待ち状 プロセッサ・ユニットに情報を送ることになる。 ( 現在の出力軸の角度など ) を取得する場合は、サーボから サーボにコマンドを送るだけでよいが、サーボの状態情報 できる。単純な動イ旨示なら、プロセッサ・ユニットから ん、サーボからプロセッサ・ユニットに情報を送ることも る。サーボとは双方向通信をおこなっているので、もちろ コマンドは、プロセッサ・ユニットからサーボに送られ Speecys ロボットの首の制御に使われている。 説明した PWM (Pulse Width Modulation) 制御で、 っと原始的な制御が必要になる。一般的なのが 6 月号で 当り前にみえるだろうが、ラジコン用サーボの多くでは、も このような制御方式は、コンピュータ畑の人にとっては をおこなったり、指示された処理を実行する。 サーポは、受信したコマンドを解釈したうえで自身の設定 ニット ) 側からコマンドを送って動作を指示する点にある。 このサーボの最大の特徴は、制御機器 ( プロセッサ・ユ コネクタで接続される。 は、 9.6V の電源と RS485 の信号線をまとめた 4 ピンの イスを共通の通信線で接続できる。サーボとコンピュータ こなう。 RS485 は 1 対 1 の通信だけでなく、多数のデバ サーボと制御用コンピュータは、 RS485 経由で通信をお 連載 / ロボットのある暮らし 図 7 コマンドの送信と苔の言 てつ RS485 もサーポ側も、送受信をきちんと切り替えながら動作する この通信は半二重でおこなわれるため、コンピュータ側 受イ寺ち状態になって、応答を受け取る。 理のみをおこない、応答のあるコマンドの場合は送信後に かを認識しているため、応答のないものについては送信処 コンピュータは、応答が返ってくるコマンドかそうでない ンピュータが受信側となり、サーボからの応答が送られる。 サ・ユニットに送り返す。この場合は、サーポが送信側、コ 要求するコマンドを送ると、サーボは状態情報をプロセッ ある。たとえば、サーボの状態情報 ( 出力軸の角度など ) を う。また、コマンドによってはサーポカ瀑答を返すことも コマンドを受信したサーポは、指定された動作をおこな いる ) 。 に接続されるセンサーユニットにも一意な ID カ賑られて で指定されたものだけということになる ( 同様に、 RS485 イスに到達するが、それを実際に受信して処理するのは、 ID のようなかたちである。送信されたデータはすべてのデバ ( 図 7 ) 。たとえていえば、昔のメディア共有型 Ethernet サーポ 必要がある。 161 ( さかき・まさのり )
図 8 REG コマンドによる DNS Client サービスの言綻情報の表示 C : *>reg query HKEY—LOCAL-MACHINE*SYSTEM*CurrentContr01Set*Services*dnscache /s Disp1ayName REG—SZ DNS C1ient HKEY_LOCAL_MACHINE*SYSTEM*CurrentContr01Set*Services*dnscache ! REG . EXE VERSION 3 . 0 Type St art REG_DWORD REG_DWORD 0X20 0X2 REG _DWO RD ImagePath REG-EXPAND—SZ ErrorContr01 0X1 %SystemR00t%*System32*svchost . exe REG_SZ TDI Tcpip*0*0 REG_MULTI_SZ \ 0 REG_MULTI_SZ Obj ectName REG—SZ NT AUTHORITY*NetworkService Gr oup —k NetworkService DependOnService Dep endOnGr oup Description REG _sz このコンピュータのドメインネームシステム (DNS) 名を解決およびキャッシュします。 このサービスが停止した場合、このコンピュータは DNS 名を解決できず、 Act ive Directory ドメインコントローラ ーを見つけることができなくなります。このサービスが使用不可にされた場合、このサービスに明示的に依存するサービ スはすべて起動できなくなります。 るデータベースである。レジストリの実体は、 %System- Root%*system32*config にあるハイプ (Hive) と呼ば れるバイナリファイルだが、これらを直孑栄作することは なく、レジストリを操作するための API を通じてアクセ スする。 レジストリを利用するのは、通常は、それを扱うアプリ ケーションや管理ツールなどで、管理者が直接アクセスす ることは少ない。ただし、標準ツールであるレジストリ・ 工デイタ (regedit. exe) や REG コマンド (reg. exe) に より、レジストリデータの値の参照や変更、削除、追加な どもおこなえる。 レジストリは、キーとその値から構成される。キーは階 層構造をとっており、ルートには次の 5 つのキーがある。 ・ HKEY-LOCAL-MACHINE : コンピュータに固有の 構成清報が十れる。 ・ HKEY-CLASSES-ROOT : 工クスプローラでファイ ルを開くとき、正しいプログラムを起動するための情報 が本内される。 ・ HKEY-CURRENT-CONFIG : システムの起動時 に、ローカル・コンピュータによって使われるハードウ ェア・プロファイル 3 に関する情報が常内される。 ・ HKEY-CURRENT-USER : 現在ログオンしている 3 Windows の走明」時にどのデバイスを走月一るかを孑くするプロファイル である。たとえば、ノート PC の場合には、ドック状態とアンドック状態 でそれぞれ別のハードウェア・プロファイルをイ尉寺できる。 84 ューザーに関する構成情報のルートが十内される。 ・ HKEY-USERS : コンピュータ上のすべてのユーザー プロファイルのルートが内される。 レジストリの詳細は、マイクロソフトのサポート技術情 報「 Microsoft Windows レジストリの説明」 4 を参照し ていただきたい。 サービスは、レジストリ HKEY-LOCAL-MACHINE *SYSTEM*CurrentControlSet*Services に格納さ れる。したがって、たとえば REG コマンドを以下のよ うに実行すれば、インストールされているすべてのサービ ス ( デバイスドライバも含む ) の情報が表示される ( 誌面の 都合上、で折り返しています ) 。 C : *>reg query HKEY—LOCAL—MACHINE*SYSTEM=> *CurrentContr01Set*Services /s もちろん、 DNS CIient サービス ( サービス名 dns- cache) の設疋情報も REG コマンドで表示できる ( 図 8 ) 。 こではレジストリがサービス・データベースであるこ とを示すために、あえてレジストリの内容をそのままダン プさせたが、同じことはサービス制御プログラムである SC コマンドの qc オプションでもできる ( 図 9 ) 。 Type ()C コマンドの出力では TYPE) は、サービス の種類を表す。さきほど説明したように、サービスは広義 にはドライバも含むため、その区別もこの Type でおこな 4 http://support.microsoft.com/default.aspx?scid=kb;ja; 256986 UNIX MAGAZ 工 NE 2005.8
U N ー X Communication N0tes 206 山口英 DigitaIIdentity を考える ( 2 ) 限なく TTP をチェックし続けることになってしまう。 そこで、 PKI では信頼の連鎖のおおもとになる特別な認 証局を設定した。これをルート認証局 (root (A) と呼び、 前回は、電子化された識別情報について、とくに公開鍵 通常は自分自身が TTP となっている特別な自己署名型証 暗号と X. 509 にもとづく公開鍵認証基盤 (PKI : public 明書を利用する。したがって、ルート認証局の証明書を組 Key lnfrastructure) の概要を説明した。 み込む場合には特段の注意が必要になる。 PKI は、基本的に TTP (Trusted Third Party) Au- とはいえ、一般の利用者に「 PKI の考え方を十分に理解 thentication という考え方にもとづいている。これは、 したうえで正しく操作せよ」と強要するのは、現時点では TTP ( 信頼できる第三者 ) カ書きすることで、識別情報 かなり無理がある。このため、 PKI に対応した WWW プ の正当性を保証する仕組みである。 ラウザなどのシステムでは、事前に代表的なルート認証局 現在の PKI の運用では、 X. 509 で定義される書式に従 の証明書を組み込み、一月財リ用者に代わってルート認証局 って個人やサーバーの識別情報を十常内し、 TTP である認 に、、信頼 " を付与しているのである。 証局 ()A : Certification Authority) による電了名を 問題の発生 付加して、 X. 509 証明書 (certificate) を作成する。した がって、 PKI の運用における、、信頼 " は、これらの認証局 ソフトウェア・べンダーカ坏リ用者に代わってルート認証 の信頼性に依拠している。つまり、識別情報を見ただけで 局の証明書を検査し、ソフトウェアに組み込んで出荷して は正当なものかカ喇断できないため、そこにどの認証局が いるため、言期年が生じている事実も紹介した。 裏書きしているかを調べ、その認証局を信頼するかどうか 代表的な誤解の 1 つは、事前に組み込まれた証明書のル によって識別情報の正当性をみきわめるのである。 ート認証局が TTP ではない場合、それは信頼できないと みなしてしまうことだ。 PKI の考え方を正しく理解してい 信頼の構造 れば、ルート認証局の証明書をよく調べ、ユーザーが自分 認証局への信頼は、各認証局の証明書を、、信頼している の責任において信頼するか否かを判断できる。事前に組み 証明書 " としてシステムに組み込むことで表現する。事実、 込まれているかどうかは、判断の材料にはなるだろうが、そ 私たちカ坏リ用している PKI 対応の多くのシステムでは、認 れだけが糸鰊寸的な条件ではない。 証局証明書をシステムに組み込むとともに、どのような操 法的に有効な証明書 作によって各証明書カ俐用できるかを言る。 上記のように、 PKI をめぐる誤解が生じているのは事実 認証局自身の証明書であっても、もちろん裏書きする である。 TTP 力ある。通常、認証局の TTP はほかの認証局カ胆 当し、これによって、、信頼の連鎖 (chain of trust)" カ形 その一方で、 PKI の枠組みが法的にも有効なものとし 成される。このため、証明書の信頼を確認していくと、際 て、とくに電子政府システムで使われ始めている点に目を 前回の復習 ロゞ 43 UNIX MAGAZINE 2005 . 8