フロジェクト短信 日本 GN 〇 ME ユーザ会通信 GaIeon 1 -03 / 1 . 1 .3 リリース EvoIution れ 02 リリース web プラウザ GaIe 。 n の待望の 1.0 がリリースされました。 Ximian,Inc. による統合メールツール Ximian EvoIution の 最新バージョン 1.0 がリリースされました。検索サイトで検 フリーソフトのバージョン番号にはこれといってあまり意 味はありませんが、開発陣としてはこれで一区切りという 索してみると、 EvoIution 1.0 は多くのニュースサイトで注 ことでしよう。 GNOME 1. x 系列と GNOME2 系列でプラン 目され、インストールして使ってみたユーザーも少なくな いようですが、ビジネスが展開できるほどの普及とはいか チが分かれ、それぞれ最新リリースは 1.0.3 , 1.1.3 となって います。対応する Mozi Ⅱ a のバージョンは 0.9.8 です。 ないようです。その理由として ・ユーザーを惹きつけるような機能がまだあまりない http://galeon.sourceforge.net/ ・安定度がまだまだ ・ Emacs メーラや Mutt 等のコマンドラインメーラのアッい GUAD3C 壁に阻まれている 4 月 4 日 ~ 4 月 6 日の 3 日間、スペインで GNOME カンファ ・メーラにはオフィス製品のフォーマットのような、切実 レンス GUADEC (GNOME Users And Developer European な問題がない conference) が開催されます。 GNOME の開発者が一堂に ・ sylpheed はすばらしいメーラである 会して議論を行う GUADEC は今年で 3 回目の開催となりま 等があると思われます。とはいえⅥ風の編集コンポーネン す。今年は sun が力をいれており、アクセシビリティ発表 トが出現するなど、 UN Ⅸ文化の中に浸透していきそうな なども行われます。開発者だけではなくユーザー向けのセ きざしも見えてきています。 ッションも多く開かれており、普通の観光ではまず行かな いような場所を訪問できるのでみなさまお誘い合わせのう Gnumeric れ 04 リリース えせひ気軽にお越しください。 GNOME の表計算ツール Gnumeric の最新バージョン 1.0.4 がリリースされました。この 1.0.4 は GNOME l.x 系ですが、 http ://www.guadec.org/ GNOME2 に対応したバージョンカ scvs の HEAD として公開 されています。 GNOME2 バージョンでは、筆者が作成し FreeBSD GNOME プロジェクト たいくっかの国際化コードがすべて無効になってしまい、 FreeBSD に特化した GNOME のサイトがたちあがってい ツールキットカⅲ c 。 de に対応したところでアプリケーショ ます。まだコンテンツ等はないようです。 ンが自動的に国際化されるわけではないことが GNOME2 においても証明されました。 http ://買w買.FreeBSD.org/gnome/ ファイル旧編 E ) 挿入 0 ) 設定凹、ルプ旧 ) Mr Project 0 る .1 リリース ロ 0 ロ第喝確 に、たよい 0 新規開く保存挿入削除インデントインデント無し上へ下へ割り当て ... Microsoft project のようなプロジェクト管理ツール、 Mr pr 可 ect の 0.5.1 がリリースされています。 GNOME ユーザ会 による日本語化の甲斐あって、日本語入力等もできるよ うになっています ( ただし、入力位置はまだ正しくない ) 。 スクリーンショットからもわかるように、ガントチャート によるタスクとリソースを効率的に管理することができま す。 日本 GNOME ユーザ会中井幸博 / Y ″翫たⅲ nakai@gnome.gr. JP プロジェクト全体 ネッ下フ讐 レンツ、 http://mrproject . codefactory. se/ 0 を 222 BSD magazine 2002 No. 1 1
. スゞペ - シャノレ■ S ecual Linux SSD/Lin1-1)& 場 ぶらっとホをム株式会社 加納保 /Tamotsu Kanoh0 kanoh@plathome.co.jp BSD ライクな アパッケージの集合体であることを考えれば、やむ負えな 不本意ながら、昨今の流行ゆえに Linux に関わりを持た ざる負えない BSD ユーザーも少なくないかと思う。筆者 いことと理解はしているが、 kernel の構造や機能 / 性能を (SSD/Linux の作者 ) もその一人である。 問う以前に、こうした使い難さが筆者らを憂鬱にさせてい 筆者らが簡単なサーバーを立てる場合、 NetB SD か るのである。 FreeBSD を FD でプートし、ネットワーク (FTP) インスト ールで最小限の環境だけを載せ、目的に応じて叩 ache なり bind なりのソースを持ち込み仕上げてしまうのが常である。 サーバーの設置環境が悪ければ、 CD 求 OM は埃を吸い半 ならば、オリジナルのディストリビューションを作れば 年もすればリードエラーを起こしやすくなるため、支障時 良い。当然、そういった思いは昔からあったのだが、使い の再インストールを考慮するとクリーニングしやすくプー 難いという理由だけではオリジナルのディストリビューシ ト時にしかメディアを読まない FD のほうが望ましく、また ョンを手掛けるコストとは到底釣合うはすもなく、そもそ も筆者らには「誰が好き好んで Linux のディストリビュー バックアップ / リストアの時間、つまり支障復旧時間とセ キュリティを配慮すれば余計なツールは載せないほうが良 ションなんて作るのだ」という決定的な障壁があった。 ところが OpenBl 。 ckS を提供し始めてから以降、筆者ら いのだ。 ところが、これを Linux で行おうとするとネットワーク の間でコンパクトな Linux 、特にユーザーランドソースツ リーというものが改めて必要視されるようになり、そして インストールのできないデイトリビューションや、できる 決定的な障壁はパロディ版 BSD magazine 2001 vol.l の ものでも何枚も FD を必要としたり、おおよそ使いもしな いツールが山のようにインストールされてしまったりと、 BSD/Linux が見事に破壊してくれた。そう「お笑い」なら 作っても良いかなと・・ あまり嬉しくないことばかりなのである。さらに Linux に は、どのディストリビューションを取ってもユーザーラン ドソースツリーと呼べるものが見当たらす、たとえば login(l) や fsck(8) 、 mount(8) 、 init(8) といった定番ツールの ソースを眺めようとしても、その所在を突き止めるだけで 一苦労を強いられてしまう。 Linux ディストリビューションの多くが商用目途ゆえに 初心者を意識した作りとなっていること、そして Linux の ユーザーランドが個々に管理 / リリースされるソフトウェ 094 BSD magazine 2002 NO. 1 1 バロディーで行こう ! 概要 SSD/Linux という名称は、 BSD/Linux を意識したもので あることは言うまでもない。頭の 'S' は「外神田」である。 まだ″版ではあるが、次のような特徴を持っている。 ・ BSD ライクなユーザーランドソースツリーを持っている。
い。ちなみにシステムコールの数はす べての BSD において共通というわけで はなく、 BSD / OS が約 250 個、 NetBSD は xxx 個となっている。 てしまえば、少なくともユーザーアプ 200 強のシステムコールすべてを理解し で処理が行われる。逆に言えばたった せよユーザーアプリケーションの責任 ステムコールを使うにせよ使わないに のすべてである。これ以外の処理はシ らカーネルに対して行えるリクエスト この数がユーザーアプリケーションか テムコールがあるようにも思えるが、 数だけみると非常にたくさんのシス マリスト 1 #include # inc 1ude #include # inc lude int main(int char char く stdio . h> く unistd . h> く sys/types . h> く sys/wait . h> arg c Char * * *eargs [ 3 ] ; *editor; argv , char **envp) pid-t pid; int status ; eargs [ 0 ] eargs [ 1 ] eargs [ 2 ] editor "tmpfile . = NULL ; "/usr/bin/vi" 2 泓コ加ミン刎 れらのモードは BSD のユーザー管理に おけるスーパユーザーと一般ユーザー の概念と似てはいるがあまり関連はな い。より具体的なシステムコールの呼 び出し方に関しては、自分が使ってい る OS のソースコード ( なければ gdb で 簡単なプログラムをトレースしてもい いが ) を参照してほしい。 C でかかれるアプリケーション向けに はほとんどのシステムコールがライプ ラリ関数としてインターフェイスが提 供されているのでこれを使うのが良い。 システムコールプログラミング さてそれでは実際に簡単なプログラ ムを作りながらいろいろなシステムコ ールについて説明していくことにする。 こでは、紙面上の都合もあり、シス テムコールを大きく、プロセス関連、フ ァイル関連、ファイルシステム関連、プ 類のモードしか使用されていない。こ カーネルモードとユーザーモードの 2 種 りあえず現在の BSD の実装においては レベルを複数持てるものもあるが、と 実装されている。 CPU によっては特権 モードに移行する CPU の命令を使って スに対してアクセスする権限を持った たユーザーモードからすべてのリソー まなリソースへのアクセスを制限され システムコールは一般的にはさまざ システムコールの実装 るプログラムでも書くことができる注 2 。 リケーションでできることならいかな 付随するシステムコールは BSD の非常 プロセスの生成、消滅およびそれに プロセス関連 カテゴリーにわけて説明することにする。 ロセス間通信、ネットワーク関連の 5 つの pid = fork() ; / * 子プロセス実行中に親プロセスの実行 * / / * が不要な場合は vf 。 rk ( ) を使った方が効率が良い * / if (pid く 0 ) { perror ( "fork*nt' ) ; exit(l); / * 工ラー ー 1 とどちらを使うかはお好み次第 * / = 0 ) { / * 子プロセス * / } else if (pid execve(editor, eargs, envp) ; / * 子プロセスで vi を起動 * / exit(l); } else { / * 普通はここには来ない * / / * pid が一 1 , 0 以外の場合親プロセス * / printf("child PID waitpid(pid, &status, 0 ) ; / * こう言うときは vfork を使った方がいい * / return(0) ; printf ( " child proc has finished*n" ) ; に基本的、かつ重要な機能を提供して くれるわりにその数は極めて少ない。 fork() 、 vfork() 、および一部の OS では rfork ( ) がプロセスを新たに生成する唯 ーの手段であり、 execve ( 古い実装で は execv) が現在のプロセス上に新しい プログラムを走らせる唯一の方法であ る。またプロセスを安全に終了する唯 ーのシステムコールは exit ( ) システムコ ールである。 f 。 rk ( ) 系のシステムコールは現在実行 中のプロセスイメージのコピーを作る。 注 1 例外的にいくっかのソフトウェア ( x サーバー等 ) はハードウェアを直接制御することもある。 注 2 ioctl という魔法のシステムコールもあるし、 FreeBSD などはカーネルモジュールをロードすることによってシステムコールを増やせるので必すしも断言は できないのだが。 2002 No. 1 1 BSD magazine 053
3 5 0 でルータを作ろう ! ルータにおける フィルタリングについて 近年では、インターネットへの接続がかなり常識となってき ており、誰もがインターネットに接続されているようになった。 インターネットとは社会の基盤の「 1 つ」となり得るものだ と筆者は信じているが、それは道路と同様モラルが守られて いるべきだ思う。 しかしながら、現実のインターネットでは、モラルの低い ( ない ) 一部のユーザーによるクラッキング行為が日常と化し、 ウイルスや DoS / DDOS などが横行する状態になっているのも 否定し難い状況である。個人的にはこのようなモラルのない ユーザーには死刑や追放を宣告したいところだが、現在のと ころ有効にそのような馬鹿者を追い出す方法はない。 もちろん、 CERT なども努力されているし、さまざまな開発 者達もできるだけ攻撃に強いシステムを作り、運用者達も攻 撃を防ごうと日夜努力をしているが、基本的には、とにかく 自衛あるのみという状態である。 本誌のセキュリティ特集の号汨にも記載されているし、さ まざまなセキュリティ関係の書籍などにも記載されていること ・セキュリティを厳しくすると利便性か下がる login 画面が出て、ユーザー名とパスワードの入力を行うよ うにするだけでも「不便だ ! 」と苦情が来るようになる。 また、強制的にパスワードを変えなければならないように システムを設定すると、「面倒だ冂と苦情が来る。 ・セキュリティを緩くすると攻撃される smtp のリレーを許すと UCE の踏台にされるし、 telnet を許 すとパスワードを奪われてしまう場合がある。しかも、 root を乗っ取られてデータも壊されてしまうというような状態 が発生する。 セキュリティの世界には、「まさか家の子だけは」という論 理はまったく通用しないし、しかもその攻撃されている事実 を掴めない場合もしばしは有在するのである。 さて、ルータにおけるフィルタリングだが、ルータでフィル タリングを行わなければならないのは、以下の理由による。 1. 端末が安全であることを仮定できない Windows は、案外開いているポートが多く、またその閉じ もちろん、ルータでフィルタリングを行ってもすべての攻撃 に対する影響は最小限にとどめられる。 ルータで可能な限り攻撃を止めておけば、内部ネットワーク 3. 一般的な攻撃による内部ネットワークの混乱を防止する ーはネットワークの専門家ではないからである。 うなるのかわからないで行う場合が多い。なぜなら、ユーザ されてしまうことがある。しかし、ユーザーは、「なぜ」そ の利用ができるように設定されたがゆえに外部からアクセス 新しいアプリケーションが提供された際にネットワークから 2. ユーザーが何を行うか予想できない ポートあったり、そこにセキュリティホールがある場合もあ 方がわからない。 BSD や Linux などでも、標準で開いている いかを冷静に考えていただき、必要に応じて道具として利用 えている方はぜひ考えを改め、 NAT で何ができて何ができな 場合もあるので一概にはいえないが、 NAT があれば安全と考 NAT は万能ではない。もちろん、 NAT である程度楽ができる は結局 NAT の内側にまで影響を与えてしまうことを考えると、 また、 NAT があっても Mail Virus や CodeRED のような攻撃 半は、バケットフィルタでも防ぐことができる。 があるようだが、 NAT を利用することで保護できる攻撃の大 なお、 NAT を利用すればセキュリティが保てるという議論 ると良いだろう。 を行えるので、本誌のバックナンバー注 2 を参照の上設定され 利用してフィルタリングを行えば十分バケットフィルタリング BSD システムでルータを作成した場合、 ipfilter や ipf などを きるので、ぜひ活用してほしい。 p 「 otoc 引に応じた制御などは、 ALTQ などで処理することがで 被害を与えないようにすることは可能である。このような はルータで止めることができれば、少なくとも LAN の内側に 析を行わなければならない ) が、℃ MP を利用した DDoS など されるようなウイルスなどはルータでは止め難い ( データの解 が止められるわけではない。たとえばメールに添付されて配送 していただきたいと思う。 注 1 BSDmagazine2000No.6 、特集「セキュリティと暗号技術を考える」 注 2 BSD magazine 2000 No. 5 、特集「 BSD で My Se Ⅳ e 「を作ろう ! 」 BSDmagazine2001 NO. 7 、特集「ファイアウォールを考える」 BSD magazine 2001 No. 10 、特集「ネットワーク管理者虎の巻」 2002 No. 1 1 BSD magazine 021
B S D R E P O R T O F O P E N S O U R C E アッフル Richard Kerris 、 Alan SamueI インタビュー アップルの Mac OS X は、今 BSD ユーザーにとってもっとも気になる OS の 1 つなのではないだろうか。 アップル Dev ope 「 TechnoIogies のディレクターである Richard Ke ⅲ s 氏および Java Techno gy マネージャーである A n SamueI 氏に Mac OS X の現状について話を伺った。 編集部 : お二人のアップルにおけるポジ ションについて教えていただけますか。 Richard : 私は Developer Technologies のディレクターをしており、 Unix や Java や c 。 c 。 a などのさまざまなデベロッパー 関係のプログラムを管理しています。 AIan : 私は Java TechnoIogy マネージ ャーとして Richard の下で働いていま す。 Java のデベロッノヾーのニーズを孑架 って、それらを Mac OS x に持ってくる というのが仕事です。 編集部 : BSD ユーザーから見ると Mac OSX はすぐれたユーザーインターフェ イスを持つ Unix に見えるのですが、 アップルが目指している Mac os x と は、どのようなものなのでしよう。 Richard : Mac OS x はまったく新し いもので、古い MacOS とは異なるオー プンなものです。これはオープンスタ ンダードなものなのです。ですから、 BSD のユーザーにぜひこのすばらしい 環境を提供したいと願っています。オ ープンコアの FreeBSD べースの OS 、 れをサポートすることで、今までにな かったデベロッノヾーのコミュニティを 作ることができると思っています。わ が社は、サンフランシスコで行われる BSDCon 2002 の主要なサポーターです し、 FreeB SD コアチームのメンバーで ある Jordan K. Hubbard はアップルチー BSD magazine 2002 No. 1 1 ムの一員になっています。 122 編集部 : Un ⅸ系のデベロッパーを取り 込んで、プログラム開発をしてもらい たいということですね。 Richard : 我々としては、開発のプ ラットフォームを提供したいと思って います。その目的が、販売用のアプリ ケーション開発でも社内用のソフトウ ェア開発でも構いません。 編集部 : 古い Mac OS というのはある 意味、コマンドラインインターフェイ スを否定したものだったと思います。 それに対して Mac OS x は、 Mac OS の インターフェイスとコマンドラインイ ンターフェイスの両方を備えています ね。将来的には、 MacOSX も従来の MacOS のようにグラフィカルユーザー インターフェイスがメインになってい くのでしようか。 Richard : コマンドラインインターフ ェイスをなくしてしまったり、隠した りすることはありません。それらを混 合した形で使っていくということにな ります。 Mac OS x のいいところは自分 の好きなフレームワークで使えるとい うところです。しかも、これらを一緒 に使うことができます。場合によって は、コマンドラインインターフェイス のほうがグラフィカルユーザーインタ ーフェイスよりも効率がいいときがあ ります。たとえば 100 枚の写真のファ イルをカタログ化するのに、マウスで 1 つ 1 つやっていたのでは何時間もかか ってしまいますが、スクリプトを書い て処理すれば短時間ですみます。 編集部 : たしかにおっしやる通りなの ですが、それは昔のアップルのやり方 とはかなり大きく変わっているのでは ありませんか。 Richard : もちろん、もはや古いアッ プルではありません。大きな変革を遂 げています。戦略も変わり、オープン な環境を目指すようになったのです。 編集部 : Mac os x の開発言語として は、何が最適なのでしようか Objective-C ですか。それとも Java でし ようか Richard : それはプログラマ次第で す。過去においてはこれを使えという ような強制をしてきたかもしれません が、もはやそういう強制はしません。 何を使いたいのですか、とプログラマ に問い掛けて、 Java が使いたいという のであれば Java のツールを提供します。 はじめてプログラミングをするという 人に対しては C 。 coa べースのフレーム ワークのほうが自由にアイデアを探る ことができ、またラピッドプログラミ ングの機能もありますからお勧めです。 編集部 : 昔のアップルとはずいぶん違 いますね。 Richard : いいほうに変わっていると 思います ( 笑 ) 。
) な集と煢 テラ一 ( 0 システムコールとは何か ? ーーシステムコ - ルフログラミングの基礎 増田佳泰 /Yoshihiro Masuda ますだよしひろく masuda@bsdi.com/ 物正剏川助川 1 鬮剏川 1 第は」Ⅶ U は リソースをすべて管理するコードが書 に一番下にハードウェアレイヤーを制 御するデノヾイスドライバが存在し、そ かれることが多かった。たとえばテキ スト VRAM に文字を直接書き込んで表 の上にそれぞれのデバイスをファイル 示させる方法などは表示速度の向上の 基本的には、 UN Ⅸ上で動作するア もしくはネットワークといったより抽 ために良く使われた方法である。 象化された表現で制御できるレイヤー プリケーションプログラムから直接ハ BSD のようなマルチューザー、マル ードウェアをアクセスすることはでき がある。仮にここではこれをカーネル チタスクの os においては上記のような レイヤーと呼ぶことにしよう。システ ない。これは UNIX がマルチューザーマ ルチタスク OS であるということに根本 仮定をすることは基本的にはできない ムコールはこのカーネルレイヤーに対 して直接メッセージを発行してシステ 的な理由がある。シングルタスク OS で ため、通常すべてのシステムリソース あれば、ハードウェアリソースの管理 は OS の管理下におかれることになる。 ムリソースを制御する。通常はカーネ 業務は特に行う必要はない。同時には ルレイヤーの上に更にそれを抽象化し システムリソースの中には、メモリを 含むすべてのハードウェア、 pty 等の仮 あるいはパフォーマンスを向上させる 1 つのプログラムしか動かないわけだか ら、そのコンピュータの持っすべての 想的なハードウェア、ネットワークお ライプラリと、システムコールを直接 リソースを現在動いているプログラム 発行する基本的なコマンドが乗り、更 よびネットワークを通じたセッション が占有してしまっても支障はないので 等が含まれる。この OS によって管理さ にその上でユーザーアプリケーション れたリソースを、 os を通じて「使わせ が動作する注 1 。 ある。シングルユーザー OS であれば、 てください」とお願いするプロトコル たとえその OS がマルチタスクをサポー がいわゆるシステムコールと呼ばれる トしている場合であっても、今そのコ ンピュータを使っているユーザーの管 ものなのである。 本稿では、システムコールを使った 理の元にあるハードウェアリソースを 占有することは許される。たとえば自 プログラミングの基礎を説明する。 分がラップトップやデスクトップに使 っているコンピュータの画面を丸々占 有するアプリケーション群があっても 冒頭でも述べたが、 OS に対してシス 隹も困りはしない。 テムリソースを「使わせてください」 その昔 ( 今でもやっている人はやっ ている ) 、マイコン用のプログラムを書 とお願いする手続きを一般に「システ ムコール」と呼ぶ。 UN Ⅸの場合シス システムコールの数 くときには、 テムコールは c のライプラリ関数とし FreeBSD の 4.4 を例にとるとシステ て実装され libc. a ファイルの中に含まれ ・自分以外のプログラムは動いていない ムコールの数はおよそ 300 個ほど存在 ・ユーザーの必要とする入出力装置は する。どのようなシステムコールがあ ている。 固定的である るのかの詳細はオンラインマニュアル システムコール、ライプラリ、コマンド のセクション 2 および /sys/sys/syscall. h という 2 つの前提の元に、ハードウェア UNIX システムの構成は、図 1 のよう ファイルを参照してもらうのが一番良 052 BSD magazine 2002 NO. 1 1 はじめに AppIication Software Basic Command Library System CaII FiIe Systems Device Driver Hardware User Land システムコールとは Kernel 一三ロ
3 5 0 でルータを作ろう ! 普及によって、このようなネットワーク されるように、ネットワーク全体を設 御をすることになる。 つまり、 fxp 1 でアクセス回線より帯 構成の必要性が増してきている。 計する必要がある。 図 5 は、 4 台の工ッジルータと 2 台の 域を若干絞ることによってポトルネッ クを作り、輻輳時にはここにバケット コアルータからなる diffserv ネットワー が溜るようにしてキュー制御を可能に クを示す。工ッジルータの役割は、ネ ALTQ は、現在 KAME プロジェク する。図 4 の例では fxpl のインターフ ットワークの入口で流入トラフィック ェイスを 1.4Mbps に絞っている。この を測定し、必要があればヘッダ内の トに統合され、 KAME の CVS ツリー上 di Ⅱ serv フィールドを書き換えることで で開発を行っている。したがって、最 方式はトラフィックのほとんどが、 TCP のように輻輳回避を行う場合には ある。たとえば、あるユーザーに対し 新版は KAME の CVS あるいはスナップ 版から取得できる。 ALTQ 単独のパッ て最低帯域 5Mbps を保証していれば、 機能する。しかし、たとえば、 UDP の DoS 攻撃を受けた場合など、 ISP 側の これを越える分のバケットには重要度 ケージもありいこちらは KAME からバ の低いことを示すコードを書き込む。 ックポートする形で作られ、不定期に ルータのバッフアが溢れるのを防ぐこ また、 VoIP バケットには低遅延を要求 とはできない。 リリースされている。また、 NetBSD- するコードを書き込むようにする。 外向きのトラフィックに関しては、 current と OpenBSD-3.0 以降には、す コアルータは、ヘッダ内の diffserv ⅸ p0 の帯域をアクセス回線の帯域に合 でに ALT Q がマージされている。 わせて、こでキュー制御を行うよう -7 を一ルドなをて、限られた数の FreeBSD に関しては、 -current 自体が なかなか安定してこないため、現在の クラス別にトラフィッ制御を行う。 にしている。 ところマージの予定は立っていない。 diffserv ネットワークでは、、ユーザーに 依存するような処理はすべて工ッジル 今後の開発予定としては、設定の簡 diffserv を使った応用例 ータで行われるため、ユーザー数が増 素化、統計情報ツールの充実、クラシ さらに進んだ使い方として、 diffserv ファイア部分の改良などがある。 ネットワークを構成して、ユーザー毎の えたり、ネットワークの規模が大きく なってもコアルータにはあまり影響し 帯域保証を実現したり、リアルタイム ない。いつほう、ネットワーク管理者 性を要求するバケットを優先する例があ は、必要な帯域やその他の資源が確保 げられる。 DoS 攻撃の日常化や VoIP の fxpl ( 1.4M ) 現状と今後 レファレンス http://www.csl.sony.co.jp/-kjc/soft ware. html http: 〃 www.icir.org/floyd/cbq.html http://www.isi.edu/rsvp/rsvp.html fxp0 ( 1.5M ) access line A LTQ-box local-net lnternet 10M access router 1 .5M 1 OM 図 4 アクセス回線応用例 http.//www.icir.org/floyd/re d. html edge router edge user3 userl http //www.icir.org/floyd/e cn. html 100M 1 OOM 100M 1 OOM IOM core router (osaka) http://www-2.cs.cmu.edu/-hzhang/ HFSC/main. html core router (tokyo) u ser4 user2 edge router edge router diffserv network 図 5 diffserv ネットワーク例 041 BSD magazine 2002 No. 1 1
( INDEX に載っているものとインストールされている もののみ有効 ) 。 ・ -P: リンク切れのシンボリックリンクを削除するよう ・ -D: 空のディレクトリを削除するようになりました。 終了しない ) 。 るように修正されました ( 工ラー時にプログラムを即 ・一 CDP : 複数のタスクを一回のコマンド呼び出しで行え portsclean ( 1 ) mozilla 、 netsc 叩 e と順に当たるように変更されました。 ザは、従来は lynx 固定でしたが、 w3m, lynx 、 links 、 ・環境変数 BROWSER が設定されていないときのプラウ になりました。 なりました。 それに依存するパッケージも ( 再 ) ビルドするように いようになりました。また、パッケージを作るとき、 ージ作成に失敗しても旧バージョンへの復旧は行わな ・ -p: インストール自体がうまくいった場合は、パッケ ある不具合が修正されました。 と。 rigin が異なるパッケージを検出してしまう場合が ・ -p: パッケージを検索する際、パッケージ名が同じだ 適当と考えたためです。 ンストールの場合も - R の有無の選択肢を提供するのが かりの新機能でしたが、更新の場合と同様に新規イ ないように仕様が変更されました。前号で紹介したば ・ -N: ー R が指定されない限り、依存パッケージを更新し になりました ( sud 。 ( 8 ) が呼ばれる ) 。 ・ As: コマンドをスーパーユーザー権限で実行するよう 係に基いて決定するように改良されました。 ・更新順序を実行時依存関係ではなくビルド時依存関 が修正されました。 MAKE ー ARGS で指定した引数が正しく渡らない問題 ・セッションの最初にビルドされる port に限り、 ない問題が修正されました。 ・特定のオプションの組み合わせが思った通りに動作し portupgrade ( 1 ) /portinstall( 1 ) フロジェクト短信 ・ -s: すでにスーパーユーザー権限で動いているときは sud 。 ( 8 ) を呼ばないように改善されました。また、デ ータベース更新を要するときは sudo(8) で pkgdb ー u を実 行して更新を試みるようになりました。 全般・その他 ・ pkg ー s 。 rt ( 1 ) がまったくソートをしていなかったのが修 正されました。 ・ネイテイプスピーカーの方々の協力により、マニュア ルページの英語表現の改善と用語の統一が図られま ・ zsh の補完定義にあったいくつかのバグが修正され、 説明文も補充されました。 ・ PKGREPOSI TORY と PKGREPOSITORYSUBDIR の 利用は廃止し、 PACKAGES の値を使うように修正さ れました。 ・ /etc/peri0dic/weekIy/400. status-pkg の置き換えスクリプ トが用意されました。 ・一 v を付けない場合の情報量がより適切になるよう、各 コマンドのメッセージの冗舌度が調整されました。 ・標準入力カ曜末でないときは、初期化のための stty ( D 呼び出しを行わないように修正されました。 pkgdb と portupgrade を核とする pkgtools は、新しい枠組 みによってその役目を終えるときまで、改良を続けていき ます。 いろいろともどかしい ports/packages ですが、開発側の都 合の陰で苦労するユーザーが目の前の問題を「今」解決する のを助けるため、包容力のある強力な道具を提供しつづけ たいと思っています。 2002 No. 1 1 BSD magazine 203
一 IGIDE フログラミングのツホ い。そこで、本稿では "Hello, world' ' 的な視点の入門で はなく、機能全体を俯瞰するような、つまり KDE の概念 紹介のようなことをやってみる。そして、単なる説明だけ ではやはりわかりづらいだろうと思うので、 KDE ソースコ ードのどこに何が書かれているのかを紹介しよう。 ユーザーインターフェイスに関する機能 アクション たとえば「ファイルを開く」という処理は、メニュー ショートカットキーなど、さまざまなユーザ ツール . バー ー操作によって起動される。「ファイルを開く」という動 作は、どうやって起動されたかによらす常に同じものであ る。であれば、「ファイルを開く」という処理自体は独立 して定義しておいて、必要に応じて GUI オプジェクトと結 び付けるようにすれば、柔軟性が高くなるだろう。このよ うな抽象的な「処理」を表したものを「アクション」と呼 ぶ注 2 。 Qt では QAction クラス、 KDE では KAction クラスで プ ) に表示されるテキスト、アイコン、ショートカットキ 、それにアクションの処理内容であるスロットとアクシ ョン名で定義される。アクションの定義例はリスト 1 を見 ていただきたい。 「ファイルを開く」「ファイルを閉じる」「新規作成」な ど、どのアプリケーションでも共通に使われるアクション は「標準アクション」と呼ばれ、簡単にアプリケーション に組み込むことができるようになっている。標準アクショ ンは KStdAction というへルバークラスを使って簡単に生成 できるようになっている。リスト 2 はリスト 1 を標準アクシ ョンを使うように書き換えたものだ。 KAction クラスに比 マリスト 1 、冢 KAc on の使い方 KAction* action new KAction( "fi1eOpen CTRL + Key_O , this , SLOT( fi1eOpen() ) , this / / メニュー文字列 / / アクション名 / / ショートカットキー / / 起動されるスロット 表される。 表 1 KDE の機能一覧 【ユーザインターフェイスに関する機能】 アクション XML によるの定義 KD E の標準ウィジェット KDE の標準ダイアロク 【情報取得に関する機能】 機能 A 円カテゴリまたはディレクトリ アクションは、メニューまたはツールバー ( の Tips ヘル システムグローバルな情報へのアクセス アプリケーション設定情報へのアクセス 【コンポーネントプログラミングに関する機能】 KDE コンポーネント KParts アプリケーション間通信機構 dcop サービス XML-RPC ネットワーク透過レ 0 【レ 0 の拡張に関する機能】 セッション管理 ドラック & ドロップ マルチメティア コントロールセンターモシュール / ヾネルアプレット 【その他の機能】 レ 0 Slave Konqueror プロクラミング 印刷 ウインドウマネージャとの通信 kdeui kdeui kdeui kdeui 、 kfile kdecore kdeco re kparts dcop kio kio kio kdebase/kxmlrpc[ ティレクトリ ] kdebase/konqueror 、 kdebase/libkonq[ ティレクトリ ] kdelibs/kdeprint 、 kdebase/kdeprint[ ティレクトリ ] kdebase/kwin[ ティレクトリ ] kdebase/ksmserver[ ティレクトリ ] なし kdelibs/arts[ ティレクトリ ] kdebase/kcontrol[ ティレクトリ ] kdebase/kicker[ ティレクトリ ] 注 2 アクションという概念は KDE 独自のものではなく Qt にもある。 KDE の独自機能は、アクションと GUI オプジェクトとのマッピングを XML で記述する という部分である。 2002 NO. 1 1 BSD magazine 143
フロジェクト短信 K*BUG 短信 前回は書くこともなく連載をお休みしていました。今回 は総会等のイベントがありました。 K*BUG も設立 3 年目です。 去年の同じ時期も記事を書いていたように感じますが、 まあそれはそれです。 今回から副代表という肩書をいただきました。より一層 仕事をせよということだろうかと思いつつ、 1 月はほとん どユーザ会の仕事ができませんでした。 おかげで新年会もやっていません。 来月以降は頑張りたいなと思っています。 去年を振り返って この 1 年を振り返ってみると、あまり大きなイベントが 無く、少しさびしい感じでしたが、それなりに回数はこな していたようで、 2 か月に一度というべースでイベントを やったようです。 今年もなんとか小さいながらもイベントをやっていきた いと思っていたりするのですが、どうなりますことやら。 第 3 回総会 年末 ~ 年始にかけて、 K* BUG のサーバーである、 daemon. kbug. gr.jp が停止しました。 第 3 回総会です。 12 月 15 日に、守口国際交流会館第 2 会 電源ファンの故障から、熱により停止したようです。す 議室にて行いました。内容は、 でに 3 年近く動かしており、 NLX と少し特殊な電源のため、 ・代表および副代表の選出 パーツ等を探すのが困難な状況です。 今回は代表と副代表が変わりました。代表であった竹 現在はなんとか代替マシンにて運用しています。が、将 岡さんが、代表に神戸さん、副代表に植木さんを推薦さ 来的には会計からの費用でリプレーしようと考えていま れました。 当日神戸さんが欠席されていたのでご本人の意志を確認 す。 できる事が出来ず、後日お二人で話し合って頂き、どちら 今後の予定 かが代表、もうお一人が副代表に就任頂くという緊急措 今後の予定ですが、やはり Admin なメンバーがにしいせ 置をとりました。 いか、運営委員が確定していなかったためか進んでいませ もう一人の副代表は、運営委員の山口さんの推薦で、 ん。 私になりました。 まず、運営委員を確定させたあと、いろいろなイベント 後日行われた神戸さんと植木さんの話し合いで、当初 をやっていきたいと思っています。 の推薦通り、神戸さんが代表に、副代表に植木さんが就 他のユーザーグループと連携をとったイベントや、ハイ 任されました。 キングやスキー等の勉強と飲み会以外のイベント等を考え というわけで、新体制は、 ています。 代表 : 神戸 副代表 : 植木、矢野 関西 * BSD ユーザ会 矢野暢 /Yano ん川 toru@bug.gr.jp です。よろしくお願いします。 ・運営委員の任命と承認 代表が決まっていなかった状況ですので、運営委員自体 の変更はまだありません。 2 月 ~ 3 月にかけて交代が行われ、 3 月から新しい運営委員主体で動き出すよう調整中です。 会計報告 一応黒字になりました。地道な原稿書きと、大きなイ べントが無かったためですが 今年は赤字にならない程度に大きなイベントをやりたい と考えています。 という状況で総会自体は終わりました。その後は会場に ていろいろな話で盛り上がっていたようです。 当然そのあとは宴会がまっていたはずなのですが、私は 風邪をひいていたので欠席しました。美味しい韓国料理屋 さんだったかと思います。 サーバー故障 230 BSD magazine 2002 No. 1 1