N W S B S D O e n S 0 u r c e ー 9 9 オープンソースまつり ' 99in 秋葉原 編集部 1999 年 1 1 月 12 、 13 日の 2 日にわたって、「オープンソ - スまつり・ 99in 秋葉原」が開催された。 特定のプラットフォームにこだわらず、オープンソースのソフトウェアにかかわる さまざまなコミュニティが一堂に会する日本初のイベントである。 主催者によれば、会場になった広瀬無線本店イベントスペースには、 2 日間でのべ約 8000 人が集まった。ここでは、その模様をレポートしよう。 オープンソースまつり ' 99 は、日本 UN Ⅸユーザ会、ぶ ソフトウェアにも力を入れているショップとして知られて らっとホーム株式会社、日本 Linux 協会の主催で開催され いる。本多社長は、自身の経験を交えて業界や秋葉原の た。初日は平日 ( 金曜日 ) 、しかも午前中に雨が降ったこ 変遷などについて語った。また、「今後も秋葉原電気商店 ともあり、来場者はあまり多くなかったが、 2 日目の土曜 街を上げてフリーソフトウェア文化を応援していく」と語 日は好天にも恵まれ、まっすぐ歩くのが困難なほどの盛況 り、喝采を浴びていた。 ぶりになった ( 写真 1 ) 。 地下 1 階は即売コーナーで、アスキーなどの出版社やぶ メイン会場は 1 階で、 ーこには日本 UN Ⅸユーザ会、日 らっとホームなどがプースを出していた。ちなみにアス 本 Linux 協会、日本 NetBSD ユーザーグループ、 FreeBSD キープースでは、『オプジェクト指向スクリプト言語 Ruby 』 友の会、日本 samba ユーザ会、 RT-Mach プロジェクト、 の著者サイン入り本や、本誌プレゼント用の B s D Tokyo perl Mongers 、京産業大学、ソースプログラム・ magazine オリジナルデーモン君 T シャツを限定販売してい アーカイプ・サイト S 叩 py 、日本 PostgreSQL ユーザ会とい た。また、ピレッジセンターのプースでは、中村正三郎氏 う 10 のコミュニティがプースを並べ、それぞれの活動内容 のサイン会も行われていた。このフロアには、アンケート の展示やデモを行っていた。 に答えるとくじ引きで各種ソフトウェア / ハードウェアや また、 1 階の一番奥には特設ステージが設けられ、オー T シャツなどがもらえる抽選コーナーもあった。マニアッ プンソースまつりに出展しているコミュニテイや企業によ クなユーザーには、「 H 叩 py Hacking Keyboard2 」が一番人 る発表が行われた。「発表」といっても決して堅苦しいも 気だったようだ。 のではなく、ふだんの活動内容や、オープンソースソフト 5 階はセミナースペースで、有料セミナーと無料セミ ウェアとのかかわり合い、将来の展望など、ときには笑い ナーが並行して行われていた。 もとりながらなごやかな雰囲気で進められた。 オープンソース文化とビジネスがどうかかわっていくか この発表で最も人を集めたものの 1 つは、おそらく 2 日 を試行錯誤している今日、このようなイベントが開催され 目のぶらっとホーム本多社長の談話だろう ( 写真 2 ) 。本 たことは意義深い。また、小規模なイベントとはいえ、 多社長は秋葉原に集まるマニアックな pc ユーザーの間で オープンソース文化を支える人々の熱気を感じることがで は有名人であり、またぶらっとホームは * BSD や Linux 系 きた 2 日間だった。 写真 2 ぶらっとホームの 本多社長 写真 1 展示コーナーの 混雑ぶり 732 BSD magazine 1999 NO. 2
BSD 環境構築術 BSD 環境設定ファイルの種類と使い分け それぞれのファイルによって異なる。 詳細は、システムの環境設定ファイル なら "man くファイル名 > " 、プログラ ム独自の環境設定ファイルなら "man< プログラム名 > " で調べてほしい。 環境設定ファイルの内容変更 」 ogin Windows の場合、環境の設定変更 . bash_login . zlogin 表 3 シェルの環境設定ファイル シェル独自の環境設定ファイル ファイル名 対応するシェル sh 、 bash 、 ksh csh 、 tcsh tcsh bash zsh profile . cshrc 、 . history . tcshrc . bash_profile 、 . bashrc . zshenv 、 . zprofile 、 . zshrc login 時にのみ参照される環境設定ファイル ファイル名 対応するシェル csh 、 tcsh bash zsh は、 logout 時にのみ参照される環境設定ファイル ファイル名 対応するシェル csh 、 tcsh bash zsh ' ( ドット ) で ファイルは、先頭が ない ) 。 始まる、いわゆる「ドットファイル」 環境設定作業に利用するテキストェ である注 4 。これらのファイルを一覧す デイタとしては、標準でついてくるⅵ るには、 "ls" の代わりに "ls -a" を実 がお勧めだろう注 3 。 行する。 という手順を踏む。つまり、ある程度 ユーザーが gin ハ ogout した ユーザーが 1 。 gin すると、通常はログ 統一されたユーザーインターフェイス ときに参照される設定ファイル インシェルの環境に入る。シェルは のもと、専用のダイアログ (GUI) を 1 。 gin 処理中にいくつかのドットファイ では、いよいよ環境設定ファイルを 使って設定変更作業を行うわけだ。 実際に編集して、好みの設定内容にカ ルを読み込んで、それぞれのユーザー それに対し、 BSD の場合は、環境 の好みに合わせた環境設定を実行して スタマイズしてみよう。 設定ファイルをテキストエデイタで編 くれる。 集することによって、内容を変更する 代表的なシェルのドットファイルを シェルのドットファイル ことになる ( Wind 。 ws みたいに専用の ューザー別に持っことができる設定 表 3 にまとめてみた。 プロバテイダイアログがあるわけでは 1. [ コントロールバネル ] で該当す る設定項目を選択し、ダイアログ を使って設定変更 右クリックメニューから [ プロバ 2. ティ ] を選択し、 ダイアログを 使って設定変更 」 ogout . bash 」 0g0猷 . zlogout 〇 0 ① 000 2. "finger 自分のユーザー名 " を実行してみる 3. / etc / passwd ファイルの最後のフィールドを調べてみる。 4. chsh コマンドを実行してみる。 ちなみに、 chsh コマンドを使うと、一般ユーザー権限し か与えられていない場合でも自分のログインシェルを好き なものに変更することができる。このとき、 /etc/shells に 記述されていないシェルはログインシェルとして選べない ので注意すること。 0 一三 自分のログインシェルがわからないときは 自分で自分のアカウントを発行した場合は問題にならな いが、他人にアカウントを発行してもらったときは、自分 のログインシェルが何なのかがわからないことがある。 そのような場合は、次の手段で自分のシェルを知ること ができる。 1 . "echo $SHELL ”してみる。 注 3 FreeBSD の場合、 ee (/usr/bin/ee) という非常にシンプルなスクリーンエデイタがついてくるので、ⅵが使えない人は、代わりにこれを使って設定ファイル を編集するといいかもしれない ( ee は日本語化されていないので、日本語を含むファイルを取り扱うときは注意すること ) 。 注 4 FreeBSD の adduser コマンドが新規ユーザーを生成する際に自動的に設定するドットファイルのオリジナルは、 /usr/share/skel というディレクトリにある。 こに置かれているファイル群は FreeBSD 開発者によるお勧め設定なので、ある程度参考になるだろう。 BSD magazine 773 1999 NO. 2
日本 GNOME ユーザ会通信 October GNOME リリース http : //www.gnome ・ org/news/october—gnome. shtml 10 月に GNOME の 1.0.53 がリリースされました。これは October GNOME と命名され ( 本当は September GNOME の予定でした ) 、これ以降は開発版と安定版で分かれて開 発が続けられていきます。 October GNOME の特徴には、 ・ true-color アイコンが多く追加された ・より多くのメッセージ翻訳が追加された ・安定性についての改善 ・期待のコンポーネントライプラリである b 。 n 。 b 。がリリー ものはありませんが、筆者が注目したのは などがあります。このアナウンスでは特に目を引くような eog (Eye of Gnome) がリリースされた スされ、日 ectricEyes の代わりとなるイメージビューア ・ lmlib を置き換えるための gdk - pixbuf モジュールがリリー スされた 使って対応済みです。 ports では草野氏 (kusano@gnome.gr.jp) によるパッチを ログが文字化けするというオリジナルのバグについても、 どで p 。 rts に反映されました。日本語使用時に情報ダイア FreeBSD では、 GNOME 本家によるリリース後 1 週間ほ 抜け出したと考えてよいのではないでしようか クトップ環境開発プロジェクトとしての初期の段階からは り入れてきたものを見なおせる段階になった、つまりデス 開始以降、デスクトップ環境を短期間で構成するために取 置き換えるわけです。このことは、 GNOME プロジェクト ど GNOME 以前に外部プロジェクトで作られていたものを ケーションが多くあるわけではありません。しかし lmlib な 実しているわけではなく、べったり依存しているアプリ ます。 bonobo や gdk-pixbuf 、 eog はまだそれほど機能が充 OLE に相当する ( それ以上かも ) ことができるようになり で Gimp の画像編集を行うといったような、 Microsoft の というものです。 bonobo によって、たとえば Gnumeric 上 フロジェク短信 日本 GNOME ユーザ会 中井幸博 / 翫 nakai@gnome.gr.jp 日本 GNOME ユーザ会発足アナウンス やっていないので大募集中です。 ので注意が必要です。印刷機能の日本語化はまだだれも 圏のユーザーは大喜びですが、日本語が出るわけではない した ( 教えてくださった白崎さんに感謝 ) 。ただし、英語 gnumeric から postscript による印刷ができるようになりま である gnomeprint ですが、 ports 側のバグがフィックスされ、 あと、 FreeBSD の ports にある GNOME の印刷モジュール リストと、全世界への窓口として gnome-list@gnome.org に 10 月 19 日発足ということで国内の主要方面のメーリング ようやく http://www.gnome.gr.jp/が使える状態となり、 http : //www.gnome ・ gr ・ jp/comm/howto. html くは 宛に空のメールを送信すると説明が送られてきます。詳し gnome—users—subscribe@gnome ・ gr ・ JP ザー向けメーリングリストに参加したい場合は、 あわせてメーリングリストも運用開始しました。 アナウンスを流して発表しました。 コ、一 ボランティア募集中 を参照してください。 ・ Comdex Japan'99 に、 LASER5 のプースにて日本 ・ Havoc Pennington 氏来日、国内で GNOME BOF 開催 その他のニュース を参照してください。 http: //www ・ gnome ・ gr ・ jp/ ています。詳しくは 使用のさらなる改善をするために翻訳者などを常に募集し 日本 GNOME ユーザ会では日本語環境などでの GNOME GNOME ユーザ会が出展 BSD magazine 1999 No. 2 233
日本 Samba ユ - サ - 会設立 ! hamano@samba.gr.jp 濱野賢一朗 /Kenichiro HAMANO をを 日本 Samba ユーザー 1 1 月 12 日、秋葉原において「日本 samba ユーザー会 (Samba-JP) 」が設立されました ( 写真 1 ) 。 samba は、 UNIX および UNIX 互換マシンを Windows NT 互換のファ イルサーバー / プリントサーバーとして使用可能にする、 オープンソースなソフトウェアです ( 詳細は 186 ページを ご覧ください ) 。最近、 FreeBSD や Linux をはじめとする Free UN Ⅸの普及によって、企業や一般家庭における samba 利用者は急激に増えてきています。 ますは、ユーザー会設立に至る経緯を簡単に説明したい と思います。 1996 年、佐藤文優氏および太田俊哉氏に よって、設定の有力な手助けとなる samba のドキュメント の和訳が開始され、ニュースグループに公開されました。 1997 年には佐藤文優氏により、日本語の samba web ペー ジ注 4 の運営が開始され、また、太田俊哉氏によってメー リングリストの運営が開始されました。これらの活動によ り、 samba の情報が容易に、そして日本語という形で入手 できるようになったのです。そして、 1999 年には、 samba 日本語版注 5 が小田切耕司氏によってリリースされました。 この samba 日本語版は、バイナリの形でも数多くの種類が 公開され、 1 か月でおよそ 2 万件のアクセスがありました。 こうした流れがあり、そして昨今の FreeBSD や Linux の 急激な浸透や samba の機能向上もあったことで、 samba の 普及が急速に進み、メーリングリストの利用や www の参 照も急速に増大してきました。こうした状況の中、ユー ザーの利便性の向上や日本における samba のより一層の普 及、 samba の国際化への対応の対処等を組織だって行う 必要性があるのではないか、と認識されるようになり、そ の結果、メーリングリスト利用者有志を中心として、「日 注 4 http://samba.bento.ad.jp/ samba に関する研究会・講習会・ワークショップ等の開 samba 関連技術に関する調査研究・情報収集・配布や 本会の今後の事業計画としては、 本 samba ユーザー会」が設立されることになったのです。 それらに加えて、 注 5 http://www.cityfujisawa.ne.jp/—odagiri/samba/ 催、インターネットを利用した情報発信などを行い、 samba の研究開発・国際化および普及促進を図っていこ うと考えています。 samba を現在利用している方、あるいは samba の利用を 考えているという方、どうぞぜひ日本 samba ユーザー会に ご参加ください。詳細は、 http://www.samba.gr.jp/をご覧く ださい。 今後、 Windows と UNIX の連携がより一層進むことで、 どちらのユーザーにも幸せが訪れることを願っています。 表初年度の幹事および監事 代表幹事 常任幹事 ( 副代表 ) ( 副代表 ) ( 広報 ) ( 広報 ) ( 渉外 ) ( 関西担当 ) ( 関西担当 ) 監査幹事 小田切耕司 ( 三菱電機 ) 太田俊哉 佐藤文優 ( BENTO インターネット ) 任田聖司 ( 東芝 FA システムエンジニアリング ) 宮原徹 ( 日本オラクル ) 濱野賢一朗 (Project BLUE) 相良博文 ( 本田技術研究所 ) 西村悟 宮村功ー ( ュイ企画 ) 高橋基信 写真 1 記者会見の様子 、多 4999- NO. -2 B magaz ne
プロジェクト プロジェクト短信は、 BSD に関連するさまざまな プロジェクトの現状をお伝えするべージです。 FreeBSD プロジェクト FreeBSD ( 98 ) プロジェクトの近況 PAO Report FreeBSD 日本語ドキュメンテーションプロジェクト (doc•jp) FreeBSD QandA について po s ヨ p について・ man プロジェクト NetBSD-current Updates JNUG レボート NetBSD Packages 通信 PocketBSD 短信 KAME プロジェクト便り OpenBSD 短信 BSD/OS の近況 KDE について 日本 GNOME ユーザ会通信 DEBUG 通信 関西☆ BSD ユーザー P. 214 P. 215 P. 216 P. 217 P. 218 P. 219 P. 223 P. 224 P. 225 P. 227 P. 228 P. 229 P. 230 P. 231 P. 232 P. 233 P. 234 P. 236 2 お 1999 NO. 2 BSD magazine
フロジェクト短信 関西 *BSD ユーザー 注 1 正式名称は「かんさいすた一びーえすでいゅーざかい」と発音し、略称は「けいばぐ」と発音します。 yamayasu@red.an.egg.0「.」 p 山口靖之 / ) , / 〃 tag ″ c ん 関西 * BSD ユーザー会運営委員 1999 年 1 1 月 1 3 日に「関西 * B SD ユーザー会 ( 略称 K*BUG) 注 1 」が発足しました。「 K * BUG とは何か ? 」を 紹介します。 K*BUG の起源 K * BUG を語る上で欠かせない 1 つの宴会が、 1998 年 2 月 15 日に大阪で開催されました。「 FreeBSD-users-kansai 宴会」と称するこの宴会は、「 FreeBSD を中心とした BSD 系 OS を愛する関西人が交流を図る」ことを目的としてい ました。「 FreeBSD-users-kansai 宴会」開催の呼びかけは、 FreeBSD-users-jp ML で行われました。しかし実際に集 まってみると、 FreeBSD だけではなく、実にさまざまな BSD 系 OS を同時に扱っている人が大半でした。また、 の宴会は第一回目から宴会ネットワークが構築されたのも 特徴のひとつです。このあと、 1998 年 9 月 25 日に第二回、 1999 年 2 月 6 日に第三回まで開催されました。各回とも盛 況で、人が集まり実際に顔を付き合わせて話をすることの 楽しさ、大切さを実感させる宴会でした。 この宴会を契機に、「 BSD 」と「関西」というキーワー ドが出てきて、これが「関西 * BSD ユーザー会」すなわち K * BUG につながってゆきました。 K*BUG 設立準備 FreeBSD-users-ML で 1998 年 9 月 16 日に、「関西でユー ザー会が欲しい」という話題が出てきました。この話題が きっかけで準備のための ML が立ち上がり、準備委員会が 作成されました。このことは FreeBSD 関連の ML 以外に NetBSD や OpenBSD 、それ以外のさまざまな ML にもアナ ウンスされましたので、みなさんも目にしたかもしれませ ん。準備委員会の ML には 120 人を超える人達が subscribe し、あらためて関心の大きさを実感しました。この ML で は、名称、目的、趣旨などが活発に話し合われました。 会場も大阪大学医学部ネットワーク委員会様の協賛を得 て、インターネットへ総会の模様を LIVE で中継すること もできました。設立総会当日、東京の秋葉原でオープン ソースまつりが開催されていましたが、そちらの会場で L Ⅳ E 中継を見た人もいるのではないでしようか。 K*BUG 設立 設立総会には 66 名の方に参加して頂きました。趣旨説 ューザー会の趣旨である「相互交流」が実現されました。 ザーが集い、そこかしこでさまざまな話題で盛り上がり、 き、場所をかえて懇親会が開催されました。多くのユー 場一致で K * BUG の設立を確認しました。設立総会に続 明、会則説明と質疑応答、代表副代表の承認を経て、満 の輪を広げていきたいと考えています。 の他、 BSD に関する地域密着型ューザーグループとの交流 いことを実行するために全力でサポートしていきます。そ 員会はサポートに徹し、会員ひとりひとりが自分がやりた 営員からなる運営委員会が設置されていますが、運営委 話まで出ています。 K * BUG は便宜上、代表、副代表、運 心に、コバルトキュープに BSD を移植するプロジェクトの やりたいことはたくさんあります。現在では勉強会を中 K * BUG のこれから 加方法や、承認された会則などが紹介されています。 バーは http://kbug.d-paper.co.jp/です。ここで、仮 ML の参 げています。独自ドメインが取れるまでの仮の web サー ドメインの申請中です。仮の ML と web サーバーを立ち上 する ML へ参加するだけです。原稿執筆時点ではまだ独自 なくとも会員になれます。会員になるには K * BUG が運営 関西以外での活動も行っていく予定ですし、関西在住で という範囲を一応設けてはいます。しかし、必要に応じて です。直接顔を合わせる活動を重視しているため、「関西」 深めて情報交換を行う場を作っていく」ことが最大の目的 「関西にゆかりのある BSD 系列のユーザー間で交流を K*BUG とは何か 23 石 BSD magazine 1999 NO. 2
BSD サ曰トと Wind@ws/MacU の共存管理のつほ samba を起動する よび書き込むことができる。 1. smb. conf を標準 path (/usr/local/samba/lib) におき、 samba と NetBIOS のネームサーバーの機能を持つ nmbd ユーザーごとにプリンタを使用 ケース 3 をデーモンモードとして以下のように起動する Wind 。 ws 端末を使用するメリットの 1 っとして、印刷環 #/usr/local/samba/bin/smbd —D 境の充実があげられる。 こでは Samba 上にインストール #/usr/local/samba/bin/nmbd —D したプリンタを Wind 。 ws 端末で使用できるように設定す 2. 正常に起動したかどうかを 1 。 g ( 「管理のつばを参 る。 smb. conf にはリスト 3 のように printer のエントリを追 照 ) および ps コマンドで smbd 、 nmbd のプロセスがあ 加する。なお、 lpr を用いる場合は /etc/printcap に ' あるプリ がっているか確認し、 section と parameter が指定した値 ンタすべてが表示される。 に設定されていることを testparam で確認する ( 図 2 ) ケース 2 と同様に設定ファイルを読み込ませ、 Windows 3. testparam で正常の結果が得られたら、付属の NetBIOS クライアント smbclient で接続を確認する ( 図 3 ) 以上によって、図 4 のように同一セグメント上にある Windows 端末から TEST Workgroup 上に samba サーバーを プラウズできるはすである。もしできない場合は「管理の つば①を参照してほしい。 gselphie 住同ロ にファイル ( E ) 催集 0 表示移助 0 お気に入り (A) ヘルプ ( 印 Selphie ケース 2 ユーサーごとの共有 ケース 1 では、 1 つの共有ディレクトリに対して同一セ グメントにつながっているすべての Windows クライアント がアクセスできたが、ケース 2 ではユーザーごとに samba サーバー上のホームディレクトリを共有する。 smb. conf は リスト 2 のように設定する。各ユーザーごとに smbpasswd よって samba passwd の設定が必要な点に注意 ( 設定方法 は「管理のつば①を参昭 ) 以上の smb. conf で、 smbd 、 nmbd のプロセスを kill -HUP して、設定ファイルを読み込ませ、 Windows 端末で、 Samba サーバーにある同じアカウントでログオンすると、 図 5 のようにユーザーのホームディレクトリをプラウズお 図 5 ユーザーのホームディレクトリを表示 1 個のオブジェクト 図 4 Samba サーバーをプラウズ 同ロ kenken ー新 ファイルの編集 表示 ( 動お第に入り住 ) ヘルプ ( 印 アドレス SE [ PH 正日ま印 類 更新日時 万イルフォルダ / / 11 211 ファイルフォルダ 月 1. に 1 1127 ファイルフ別しダ 月 1 ′ロ & 19 ファイルフォルダ / 11 虍 1 1 囚 ファイルフォルタ 月 0 4138 方イルフォルダ / 11 ノ 11 11 : 方イル万ルタ 月 1 / 21 11 万イルフォルダ / 11 ノ価 1813 ファイルフォルダ んンお 51 方イルフォルダ / 1 影価 1215 フ 7 イルフォルダ / 師 / 1649 万イル / 11 ノ 1546 1 KB T 浦ファイル 3 / 0 印 4K8 ADDRESES ファイル月 1 / 1 ま 31 IKB BBDB フ 7 イル 的月 0 / 1318 41 KB 当イントラネラトゾーン kenken 」「 ps アイエ′を選択すると、そを甎 ; ー」 3 印海 20.6 日肋ー表〒きれます。 」新 0 コ v4 、物 : をⅣ e 3 マリストーユーザーごとの共有をする smb. conf マリスト 3 print に必要な smb 、 conf. [global] workgroup = TEST server string = test(samba server) # ユーサーごとに passwd を設定する security = encrypt passwords = yes #passwd を暗号イヒする # 各自のホームの設定 [global] # lpr を使用する場合は bsd にする printing=bsd # printer を使用する printer=yes printcap name=/etc/printcap # printcap の場所 encrypt passwords yes [printers] browsable=yes printable=yes path = /usr/spool/samba public=yes writable=no create mode = 0700 [home s ] browsable yes comment = Home Directories public = yes writable = yes create mode = 755 789 BSD magazine 1999 NO. 2
編境竈 0 る場合は大きく挙動が異なる。例とし て離れた場所にあるホスト (warabi) から目の前のサーバー (zenmai) に何 かのアプリケーションを表示させよう としているとしよう ( 図 1 ) 。 . XdefauIts による指定ではアプリケー ションを実行した際に、そのユーザー のホームディレクトリからリソース ファイルを読み込み、リソースを設定 する。つまり、アプリケーションは warabi の . XdefauIts を読み、リソースを 設定してあなたの端末に表示する。あ なたが、いくら zenmai のホームディレ クトリに . Xdefaults を置いても、 warabi zenmai : 0.0 X zenmal zenmai の設定で表示されてしまう ( 図 1 - 上 ) 。 また別のユーザーがあなたの画面上 にウインドウを出力する場合も同様に、 そのユーザーの設定で表示されてしま 一方、 xrdb はサーバー ( 正確にはス クリーン ) に設定を与える。アプリ ケーションはます最初にサーバーに接 続し、リソース情報を読みとり、自身 のアプリケーションの設定をする。す なわち、どこのホストから接続があっ ても、スクリーン上は同じ設定で表示 されることになる ( 図 1 - 下 ) 。 実際問題どちらを使用するかは好み warabi X warabi : 0.0 . Xdefaults ネットワーク . Xdefaults Resources warabi : 0.0 warabi Resources ネットワーク の間題だ。だが、私は、 xrdb によるリ ソース設定を強くお勧めしたい。とい うのも x の表現力はサーバーに強く依 存するからである。 . Xdefaults による設 定では、アプリケーションが今どの サーバーに接続しようとしているのか を識別できない。たとえば 256 色しか 出せないサーバーに色を大量に消費す るようなリソースを指定しまう可能性 があるわけだ。 xrdb を使用してサー ごとにリソースを設定しておけば、 このような問題は回避される注 4 。 なお、 xrdb がサーバーにどのような リソースを割り当てたかは、 % xrdb —query もしくは % xprop で RootWindow をクリックすれば見る ことができる。 ぐ緲を一ス探索の 1 ) ではリソースをまったく指定しない 場合はどうなるのだろう ? その場合 はシステムが用意しているデフォルト のリソースが使用される。 XFree86 を使用しているなら、デ フォルトのリソースはディレクトリ /usr/XI IR6/Iib/XI l/app-defaults/ に格納 されているアプリケーションと同じク ラス名を持ったファイルが使われる。 ちなみに私の場合は画面 3 のように なっている。 アプリケーションとリソースは綿密 に結びついている場合が多く、リソー スなしではまともに動作しないアプリ 0 注 4 モノクロサーパーが混在している環境では深刻な問題である。もっとも、モノクロサーバーは去年環境庁により絶滅危機種に指定されたらしいが・・・ 1999 NO. 2 BSD magazine
べの道ば→朝一に成るものをはしら、、は、導師を目。読者の乍めに 0 UNIX 各種ツールの使用 , や設のツホなとにい的なものから高度な話当で、さまざ まな切り口で解説し、ラ回は WBj (Editor ・ s work Bepch) にフしである。 では、あたかも印刷した用紙を切り貼りするように、 ディ スプレイ上で文章を配置していく。ユーザーの作業が現実 世界のものに近いため、感覚的で使いやすいと評されてい 今や、コンピュータをプログラミングではなく、文書を る。 作成するために利用しているユーザーも多い。プログラミ 確かに、印刷や画面にきれいに表示するためのレイアウ ト作業だけを考えれば、このような評価になるだろう。し ングが中心のユーザーでも、仕様書や操作説明書など、な んらかの文書は作成するはずだ。それらは印刷用に作成す かし、執筆中や編集中などでは、特に UN Ⅸ環境では、 マークアップ方式のほうが便利なことが多い。それは、 ることもあれば、コンピュータ上で読むように作成するこ ファイルの保存形式がテキストファイルであり、自動処理 ともある。印刷用とオンライン用の両方に提供したいこと も少なくない。それならば、 1 つの文書ファイルが印刷用 のための記号が文章に付けられているからである。つまり、 にもなり、オンライン用にもなると便利である。 grep や diff のようなツールを利用したり、 sed 、 awk 、 perl UN Ⅸがベル研究所内で認められるきっかけになったの などのスクリプトで面倒な作業を自動化し、効率的に進め も、プログラミング環境としてでなく、このような要求を ることができるのだ。 また、それぞれのマークアップ言語には似たような部分 満たす文書処理環境としての期待からだという。その核と なったのが r 。 ff であり、文章を整形用の記号 ( タグやコマ が多いため、記号を変換するだけで、別のマークアップ言 ンドと呼ばれる ) で修飾するマークアップ方式というアイ 語のファイルにすることも可能だ。たとえば、見出しレベ ルを指定する記号か表 1 のようになっていた場合、 HTML デアである。そして、このアイデアは Tex 、 LaTeX 、 info 、 SGML 、 HTML 、 XML などに受け継がれ、発展してきた。 文書から LaTex 文書へは、 マークアップ方式は、文章に何らかの記号を付け、プロ グラムで一括してデータ処理をする。この方式は、文書に s! く HI>\( . (\) く /HI>!\\chapter{\1}! 指定をしていく記号名や記述方法などを学習しなければな らないし、特に印刷用途では、紙面のレイアウトをほとん という sed スクリプトで簡単に変換することができる。も ちろん、すべての記号が 1 対 1 に対応しているわけではな どプログラム側に任せるため、細かい調整をしにくいと指 いので、対象とする言語によっては手作業で調整する箇所 摘されることが多い。 も発生してしまうかもしれない。しかし、すべてを人手に これに対して、 QuarkXPress や FrameMaker などに代表 される、 WYSIWYG な DTP 環境がある。 WYSIWYG 方式 頼るよりは明らかに生産性が高い。 7 タ 2 BSD magazine 1999 NO. 2 はじめに
表 1 ディスプレイマクロ DefauItScreen(dpy) DefauItRootWindow(dpy) BlackPixel(dpy, sereen) WhitePixeI(dpy, screen) DispIayWidth(dpy, screen) DisplayHeight(dpy, screen) DispIayWidthMM(dpy, screen) DisplayHeightMM(dpy, screen) DisplayString(dpy) 表 2 よく使うイベントとマスク ウインドウイベント Expose イベントの指定 XSelectInput() は、そのウインドウ で受け取りたいイベントを指定する。 x では、ウインドウの操作に関するイ べント、マウス操作に関するイベント、 キーポード操作に関するイベントな ど、さまざまな種類のイベントを提供 しており、クライアントは、ウインド ウごとに受け取るイベントを指定でき る。 xselectlnput() は、リスト 5 に示 ウインドウの表示内容が壊された すように、第 3 引数で、そのウインド ( 隠されていた部分が表に出た ウインドウがマップされたなど ) ウで受け取りたいイベントをマスクで マウスポタンが押された ButtonPressMask 指定するための関数である ( 逆に指定 マウスポタンがはなされた ButtonReleaseMask マウスが動いた PointerMotionMask しないとイベントは送られてこない ) 。 キーが押された KeyPressMask リスト 4 では、ユーザーがマウスポタ キーがはなされた KeyReIeaseMask ンを押したことを知りたいので、 ButtonPressMask を指定している。よく ンドウの表示、破壊など ) は、 x サー 表示と消去 使うイベントとそのマスクには表 2 のよ バーが検出し、クライアントプログラ x では、作成したウインドウはマッ うなものがある。 ムに情報を通知する。この情報を「イ プという操作をしないと画面に表示さ ユーザーがマウスをウインドウ (w) れない。ウインドウ (w) のマップに べント」と呼んでいる。 x サーバーか 上で押すと、それを x サーバーが検出 は XMapWindow(dpy, w) を用いる ( リ ら送られたイベントを読み込む関数が スト 1 の 320 行目 ) 。また、ウインドウ し、 ButtonPress イベントとしてウイン XNextEvent(dpy, event) である。 ドウ (w) を管理するクライアントに (w) が子ウインドウを持っ場合には、 クリック時にプログラムを終了させ 送信する。 XNextEvent(dpy, &event) が その子ウインドウをすべてマップする るには、 x サーバーから送られてきた イベントを受け取ると第 2 引数に指定 イベントを調べ、マウスクリックを示 関数として、 XM 叩 Subwindows(dpy, w) された XEvent 構造体に内容を読み込 がある。ちなみに、非表示 ( アンマッ すイベントであればプログラムを終了 む。後は、その内容を調べ、 switch() 文 プ ) は XUnm 叩 Window(dpy,w) で行う。 することで実現できる。これは、リス で対応するイベントごとの処理 ( この ト 1 の 340 行目の wh ⅱ e ( 1 ) { } の前後をリ イベント処理 場合は exit(0)) を実行すればよい。 スト 4 のように書き直せばよい。 さて、これで、ウインドウを表示す るプログラムができた。これが X のク ライアントプログラムの基本である。 今度は、このプログラムをユーザー の操作に反応するようにしてみよう。 xcreate. c をマウスクリックで終了する ようにする。 イベントとは ? x では、ユーザーの操作 ( マウスや キーポードを操作したなど ) やクライ アントプログラムのアクション ( ウイ 概要 マクロ名 デフォルトのスクリーン番号 デフォルトのルートウインドウの ID 黒のピクセル値 白のピクセル値 ディスプレイの幅 ( ピクセル単位 ) ディスプレイの高さ ( ピクセル単位 ) ティスプレイの幅 ()m 単位 ) ディスプレイの高さ ()m 単位 ) ディスプレイ名 概要 マスク 種類 イベント ExposureMask 々 マウスイベント ButtO n P ress ButtonRelease MotionNotify Key P ress KeyReIease キーポードイベント マリスト 4 クリック時にプログラムを終了させる / * イベントを選択する * / XSeIectInput (dpy, w , ButtonPressMask) ; / * イベント処理ループ * / while(l) { XNextEvent(dpy, &event) ; / * イベントの読み込み * / / * 何のイベントか ? * / switch(event . type){ / * マウスポタンを押したイベント * / case ButtonPress: / * 終了 * / exit(O) ; マリスト 5 XSelectlnput() の書式 XSe1ectInput (dpy , w, event—mask) / * 必要とするイベントのマスク * / unsigned 10 g event—mask; 8 イ BSD magazine 1999 NO. 2