利用 - みる会図書館


検索対象: BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門
140件見つかりました。

1. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

0 ぇ 2 蚯 136. .21 ー Q ー設定の実際 ( 株 ) インターネッ総合研究所主任研究員 Japan NetBSD Users' Group 事務局長 許先明 / Heo SeonMeyong seirios@jp.netbsd.0「g ALTQ は長氏が実装した BSD 系 UNIX いる場合や、優先しなければならない も要求される場合が多い 通信が存在する場合に要求が顕著に現 のネットワークインターフェーズでのキ ・優先度の高い通信カ醗生している場合 ュー制御に関する一連の機構である。 れてくる。 たとえば OS の update のためにアーカ 詳しい考え方などは開発者の長氏によ 一般に管理者がトラフィック制御を イプを取得していたり、リモートの る解説に譲る事にして、本記事ではそ 考えるのは以下のような局面であるこ ルータのメンテナンスをしている場 の考え方や利用方を踏まえた上で、実 とが多い。 合など 際の Network への適応方法、その設定 ・回線帯域が細い場合 方法を述べることにする。 ・リモートのネットワークの制御 0 管 1.5M の帯域で streaming 配送を受け 理を行いたい場合 ているが、その裏側で Mail などの処 たとえば telnet/ssh などを利用してル 理もしたい場合など ータの設定を修正したい場合など ・相手との間での同時 / 即時性 一般にこのような状況に対処するの (Realtime) が要求される場合 は、高価なルータを購入する必要があ たとえば、 voIP や streaming 配送な った。しかし、今では BSD 系 OS を利 ど。この場合、 Delay や Jitter の軽減 用した、長氏の開発された ALTQ を利 用することによって、このようないわ ゆるトラフィックに関する QoS 制御を 行えるようになっている。 トラフィック制御を行う場合、まず 最初に考えるべきはその制御ポリシー である。これは、「何を優先」し、「ど のくらい優先する」のかを決めること である。 このポリシーは、それぞれの環境毎 に異なるものなので、ここでは深入り しないことにする。一般には、ユーザ ーの要求などを考慮して決定する場合 が多い。 トラフィック制御 ネットワークを利用する場合、その 実際のトラフィックを制御したい場合 が往々にして存在する。特に管理者の 場合にその要求は強く、攻撃を受けて (fxp0) The lnternet Router1 1 (fxpl ) BackBone xxx. xxx. xxx. 0 / 29 2 (fxp0 ) BackBone/64 3 4 (ppp0) (PPPO) Router3 Router2 Server1 Server2 10.0. O. O / 24 3 4 OpNet/64 (tlpo) 2 (ne0) 1 Home Network 2 xxx. xxx. xxx. 8 / 29 Operation Network 1 HomeNet/64 ネットワークトボロシー hostl 本稿で考えるネットワークのトボロ ジーを記載する。 このトボロジーは、「 BSD によるルー Terminal Server 図 1 ネットワークトボロジー 042 BSD magazine 2002 No. 1 1

2. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

