図 3 独立したセッションを作成して帋噐末を切り離す、、おまじない " 2 ) ; / / プロセスグループの調整 if ( f ork ( ) > 0 ) exit ( 0 ) ; setsid() ; if ( f ork ( ) > 0 ) exit ( 0 ) ; / / その他のおまじない close( 0 ) ; close( 1 ) ; close( open("/dev/null" , O—RDWR) ; dup2 ( 0 , 1 ) ; dup2 ( 0 , 2 ) ; umask( 0 ) ; / / シグナルハンドラを調整 注 : 工ラー処理などは、すべて省している。 / / 1 回目の f ork ( ) : グループリーダーとならないことを保証する / / 親は終了 / / 新しいセッションを作成 : セッション・リーダーとなる / / 2 回目の fork ( ) : セッション・リーダーとならないことを保証する / / 親は終了 / / 標準入出力を閉じる / / 標準入出力を / dev / 皿 11 に変更 / / 継承した皿 ask 値をクリア / / すべてのティレクトリを未使用に セッションやプロセスグループは、複数のプロセスに対 して、、シグナル " と呼ばれる一種の、、割込み " を通知するた めに使用される。たとえば、コマンドラインの実行中に端 末から CtrI-C を入力すると、フォアグラウンドで実行され ているプロセスグループに対して SIGINT ( ューザー割込 み ) が通知される。あるいは、回線が切断されて制御端末 がシステムから切り離されると、その端末を制御端末とす るセッションに対して SIGHUP ( 回線断 ) が通知される。 つまり、セッションやプロセスグループは、プロセス間で シグナルを共有するための仕組みであるといえる。歴史的 こで例に挙げたシェルによるジョブ制御を実現す るために、プロセスグループやセッションという概念が考 案されたのである。 セッションには、ユーザーがログインしている端末 ( 制 御端末 ) が結びつけられており、ユーザーの操作によって プログラムの実行中断などのシグナルが通知される。それ ぞれ、最初に生成されたプロセスが、、リーダー " となる。リ ーダー以外のプロセスは、必要に応じて新しいプロセスグ ループやセッションを作ることができる。 UN Ⅸのサービスプロセス UNIX では、デーモンと呼ばれるプログラムがサービス プロセスに相当する。プロセスとしての成り立ち ( 起動と 終了、割り当てられる資源 ) という点では、これはユーザー プロセスとまったく同じであり、特別な管理機能も用意さ れていない。見方を変えれば、デーモンとは init を頂点と する起動時の処理において自動的に起動されるものともい える。したがって、デーモンとして働くプログラムを、通 78 常のユーザープロセスとして ( コマンドラインから ) 実行 することもできる。 ただし、デーモンはユーザーのログイン・セッションと は無関係に、ほかのプロセスの影響を受けずに動くことが 求められる。したがって、制御端末をもたない独立したセ ッションの唯一のメンバーとして働くことカましい ( 必 須ではない ) 。前述のように、何も手続きをおこなわなけれ ば、生成されたプロセスは親と同じプロセスグループ ( と セッション ) に属すため、親と同じ制御端末からシグナル が送られる可能性があるからである。 デーモンとして働くプロセス (Web サーバーである httpd や、 MTA の sendmail など ) は、その初期化処 理の過程で独立したセッション ( とプロセスグループ ) を 作成し、制御端末を確実に切り離す、、おまじない " を唱えて いる。デーモン・プログラムを作成するプログラマー以外 は未がないかもしれないが、この、、おまじない " は次のよ うなものである。なお、オープンファイルなどの親プロセ スから継承する資源についても、同様の処理をおこなうこ とカましい ( 図 3 ) 。 1. 親プロセスは、 fork() をおこなって終了する。残った子 プロセスは、プロセスグループのリーダー、、ではない " とカ呆証される。プロセスリーダーは、続く setsid() を 呼び出せないからである。 2. setsid() によって新しいセッション ( とプロセスグルー プ ) を作成し、そのセッション・リーダーとなる。新し いセッションは制御端末をもたないため、親プロセスの 制御端末が切り離される。 UNIX MAGAZ 工 NE 2005 . 8
図 14 SUSE 9.3 の /boot/grub/menu. lst に追加するエントリ t it 1 e Xen 2 . 0 . 6 kernel (hd0, l)/boot/xen. gz dom0 ー mem = 131072 module (hd0, 1)/b00t/vm1inuz-2.6.11.4-20a-xen r00t=/dev/sda2 cons01e=ttyO module (hdO, 1)/b00t/initrd—2.6.11.4 ー 20a ー xe Ⅱ テムにコピーできる構造でまとめられます。どこにどのフ ァイルがインストールされるかが -- ・ - ・目瞭然なので、インス トールする前に眺めておくとよいでしよう。 できあがったファイルをシステムにインストールするに を追加してください。 うに、 GRUB の設疋ファイルに Xen カーネルのエントリ その後は、バイナリ・パッケージのところで説明したよ # make insta11 は、次のコマンドを実行します。 イスドライバを追加したい場合は、カーネルの設疋ファイ iptables など、デフォルトの構成に含まれていないデバ れていません。 ルには、バイナリ・パッケージと同様に iptables が含ま ただし、デフォルトの設疋のままコンパイルしたカーネ することができます。 コマンドを実行するだけで、手軽にカーネルをコンパイル 定ファイルが含まれているので、さきほどのように make Xen のソースパッケージには、お薦め構成のカーネル設 カーネルのカスタマイス でおこなうことができます。 イン U 用の NetBSD カーネルのコンパイルは Linux 上 いるのに酥日感を覚えた人がいるかもしれませんが、ドメ 上記の make の実行で Iinux24 と netbsd20 が並んで ディレクトリにコピーされています。 できあがったカーネルファイルは、同様に dist/install やがな ) 。 す。もう一度、お昼ご飯に行っても大丈夫です ( 食べすぎ これらの make の実行にも、たつぶりと時間がかかりま # make netbsd20 # make 1inux24 行します。 のカーネルをコンパイルしたい場合は、次のコマンドを実 がコンパイルされますが、 Linux 2.4.30 と NetBSD 2.0 make world コマンドでは 2.6.11 の Linux カーネル 38 ルを変更する必要があります。 Xen 用のカーネルだからと いって特別に難しいことはなく、通常のメニュー形式で設 定できます。 成を変更するときは、以下のコマンドを実行します。 たとえば、ドメイン 0 用の L ⅲ ux2.6.11 カーネルの構 ルにはならないので注意してください。 を指定するところです。これを忘れると、 Xen 用のカーネ ポイントは、 make コマンドの引数に、 ARCH=xen # cd # make ARCH=xen menuconfig # cd li Ⅱ ux ー 2 . 6 . 11—xen0 UNIX MAGAZINE 2005 . 8 Xen の公式サイトには、 ttylinux という仮想ディスク 動作の確認 トリ以下にコピーされます。 ファイルとカーネル・モジュールが dist / ⅲ sta Ⅱディレク デフォルト構成のコンパイルのときと同じく、カーネル # make netbsd20 # vi netbsd—2. O-xenU/sys/arch/xen/conf/XEN をエデイタで編集します。 NetBSD カーネルの場合は、以下のように設疋ファイル # make 1inux26 コンパイルします。 設疋が終ったら、以下のコマンドを実行してカーネルを れているかを確認します。 は逆に、、 PriviIeged Guest (domain 0 ) " のチェックカト ドメイン U 用のカーネルでは、ドメイン 0 用の場合と # cd # make ARCH=xen menuconf ig # cd 1inux—2.6. 11—xenU ます。 ドメイン U 用カーネルの場合も同様のコマンドを実行し れているかを確認します。 Privileged Guest (domain 0 厂が built-in に設疋さ ドメイン 0 用のカーネルでは、 Xen メニューのなかの
if (*p e ててⅡ 0 strtol(p + 1 , &q, if (*q INT_MAX & & errno pr 1 = n ; 10 ) ; ASCII 好評発売中 ! プログラミング テクニック アヾンス 00 はに 0 第 ON 的リ N Ⅸプログラミング アドバンス テクニック プログラミング 多見第物 ースコートにみる瑾玉の手法 数値の読取りは、簡単に strtol 関数を使って実現してい ます。 strtol 関数では、第 2 引数にポインタのアドレスを 指定すると、文字列中のどこまでを数値として読み込んだ かを返すことができます。この値を使い、次の if 文では数 値の直後に、、 > " があること、読み込んだ数値が 0 以上で あること、 strtol が失敗していないことなどを検査し、す べてを満たす場合はポインタや pri の値を適宜修正してい ます。 strtol 関数カ敗することもあります。ところが、 strtol 関数の戻り値の型は long 型で、 long 型のすべての値が返 される可能性があるため、戻り値でエラーが発生したこと を通知できません。同じ問題は getchar 関数などでも起こ りますが、 getchar 関数の返す型は char 型なので、それ よりも広いⅲ t 型の関数とすることで、 char 型とは異なる 値を返してエラーを表せます。 しかし strtol の場合には、戻り値がすでに long 型とい う大きな型になっているため、同じ方法を使うわけにはい きません。そこで、エラーが発生したときには errno 変数 を使ってそれを示す方法をとっています。ただしこれにも 注意が必要で、 errno の値カ数では初期化されないことを 忘れてはいけません。ライプラリ関数ではよけいな処理を おこなわない言気になっているので、わざわざ errno 変数 の値をクリアするといった処理はしません。そのため、今 回のように errno 変数の値を使ってエラーが発生している かどうかを調べる場合には、関数呼出しの前に errno 変数 の値をクリアしておく必要があります。 次に、取得した優先順位の値が正しいものであることを 検査します。具体的には、 LOG-FACMASK と LOG- PRIMASK によりマスクされるビット以外のビットが設 定されていないことを確認します。 if (pri & ~ (LOG—FACMASK ー LOG—PRIMASK) ) pri = DEFUPRI ; これらのマスクをはみ出るようなビットカ羸疋されてい UNIX MAGAZINE 2005 . 8 を・み・わす . 第・す、物を・ま 、の学物スの・ - の一つです . ま第では .0 莠 、れを一茎て・第に・わ載ているコマンドをい】第け。そのソ ースつ一ト第み 0 ・るプ 0 タムの・り査ち 0 実第 ) , 0 グラレ 0 に“な用々第介ドを ・多治見寿和著 ・ B5 判、 224 ページ ・ ISBN 4-7561-4566-3 ・ 1 , 890 円 ( 税込み ) UN ー X プログラムのソース コードにみる珠玉の手法 本誌に好評連載中の「プログラミング・ テクニック」単行本化第 2 弾。 UNIX 上で実際に使われているプログラ ムのソースコードを読みながら、その成 り立ちや数々の技術的工夫を学ぶことで、 先人たちの経験に裏打ちされたプログラ ミング手法が自然と身につきます。実用 的プログラミングを目指す方にお薦めの マ目次から g 「 ep ◆利 ex ◆ ps ◆情報の収集◆ユーサー情報の 取得 LAN 上のシステム情報の取得「 whod 「 up 、「 use 「 s ◆旧V6 対応の telnet ◆ telnet の全 体構造◆リングバッファ◆非同期入出力◆シグナ 0 ◆ 電話 (03) 6888 ー 5500 ( 営業局 ) 東京都千代田区九段北ト 1 3-5 日本地所第一ビル 〒 1 02 ー 8584 株式会社アスキー (UNIX MAGAZINE 2000 年 4 月号 ~ 2002 年 3 月号より ) 丿レの処理◆ sc 「 ipt コマンド 105
レい 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
そく手許にある Red Hat Linux 9 (RHL9) のマシンに インストールしてみたのですが、自分の手には負えないの で RHL9 に戻すことにしました。再インストールの前に 簡単にレポートすると、 RHL9 からのアップグレード・イ ンストールはとくに問題もなくできました。ログインする と RHL9 でのデスクトップの設定が影響しているようで、 GNOME や KDE が正常に動作しなかったり、 xterm が 動かないといった現象カ起きました。また、 RHL9 でコン パイルした Emacs や w3m などのプログラムには正常に 動作しないものがかなりありました。これらは再コンパイ ルもできませんでした、という報告記事です。 これに対して、 Windows でも Linux でもアップグレ ードしたときに問題が出ることはよくある、そのためあえ てアップグレードはせず、 HD に複数のパーティションを 作って別々にインストールし、デュアルプートでしばらく テストして気に入れは移行することにしている、こうすれ は新しい OS が気に入らなくても以前の OS を再インスト ールせずにすむ、 RHL9 と FC4 は構造がかなり違うよう なので、 RHL9 のバイナリを FC4 で動かすことには無理 があるようだ、 GCC の仕様も変わったため以前のソース コードをそのままコンパイルするのは難しいと思う、 FC4 をまっさらなパーティションにクリーン・インストールし た状態では問題なく動作している、インストールも容易で Windows と同じくらい使いやすく素晴らしいと思う、と いったフォローがきました。 これを受けて、元記事の投稿者が Windows 、 RHL9 、 FC4 をそれぞれ別のパーティションにインストールし、 トリプルプート状態にして試したところ、 FC4 も問題な く動作したとのことです。その新しいレポート記事には、 RHL9 と FC4 の両方をプートできるようにするために、 れらをインストールした段階で /boot/grub/grub. conf に言を追加する必要があったという報告が含まれていま した。これに対してさらに、以前、自分は grub. conf に記 述を追加すれば任意の数の OS をプートできることを知ら ず、 HD と FD にそれぞれ GRUB をインストールして使 っていた、というフォローがきました。 Newsgroups: fJ.os.linux Subject. / var / www 下のスクリプトの標準出力か消える OS が Fedora Core 3 のマシンで HTTP サーバーを 動かすことになり、 /var/www/cgi-bin に簡単なテスト スクリプトを作成して本正したのですが、 lnternal Server Error となり動作しませんでした。確認したところ、 # ! /bin/sh echo abc という簡単なスクリプトでも、 CGI 以前にシェル・スク リプトとしてすら動作せず、画面に文字カ俵示されません。 このスクリプトを cp で /var/www/cgi-bin からホーム・ ディレクトリや /tmp にコピーして実行すると動作します が、 mv で移動させると動きません。 /var 直下に作成した 場合は大丈夫でしたが、 /var/www の下に作成すると正 常に動作しないようです。 /var/www が特別な状態にな っているとは思えないのですが、なぜこのような奇妙な現 象カ起きるのでしようか、という疑問記事です。 これに対して、そのスクリプトを mv で /tmp に移し て、、 sh / tmp / スクリプト " として実行するとどうなるの か、その場合は動作する、スクリプトに実行権限を与え て、、 / tmp / スクリプト " で実行すると動かない、 cp なら 大丈夫だが mv だと駄目だそうだが、正常に動作しない 条件をもっと厳密に絞り込んで原因を特定する必要があ る、さらに確認したところ、先頭行の、、 # ! / b ⅲ / sh " を削 除したら正常に動作した、システムコール・トレーサー の /usr/bin/strace を使用し、条件によってどのようなシ ステムコールカ駛われているのかを確認したらどうか、 SE- Linux の設疋を確認し、、、無効 " 以外の状態になっていると したらアクセス許可が足りないのかもしれない、といった フォローがきました。 元記事の投稿者がさらに調べたところ、 SELinux の設 定力陏効になっていたそうで、それまでは SELinux が無 効の状態でしカイ吏ったことがなく、今回のようなかたちで 制限されるとは知らなかった、という報告記事が投稿され ました。 Newsgroups: fj.unix Subject: Amavis ウイルスチェック・ソフトウェア AMaViS のなかに perl で書かれた amavisd-new が含まれています。メー ルサーバー・ソフトウェア postfix と組み合わせて使うの が一般的ですが、これを単体でテストするにはどうすれば よいのでしようか、という質問記事です。 .. - い工い工い ) い ,j い工いごい工、」工い工イエい工い - い、 4 工い工いユい工い、工い 4 工しいいこい工い工い工い工い 3 工い工い工い工いい工いしい工い」工い 3 工い ' 、 UNIX MAGAZINE 2005.8 147
SC 翡 好評発売中 ! Linux ブートプロセス みる 図 4 GUI ツールでのサービス一覧の表示 方イルの檜作表示ヘルプせ や→朝 名前 も A 女もを LM9rvice Ad .. も A 叩引加インタ .- も ASP NET S 物 ASP„„ も A 朝Ⅸ ey P 引 •ATISmut 物し駅報ー簡始 グルプー .COM/ ー Sy を m サポー よ S も CO S ) がを m しコンホ . 物をを鰍 3 ネッ杠 も 0 ) が「 S れ一提供ー 自助 田アー D 臧 物 D 博Ⅳを [ T - ネット - 自動 、 Distr 0 .- テーター も D C n を このユ . 自勒 E R 印砒 S . 準ー 問始 0 区 物サ、、•E ス ロロロロネロロロロロ 0 ロ 0 ロロロロネネロ 00 乢を 0 れ Linux の プートプロセスをみる 白物博生 メ、→ウ = , の - 品メ第リ 地 2Cpu の - ・第、・込みと鋼外 / 0 アクス .2 ′ *T アーキチクチャ ラ , ビかもの萼 ロ 0 ラムの p セアップ・ルチみ圧カー カネをテパッオ 、′す第第第を第を の追加と削除 " で、、サービス " スナップインを追加して起動 することもできる ) 。なお、この GUI ツールは Adminis- trators グループのユーザーでなけれは利用できない。 このツールでは、次のような操作がおこなえる。 ・インストール済みのサービスの一覧表示やサービス状態 の変更 ( 開始、停止、一時停止、再開、再起動 ) ・サービスのスタートアッフ重類の変更 開始パラメータの設疋 サービス・アカウントの設疋 ハードウェア・プロファイルに対するサービス設疋 サービスにエラーが発生した際の回復操作の設定 ・サービスの依存関係の表示 図 4 からも分かるように、 GUI ツールではインストー ルされている各サービスについて、、、名前 " 、、説明 " 、、状悲 、、スタートアップの種類 " 、、ログオン " の情報が表示される。 名前フィールドには、その名のとおりサービスの名称が 表示される。ただし、 Windows のサービスには名称が 2 つある点に注意が必要である。 1 つが、、サービス名 " 、も う 1 つが、、表示名 " である。前者はシステムがサービスを 言リするものであり、通常の方法では変更できない。一方、 後者はユーザーにとって分かりやすい名前カ咐けられてい る。 GUI ツールで一覧表示されるのは表示名である。サ ービス名を確認するには、サービスを選択してプロバティ を表示させればよい。たとえば、 DNS CIient サービスは 表小名が、、 DNS Client" 、サービス名が、、 dnscache" とな っている。 状態フィールドには、、、開始 " または、、一時停止 " カ俵示 第 ・白崎博生著 ・ B5 判、 204 ページ ・旧 BN4-7561-4451-9 ・ 2 , 940 円 ( 税込み ) Linux カーネルがプートする仕組みを、コ ードを見ながら詳細に解説する。 CPU の 構造から、 Linux のプートローダとカーネ ルの動作、ⅲ it プロセスの起動までの道筋 をみていく。カーネルの「敷居」を低く する一冊。 目次から ハードウェアの制御ーー CPU のメモリ管理 -32 CPU の保護機能、割込みと例外 CPU のレ O アクセス、 PC / AT アーキテクチャ フロッピーからのプログラムのロード セットアップ・ルーチン、圧縮カーネルの展開 sta 「 tUP-32 ルーチン sta 「 t_ke 「 nel() と setup_a 「 ch() t 「 ap-init() 、 init- 旧 Q() 、 time-init() 、 mem-init() 「 est ー init ( ) からカーネルスレッドの生成まで init() と do-basic setup() ユーザープロセス / sbin / init の起動 カーネルデバッガ 株式会社アスキー 〒 1 02 ー 8584 東京都千代田区九段北ト 1 3-5 日本地所第一ビル 電話 (08) 6888 ー 5500 ( 営業局 ) 81 UNIX MAGAZINE 2005.8
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
」工い工い工いい 3 工い J いユ第しいユ第は工朝ユ L いしい工新い : 工い工しししい J い工い工新エい工しい工い工い 0 しい義第い j い第いこいルい工い工い工い工い J い工しい工 問記事です。 これに対して、一殳に音楽 CD では曲間に無音のデータ が入っているのではなく、音データの前と後ろにプリギャ プとポストギャップというデータのない時間が挿入されて いる、デフォルトではプリギャップとポストギャップがい ずれも 2 秒のようである、 CD ライティング・ソフトウェ アによっては、曲間のギャップの秒数をアルバム全体また は曲ごとに設定できる、たとえば W ⅲ CDR では書込みの 際にディスク・アットワンスにすると、プリギャップとポ ストギャップの長さをそれそれ設定できるようになる、フ リーのツールであれば CDRWIN を使ってキューシート を併用する方法があるようだ、曲の頭出しができなくても よいのなら、複数の曲データファイルを 1 つのファイルに してしまう方法もある、といったフォローがきました。 Subject: libretto 冫毎外モテル Newsgroups: fj.sys. misc Mac OS X V10.3.9 (Panther) か動作している Pow- Subject: ティスク変更 Newsgroups.• . SYS. mac. OS-X きました。 るのなら自分も試してみたいと思う、といったフォローが Apple がリファレンス認定機としてべータ版を有償配布す しれない、冗談ではなく本当に動かす人力咄てくるだろう、 ないと思う、これで Mac OS X カ働くなら購入するかも ックで、とくに PC UNIX 系の OS を使うぶんには問題 換えればよいし、初代 Libretto とくらべれば十分なスペ 軽い PC である、才甜商された点については HD なら入れ 使っている自分にとっては今回の Libretto は十分小さく り大きくて安つほく感じる、 IBM の ThinkPad X30 を 番よくないのはどこか、細かな仕様ではなく、写真で見るよ 用意されているインターフェイスの種類などだろうが、 DVD ドックの存在、メモリの上限が IGB 、 HD が 60GB 、 と思われる点は、 NIC が 10Base T/100Base TX だけ、 物が思ったよりよくないので買う気をなくした、よくない これに対して、待ってましたといいたいところだが、実 約 20 , 000 円高いようです、という報告記事です。 ョッピング・サイトから購入できますが、国内モデルより の国内発売がようやく始まりました。東芝のオンラインシ 東芝 Libretto の海外モデル (libretto U100 00R016 ) UNIX MAGAZINE 2005.8 er Mac G4 (450MHz) で、システムディスクとして容量 の小さい HD を使用していました。これを大きめのものと 交換し、小さいほうは外してしまおうと考えています。そ のため、現在の HD に言定したユーザーの環境をそのまま 新しい HD に移したいのですが、どのようにしたらよいの でしようか、という質問記事です。 これに対して、市販のソフトウェアであれば、 lntego の Personal Backup X で HD のまるごとコピーができる、 Mike Bombich 氏が開発した Carbon Copy CIoner (CCC) というソフトウェアのほうが簡単かもしれない、た だし CCC を動かすには Mac OS X に BSD サプシステ ムがインストールされている必要がある、普通は Mac OS X をインストールすればデフォルトでインストールされる ので問題ないと思う、 CCC はフリーではなく、、ドネーシ ョン ( 寄付 ) ウェア " であり、現在は住所が米国以外のクレ ジットカードも使えるようになっている、この機会に OS を Panther から Tiger にアップグレードし、そのときに ユーザー環境を移す方法もある、ただし、 Panther のほう か右干軽い気がするので 450MHz の Power Mac ならア ップグレードしないほうがよいかもしれない、 Apple の技 術情報ライプラリ (TIL: Tech lnfo Library) の 106941 番に参考になる情報が載っており、新しい HD に OS を クリーン・インストールして対象となるユーザーを作成し、 root でログインして以前の User フォルダの中身を新しい User フォルダにコピーして、 User フォルダ以下の所有者 とグループを chown と chgrp で変更する方法もある、新 しい OS にユーザーを作成する際に、 NetInfo マネージャ で各ユーザーの UID と GID を以前と同じになるように 書き換えれば、 chown や chgrp を使わずにすむ、といっ たフォローがきました。 Newsgroups: . SYS. mac. OS-X Subject: SlipperX Mac OS X V10.4 (Tiger) で、データ通信 PC カー ド専用の USB 変換アダブタである Slipper X を使ってい る人はいるでしようか。 iBook G4 で AIR-EDGE カー ド (SII AH-405C) を SIipper X 経由で使いたいのです が、接続はできても認証のところで失敗します、メーカー の Web サイトをみると Tiger はサポート対象外のようで すが、 Panther では使えていたような気がします、という 149
米 Sun Microsystems は、オープン ソース・プロジェクト「 OpenSolaris Project 」を開始した。 同社の UNIX OS である Solaris のソ ースコードをオープンソースで提供する。 OpenSOIaris Project 単一のソースコードですべてのプラットホ ーム (SPARC 、 X86 、 X64 ) に対応。ライ センス形態は CDDL (Common De- velopment and Distribution Li- cense) VIO OS の主要機能のほか、シ ・ Sun ■旧 M Xeon MP X32 のサーバー 日本アイ・ビー・エム ( Tel 0120 ー 041992 ) は、メインフレームの技術を応用 した X3 アーキテクチャのサーバー「 IBM e server xSeries 460 」の販売を開始 0 CPU は Xeon MP ( 2.83 / 3 / 3.33 GHz)x2—4 で、拡張モジュール ( ハー ドウェア構成は 460 と同等 ) の増設によ り 8 / 16 / 32way の構成が可能。チップセ ットは IBM XA-64e 、主記憶は最大 64GB 、 HD は最大 440.4GB 、拡張ス ロットは PCI-Xx60 1/F は、 10 / 100 / 1000Base Tx2 、 USB 2.0X3 、シリ アル x2 、キーポード、マウス、ディスプ レイ。 対応 OS は、 SUSE LINUX Enter- •HP ラックマウント・サーバーのエントリモテル 日本ヒューレット・パッカード (TeI 03 ー 6416 ー 6660 ) は、ラックマウント・サ ーバー「 HP ProLiant DL140 Gen- eration 2 」「同 DL145 Generation 2 」 の販売を開始した。 DL140 G2 は、 CPU が Xeon ( 2.8 / 3.4 / 3.6GHz ) xl ~ 2 、チップセットが lntel E7520 。 DL145 G2 は、 CPU が Opteron 248 ( 2.2GHz ) / 252 ( 2. 6GHz)X1—2 、チップセットが AMD- 8000 。いすれも主記意は最大 16GB 、 HD べイ数は 2 ( シリアル ATA または UItra 320 SCSI)O 拡張スロットは、 PCI Ex- press/PCI-X 共用スロット、 PCI-X0 I/F は、 10 / 100 / 1000Base Tx2 、 10 Base T/100Base TX ( リモート管理 用 ) 、シリアル、 USB 2.0X4 、キーポ ード、マウスなど。 対応 OS は、 SoIaris 9 、 Red Hat En- terprise Server 3 / 4 、 SUSE LINUX Enterprise Server 8 / 9 、 Windows 2000 Server/Server 2003 。 •HP Linux クラスタ向け高速ファイルサーバー 米 HewIett-Packard は、ファイルサ ーバー「 HP Unified Cluster Port- f01i0 」を発表した。 ハードウェア、ソフトウェア、サービ スを顧客に合わせて提供するモジュラー UNIX MAGAZ 工 NE 2005.8 型のパッケージ製品。新たに L ⅲ ux クラ スタシステム向けのファイルサーバー HP StorageWorks Scalable File Share (SFS) 2.0 を追加し、クラスタ管理ソフ トウェア同 XC System Software 、同 NEWS ステム監視のための solaris Dtrace ( ダ イナミック・トレース ) 、リソースの使用 率を高める SoIaris コンテナ、予測的セル フヒーリングなどの Solaris 10 の機能が 含まれる。インストール・ツールなど、他 のコンポーネントのソースコードもオープ ンソース化する予定。 http://www.opensolaris.org/ prise Server 9 、 Windows Server 2003 。 外形寸法 (HxWxD) は 12.8 ( 3U ) X44X71.5cm 、重量は最大 37.6kg 。 価格は 198 万円から。 13 InfiniB and に対応。 に強化。サーバー / ディスク間の接続は 1.0 の 3 倍 ) 、容量を最大 512TB ( 同 2 倍 ) れ、帯域幅を最大 35GB / s ( 既存の SFS レイ・システム StorageWorks で構成さ 2.0 はサーバー ProLiant とディスクア Cluster Platform の機能を強イし SFS HD 80GB ( シリアル ATA ) ) から。 000 円 (Opteron 248 、主記億 IGB 、 から、同 DL145 Generation 2 が 231 主記億 IGB 、 HD 80GB ( シリアル ATA)) eration 2 が 157 , 500 円 ( xeon 2.8GHz 、 価格は、 HP ProLiant DL140 Gen- 重量はいずれも 15.9kg 。 G2 ) / 4.3 ( DL145 G2 ) X68X42.6cm 、 外形寸法 (HXWXD) は 4.4 ( DL140 HP ProLiant DL145 Generation 2
N EWS 高速暗号化アルゴリズム使用の SSH ディアイティ (Tel 03 ー 5634 ー 7651 ) は、フィンランド SSH Communica- tions Security のセキュリティ通信ソフ トウェア「 SSH Tectia Server (M) 」 「同 ( F ) 」の販売を開始した。 いずれも企業向けのセキュリティ通 信ソフトウェア、、 SSH Tectia" の新製 ロロ。 SSH Tectia Server (M) は IBM のメインフレーム向けの製品で、 ssh 、 sftp 、 scp などの機能力俐用できる。既存 の SSH Tectia 製品との互換性をもつ。 同 ( F ) は sftp べースのファイル転送ソフ トウェア。 SSHv2 準拠の SSH G3 アー キテクチャを採用し、暗引ヒアルゴリズム ・モリサワ フォントの一括提供ライセンス モリサワ (Tel 06 ー 6647 ー 2253 ) は、フ オントのライセンス・システム「 MORI- SAWA PASSPORT 」を提供する。 リュウミン、新ゴ、フォーク、カクミ ンなど同社のフォント 138 書体の使用権 を 1 年単位で購入できる。対象外のフォ J2EE の後継バーション EcIipse PIatform 3 コ 12 TooIs) などのプラグインと組み合わせて 開発環境 JDT (Java Development ア部分に相当するソフトウェア。 Java められている統合開発環境 Eclipse のコ 米 Eclipse Foundation で開発が進 ア「 Eclipse Platform 3.1 」を発表した。 は、オープンソースの開発基盤ソフトウェ Eclipse Japan Working Group Enterprise Edition) の後継バージョ 既存の J2EE (Java 2 PIatform, tion (Java (E) 5 」の機能を公開した。 「 Java PIatform, Enterprise Edi- ence において、サーバー向けの Java 環境 された JavaOne DeveIoper Confer- 米 Sun Microsystems は、 6 月に開催 ント、プリンタ用フォントはオプション で提供する予定。新書体のリリースやフ オントのアップグレードの際は追加料金 なしでフォントデータ (CD-ROM) を送 付。フォントのフォーマットは NewCID と OpenType で、 Mac OS 用と Win- •Sun 追カ乢 JSP 、 HTML 、 XML などのファ ・インターフェイスの開発などの機能を スの正、 EclipseSWT べースのユーザ ト・アプリケーションの開発、 Web サービ J2SE 5.0 との統合、リッチクライアン EE 1.4 アプリケーションの開発と発行、 を含む ) では操作性や拡張性を改善し、 J2 使用する。新バージョン ( 主要プラグイン •EcIipse Japan WG を強化し、沙開的なタグをまとめた JSTL 手順などを単純化した。 JSP の管理機能 コードの記述法、配信方法、 EJB の開発 ユーティリティ・クラス、ヘノレヾーを追カ乢 情報などを埋め込むための機能 ) 、新しい て、アノテーション ( ソースコードに解説 ン。開発の負担を軽減するための機能とし CryptiCore によりデータ転送速度を高 めた。 SSH Tectia Manager による集 中管理が可能。既存の SSH Tectia 製品 UN 工 X MAGAZINE 2005 . 8 できる。 (http://www.eclipse.org/) から入手 Eclipse Foundation の Web サイト など。 AIX 、 Linux 、 Mac OS X 、 Windows 対応 OS は、 Solaris 8 、 HP-UX 、 PIatform) での単イ柘に験を簡素イし TPTP (Test & performance T001 備える。 JUnit との統合により、 EcIipse イルの作成を容易にする新しいエデイタを スで提供すると発表した。 Platform Edition 9.0 をオープンソー Java System Application Server て、 Java アプリケーション・サーバ—Sun 同時に、 Java EE 5 の参考実装とし う仕組みに対応。 for XML Binding) などの XML を扱 XML) 、 JAXB (Java Architecture ポート。 StAX (Streaming API for (JSP Standard Tag Library) をサ 括払い割引も用意。 イント割引、大手顧客向けの特別割引、 有しているフォントをもとに算出されるポ ンタ 1 台あたりの年間使用権 ) 。すでに所 000 円 / 315 , 000 円の予定 ( いすれもプリ 用フォント ( 低解像度 / 高解像度 ) は 105 , PC 1 台あたりの年間使用権 ) 。プリンタ 500 円 / 31 , 500 円 / 47 , 250 円 ( いずれも 価格 ( 一般 / 教育機関 / 公共機関 ) は 52 , dows 用 (OpenType のみ ) がある。 ー ) / 68 , 000 円 ( クライアント ) 。 ( M ) が 477 万円、同 ( F ) が 248 , 000 円 ( サ 価格 ( 税別 ) は、 SSH Tectia Server HP-UX 、 Linux 、 Windows など。 (M) が z/OS 、同 (F) が solaris 、 AIX 、 対応 OS は、 SSH Tectia Server に対応した。 もアップグレード ( V5 ) により SSH G3