特集・プログラミング入門 1 ) あるのでしようか ? 」 です。プログラムを開発する OS や言語系によって答え 方か変わってきますが、一搬的には次の事柄を学ぶことが 重要でしよう。 ・プログラミング言語の処理系について十分に学ぶ たとえば、 C 言語ひとつをとっても、 UNIX 工韆竟であ れは標準 C コンパイラ (/usr/bin/cc) 、 GNU C コ ンパイラ (gcc) 、さらに各システムで下力する商用の C コンパイラがあるでしよう。これらの違い、さらにコマ ンドライン・オプションなどを知ることは重要です。マ ルチプロセッサ・システムなどでは、コンパイラによっ て描化処理が異なり、最終的に処理性能に大きな差が 生しる場合もあります。利用しているシステムでどのコ ンパイラを使うのが描商かという視点で、よく考えて処 理系を選択することが大切です。 デバッガを使う プログラムの重川乍におかしな点があると、さまざまな変 数をプリントアウトするための printf() 文をあちこち に入れてデバッグするというガ去がよく使われます。し かし、効率よくテンヾッグをしたいのなら、テンヾッガを用 いて作業を進めるのが一番よいでしよう。 UNIX 環境 で C 言語を用いて開発をおこなう場合には、もっとも よく使われるデバッガである gdb (GNU Debugger) の利用法を身につけておくとプログラマーとしての技量 カ蔀寉実に矼 E します。 ・ソースコード管理ツールを使う ソフトウェアを開発していると、どうしてもさまざまな 版 ( バージョン ) カ吽まれてしまいます。これらのソー スコードを整理する場合、もっとも簡便なのはファイ ルやディレクトリを分けて管理するガ去でしよう。し かし、この方式だけに頼ると、ファイルを分類した基 準を忘れてしまったり、どのファイルがどのバージョ ンから派生したのかがはっきりせす、最新版を探すの に苦労したり、あるいは、特定のユーサー向けに特別な 変更を加えてリリースしたバージョンが分からなくなる など、いろいろな間題か当をにしがちです。 そこで、ソースコードを管理するためのツールカ張年 にわたって開発されてきました。最近になって、その 、、だめ押し " ともいえるツール、つまり、 110 これを使えは ほはすべての間題が解決できるツールが登場しました。 それが、 CVS (Concurrent Versions System) です。 CVS は、いまや個人レベルでのファイル管理から、グ ルーフで開発する際のソースコード管理まで幅広く使わ れています。利用法も簡単なので、せひとも使いこなせ るようにしておきましよう。 ・コンパイル管理ツールを使う コンパイル日 ) イ 1 喋を管理する各種のツールも登場して います。コンパイルをいちいち手作業でおこなっている と、いろいろなトラブルか生したり、間違ったファイル をコンパイルするなどの屯なミスを犯しやすくなりま す。このようなことを避けるには、コンパイル管理ツー ル、すなわち、どのソースファイルをどのようにコンパ イルするかを管理するツールを使うとよいでしよう。 UNIX の世界では、コンパイル管理ツールとして make コマンドを使うのが - ヨ勺です。したがって、すくなく とも make は不自由なく使いこなせるようにしておく べきでしよう。さらにワンランク上を目指すのであれ ば、 autoconf や xmkmf を使いましよう。前者は複数 のフラットホームに対応するソースコードを、後者は X ウインドウ・システム上のアフリケーションを対象とし たコンパイル作業の管理によく利用されます。これらの 条件に合うソフトウェア・パッケージを作成するのな ら、この 2 つのツールの使い方を身につけておくべき です。 プログラム作成のもう 1 つの大きな目的は、はかの人 に使ってもらう ( はかの人が使えるようなかたちて提供す る ) ということです。これを実現するには、以下に記すよ うにいくつかの方法があります。 オープンソース 丘の流行は、ソースコードを公開するオープンソース 形式での提供です。この去では、プログラムがおこなっ ている処理の内容から、その記述形式までのすべてをほか の利用者にさらけ出すことになるので、初心者はためらい を感しるかもしれません。 オープンソースの大部分は無償提イ共を前提としている ため、商用目的で開発するシステムをこのガ去で公開する ケースはきわめて稀だと思います。しかし、多種多様なソ 提供方法 UNIX MAGAZINE 2002.11
連載 / IJN Ⅸ便利帖ー 0 図 2 5 分おきに mrtg を実行するための crontab の記述 5 , 10 , 15 , 20 , 25 , 30 , 35 , 40 , 45 , 50 , 55 * * * * /usr/10ca1/mrtg—2/bin/mrtg /usr/10ca1/mrtg-2/gw ・ cfg 5 分おきに mrtg を起動する方法はいくつかあると思い ますが、もっとも単純なのは crontab を利用する去で しよう。 crontab ファイルに日付や時刻を指定して実行 したいコマンドを列挙すると、 cron というデーモンが毎 分これを監視し、指定された時刻になるとそのコマンドを 実行するというイ督はみになっています。 crontab ファイルを編集するには crontab コマンド を利用します。、、 crontab -e" として実行すると竟変数 EDITOR に設定されているエデイタかⅵか起動して、 cr 。 ntab ファイルを編集できるようになります。 crontab ファイルは、 1 つのコマンドに関する指定項目 を 1 行に並べて書くというかたちになっており、 : 附旨定項 目はスペースまたはタブで区切ります。指定項目はコマン ドを実行する日リを分、時、日、月、曜日の順で言当主し、 その後ろに実際のコマンド名をします。 こでは mrtg コマンドを前述したような形式で 5 分 ごとに実行したいので、 crontab ファイルに日当する内 容は図 2 のようになります。 図では、、 5 分ごと " という意味で、、 5 , 10 , 15 , ・ ・ , 55 " と 書きましたが、最近の PC UNIX などでは、、 * / 5 " と書 けは同じ意味を表せます。詳しくは crontab のオンライ ン・マニュアルを参照してください 9 ☆ 今回はルータやスイッチのトラフィック量を則して見 やすい形式て表示してくれる MRTG を紹介しました。今 月はほとんどインストールの説明になってしまったので、 次回は MRTG の応用編として、より見やすいページを出 力するための設定ファイルの作磁去や、トラフィック量以 外のデータを言れ則するガ去などを紹介したいと思います。 ( みやした・けんすけ京都女子大学 ) 9 たんに man crontab" とすると crontab コマンドのマニュアルカ咄 力されます。 crontab ファイルのマニュアルを参照したいときは、、 man 5 crontab" とします。 関西オープンソース十フリーウェア 2002 主催 : 関西オープンソース十フリーウェア 2002 実行委員会 関西ネットワーク相互接続協会、ソフト産業プラザ iMedio 共催 : グッティ、関西☆ BSD ユーザ会 協賛 : ねっと屋 後援 : 日本 UN Ⅸユーザ会 オープンソースやフリーウェアのなかには、多くの人と連携し物事を なすことのおもしろさ、作ったものを多くの人と共有する楽しさなど、人 間が本来もっている社会性が感じられます。関西は、これまで新しい 文化を起こしてきた土地であり、文化交流のなかから新たなものを導 き出すパワーにも満ちています。 このイベントは、オープンソースやフリーウェアを開発、利用してい るコミュニティ自身が主催します。ふだんは会う機会のない開発者や ほかのユーザーと直接交流できます。現在、以下のプログラムを予定 しています。 ・展示 ( 無料 ) 企業やユーザー・コミュニティなどから出展を募ります。 ・ステージ・プログラム ( 無料 ) 会場内のオープンステージにオープンソース / フリーウェアのキーバ ーソンを招き、プレゼンテーションやインタビューを企画しています。 ・講演会 ( 無料 ) / セミナー ( 有料 ) 多くの識者やソフトウェア開発者を講師に迎え、オープンソースや フリーウェアに関するさまざまな話題について講演やセミナーを開 催します。 UNIX MAGAZINE 2002.11 会期 : 2002 年 12 月 6 日 ( 金 ) ~ 7 日 ( 土 ) 会場 : 大阪産業創造館 大阪市中央区本町 1 -4-5 地下鉄堺筋線 / 中央線・堺筋本町駅下車、徒歩 5 分 http://www.b-platz.ne.jp/ 関西オープンソース十フリーウェア 2002 実行委員会事務局 問合せ先 http://of.good-day.net/ E-maiI: info@of.good-day.net Tel 06-4796-6120/FAX 06-4796-7373 ( 株 ) グッティ内担当 : 矢吹幸治 大阪駅前第 2 ヒル 13F 〒 530-0001 大阪市北区梅田 1 -2-2-1300 83
L i n u x とオープンソースの 真の可能性を 見せてあげよう。 Linux KerneITuning S0ftware Customization Ultimate Performance あなたが求めている技術力は、 VALinux にある 私たちはお客さまのシステム設計・構築・運用を支援するオープンソースのテクノロジー イノベータ。お客さまのニースに対し < 企画 / コンサルティング > から < 開発 / サポート > までの幅広いプロフェッショナルサービスを展開しています。オープンソースに関する豊富な 知識と経験、そして高い技術力により、 Linux とオープンソース・ソフトウェアを利用した 大規模 / 高信頼システムなどの構築に貢献しています。その実績のひとつが「 NFS サーバの 高速化」です。 TCP 月 P のネットワーク上で分散システムの共有テータ領域として広く 利用される NFS 。しかし、アクセススピードやシステムの安定面などに、問題を抱えていました。 私たちは N FS のハイエンドレベルでのシステム対応を可能にするため、「ゼロコピーの 実装」など、 50 項目以上のチューニングを実施。高性能と高安定性を両立させることで、 NFS の高速化を実現しました。 VA Linux Systems ジャパンは今後もさまざまな開発を 通して、お客さまに最適なシステムをお届けします。 VA Linux Systems ジャノヾン株式会社 〒 163-0230 新宿区西新宿 2-6-1 新宿住友ビル 30F TEL. 03-5323-3500 http://www.valinux.co.jp sales@valinux.co.jp 技術部 : 柳原良亮 Linux カーネルチューニング < NFS の高速化の場合 > 0 カーネル内部でのゼロコピーの実装 QNFS で使用する資源の拡大・変更 0 カーネル内部での排他処理の改善 0 スケジューラの改良 QNFS の高負荷対策 ( メモリ奪取抑制 ) * 上記以外にも、 50 頃目以上のチューニングを実施 V A [ ー N U X
特集・プログラミング入門 = ↑ 表 2 おもなプログラミング言語 ( 2 ) カテゴリー スクリプト系言 特徴 もともと、 IJNIX のシステム管理者が日常的におこなう処理を手軽にできるようにす る目的で開発された処理系。オープンソースとして開発され、 PerI て書かれたさまざまな 機能をもつパッケージが大量に提供されている。処理系の高速化や多機能化により、いまで は PerI だけでネットワーク・サービスをおこなうサーバーも言当できる。 PerI で本↑箚勺 なアプリケーションを開発するケースも出てきている。言語としては、 C 言語や AWK な どの既存の UNIX 系フィルタの景グを受けてはいるが、豸寺の言語処理系である。 UNIX を使う以長 Perl くらいは常識として知っておくはうがよい まつもとゆきひろ氏カ発した、オプジェクト指旬型のスクリプト言語である。その言石冓 造は、ちょっとしたプログラムの作成から本↑勺なプログラミングにまで対応できるムさ と豊かな記生に特徴がある。 UNIX はもちろん、その他の多くのプラットホームて利用 できる。その用途も、 PerI と同様に多岐にわたる 山も匠は、 WWW サーバーのバックエンドとして働くデータベースへのアクセスによく利 用されている。 PHP をインターフェイスとして使えるようにするため、各種のデータベー ス・システムに対するプリッジ機能を提供するパッケージが開発されている。その結果、 MySQL や PostgreSQL 、 Oracle 、 LDAP などのデータベースをバックエンドとして 利用できるようになった。言語としては、きわめて簡単な構造になっており、習得も容易 である。去も丘の WWW コンテンツではバックエンドにデータベースを置き、手前に適当 な処理系を作ることもよくあるため、 PHP を習得するプログラマーも増加している 汎用工デイタ GNU Emacs における処理当言語である。本家の Common Lisp とは Emacs Lisp 異なり、いろいろな制約がある。しかし、 GNU Emacs というプラットホーム上で多種 多様な処理か第当主できるように刻長も施されている。たとえば、 Emacs Lisp でメールを 読み書きするためのクライアント・パッケージ (MUA : Mail User Agent) などがある。 Emacs Lisp も、 Lisp 型のスクリフト言語と捉えることができ、実用的なアプリケーショ ンの開発が可能という点でも強力である 習得できるはすです。 実現できるのではないでしようか。 プログラミング言語の習得は次のようなステップで進 描丘は、オープンソース方式で公開されているソフトウ ェアがたくさんあります。なかには、 CVS などを用いて、 むと考えられます ( 括弧内は自然言語にあてはめたもの 開全中のソースコードを公開しているプロジェクトもあ です ) 。 ります。最初は、このようなソフトウェアのうち、ある程 1. プログラムの構造喇冓文を学ぶ ( 基本去を学ふ ) 。 度規模の小さなものを選び、ソースコードを読んでいくの 2. ほかの人か書いた簡単なプログラムを読む ( 上交的簡単 もよいでしよう。あるいは、 NetBSD や FreeBSD など、 な文章を読む ) 。 オープンソースカ試で開発がおこなわれている OS のコマ 3. プログラムを構成するライプラリなどの要素について学 ンド ( のソースコード ) を読むのも有益です。 ぶ ( 語彙を増やす ) 。 私自身の経験では、 15 年ほど前に UNIX に出合った 4. より規模の大きなプログラムを理解する ( より多くの文 とき、 C 言語を学ぶ過程で UNIX のコマンド仙も匠なら、 章や囓籍を読む ) 。 GNU の binutils がそれにあたります ) のソースコード 5. 短いプログラムをたくさん書く ( 簡単な作文を数多くこ を眺めたことや、 X10R4 (X Window System Version なす ) 。 10 Release 4 ) のソースコードを分担して読み、内容を学 6. 実際の開発に携わる ( 本格的な文章を書く ) 。 んだことか現在でも大きな力となっています。 どんなツールを使えばいいの ? もう 1 つよく訊かれるのが、 「プログラム開発凵叫リなツールには、 どのようなものが 言語 五ロ 二 11 ロ Ru by PHP 3 は、ライプラリやツールキットといった構成要素につ いて学ぶことですが、これは 2 の、、ほかの人か書いたプロ グラムを読む " という訓練を十分にしていれば、ま可間で 109 UNIX MAGAZINE 2002.11
特集・プログラミング入門 フトウェアがオープンソース形式で提供されてきたからこ そ、 Linux や BSD UNIX などのシステムで日常的な作 業をおこなえるようになり、 Windows などとくらべても 遜色のない環境か整備されたことを忘れてはいけません。 ですから、オープンソースによるソフトウェアの提供とい ー鉢重の社会運動に参加するのも悪くない考えだと思い ます。自分が開発したソフトウェアが見知らぬ人に使わ れ、さらにフィードバックが寄せられたりするのは、な んともいえないものです。一度は、そのような体験をして みるとよいでしよう。 また、オープンソース形式のソフトウェア開発では、パ ッケージとしてまとめられるアプリケーションだけではな く、ライプラリやツールキット、誰でも使えるフォントや アイコンなど、開発に必要なパーツも提供することがよく あります。このように、上交的少ない労力でオープンソー スのコミュニティに寄与・できる道もあります。 シェアウェア シェアウェアは、おもに Windows 用のソフトウェア を提供する際によく使われるガ去です。開発したソフトウ ェアを有料て配布したり、あるいは、ライセンスコードを 購入すれはすべての機能を有効にするなど、上交的安価に ソフトウェアを提供する場合に利用されています。たとえ ば、 Vector のダウンロード・サイトではシェアウェアの販 売登録と料・金徴収の代行サービスをおこなっていますし、 @nifty などのポータルサイトでも同様のサービスがあり ます。これらのサイトを介してオンライン販売を手軽にお こなえるため、去もは腕のあるプログラマーのちょっとし た小遣い稼ぎの手段にもなっているようです。 商用ソフトウェア もう 1 つの提供去は商用ソフトウェアです。これに ついてはとくに説明する必要はないでしよう。販売占や代 理裔を通して、商業べースで市販されているソフトウェア です。有料だけあって、ポリュームのあるソフトウェア がたくさんあり、丘はとくにカスタマー・サポートにカ を入れている製品も増えてきています。 パッケージ化のための技術 こまでに紹介した提供ガ去のいすれを利用するにして も、ソフトウェアをパッケージ化する作業は重要です。 UNIX MAGAZINE 2002.11 Windows 用のソフトウェアであれば、 InstalIShieId のようなツールを使ってインストーラやヘルプファイル などを 1 つのパッケージに収め、さらにヘルプファイル のデータベースに追加されるようにすることも必要でしょ う。通常は、いったんインストールしたアプリケーション をシステムから削除するためのアンインストーラも用意し ます。 去も丘は、 UNIX でも RPM ノヾッケージや FreeBSD の ports 、 NetBSD の packages に代表されるノヾッケージ イけ支術がひろく使われるようになってきました。したがっ て、プログラマーは作業に使う各種のツールク寺徴や、上 手なパッケージ化の力法 ( どうすれは問題が生しないか ) も頭に入れておく必要があります。 バグの修正 提供するソフトウェアには、いろいろなバグが潜んで いる可能性があります。なんらかのバグが発見されたとき は、開発者はバグを修正して新たなリリースを公開しなけ ればなりません。 このような場合に備えて、発見されたバグの内容、報 告を受けた日時、そのバグへの対処など、バグの発見か ら修正にいたるまでの情報を管理するツールも使われてい ます。とくに、複数のプログラマーが共同で 1 つのパッ ケージを開発している場合には、バグ情報をトラッキング 6 毆亦 ) するツールが不可欠です。これには、トラブルチ ケット管理システム (trouble ticket management sys- tem) 、あるいはヘルフ。デスク・システム (help desk sys- tem) と呼ばれるものを利用するのか普通です。そのはと んどは商用製品ですが、ソフトウェアのバグに関する報告 や顧客からのクレームに対するな対応と、処理の漏れ を防ぐためのサポート機能なども備えています。 これらを利用すると開発がスムーズに進むことが分かっ たため、も丘はオープンソース、フリー・ソフトウェアと して提供されるシステムも登場し始めています。 ☆ こまで、プログラミングについて一ヨ勺な説明をして きました。とくにプログラミングのもつ未、プログラミ ング技法を習得するうえて重要な点について述べてきたっ もりです。 111
, けつま 3 びっ qmail は、 sendmail とはまったく異なる構造をもつ MTA アプリケーションです。 Postfix と同様にモジュー ル化されていますが、各プログラム・モジュールごとに別 のユーザー ID を付けるようになっているので、セキュリ ティ機能か高くなっています。状態を言当求することができ るため、信頼生か高いのも特徴てす。 smail は GNU プロジェクトか開発している MTA プ ログラムで、 sendmail と同様の機能を提供しますが、設 定がとても簡単です。 smail ではメッセージをキュー ( 待 ち行列 ) で管理していないので、他の MTA プログラムに くらべて処理が速くなりますが、大阯のメールを扱うサー バーではキューが必要となるのてイ吏えません。 exim はメッセージの受信制限をおこないやすく、スハ なぜ Postfix か ? ムを羽餘しやすいメールサーノヾーだそうです。 UNIX MAGAZINE 2002.11 1 http://www.kame.net/ KAME プロジェクトの IPv6 パッチがなくなったおも 得してこれらのパッチを当てる必要があります。ただし、 公開されています。 IPv6 を使いたい場合は、ソースを取 のパッチを変更したパッチがいくつかインターネットで 1.1.11 やそのあとのスナップショット用にも、 KAME プロジェクト 1 で作られた IPv6 パッチがあります。また、 もっとも、すこし旧いバージョンに対しては、 KAME で、 IPv6 を使った電子メールの送信はできません。 念ながら、 Postfix 自体はまだ IPv6 に対応していないの NetBSD 1.6 にも Postfix 1.1.11 が含まれています。残 Postfix オフィシャル・リリースの山辭斤版は 1.1.11 で、 か簡単なはうがよいでしよう。 Postfix を使おうと決めま もかかりません。それに、最初に使う MTA としては設定 最初から OS に伺属しているのならインストールの手間 と教えてくれました。 ノじ、つ」 しいことはないが、最初はすぐ使える Postfix がよいと か最初から刊属している。 sendmail も慣れてしまえ ( 隹 「じつは NetBSD 1.5 以降には sendmail と Postfix と、 ひととおり調べたあとで、もう一度師匠に相談してみる な理由は、 Postfix 中の IPv6 のコードがオープンリレー の原因となることか判明したためだそうです。 IPv6 を使 うのはこの部分のバグがなくなってからにしたはうがよい でしよう。 今回は IPv6 はあきらめて、 NetBSD に付属している Postfix を使うことにしました。しばらくしてメールサー バー管理に農れたころには、 Postfix が IPv6 に対応して いるかもしれません。もしくは sendmail に挑戦してもい いかな、と考えています。 ◎ Postfix を使おう 実際に Postfix でメールサーバーを構築する竹喋を始め ましよう。その前に、初めてのメールサーバー管理なので、 参考書があったほうか安心です。書店に行って Postfix の 解説書『 Postfix メールサーバの構築』 [ 1 ] を購入してき ました。本を片手に、いよいよ Postfix の設定を始めま す。たまたま師匠も最近は自分のサーバーで Postfix を 使っているので、その設定も参考にさせてもらうことにし ました。 Postfix のインストール NetBSD 1.5 以降の場合、システムに Postfix か含ま れているのでインストールの必要はありません。ただし、 スナップショットを使いたい場合や、パッチを当てたい 場合もあると思うので、簡単にインストール手順をみてお きましよう。 ます、 Postfix の FTP サイトからソースコードを取 得します。 FTP サイトはたくさんあるので、 WWW サ イトのリンクを使って、近いところをみつけます。また、 パッチを当てる場合は該当するパッチも取得しておきま す。続いて、ソースコードを作業用ディレクトリに展開し て、パッチを当てます。 インストール則に、 postfix という名前のユーサーとグ ループを作成しておきます。また、 maildrop グループも 作成します。これは maildrop キュー操作用のグループ です。 NetBSD では最初からこれらのユーサーやグルー フ。か設定されているので、新たに作る必要はありません。 続いて root になって、ソースを展開したディレクト リで、 87
・ ookshelf 『通信ネットワーク標準講座』 JA 、 『 Ja a 国際化プログラミング』 通 ネットワーク 標準講座 国際化フログラミング ・ An nabel Z. DOdd 著 ・ Andrew Deitsch 、 David Czarnecki 著 ・堤大介訳 ・風間一洋訳 ・ソフトバンク ・オライリー・ジャパン ・ A5 判、 328 ページ ・ B5 判変型、 449 ページ ・ 2 , 600 円 ・ 4 , 200 円 ・ 2002 年 9 月 6 日 ・ 2002 年 9 月 24 日 さまざまな通信ネットワーク技術とその歴史、通信産業 衄 ( おもに Java 2 SDK 1.3 ) でソフトウェアの Java ロロロ の現状と動向などを紹介した初心者向けのガイド。電気通 国際化のために提供されているクラスとフレームワークに 信の基本、通信ネットワークの基本技術、電話網とデータ ついて解説。 12 章構成で、国際化プログラムを記述するた 通信、その伝送媒体、公衆通信ネットワーク、各種ネット めに必要となる主要な概念、 Java における国際化サポ ワーク技術、インターネット技術、無線通信ネットワーク トに関連する各種 API やクラスの使い方などを、多くの について、それぞれ章を設けて説明している。 サンプルコードを示しながら説明している。 入門旧ルーティング』 『 KDE 3.0 アプ丿ケーションプログラミング KDE 3.0 アプリケーション プログラミング IP ルーティング ・ Ravi Ma 旧 0 a 著 ・ LOtzi BöIöni 著 ・清水奨訳 ・杵渕聡監訳 ・オライリー・ジャパン ・翔泳社 ・ B5 判変型、 300 ページ ・ B5 判変型、 331 ペー ン ・ 2 , 800 円 ・ 3 , 200 円 ・ 2002 年 8 月 31 日 ・ 2002 年 8 月 23 日 ルーティング・プロトコルの動作と設定に重点を置いた オープンソースの統合デスクトップ環境 KDE の概要と 解説書。 IP ルーティングの基本的な概念を説明した 1 章、 開発ツール、 KDE アプリケーションの作成に必要となる 各種ルーティング・プロトコル (RIP 、 RIP-2 、 IGRP 、 さまざまな要素 ( ウィジェット、メニュー、バー、ダイア EIGRP 、 OSPF 、 BGP-4) の仕組みや動作を解説した 2 ~ ログ・ポックスなど ) 、一般的な KDE アプリケーションの 7 章、それらのルーティング・プロトコルで共通して使え 構成や設定ファイルのフォーマット、 XML を利用した高 る管理テクニックを紹介した 8 章に分かれる。 度なプログラミング・テクニックなどを紹介している。 『入門 SNMP 』 『 Wiki WayJ iki メ コラホレーションツール Wiki SNMP ツ ・ DougIas R. Mauro 、 Kevin J. Schmidt 著 ・ Bo Leuf 、 Ward Cunningham 著 ・土本康生監訳、福田剛士訳 yomoyomo 訳 ・オライリー・ジャパン ・ソフトバンク ・ B5 判変型、 337 ページ ・ B5 判変型、 453 ページ ・ 3 , 400 円 ・ 3 , 800 円 ・ 2002 年 7 月 29 日 ・ 2002 年 9 月 10 日 システムやネットワークの管理に SNMP がどのように コンピュータ上での共同作業を支援するツール Wiki の 利用されているかについて、具体例を挙げながら解説した 開発者による解説書。 Wiki の基本概念、インストールと 入門書。 SNMP の概要と動作、対応ハードウェア、各種 基本的な使い方などについて述べた 1 部、 Wiki サーバー ネットワーク管理ツールなどの紹介に続き、テーマごとに の動作原理、カスタマイズ、管理について説明した 2 部、 商用製品やオープンソースのツール ()P OpenView 、 大学や企業での利用例を数多く紹介した 3 部からなる。各 Net-SNMP など ) の設定や使い方を紹介している。 種 Wiki クローンなどを収録した CD - ROM 付き。 158 UNIX MAGAZINE 2002.11
11 ー Plat' H0 a ー e ① " Process lntel@XeonTM Processor 1.80GHz 最大 12GB ※ 2GB 団 MM が必要になります lntel@ PRO/1000XT Gigabit Ethernet ControII lntel@ 82546EB RedHat ⑩し i Windows 00 一※その他の OS も順ー CPU RA M ネットワ - ク 対応 OS .3 1 年目オンサイト保証 2 ~ 3 年目センドお ' ・保証 最長 4 年間保 工ンタープライズ仕様の オープンソース対応サーバ登場 Trus-E1 1 は、 Inte19 XeonTM プロセッサをデュアル・プロセッサ構成で搭載 可能なラックマウント・サーバです。 Linux をはじめとするオープンソース オペレーティングシステムと、 Microsoft@ Windows9 2000 Se Ⅳ er 等に対応しています。 T 「 us - E11 は、ウエプサーバやメールサーバなどのインターネット・アプリケーション に対し、プロードバンド時代に対応する高い性能を提供します。また Intel@XeonTM プロセッサの高い浮動小数点演算性能により、限られた面積に多台数の設置が必要な並列演算 クラスタ・アプリケーションにおいても威力を発揮いたします。そのほか、これまで 4- way クラスのマルチプロセッサ機が必要となっていたテータベース・サーバ等のビジネス アプリケーションにも最適なプラットフォームです。 Trus-E1 1 の特長 最先端のテクノロジー ギガビット・イーサネット 冷却システム ハイパフォーマンスサーバには、強力な冷却が必要ですシステム全体での冷却を 標準で IOOOBASE - TX ギガビット・イーサネット コンバクトな筺体に P 「 estonia コア 追求し、ヒートシンク、メモリ、 PC 防ードすべてが、空気の流れを考慮して配置されて t 可⑧ Xeorr プロセッサと を 2 ポート装備 います。専用の釐体との組み合わせにより、理想的な冷却システムを実現します t 可⑧ E7500 チップセットを コントローラは t 可⑧ PRO / 1000XT ギガビット・ ィーサネット・コントロープ nt 可⑨ 82546E 日を搭載。 採用し、 Du プロセッサ構成が 簡単な保守・運用 高速な転送速度を実現します 可能ですさらに 3.2GB / sec の 高帯域を有する主メモリ ( ECC 機能付き ) 工具なして都品の交換が可能であり、容易に電源 大容量 HDD と R 0 サポート と PC ト X バススロットといった最先端のテク やファンやマザーポードの交換ができます。また ノロジーを凝縮しました 3 台のハードディスクを搭載することカ河能です 標準添付の管理ソフトにより、遠隔地から温度の さらに RA 旧オプションにより、 RA 旧 0 、 RAID 1 また 監視や異常事態 拡張性 は RAID 5 の構成 発生時の自動シャ・ をサポートします ットダウンなどが可 コンバクトな筺体ても拡張性は犠牲になりませんメモリ 能です は最大 12GB まで増設可能、さらに PC 励ードは 2 枚まで 拡張可能です Trus-E11 (u) 348 , 000 円 基本仕様 プロセッサ : lntel@ Xeorr Processor 1.80GHz マサーボード : 旧 t ⑧ E7500 グラフィック :ATI RageXL ネットワーク : 旧 t Gigabit Ethemet Controller メモリ : 128M B x 2 HDD : SCSI HDD18GB 管理ツール : lntel@ Server Management Plat'Home TotaI Solution Service コンサルティング サーバ構築のエキスパートとして、システム構築、導入に必要とされる情報をご提供します カスタム・システムインテグレ - ションサ - ビスーお客様のシステムの設計からプログラムの開発、テスト、マニュアル作成までをご支援いたします セキュリティ 培ってきた UN Ⅸの、あらゆるノウハウを集約して、セキュアで快適なネットワーク環境をサポート クラスタ構築 確実に実現できるハイパフォーマンス・ PC クラスタ・ソリューションを提案したします ※インテル ,lntellnside ロゴ、 Pentium 、 Cel 部 on はアメリカ合衆国およびその他の国における インテルコーポレーションまたはその子会社の商標または登録商標です。 マルチ OS/PC-UNIX べンダー ぶらっとホーム株式会社 本社 : 〒 1 01 -0021 東京都千代田区外神田 2-4-6 ササゲビル TEL : 03-3251-2600 FAX : 03-3251-2602 店鋪 : 〒 101-0021 東京都千代田区外神田 1-11-4 ミッワビル TEL: 03-3251-7611 FAX: 03-3251-7000 お電話ください オンラインショッビングでも受付中 ! Plat'Home お問い合わせはこちら 0 RL http://www.plathome.co.jp/ XEON 0120-795-123 の・
ロプログラミンク・テクニック 多治見寿和 traceroute6 前回までは traceroute コマンドをとりあげ、その動 作のアルゴリズム、 main 関数での作業、実際のバケット 処理などについて説明してきました。今回は、 IPv6 ネッ トワークにおいて traceroute コマンドと同様に重川乍する traceroute6 コマンドを紹介します。 t 「 ace 「 oute6 コマンド 一言でいえば IPv6 ネット traceroute6. コマンドは、 ワーク用の traceroute コマンドです。あるノードから別 のノードに対して、どのような糸響各を通ってバケットか送 信されるかを調べることかできます。オプションも、ゲー トウェイを指定する一 g や、アドレスから名前の鮹夬をお こなわない一Ⅱなど、 traceroute コマンドとよく似たもの が用意されています。 その理由は、 traceroute6 のソースコードが trace- route のソースコード (traceroute. c) を修正して作られ たものだからです。ただし、最新版をベースにしているわ けではないので、利用できる機能やオプションなどにすこ し違いがあります。 重川乍のアルゴリズムも、 traceroute コマンドと同オ兼で す。目的ノードに向けて、適当なポート番号を使い、 TTL の値を調整しながら UDP バケットを送出します。そし て、これらのバケットに対する施答として送られてくる複 数の ICMP'S ケットを検査することで、目的ノードまで の経路十に存在するノードをヾます。 ただし、 IPv6 では ICMP6 を利用するため、メッセー ジが IPv4 とは異なります。途中のノードから返された応 答の場合、 IPv4 ではメッセージが ICMP-TIMXCEED でコードが ICMP-TIMXCEED-INTRANS でした UNIX MAGAZINE 2002.11 が、 IPv6 ではそれぞれ ICMP6-TIME-EXCEED と ICMP6-TIME-EXCEED-TRANSIT になります。 目的ノードに到達した場合も、 IPv4 ではメッセージ が ICMP-UNREACH でコードが ICMP-UNREACH -PORT でしたが、 IPv6 ではそれぞれ ICMP6-UN- REACH と ICMP6-UNREACH-NOPORT になり きはども述べたように ます。 ソースコード traceroute6 コマンドのソース それではさっそくソースコードをみていきましよう。さ 59 ントの後ろにもあります ( 図 2 ) 。 バージョン情報は、コピーライトに関連する一嗹のコメ 思います。 から FreeBSD フロジェクトに渡った日付ではないかと こに記されているのは、おそらく KAME プロジェクト ドも、同しく KAME プロジェクトで開発されました。 フロジェクトから生まれたものです。 traceroute6 コマン FreeBSD に含まれている IPv6 のコードは、 KAME ます、地可引ンヾージョン情報か当されています ( 図 スファイルは traceroute6. c のみです。 usr. sbin/traceroute6 に褓内されています。なお、ソー ソースコードはこのディレクトリに対応する / usr / src / traceroute6 コマンドは /usr/sbin に置かれており、 とにします。 route コマンドとは異なる部分に重点を置いて説明するこ は前回まで紹介してきたものと同しです。そこで、 trace- コードは traceroute. c を拡張したものなので、基イ寸冓造
特集・プログラミング入門 1 ) す。このビット演算も、初心者にとっては理解しにくい処 理かもしれません。 自由形式 C 言語には、 Fortran のように、、 xx のカラムから書 き始めなけれはならない " という制約はなく、自由な形式 で記述できます。コンパイラは、二重引用符に囲まれた部 分および名前を区切るための空白以外は、ソースコードの 改行文字、タブ文字、空白文字を無視して処理します。し main(){int は、 printf ("%d\n" a = a 十 main() たがって、 45 ; a;a=a + 45;printf("%d\n" 関数の集合 とまったく同じということになります。 UNIX MAGAZINE 2002.11 に直結します。 習得しておくことは、 C プログラマーとしての技量の向 E リで提供される関数にはどのようなものがあるかを学び、 言韶 ) 処理系の主要な要素となっています。標準 C ライプラ プラリは、すでに国際規格として標準化されており、 C 言 この標準 C ライプラリをはしめとするいくつかのライ ラムか書けるようになっています。 ラマーがいちいち基本的な関数を定義しなくても、プログ て利用される汎用的な関数がたくさん揃っており、プログ しよう。標準 C ライプラリには、はとんどのプログラム のための標準 C ライプラリ (Standard C library) で 書き始めるときに一番お世話になるのは、基本的な入出力 なライプラリカ甘是供されています。私たちカワ。ログラムを C 言語では、この関数の機能を上手に活用して多種多様 コンパイルすることもできます。 関数として定義してもかまいません。関数は別々に作成、 す。また、プログラマーは適当な処理をひとまとめにし、 最初に実行されるのは、 main() という特別な関数で ます。 C 言語によるプログラムは、関数の集合として定義され プリプロセッサ C 言語の処理系には、プリプロセッサ (preprocessor) と呼はれるフィルタが用意されています。このプログラム のもつ多彩な機能により、さまざまな状況に応してコンパ イルできるポータブルなプログラム開発が可能になってい ます。 C 言語処理系 115 可育彡式のファイルを作成します。 ソースコードを書き終えたら、コンパイラを使って実行 コンパイラの利用 ( 基礎編 ) のように、、 < > " て括る形式を使います。 #include く stdio . h> 読み込む場合は、 また、システムに標準で用意されているヘッダファイルを のように C プリプロセッサの機能を使って読み込みます。 #include "bar . h't ヘッダファイルは、ソースコードのなかで、 うに拡張子が、、 . h " のファイルとして用意します。 ル " を作ります。ー殳に、ヘッダファイルは、 foo. h のよ 構造体や共通の変数を定義するときは、、ヘッダファイ がよくあります。 担ごとにファイルを分割してソースコードを作成すること ラマーが共同でプログラムを開発する場合には、各自の分 イルを適切に分割するほうがよいでしよう。複数のプログ 開発するときには、コンパイルの手間などを考えて、ファ 分かりにくくなってしまいますが、大規模なプログラムを もかまいません。小さなプログラムをむやみにうリすると ほど簡単に触れた関数ごとにファイルを分割して言当して として、、 . c " を付けた名前のファイルに保存します。さき 通常、これらのソースコードは、 foo. c のように拡張子 を作成します。 ューサーは、エデイタを使って C 言語のソースコード ソースコードの作成 ーヨ勺な処理の手順は次のようになります。 ーヨ殳に、 C 言語の処理系ではコンパイラを利用します。