ロ 0 3 5 0 でルータを作ろう ! /usr/pkg/etc にコピーして改変して使 うことにする。 最後に、 /etc/services にリスト 7 の 7 行を加えておこう。 zebra の設定 zebra は CISCO 社の IOS カ甘是供してい る CLI ( Command Line lnterface ) と 良く似たユーザーインターフェイスを持 っている。そのため、 cisco に慣れてい る人は Command Line から設定するこ リスト 7 ripd r ipngd ospfd bgpd ospf6d V リスト 8 ! zebra 2600 / tcp 2601 / tcp 2602 / tcp 2603 / tcp 2604/tcp 2605 / tcp 2606 / tcp configuration for Router1 zebra. conf とも十分に可能である。本稿では、イ ンタラクテイプな設定方法は記載しない ので、 zebra の info ファイルを参照して ほしい。ⅲ fo ファイルは、 /usr/pkg /info/zebra.info である。 まず zebra の設定をしよう。この zebra daemon が kernel の経路表と各 経路制御 daemon の経路表の統合を行 うので、非常に重要な daemon である。 リスト 8 に今回の zebra の設定を記載 しておく。これは、サンプルから改変 # Zebra # Zebra # Zebra # Zebra Zebra # Zebra ospf6 daemons bgp daemons # Zebra ospf daemons r ipng daemons r ip daemons damon したものである。初期設定段階で不要 なものをすべて削除してある。 みていただければわかるが、 zebra は 実際にはほとんど設定する必要はない。 経路表などを確認するために zebra に アクセスするためのパスワードを設定 するだけである。 さて、次にⅱ pd である。ⅱ pd はもう少 し設定しなければならない項目がある。 設定中の router rip コマンドが RIP の制御のための命令である。 Router1 では、 RIP を利用するイン ターフェイスがⅸ pl だけなので、 fxpl の持つアドレスプロックを指定すれば 良い。 Router2 の場合であれば、同様 にⅸ pO 、 neO 、 pppO に対して設定する 必要があるし、 Router3 ならば、 ppp0 と tlp0 を設定すれば良い。 ! hostname の設定。これは tty アクセスをする際に prompt に利用される hostname Routerl : zebra ! passwordäRÆo login 日寺の password password secret ! ! 管理権限 password の設定。 su と同等の意味を持つ e Ⅱ able コマンドを入力した際の password enable password ultrasecret ! ! パスワードの暗号化設定 password¯encryption マリスト 9 ripd. conf ! RIPd configuration for Router1 hostname Router1 : ripd password secret ! enable passwd ultrasecret ! service password—encryption ! R 工 P の設定 ! R 工 P を利用する Netw 。 rk を設定する。 ! アドレスから設定する network xxx. xxx. xxx . 0 / 29 ! lnterface から設定する network fxpl ! default route を作成する default—infortion originate

3. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

ト殘住 99N ルタ 2 特集ー デバッグ情報を表示する。デバッグ 関係の設定をしている場合のみ有効。 ・ show runmng-config 現在実行している設定を表示する。 ・ show startup-config こでは、動作確認のためにしばしば 起動時の設定を表示する。 利用するコマンドや zebra 関係の命令を copy running-config startup-config 項目として挙げておく。詳しい挙動な ・ W141te memory 実行中の設定を起動時の設定にコピー どは man ページを参照するか zebra の ⅲ fo などを参照していただきたい。 する。 ・ configure terminal 設定モードに移行する。 コマンド ・ /usr/bin/netstat -rnf inet ・ enable IPv4 の経路表を見る 特権ユーザーになる。 ・ /usr/bin/netstat -rnf inet6 ・ help 1Pv6 の経路表を見る ヘルプを表示する。 ・ /usr/sbin/arp -an zebra ARP テープルを見る。 MacAddress と ・ show interface [I/F name] IP アドレスの対応表を見たい時に利 その lnterface の情報を表示する。 駆け足で Router の作り方を説明して 用する。なお、 ARP テープルは利用 ・ shOW ip route 0 されなくなって特定時間が経っと消 内容が多く、説明し切れない部分も ・ shOW ipv6 route えてしまうので、 ping などを利用し 1Pv4/1Pv6 の経路表を表示する。 多いが、紙面の関係や、時間の関係、 てプロードキャストバケットを出し 筆者の力量の問題なので、ご容赦をお てから確認すると良いだろう。 願いしたい。 ripd 機会があれば、もう少し突っ込んだ ・ /usr/sbin/ndp -an ・ show ip r1P RIP で交換している経路情報を表示 内容や今回踏み込めなかった内容にも IPv6 における近隣ホスト表を見るた めのコマンド。 ARP と似た機能を提 手を出したいと思っている。 する。 Router の設定や管理は難しいものと 供している。 いわれている。難しい原因は、多分 IP ・ ping6 -w ff02: : 1 %[I/F name] ospf6d の知識がそれなりに必要であり、経路 ICMP neighbor whois を飛ばす。このコ ・ show ipv6 ospf6 OSPF6d で管理している情報のサマ マンドを利用するとこの ICMP に対応 制御プロトコルの知識もそれなりに必 要だからではないかと思うのだが、実 しているホストは自身の名前を返す。 リーを表示する。 際に動かすと案外簡単に作成できたり ・ show ipv6 ospf6 interface OSPF6d が管理しているインターフェ する。運用も実際にはそれほど難しい イスの情報を表示する。 ものではなく、 10 叩を作ったり、規模 が大きくなってしまえばともかく、あ ・ show ipv6 ospf6 database LinkS tate Database を表示する まり大きくないネットワークにおける 。引数 ルータの運用は慣れがものをいうので ある。 本稿が経路制御への一歩目となれば 幸いである。 を設定すると、条件にマッチしたも のが表示される。 ・ show ipv6 ospf6 neighbor OSPF で通信している近隣ルータの状 態を表示する。 ・ show ipv6 ospf6 route OSPF で交換している経路情報を表 示する。 zebra ( 他 zebra 関係の daemon) の インタラクテイプモードは非常に便利 であり、わからなくなったらとにかく ? キーを叩けば大雑把な説明が出るので、 わからなくなったらとにかく ? を叩いて みよラ 9 telnet : : 1 zebra などとして login して みてほしい。 動作確認 まとめ Zebra のコマンド すべてに共通のもの ・ show debugging マリスト 12 if [ -f /usr/pkg/etc/rc . d/zebra. sh ] ; then /bin/sh /usr/pkg/etc/rc . d/zebra. sh st art f i 032 BSD magazine 2002 No. 1 1

4. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

OFUG 短信 さて、今回は名護で行われた OIA 汨公開講座と忘年会 を報告します。 0 公開講座 12 月 22 日 ( 土 ) に沖縄県名護市にある名桜大学注 2 で第 4 回 OIA 公開講座が行われました。 OFUG は、この会合に FreeBSD の動作するマシン 2 機を展示しました。 ロ 注 2 名桜大学 : http:″www.meio ・ ac.jp/ 注 1 OIA : 沖縄インターネット協議会 (http://www.oia・ u-ryukyu ・ ac.jp/) ークでの苦労話や女性会員を増やす謀略などなどとてもお しました。話のネタは FreeBSD 関連のみならず、ネットワ ました。会員の半分を越える 13 人が参加し、鍋パーティを OIA 公開講座の翌日、 12 月 23 日 ( 日 ) に忘年会を行い 忘年会 活動内容などを紹介しました。 講演会終了後懇談会が催され、各ユーザーグループで いというのが驚きでした。 に打ち合わせとかしてなかったのに同じ機種がひとつもな ました。すべてのマシンで x が動いていたのですが、とく OS X 、 OLUG 注 4 の PlayStation2 と Dreamcast の Linux があり 他のグループの方々の展示として、 HaiSaiMac 注 3 の Mac USBAudi 。の動作をデモンストレーションしておりました。 した。 IBM の ThinkPad i1200 では、 NetBSD current にて が、 Pentium 166MHz のマシンの割にはよく見れる感じで をデモンストレーションしました。たまにコマ落ちします FreeBSD(98)-4.4Rev01 が動作しており、 MPEG 動画の再生 の左から 3 番目 ) です。 NEC の PC-9821 V166 では、 Ⅵ 66 ( 写真内の左から 2 番目 ) と ThinkPad i1200 ( 写真内 展示したマシンは、会員から借りてきた NEC の pc ー 9821 フロジェクト短信 もしろい話ができました。ちょうど、会長と FreeBSD の Java のバイナリが非公開になっている話をしていたときに FreeBSD で Java が利用できるようになったニュースが伝わ り、みんなで大盛り上がりでした。 FreeBSD で Java 忘年会の文中でもお話ししましたが、 12 月 22 日に sun microsystems と FreeBSD Foundation のライセンス交渉カ決 着し、 FreeBSD でも Java の最新バージョンが利用できるよ うになるとのことです。 これまで、 FreeBSD には古いバージョンである JDKI. 1.8 が利用できました。しかし、古いバージョンであるために 新しい A 円が使えないとか実行速度が遅い等の問題があり ました。実行速度については、技術評論社の JavaPress v 矼 9 ( 1999 年 12 月 ) にて比較されておりますが、 Linux 工 ミュレータ上で JDKI. 2 を動作させたほうが速いとされてお ります。今回最新バージョンが利用できるようになったこ とで、 JDKI. 3 から採用されている H 。 tspot 技術やネイティ プで実行されるため、飛躍的に高速化されるでしよう。 今回の決定をされた FreeBSD Foundation や Sun nucrosys tems の方々に感謝するとともに、 FreeBSD への porting を行 っている FreeBSD Java project の方々に感謝します。 最後に 2001 年は、 ADSL やケープル TV によるインターネットの 常時接続が流行し、同時にウイルスやクラッキング等がこ く当り前になった年でした。名護での展示や忘年会を通し て、サーバーやネットワークの管理が専門的な知識を持っ 人だけが行うことではなく、これまでまったく知識のない 方などさまざまな人が行っていると感じました。我々 OFUG は、 FreeBSD やこれにまつわるネットワーク技術を 沖縄に啓蒙することにより、知識の共有や新たな創造がで きればと思ってます。隠れ FreeBSD ファンな人や一人で Hacking しているあなた、一緒に遊びましよ。 OLUG の比嘉秀行さんに OIA 公開講座の写真にて協力し 村田光伸 / M ″ ra なⅢ mura@jasminesoft.co.jp ていただきました。感謝致します。 注 3 HaiSaiMac : AppIe 社公認のユーザーグループ (http://hammer.prohosting.com/—haisai/index.html) 注 4 OLUG : Okinawa Linux User Group (http: ″ www.olug.gr jp/) 2002 No. 1 1 BSD magazine 233

5. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

BSD 標準のカーネルローダ (FreeBSD の /boot/loader など ) であれば自動的に付加してくれる、カーネルに渡すオプシ ョンパラメータなどもユーザーが明示しなけれはならす、 あまり使い勝手がよいとはいえない。実際、 GRUB のドキ ュメントでも FreeB SD を起動するときは、 GRUB から / kernel を指定するのではなく、 /boot/loader を指定すること が勧められている。インストールと設定もめんどうだし、 BSD をメインで使う環境では現状ではあまりお勧めとはい えないので、 こではこれ以上詳しくは取り上げない。 しかし、 bash ライクなコマンドラインインターフェイス は興味深く、 GRUB のプートフロッピーで立ち上げ、 GRUB のシェルから FreeBSD 、 NetBSD 、 OpenBSD のパー ティションを指定してやる (BSD/OS のファイルシステム には対応していなかった ) と、そのファイルシステム上の ファイルを補完機能を用いてプラウズできたりするのは新 鮮である。たとえば、 1 台目のハードディスクのパーティ ション 4 にインストールされている NetBSD をプートする場 grub> kernel -type=netbsd / 〔〕 grub> root (hd0 , 3 , a) 合は以下のようになる。 # dd if= ハードディスク全体のデバイス名 of=mbr. bak ップをとることもできる。 よいことである。また、 BSD 上から dd コマンドでバックア れを利用して正しく動いていた MBR を保存しておくのは は MBR のバックアップ / リストアする機能があるので、そ てしまい、真っ青になってしまった。上記のツールの多く もこの記事の執筆中に一度失敗してそのような状態になっ を起動できなくなってしまうこともあるかもしれない。私 別のプートマネージャに入れ換えようとして失敗し、 os プートマネージャのバックアップ これからどんな風に改良されていくのか楽しみである。 grub> b00t grub> kernel —type=netbsd /netbsd ( 補完候補が表示される ) Possib1e fi1es are : usr etc kern boot netbsd ( デノヾイス名は FreeBSD なら /dev/rad() など ) bs = 512 count=l ジャ全体をバックアップしたい場合は、 c 。 unt の数を調整 MBM など MBR に続く数セクタを使用するプートマネー 改訂版、プロフェショカレ BSD しよう。リストアする場合は、上記の dd コマンドの if と。 f の指定を逆にすればよいわけである。しかし、ハードディ スクのファイルシステム上にバックアップをとっておいて も、 MBR を壊してしまったときには意味がない。また、 フロッピーに保存しておいても書き戻すのに手間がかかっ たりする。緊急時にはプートマネージャのプログラムまで バックアップしていなくても、パーティションテープルさ え復元できればなんとかなる。そこで、パーティションテ ープルの最低限の内容、つまり、各パーティションのパー ティションタイプ ID 、開始シリンダ、終了シリンダ ( もし くはパーティションサイズ ) などをメモしておかれること をお勧めする。これらがわかっていれば、 MBM に付属し ているパーティションテープルエデイタなどを使って書き 込んでやることができる。かくいう筆者は、 MBR のバック アップも、パーティションテープルのメモもとっておらす、 MBR を壊してしまう前にたまたま MBM のパーティション テープルエデイタ画面 ( 図 11 ) をデジカメで撮っていたの で助かったのだった・・ まとめ プートマネージャは、マシンのプート時に一瞬顔を出す だけだが、さまざまな特徴あるソフトウェアがあることが おわかりいただけたと思う。この中でどれか 1 つを選ぶと したら、個人的には MBM がお勧めである。インストール が容易だし、メニュー表示やキーバインドもわかりやすい。 付属のパーティションテープルエデイタも何かと重宝す る。 XOSL も、インストールがかなりめんどうだが、イン ターフェイスの出来の良さや機能の高さではかなり魅力的 である。みなさんもお気に入りのプートマネージャを見つ けてほしい。この記事が利用環境向上の一助になれば幸い である。 ■参考文襯サイト 中野賢、「導師への道」第 7 回 MBR 、『 BSD Magazine 2001 No. 7 』 P.. 186 http://linux.ascii24.com/linux/allascii/linuxmag/no_()l.html http://www.yk.nm.or.」 p/—kawagisi/boot-manager. html http://www.tkcity.net/—nobusan/ http://www.ata-atapi.com/hiw.htm http://www.cqpub.co.jp/interface/t0ku/200107/if07_toku l.htm 2002 No. 1 1 BSD magazine 177

6. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

B 5 0 でルータを作ろー っ proto [f10w1abe1 value] [tclass value [tclassmask value] ] src—addr C/prefix—1en] sport dst—addr C/prefix-Ien] dport fi1ter6 インターフェイス名クラス名 Cname フィルタ名 ] [ruleno 番号 ] マリスト 10 proto Ctos value Ctosmask value] ] Cgpi value] src—addr [netmask mask] sport dst—addr Cnetmask mask] dport f ilt er インターフェイス名クラス名 [name フィルタ名 ] [ruleno 番号 ] マリスト 9 Cexactbandwidth 利用する帯域 ( 単位 : bps) ] Cborrow] [default] Cred] Cpriority 優先度 ] [pbandwidth インターフェイスの帯域に対するパーセンテージ ] class スケジューリングタイプインターフェイス名クラス名親クラス名 マリスト 8 今回使用したもののみで構文を表現する ☆全アーキテクチャ共通 マリスト 11 NetBSD-current 2001 / 02 / 07 時点の kernel ソースへの patch Cgpi value] * * * src/sys/conf . bak/files Sun Feb 3 21 : 07 : 48 2002 diff —cr src/sys/conf . bak/files src/sys/conf/files src/sys/conf/files Fri Feb 15 00 : 41 : 35 2002 * * * 878 , 883 878 , 884 defpseudo defpseudo defpseudo + defpseudo defpseudo defpseudo gif : faith: ifnet stf : altq : irframetty: ifnet ifnet ifnet irframedrv , irdasir ☆ macppc への修正 + altq) umask 77 736 , 754 * * * 736 , 741 * * * * Fri Feb 15 15 : 59 : 26 2002 src/etc/etc . macppc/MAKEDEV * * * src/etc/etc . macppc . bak/MAKEDEV Sun Feb 3 20 : 24 : 10 2002 diff —cr src/etc/etc . macppc . bak/MAKEDEV src/etc/etc ・ macppc/MAKEDEV 十 十 十 十 十 十 十 十 mkdir altq chmod 755 altq unit=0 for dev in altq cbq wfq afm fifoq red ri0 localq hfsc \ cdnr blue priq; dO rm -f altq/$dev mknod altq/$dev c 22 $unit chmod 644 altq/$dev 2002 NO. 1 1 BSD magazine 049

7. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

フロジェクト短信 ports-jp プロジェクト短信 今回は 2 月にリリースされた FreeBSD 4.5-RELEASE まで の変更点を中心にレポートします。 セキュリティ勧告 今年に入ってから以下の ports ゆ ackages にセキュリティ勧 告が出ています。 announce-jp ML のアーカイプ http: //home.jp.FreeBSD.org/mail-list/announce-jp/ などを参照の上、対処しましよう。 FreeBSD—SA—02 : 03 . mod_auth_pgsql (www/mod-auth—pgsql/) FreeBSD—SA—02:04. mutt FreeBSD—SA—02:05. pine FreeBSD—SA—02:06. sudo FreeBSD—SA—02 : 10 . rsync sudO について (mail/mutt 等 ) (mai1/pine4) (security/sudo) (net/rsync) sudo については、 ports Collection のデフォルト状態では なく、 Makefile の CONFIGURE ARGS に --disable-root- mailer を追加したほうがいいでしよう。具体的には p 。 rt の Makefile に以下のパッチをあてます。 @@ ー 28 , 6 + 28 , 7 @@ 十 —with—all—insults \ —with—logincap \ —disable—root—sudo \ —disable—root—mailer \ —with—long—otp¯prompt \ —with—pam Ports システムの変更 今回はどちらかというと地味な変更がいくつか入りまし root 以外でのインストール r 。。 t 権限を持つユーザー以外でも p 。 rts collection のイン ストールが行えるように改良が行われました。 r 。。 t 以外の ときには bsd. ports. mk で定義されている INSTALL-* マクロ の中で install ( D の一。 (owner 指定 ) や -g (group 指定 ) オプショ 200 BSD magazine 2002 No. 1 1 フ野元之 / / M 研の , ″石ん 0 〃〃 0 motoyuki@FreeBSD.org ンが外されます。 一般ユーザーとして利用しているマシンで個人的に利用 したいプログラムをインストールするとき、また ports や packages のテストを行いたいときに利用すると便利です。 r 。。 t 以外でインストールするときは、 make PREFIX=$HOME PKG_DBDIR=$HOME/pkg のように PREFIX や PKG_DBDIR( パッケージのデータベー スが格納される ) を $ HOME の下など自分のユーザー権限で 書き込める場所を指定するといいでしよう。 ただし、 r 。。 t 以外でのインストールに対応していない ports もいくつか存在します。 setuid や setgid が動作に必要な ものは当然無理ですし、各 port の Makefi1e が対応していな いケースも若干あります。 USE IMAKE XFREE86_VERSION が 3 の場合に、 USE_IMAKE を指定 すると devel/imake port に依存するようになりました。なお、 XFREE86_VERSION が 4 のときは devel/imake-4 に依存する のは従来と変わりありません。 生 6- RE し EASE に向けて 4.5-RELEASE 直前に commit されたものの、影響が大き XFree86 4.2.0 の port が backout されました。 には間に合わないという理由でいったん commit された の報告が複数あり、問題点の確認や修正が 4.5 ー RELEASE XFree864.1.0 などで作成されたバイナリが動作しないなど 1 月 20 日にリリースされた XFree86 4.2.0 では、従来の XFree86 4.2.0 進める必要があります。 更が再び c 。 mmit される予定なので、 p 。 rts 関係でも対応を 6 月 1 日に予定されている次の 4.6 ー RELEASE までにはこの変 ・日本語 EUC locale 名の変更 (ja_JP. EUC - > ja_JP. eucJP) ・ XFree86 4.2.0 対応 すぎるとして back 。 ut された変更が 2 つあります。

8. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

BSD ハッカーへの Linux カーネル紹介 ポインタで参照し管理することが可能である。この方針に より、 Linux カーネル内での各種資源管理が単純化されて いる ファイルシステム ext2 Linux も近代的な UNIX と同様 VFS ( 仮想ファイルシス テム ) 構造を採用している。非常に多くの種類のファイル システムをサポートしており、各種 OS のファイルシステ ムをマウントして利用することができる その多くのファイルシステムの中で、 ext2 が標準ファイ ルシステムとして採用されている。 ext2 は FFS UFS) を 参考として設計されており、構造は非常に良く似ている ティスクレイアウト的なところの違いは、フラクメント機構 を取り込む代わりに、フ、ロックのプリアロケート機能を実 装しているくらいであろうか。それ以外はそっくりである。 ただし、実装面においては大きく異なる点がある。 ext2 は非同期 I/O をテフォルト動作としており、非同期 I/O のと きに最も性能か出るような実装をしている。驚くほとの割 り切りの良さである。実際 Linux の vfs か bread 関数は用意 しているが、 bwrite 関数を用意していないところからも、 Linux か非同期 I/O 中心に設計されていることか見て取れる レ 0 をすべて非同期にすることにより、最も効率のよい I/O 順を選択できるのは当然のこととして、 Linux は更に非 同期 I/O を効率的に動かすための仕組みを用意している 伝統的な UNIX では、レ 0 中のバッファベーシに対してアク VFS キャッシュ iS09660 ディレクトリ 工ントリキャッシュ ext2 ペーシキャッシュ nfs RPC / ヾッフアキャッシュ TCP/IP 7 ファ ) システ セスすることは許されていないが、 Linux はティスクへの書 き出し処理を行っているべーシに対してテータを書き込む ことも可能である ( その場合、同じペーシに対して再度書 き出しレ 0 が発行されることになる ) 。プロセスは I/O 処理 にフロックされることなく、処理を継続することが可能で ある。 もちろん現在の Linux では、堅牢性を重視したシャーナ リンクファイルシステムも多数実装か進んでいる キャッシュ Linux は、近代的な商用 IJ N Ⅸと同じく空き物理メモリ をすべてファイルシステムのキャッシュ用途として利用す る。カーネル v2.4 では一部のメタテータを除き、ファイル テータは基本的にすべてペーシキャッシュに蓄えるように なっている もともとファイルシステムのキャッシュは、初期の UNIX と同じくバッフアキャッシュと呼はれるフロックテパ イス ( ティスク ) のキャッシュとして実装されていた。し かし、 N FS のようなローカルティスクを持たないファイル システムの登場により、論理的なファイルのキャッシュと して働くべーシキャッシュを利用するように実装が変更さ れてきた ( v2.2 カーネルでは、ペーシキャッシュ化か不十 分で、ファイルからのテータ読み出しはペーシキャッシュ 経由、ファイルへの書き込みはバッフアキャッシュ経由と なっていたが、 v2.4 では完全にペーシキャッシュに統一さ れた ) 。 ファイルテータがペーシキャッシュに置かれることによ り、フロセスのファイルマッフ空間との間でペーシを共有 することも可能となった また、 BSD から始まったティレクトリエントリ専用のキ ャッシュも実装されている。 Linux カーネルのティレクトリ 工ントリキャッシュでは、メモリ上のティレクトリエント リと i ノードか相互にリンクされており、パス検索処理を 高速化することに役立っている raw I/O もともと Linux には raw レ 0 の仕組みは存在しなかった 速度さえ気にしなけれは、フロックテパイス用のテパイス ファイル経由のアクセスで何も不自由はない。たか、テー タベース用途なとの要求か高まるにつれ、 Linux でもとう 2002 No. 1 1 BSD magazine 091

9. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

もっとも詳しい qmail と Postfix の解説書。 SC 翡 P ①八メールサーバの構築 01nnail メールサーハのキ築 Expert UNIX Series CD-ROM 付属 ・ UNIX Se ・ Expert UNIX 5 沁 Richard 日石 m 著 / 株式会社コスモプラネット訳 日 h 第」日ト川い / 三 Postfix メレサーバの構築 0 0 0 0 最新刊 好評発売中 ASCII SC Postfix のインストールから、設定、運用まで、あますところな く解説。また、外部データベースを利用する方法など、 Pos ⅲ x サーバのさまざまな機能の設定に役立つ情報も紹介。 Richa 「 d Blum 著 / 株式会社コスモ・プラネット訳 A5 判 688 ページ予定定価本体 3 , 800 円 + 税 旧 BN4-7561-4051-3 qmail のインストールから、設定、運用まで、 FreeBSD と Li Ⅱ u x の場合について、あますところなく解説。付属 CD-ROM には FreeBSD 4.4-RELEASE と qmail ソースを収録 Richard BIum 著 / 株式会社コスモ・プラネット訳 A5 判 628 ページ CD-ROM 付属定価本体 3 , 800 円十税 旧 BN4-7561-4001-7 企業内研修・引用によるカスタムメイド・ OEM 供給に関してのお問い合わせ先 : 法人営業担当 ( 03 ) 5351-8640 ・表示価格は消費税を含みません。・本製品は書店および書籍を扱っているパソコンショップでお買い求めください。・品切れの際は書店にてご注文いただくか、通信 販売をご利用ください。・通信販売のお問い合わせ先 . 株式会社アスキーストア電話 ( 03 ) 5351-8202 http://www.ascii-store.com/ 〒 1 51-8024 東京都渋谷区代々木 4-33-10 電話 ( 03 ) 5351-8194 http://www.ascii.co JP/ 株式会社アスキー

10. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

スタイルファイルの整理 出し番号と見出し文字列の出力には、 PSFrag という まず、スタイル作成機能を拡張するにあたって、スタイ LATEX のパッケージを使っている。 PSFrag というのは、 ルファイルの整理を行うことにした。できればもっと柔軟 い TEX の側で EPS 中にある指定文字列 ( タグ ) を LATEX で な仕様にしたかったのであるが、時間の制約もあって今回 指定した文字列に置き換えてくれるものだ。この置き換え はまずスタイルをすべて「 styles 」という名前のディレク られた文字列は EPS に埋め込まれた文字列として、通常 トリに置くということで落ち着いている。 EPS と一体に扱われる。デザイナがタグを出力文字列とし 今回は従来の仕様との互換性も考慮して、作業ディレ てイメージして作った EPS ファイルを、そのままのイメー クトリにそのままスタイルを置いても動作するようにして ジで出力することができることになる。 あるが、分業化の観点でも編集者の作業ディレクトリには 以前からアイデアだけはあったのだが、簡単に TEX の作 なるべく余計なものはないようにしておいたほうがよいだ 業領域を使い切ってしまうので、以前は実用には耐えなか ろう。 った。現在の TEX は、フォーマットファイル作成時に 同時に、 guisted と guiidxsted との統合も行っており、 texmf. cnf という設定ファイルで作業領域の大きさを指定で guisted 全体の設定はデフォルトで common. dat というファイ きるので、この問題は比較的楽にクリアできる。 ルに保存するようになった。 この PSFrag の文字列埋め込みの機能を利用して EPS に 見出し番号と見出し文字列を埋め込む。よって、基本的 新機能の追加 には飾りとする EPS ファイルとタグを指定するだけなのだ EWB 3.3 の目玉ともいうべき部分である。なるべく詳述 が、位置取り、文字列の出力形式などを細かく指定せね しよう。追加された新機能は、以下の通りである。 ばならないので、指定項目が多くなっている。 guisted の指 定画面を見てみよう ( 画面 1 ) 。 1. 見出しの飾り デフォルトでは EPS 画像を使わない左側の画面になって 2. 柱・ノンプルの飾り いるが、「 EPS 画像を使用」のチェックボタンをチェック 3. 枠ボックス すると、右側のように変化する。そこで増えた部分が、指 定に必要な項目だ。指定は、大きく分けて 5 つの部分から なる。 まず、左上の書体の指定が増えている。見出し番号と 見出し文字列の書体を分けて指定するためだ。横組み、 縦組みの指定もできる。 右の図の指定個所には、 EPS 出力位置を決めるのに必 : 00 を ~ 、、、。 00 指定すけ実現き = う 0 こしてあ 0 ・見出しの飾り 見出しの飾りに EPS を使うことができるようにした。見 本文体数要素をニ、里竺、一 - 」 トリガ和文書体 i 新コ - & ) ld 本文体載要素 : . 生一一」 トリガ和文書体 i 新 i 「釦 - ld 閉じる 欧文報数 4 和文報数 欧文書体 4 新止新 - 師 ld -8 , ~ 飫 $J 十 和文報 欧文書体 4 報 新え師ー新 ld -83 - & ト H 欧文報数 体銭 449 加製除 追複剤 トリガ「了 1 ーーー 上位見出し一無し「見出し番号指定文字列同ーーー— 見出し体ま 見出し書体 行送りーー画 上下付き方 見出し番号文字列 中 番号実章 見出し番号表記 . ここ .- 壘、、一、一」 大右揃え 見出しべージのノンプル : こ」こ」 4 見出し以隣の柱 / ノンプルを切り換える 奮画像を使用 有効 P リングをージ番号 」見出し番号 コ文字列 質目次に使用、 -. さ豊 - ー トリガ『 1 ーー上位見出し・ - 」さ三」見出し番号指定文字列府 { 一 11 見出し体裁 1 見出し書体 [ おフツイル 見出し番号書体◆検、 , 「ア一一一 1 ーー 見出し番号タグ 行送り国一一 - 画 見出し番号文字列 タグのよ」を 見出し番号表記 : こここ - 一一一」合わせ . る・、よ」ド ー・ジ理ー、」」こーー」見出し文字列タグ 見出しべージの・ノンプル タグの ~ 上」を 」見出し以降のノンプルを切り換える文字列の - よ」 合わせる 第、 E 円画像を使用 第見出し析り返し 有効 P リンク第犬ージ番号 見出しの長さ ー出し番号 許容圧縮率 目次に使用 - 」旦さ竺 . 」 第 1 章ロロロロロロロロロ 画面 1 guisted の見出し指定画面 188 BSD magazine 2002 No. 1 1