場合 - みる会図書館


検索対象: UNIX MAGAZINE 1995年5月号
118件見つかりました。

1. UNIX MAGAZINE 1995年5月号

連載 / UN Ⅸの首具箱ー⑨ 図 9 前と宀後のルーティング・テーカレ ( ー友粋 ) [ 接続前 ] root@skinhead(6) $ netstat —rn Routing tables Destination Gateway Route Tree for ProtocoI FamiIy inet : (root node) 127.0.0. 1 127.0.0. 1 163.221.55.2 127.0.0. 1 (root node) root@skinhead(7)$ 目 [ 接続後 ] root@skinhead(8)$ netstat —rn Routing tables Destination Gateway Route Tree for Pr0toc01 Fami1y inet : (root node) = > default 163.221 .56 . 1 127.0. 0 . 1 127 . 0 .0 . 1 163.221 . 55 . 1 163 . 221.56.2 163.221 . 55 . 2 127 . 0 .0 . 1 (root node) root@skinhead(9)$ ロ 表を載せましたが、受信先のネットワークと、それに対応 ません。 したゲートウェイのペアが言己されています。 ルーティング・テープルを表小させるには netstat コ マンドに一 r Ⅱオプションを付けて実行します 9 。たとえば 図中のルーティング・テープルには目白也が default と 則回の skinhead と indians のあいだを iij-ppp で接続 なっているエントリがあります。これはテフォルトルート した場合、ローカルマシンである skinhead のルーティン (default route) と呼ばれ、ルーティング・テープル中に グ・テープルは図 9 のように変化します 10 マッチするエントリがない場合に適用されます。 hostl の 場合だと、 この図から、 PPP による接続カ院了すると indians に 対する経路とデフォルトルートのエントリが追加され 11 ・目的地が netl の場合は GWI に送る いすれも iij-ppp のトンネルテンヾイスである tunO を用い ・目的地が net2 と net3 の場合は GW2 に送る ることが分かります。逆に、接続が切れると、これらの工 ・目的地が localnet の場合は直接送る ントリは自重加勺に消されます 12 ・それ以タ ) 場合は GWI に送る 図中の 1 。 0 というネットワーク・インターフェイスは ループパック (loop back) と呼はれるもので、同一マシ となります。 ン内でプロセスどうしが TCP/IP を用いた通信をおこな インターネット全体の糸齧各をすべてエントリとしてもつ う際に使います。 127.0.0.1 という IP アドレスは自分自 とテープルがパンクしかねません。デフォルトルートを設 身に対して通信をおこなうときに使うアドレスです。 定すると、テープルの大きさか減らせます 8 。 iij-ppp も bsdi-ppp も、このままではリモートマシン 「ほな、 PPP でローカルマシンとリモートマシンが通信 以外と直接通信はできません iij-ppp の場合はローカル するときも、ルーティング情報を自分で設定せなあかんの マシンのデフォルトルートを設定しますが、リモートマシ ちゃう ? 」 ン以外はローカルマシン , 、、の糸各を知らないため、ローカ この点については心配無用です。 bsdi-ppp と iij-ppp では、接続の確立時にルーティング・テープルの設定を自 9 ーⅡオプションは、 IP アドレスをホスト名に変換しないことを意未しま 重加勺におこなってくれるので、すくなくともローカルマシ 10 skinhead の IP アドレスは 163.221.55.2 、 indians は 163.221. ンとリモートマシンの通信に関しては何もする必要はあり 55.1 になっています。 11 bsdi-ppp の場合は、デフォルトルートは助日されません。 8 消費するメモリカ眇なくなることを意未します。 12 bsdi-ppp の場合は残ったままです。 F1ags Use lnterface Refs UGH 0 100 0 100 1 0 F1ags Us e lnterface Refs 0 tunO 0 100 0 tun0 0 100 0110 UG UGH 0 0 一三 す。 96 UNIX MAGAZINE 1995.5

2. UNIX MAGAZINE 1995年5月号

連載 / UN Ⅸ具箱ー⑨ を糸財寺するには 2 つの方法があります。ここで紹介する のは静的、つまり固定したルーティング情報を用いるやり 方 (static routing) で、管理者がコマンドを使ってルー ティング・テープルを設定します。 ルーティング・テープルへのエントリの助日あるいは削 除には、 route コマンドを用います。 route コマンドの 書式は、以下のようになっています。 route 0 〃 t を 0 れ S CO れ ~ 〃 ~ 佖れ d parameter 詳細はオンライン・マニュアルなどを参照してもらう として、 こで必要な command は add と delete で しよう。 bsdi-ppp の場合、ローカルホストにはデフォル トルートか設定されないので、自分で追加しなければなり ません。この場合、次のように実行します。 r00t@skinhead(21) $ route add default \ 163.221.55.1 add net default : gateway 163.221.55.1 root@skinhead ( 21 ) $ ■ 経路で用いるゲートウェイ ( この場合は indians) を、 最後の引数で指定します。ただし、 route コマンドは最 初の PPP 接続か確立してからおこなわなければなりませ ん。うまくいけば、 netstat コマンドでデフォルトルート の」助日カ薩忍できるはすです。 一方、一度設定したエントリを削除したい場合は次のよ うに使います。 r00t@skinhead(37) $ route delete default delete net default : gateway r00t@skinhead(38)$ ■ これに対し、「直接アクセスしたいのは tigers だけやか ら、デフォルトは設定せす、 tigers へのエントリだけを 成疋したい」というときもあるでしよう。こういう場合、 tigers へのルーティングを以下のように設定します。 r00t@skinhead(40)$ route add 163.221.55.12 \ 163.221.55. 1 add host default : gateway 163.221.55.1 root@skinhead(41)$ ■ さきほどと違って目的地がホストになっているので、 route コマンドが返すメッセージの部分が net ではなく host になっています。特定のネットワークを指定すると 98 きは、 163.221.55.12 の代わりに 163.221.55.0 のように 言己します。 これでローカルマシン側は言聢できますが、同しことを 目的地のマシン上でもおこなう必要があります。さもない と、向こうからのバケットが迷子になってしまいます。 たとえば、ローカルマシンから tigers への経路を設定 すると、 tigers 側では次のように設定します。 root@tigers(10)$ route add 163.221.55.2 \ 163.221.55. 1 add host default : gateway 163.221.55.1 root@tigers(ll)$ ■ 外部のマシンから skinhead への経路を設定するとき は、指定するゲートウェイが変わるので注意してくださ い。このとき、外部のネットワークとのゲートウェイで ある cubs でも、 skinhead へ到達するための経路を設定 しておかねばなりません。 root@cubs(102)$ route add 163.221.55.2 \ 163.221.55. 1 add host default : gateway 163.221.55.1 root@cⅡbs ( 103 ) $ ■ ただし、外部のネットワークにあるマシンと直接通信 する場合、 PPP リンクのネットワーク・アドレス ( 163. 221.55.0 ) か謝妾の Ethernet のものと異なると、多くの 場合は経路がないといわれてエラーになるか、全然違うと ころへ飛んでいってしまいます。 PPP リンクと謝妾する Ethernet のネットワーク・アドレスを一 - 絲都こしているの は、外部から skinhead へのバケットか不寉実に cubs まで 届くことを保証するためです。 route コマンドを使ってルーティングを設定する方法 は、アクセスするマシンが分かっていて、その数が少ない ときには有効でしよう。しかし、設定するにはスーパー ューザーの権限を必要とし、とくに外部のマシンを言綻す るにはかなりの困難をともなうでしよう。あくまで、自分 の手か届く範囲でちょこっと設定するのにだけ使えるよう なガ去です。 動的ルーティングを用いる方法 次は、重加勺なルーティング情報 (dynamic routing) を 利用するガ去です。皆さんのサイトでもこちらを使ってい る場合が多いかと思います。重加勺なルーティングでは、ル UNIX MAGAZINE 1995.5

3. UNIX MAGAZINE 1995年5月号

表 1 magstep と整数値の系 スタイルファイル活用法ー 13 連載 図 4 2up. sty の booklet 、 B00klet オプション ・ booklet をキ諚した場合のべージ頂 magstep \magstepO \magstephalf \magst ep 1 \magstep2 \magstep3 \magstep4 \magstep5 1000 1095 1200 1440 1728 2074 2488 12 6 1 7 10 4 3 9 \targetlayout{option-layout} \source の引数には元になるファイルのパラメータを、 \target には縮小印字した場合のパラメータを記述しま す。各引数の未は下記のとおりです。 ・ mag : 尢たの扣疋 拡大率を 1 000 倍した整数俵 1 ) 、または \magstepn か \magstepminusn のいすれかの形式旨定する ( れ は 0 ~ 5 の整数 ) \magstepn : 1.2 。倍に拡大 \magstepminusn : 1.2 ー " 倍に拡大ャト ) ・ん、ん e 匆厩 : 用紙の高さと幅 ()m 、 pt などのディ メンションてオ旨定 ) オプション・コマンド \targetlayout の引数では、 下記のうちのいすれかカ甘旨定できます。 ・ topbottom : 2 ページを上下に並べる。 ・ twosided : 偶数ベージを右または下に配置する。 ・ booklet : 両面印字用にページを並べ替えて出力す る ( 両面印字機能のないプリンタ / コピー機用 ) 。 ・ Book1et : 両面印字用にページを並べ替えて出力す る ( 両面印字機能のあるプリンタ / コピー機用 ) 。 たとえば 12 ページの文書の場合、 booklet あるいは Book1et オプションを指定して 1 枚の用紙に 2 ページぶ んすつ出力すると、図 4 の順で各ページカワ。リントアウト されます。 このはかに、 dvi ファイルのページ順などを並べ替える ューティリティ dvidvi を使うためのオプションもありま すが、日本言韶 ) 文書を処理しても意図どおりの結果になら ないようなのでここでは説明しません。 たとえば、 article. sty などを用いて作成した A4 判縦 長 (portrait) の文書を A4 半贖長 (landscape) に 2 ペー UNIX MAGAZINE 1995.5 ・ Booklet をキ諚した場合のページ順 12 4 1 9 2 8 5 8 2 10 6 5 3 7 ジぶん並べて縮小印字したいときは、プリアンプルで下記 のように指定します 4 。 \source{\magstepO}{210mm}{297mm} \target{\magstepminus1}{297mm}{210mm} 文書のサイズを決める \textwidth や \textheight などのコマンドは、これらのコマンドよりも前て指定しな けまなりません。 典型的な用途のために、一定のレイアウトに合わせて出 力するコマンドも用意されています。 ・ \twouparticle IATEX の article. sty のデフォルト値に揃えて縮小印 字する。横 11 x 縦 8.5 ⅲの用紙に、 2 ページぶんを左 右に並べて出力する。もとの文書の左右の空白 ( マージ ン ) を上如勺広くとっている場合に使う。次のように指 定したのと同し \source{\magstepO}{8.5in}{11in} \target{\magstepminus1}{11in}{8.5in} ・ \twoupplain \twouparticle と同しサイズの用紙に縮小印字する。 もとの文書の去第の空白カ峡い場合に使う。次のように 孑彳定したのと同し 4 もとの文書の左右の余臼カい場合は、 \magstepminus2 にしたほうが 仕ー功黝はきれいてす。 121

4. UNIX MAGAZINE 1995年5月号

討されているサマータイムのことです ) を採用している 場合にはその形式も返します。この構造体は、 int tz_minuteswest ; int tz_dsttime ; します。次の例を見てください。 date コマンドの出力とよく似た 26 文字の文字列を返 この関数は、 long 型の値のアドレスを引数にとり、 でも、もっとも簡単な ctime 関数を紹介しておきまし おこなってくれるライプラリ関数があります。そのなか が容易には分からないからです。これらの変換を簡単に れは、 UNIX 起源から佃経ったら、、いつ " になるのか な、分かりやすい " 出力を得るのはとても大変です。 の秒数が得られても date コマンドで出力されるよう が得られると説明しました。しかし、 UNIX 起源から gettimeofday システムコールで現在の時刻を示す値 date コマンドの実現 れません。 で、このシステムコールを使うことはあまりないかもし 専用のプログラムを用いて時刻を合わせることが多いの 行できるようになっています。去も匠では手作業ではなく だし、このシステムコールはスーノヾーユーザーのみが実 コールを用いて上記の値を設疋することも可能です。た timeofday システムコーノレもあります。このシステム ちなみに、 gettimeofday と同様な引数をもつ set- えたほうがよいでしよう。 す。引数 tz は、古いプログラムのためだけのものと考 は、別のファイルを参照してこれらの情報を得ていま となっています。あとで述べるような時刻を扱う関数で ここで返される値は、実際にはすでに使われないもの は夏時間の形式が定数で返されます。 ッジ標準からの時刻のすれが分単位で、 tz-dsttime に テムコールを実行すると、 tz-minuteswest にはグリニ というフィールドをもっています。 gettimeofday シス % cat dateO . c #include く stdio . Ⅱ> #include く time . h> #include く sys/time . 五 > main() struct timeval 152 tv ; gettimeofday(&tv, NULL) ; ctime(&tv. tv—sec) ) ; printf("%s" exit(O) ; つまり、つねに決まった場所からそれぞれの文字が始ま 文字数が 26 文字で固定されている点も特徴的です。 まれるので出力する際には注意が必要です。 ています。 ctime 関数が返す文字列には、改行文字が含 と、 printf 文で改行文字を指定していないのに改行され ムゾーンの文字列だけではありません。出力結果を見る この関数が返す文字列で注意してほしいのは、タイ タイムゾーンを示す文字列がありません。 カか彳等られました。 date コマンドの出力とくらべると、 て出力しています。その結果、 date コマンドに似た出 ctime 関数に渡して、返される値をそのまま文字列とし ルにより得られた現在の時刻を示す秒数のアドレスを このプログラムでは、 gettimeofday システムコー Sat Mar 18 00 : 27 : 15 JST 1995 % date Sat Mar 18 00 : 27 : 13 1995 % . /date0 exit(O) ; printf("%s\n", & ( p [ 11 ] ) ) ; p [ 19 ] p = ctime(&tv. tv—sec) ; gettimeofday (&tv, NULL) ; char struct timeval tv ; く sys/time. h> く time . h> く stdio . h> たとえば、時刻を示す文字列だけが欲しい場 main() #include #include # inc lude 合には、 るのです。 UNIX MAGAZINE 1995.5 ので注意してください。 た場合には、いすれの戻り値も同じ文字列を指している 的領域に確保されます。そのため、 2 回関数を呼び出し ctime 関数が返す文字列の領域は、ライプラリ中の静 関数を用いたはうがよいでしよう ) 。 を表す文字列だけが欲しい場合には、次節でとりあげる ているので、このような書き方ができます ( 実際に時刻 などとすることも可能です。時刻か現れる場戸励鴃まっ

5. UNIX MAGAZINE 1995年5月号

連載 / インターネットの禾と仕組みーの 図 2 Ethernet インターフェイスとルーティング・テープル (BSD/OS 2.0 ) # ifconfig efO efO : f1ags=a863 く UP , BROADCAST , NOTRAILERS , RUNNING , SIMPLEX ,LINKI ,MULTICAST> inet 192.168.2.26 netmask Oxfffffff8 broadcast 192 .168.2.31 192. 168.2.16 / 29 192. 168.2.24 / 29 0 : 20 : af : 74 : db : 13 # netstat —rn Routing tables lnternet : Destination default 127 192. 168 . 2 .30 192. 168 . 2 .27 192. 168 . 2 .26 192. 168 . 2 .25 127.0.0. 1 224 / 8 224.2. 127.255 Gateway 192. 168.2.25 127.0.0.1 127.0.0. 1 192 . 168.2.30 link#l 0 : a0 : de : 0 : 2 : 2 8 : 0 : 20 : 8 : 74 : 7d link#l 1 ink# 1 0 : aO : de : 0 : 2 : 7 F1ags UHL UC UHL UHL UHL UHL UC UGS UGRS UGS Refs 1 0 1 1 28 1 0 1 1 0 4 Use 232 0 0 34 0 0 38282 281 0 0 1 lnterface efO 100 100 efO efO ef0 100 ef0 efO efO efO 図 3 Point-to-Point 型インターフェイスとルーティング・テープル (YAMAHA RT-100i) > ShOW ip route Destination/Netmask 192.168.2.16 / Oxfffffff8 192.168.2.24 / Oxfffffff8 default ものなどを便宜上用います。ワー N exthop LAN ( 192.168.2.30 ) LAN ( 192.168.2.25 ) PP [LEASED] クステーション ( 以ード、 Metric 2 0 2 TTL(sec) static static static WS と略 ) をルータにするときなどでは、その WS から 生成されるバケットが 1 不頁のアドレスしかもたないこ とになりますし、 2 台だけのためにネットワークを 1 つ消 費しなくてもいいので有利な点もあります。しかし、イン ターフェイスを IP アドレスでしか区別しないネットワー ク管理ソフトウェアなどでは、取扱いカ咽難になる場合も あって一長一豆です。 Ethernet や専用回線などでは単純なのですが、前述の ように X. 25 や ISDN 網などの取扱いでは、網をネット ワーク ( プロードキャスト型 ) とみなすものと、接続相手 とのあいだの Point-to-Point 型と考えるものの両方の実 装があることも原因となり、経路缶剏を組み立てるのに複 雑な問題を惹き起こしたりします。 ダイヤルアップ・リンクのような重加勺に生成、消失を繰 り返すインターフェイスの扱いも非常に難しい面がありま す。つながりつばなしになってしまったり、経路か消え てつながらないというトラブルカ起こりがちです。 実際の IP ネットワークを構築するうえでのトラブル 32 は、大半がこの Point-to-Point 接続に関連するもので す。しかも、むしろ局所的なトラブルとして現れます。 Point-to-Point 型のネットワークの扱いは、実装によっ てさまざまです。アドレスを付けた場合と付けない場合で は、その状況は異なります。 問題の一例を挙げます。 WS をルータにして Point-to- Point 型にアドレスを付けた場合、 UNIX ではホストルー トとしてルーティング・テープル上に表現されます。しか し、専用ルータなどの経路制御の実装では、ホストルート の情報は扱わなかったり中継しないことがあります。その ような場合は、ネットワーク・ルートに書き換えて情報 を伝えてやらねばなりません。これを忘れると、ルータと なっているマシンにだけ到達できないという事態を招きま す。バケットの送出にはそのインターフェイスのアドレ スが付きます。 Point-to-Point 型でアドレスをもつ場合 はそのアドレスをもったバケットが送られます。したがっ て、 Point-to-Point 型のアドレスにヌ寸するネットワーク の経路も確立しておかなければならないわけです。 アドレスを付けない Point-to-Point 型に関しては、か UNIX MAGAZINE 1995.5

6. UNIX MAGAZINE 1995年5月号

このための仕組みを、、タイムゾーン " といいます。た めしに date コマンドを実行してみてください。 % date Thu Mar 16 23 : 45 : 14 JST 1995 後ろのほうに、、 JST" 、、 GMT 十 9 " 、、 GMT 十 0900 UNIX MAGAZINE 1995.5 sys / time. h ヘッダファイルで宣言されています。 2 っ ます。 timeval 構造体と timezone 構造体は、どちらも のは timezone 構造体で、こちらもアドレスを渡し 造体で、実際にはそのアドレスを渡します。第 2 引数 という形式で用います。第 1 引数の加は timeval 構 gettimeofday(&tv, &tz) gettimeofday システムコーノレは、 ます。 できます。また、タイムゾーンに関係する情報も得られ 単位の値も得られるので、より精細な時刻を知ることが めのシステムコールです。秒単位だけでなくマイクロ秒 day は、現在の時刻を UNIX 起源からの秒数で得るた 時刻についての関数を紹介しましよう。 gettimeof- gettimeofday システムコーノレ これは、米国の西海岸の時刻を調べたものです。 Thu Mar 16 06 : 49 : 09 PST 1995 % (setenv TZ US/Pacific; date) を設定して date コマンドを実行します。 適当な値 (Japan 、 Egypt 、 US/Pacific 、 GMT など ) 時刻を知りたくなった場合には、 TZ という環境変数に な値に設定されます。もし、何かの都合で JST 以外の でしよう。通常は、 OS をインストールしたときに適切 ユーザーがタイムゾーンを設定することはあまりない 標学よりも 9 時間進んでいるのです。 ことを示しています。つまり、日本オ剽はグリニッジ るのは、グリニッジ標よりも 9 時間先に進んでいる の GMT に対して、十 9 " とか、、十 0900 " などと付いてい れは、グリニッジ標 ~ を示し世界共通の日骸リです。 子午線の基点としたためにこの名前が付いています。 Time" の略で、かって英国の王立天文台があった場所を 準時を表します。一方、 GMT は、、 Greenwich Mean Japan Standard Time" の略で、日本標 JST は、 しています。 どと出力されるでしよう。この部分がタイムゾーンを示 LJN Ⅸ流プログラミング 55 の引数には NULL ポインタを指定することも可能で、 その場合システムコールは対応する値を返しません。 timeval 構造体のアドレスを指定した場合、現在の時 刻が秒単位とマイクロ秒単位で返されます。 timeval 構 造体は、 10 Ⅱ g tv—sec; long tv—usec; というフィールドをもっています。このうち、 tv- sec に は UNIX 起源からの時間が秒単位で、 tv-usec にはマイ クロ秒単位での端数かオ内されます。ただし、マイクロ 秒単位の精確さがあるわけではありません。実際には、 システムが処理できる最小の時間単位で計算された近似 値が返されます。 gettimeofday システムコールの簡単な使い方を紹介 します。次のプログラムでは、何もしないループを 100 万回繰り返す時間を測定しています。 #include く stdio . h> #include く sys/time . 五 > main() printf("%d. %06d\n” , sec, usec) ; —sec; usec + = 1000000 ; if (usec く 0 ) { usec = tv2. tv—usec ー tvl . tv_usec; tvl . tv_sec; sec = tV2. tV_sec gettimeofday (&tv2 , NULL) ; for (i = 0 ; i く 1000000 ; i + + ) gettimeofday(&tvl , NULL) ; sec, usec; long struct timeval tvl , tv2 ; int 151 からの時刻のすれを分単位で返し、夏時間 ( 国会でも検 もう 1 つの引数たを指定すると、グリニッジ標準時 ( それについては、最後に簡単に紹介します ) 。 りたければ、別のシステムコールを使う必要があります します。より正確に ( time コマンドのように ) 時間を計 に、同しプログラムを実行しても出力される時間は変化 グラムの処理もおこなわなければなりません。そのため だけに力を注げるわけではなく、ほかに動いているプロ らです。というのも、システムはこのプログラムの実行 します。これは、 UNIX がマルチプロセスの OS だか このプログラムの結果は、実行するたびにかなり変化

7. UNIX MAGAZINE 1995年5月号

て中途半端な力でキーを押した場合、 B 点を越えたかどう かは指の感触では分かりません。電卓や家電製品のなかに は、スイッチがこの山を越えたときに「ペチッ」と音がし てキーがへこみ、クリック感とともに音でもクリックを伝 えるものがあります。 言算機用のキーポードでは、 B 点に至撻したことを ( 内 蔵したスピーカーから ) 音で知らせるものがあります。 x ウインドウ・システムのように言算機側のソフトウェアで 音を発生させるものもあります。これらの音を、、クリック 音 " と呼びます。ないよりはましですが、音で知らせてく れるよりは指への感覚でイ云えてくれるはうがタイプしやす いものです。ただし、クリック感がなくて軽い ( スプリン グの弱い ) 安吽勿のキーポードでは、クリック音がないと使 いづらいことになります。クリック感覚があるキースイツ チでも B 点が E 点より手前にあるようでは、手触りて訂 ち損ねたと思ってもじつは文字が入力されていたというこ とか起こりうるのでだめです。 次に注意が必要なのが、 C ー D 線の傾きと B と D の 高さの差です。図 2 の場合では、 C 点を越えて D 点まで イ斗カ餘々に水平にプいていきます。これは、キーが底 に届くまでになんらかのクッションカ黝くということを表 し、キーを押す力か強かった場合には衝撃を吸収してくれ ます。図 1 の場合では、 C 点を越えるともうキーは底に到 達して全然沈みません。つまり、完全に底まで届いたとい う予告カ甘旨に伝わらす、余った指の運動エネルギーは彳重 となって指の関節を痛めます。 B と D の高さの差が小さ すぎても、強すぎる反発力を感しるところまてつい押して しまいます。 図 1 のような吽讚生でも、 B と D の高さの差が七分あれば 底突きせ旨を戻せます。しかし現実には、そのような長 いストロークのキースイッチではキーポードが分厚くなっ たり、斜め方向に打鍵した場合にガタついたり、引っ掛 かったりといった問題カ起こりますから、ソフト・ラン ディングが一一番です。 読者の大半は自己流のタイピングでしよう。タイピン グコースを受講して十分な練習を積んだ人でないかぎり、 キーの中央を逸れて叩いたりすこし斜めにキーを押さえて しまったりなどはよく起こります。そのときにチャタリン グ ( キーを 1 回しカしていないのに複可入力されてし まう現象 ) カ起きたり、キーが引っ掛かったりするのはよ UNIX MAGAZINE 1995.5 ワークステーションの基礎知識 ( 1 6 ) くないキーポードです。キーの引掛かりは、古くなってす り減ったキーポードや SHIFT など大きなキーて起こりや すい現象です。 まだまだ述べきれていない点はありますが、キーポード の評価基準はキー配列だけではないということと、キータ ッチを構成する要素についてひととおり説明しました 0 ロ丿し 者の皆さんも、いろいろなキーポードを触るときに以 E 説 明したような点に注目するようにしてください。とくに 目をつぶって ( キークリック音も。〃にして ) 強い力や 弱いカでキーを叩いて、文字が入力できた場合とキーを押 し足りす入力に失敗した場合のそれぞれが、指に伝えられ るクリック感覚と一致するかどうかを調べてみるのか有効 です。 AT カ換キーポードは 1 万円前後で多くの不頁の製品が 市販されています。キータッチは指の疲れや腱鞘炎など健 康と大きくかかわるところなので、こだわって探してみて ください。 今回写真を掲載したキーポードの 80 % 以 E は筆者か個 人的に保有しているものです。我ながらよくもこオレごけ入 手したものだと呆れています。次回もキースイッチの構造 などキーポードの話題を続けます。 ( さいとう・あきのり大阪大学 ) 0 [ 赭文献 ] [ 1 ] 「特集キーポード」「先端ん、三田出版会、 Nov. 1994 、 pp. 12-33 [ 2 ] 「キーポードⅱ錙 CbitJ 、共立出版、 1990 年 6 月 ~ 1991 年 1 月 89

8. UNIX MAGAZINE 1995年5月号

BSD/OS 2.0 ■ 図 1 シンポリック・リンクのオーナー (a) BSD/OS 1.1 の場合 $ ls -lg /bsd —rwxr-xr—x 1 root sys 767132 Mar 16 12 : 07 /bsd* $ cd /tmp $ 1 取—s /bsd $ ls -lg bsd lrwxr—xr—x 1 sirasaki wheel 4 Mar 30 03 : 39 bsd@ ー > /bsd (b) BSD/OS 2.0 の場合 $ ls —lg /bsd —rwxr—xr—x 1 て 00t wheel 939961 Mar 16 21 : 24 /bsd* $ cd /tmp $ ln —s /bsd $ ls ー 1 bsd lrwxrwxrwt 1 root wheel 4 Mar 30 03 : 40 bsd@ ー > /bsd 図 2 シェアード・ライプラリを使うと・ (a) BSD/OS 1.1 の場合 $ ls —lg /bin/csh —r—xr—xr—x 1 bin bin (b)BSD/OS 2.0 の場合 $ ls —lg /bin/csh 1 ンクは無引に使ったらあかん。今後のこともよーく考え 196608 Feb 3 1994 /bin/csh 98304 Feb 4 08 : 52 /bin/csh て張るもんや」ということなのかもしれませんが、なぜこ うなったのでしようか。私には、かえって不便になった ように思えます。 ファイルサイズも大きくなった BSD/OS 1.1 はファイルサイズを 1 。 ng 値、つまり 32 ビットて表していましたが、 2.0 では long long 値 ( 64 ピット ) て表すようになりました。おそらく、世の中には もっと大きなファイルを作りたい人がいるのでしよう。 ソフトウェアの変更点 シェアード・ライフラリ UNIX MAGAZINE 1995.5 ルができてしまいます。シェアード・ライプラリをリンク 。図 3 のように、ほとんど変わらないファイ ルすると・・ BSD/OS てイ可も考えすに ghostscript-2.6. lj をコンパイ 旧がシェアード・ライプラリをリンクしてくれました。 SunOS では、何も考えなくても cc で作成すれは らべてファイルサイズがかなり小さくなります。 ポートされるようになりました。図 2 のように、 1.1 とく BSD/OS でも、やっとシェアード・ライプラリがサ したいときは、 cc の代わりに shlicc というコンパイラで コンパイルする必要があります。 shlicc とは、 cc (GNU cc 1.42 ) をシェアード・ライプラリ対応にしたもののよ うです。 gcc2 (GNU cc 2.6.3 ) については、 shIicc2 が 用意されています。そこで、 ghostscript-2.6. lj をコンパ イルし、シェアード・ライプラリをリンクするようにして みました ( 図 4 ) 。かなり小さくなりますね。 寿限無寿限無 最長で 16 文字までのログイン名を付けることができる ようになりました。将来、さらに多くの人がネットワーク を使うようになった場合、いまの 8 文字では、同しサイ トのなかでの重複を避けるために変なログイン名 ( 変な口 グイン名の人、ごめんなさい ) を付けざるをえません。 16 文字になれば、そういう劇 ( ! ? ) もなくなるでしよう。 なお、移行期にはつきものですが、 1.1 でコンパイル したプログラムのうち、 utmp や wtmp を参照するもの (kterm など ) を 2.0 上で実行すると、 who や w コマン ドの表示か舌はしることがあります。 その他 PPP で、重加勺な IP アドレスの割当てができるように なりました。 45

9. UNIX MAGAZINE 1995年5月号

インターネットの 利用と仕組み 吉村伸 リモート接続 はじめに 30 を止めたからといって、メールを受け取り損なうことはな を見計らって再送を試みます。したがって、コンピュータ 然停止中は送れませんが、 30 分後とか 1 時間後とか時間 きに、そのコンピュータへメールを送ろうとした場合、当 たとえば、たまたまあるコンピュータが停止していると 回復機能を上交的安全に確立できるからです。 げられます。しかし、それよりも重要なことは障害の自己 ケーションがあり、定期的 : ンヾケットが送られることか挙 理山の 1 つにネットワークを系財寺するための多数のアプリ インターネットでは、多くの場合専用線が使われます。 ます。 ここにあるといえ インターネットの技術の大きな罸致は、 の通信を確保するための多くの取決めが含まれています。 は、速度や信頼性が異なる通信路を組み合わせて、端と端 クを作ることができます。 TCP/IP のプロトコル体系に TCP/IP は、いろいろな通イ各を利用してネットワー LAN 間接続をおこないます。 信手段を提供しているので、これらのサーピスを使って うでないところは、電話会社をはしめとする通信会社が通 自分で回線を引き回せる糸哉では LAN を作れます。そ うなネットワークを延長する手段も提供されています。 LAN の技術はさまざまな進歩を遂げ、 Ethernet のよ 巨大なネットワークを形成しています。 に接続してしだいに大きくなり、世界中がつながっている 系剿区しです。離れたところにある LAN と LAN を相互 う話題を紹介します。インターネットは、 LAN 間接続の 今回は、遠「融也間を接続するテクニックとそれにともな く、回復したらちゃんと受け取れるようになっています。 これがネットワーク・アプリケーションのもっ障害対施 能の 1 つです。 もし、途中に従阯課金の回勦ゞあったとすると、そのっ どそこで課金されますから、つながったままの回線でない と面倒な事態になってしまいます。専用線を使うのは、現 時点では、それが速度と応答生の点で満足できるものだか らです。したがって、これに代わる通信サービスが出現す れはそれを利用するようになるでしよう。しかし、そうし たサーピスは定額科金である必要があります。従量課金で は、障害対皀力のあるアプリケーションを安じ、して組み 立てることができません。 フレームリレーや ATM など新しいサービスが出始め ています。これらに期待するのは、定額料金でのサーピス で距離依存性が少ないことです。もちろん安いのに越した ことはありません。 ネットワーク技術からみたリモート接続 離れた場所にあるネットワーク妾続手段として必要に なるのが、 2 点間を結ぶガ去です。つまりは、シリアル回 線を使って 2 点間をつなぐもので、 IP の技術的観 : から は、 Point-to-Point 型の接続の導入が考えられます。 バス型ネットワーク Ethernet にしても FDDI にしても、 1 つのセグメン トに 3 個以上のノードを接続できるという特徴があります ( 図 1 ) 。この種のネットワークをバス型、あるいはプロー ドキャスト型 ( プロードキャストができるネットワーク ) といい、同報凾信を実装しているネットワークの糸とし UNIX MAGAZINE 1995.5

10. UNIX MAGAZINE 1995年5月号

UN Ⅸへの招待 ) mail コマンドの基本操イ乍 最初に、 mail コマンドの共巣作を説明します。この コマンドは、メールを送信する、受け取ったメールを読む メールを送信する という双方窈巣作に使います。 もう 1 つは、手紙の内容のタイプ中に行頭で、以下の ようにしましよう。 合は、引用符やバックスラッシュを付けるのを忘れない 、サプジェクト " にシェルのメタキャラクタが含まれる場 % mail -s サプジェクト 1 つは、 -s オプションを使うガ去です。 サプジェクトを加えるにはいくつかのガ去があります。 きます。 ルの受取り手は、サプジェクトを見て用脅各を孑当屋で ルの表題 ) " をメッセージに加えるのが一殳的です。メー メールを送るときは、、、サプジェクト (Subject: メー く Ctr1—d> テストメールです。 % mail 送信先のアドレス を終了します ) 。 て手紙のタイプがすんだら、行頭で CtrI-d を押して入力 送る手紙の内容は、標準入力から入力します ( したがっ % mail 送信先のアドレス ルアドレスを次のように指定します。 メールを送る場合は、コマンドの引数で送イ滸目手のメー ~ 文字 手紙を入力している途中に行頭で、 ~ s サプジェクト ように入力するガ去です。 158 おこなえます。たとえは、 ドエスケープでは、文字の違いによっていくつかの操作が と入力することを、、チルドエスケープ " と呼びます。チル 図 1 mail コマンドのチルドエスケープ % mail papa S tomorrow morning あしたの朝は、早起きしてね。 Message contains : TO : papa Subj ect : tomorrow morning あしたの朝は、早起きしてね。 (continue) では、入力中のメッセージを表示します ( どのようなチル ドエスケーフ。があるかは、 ~ ? で調べられます ) 。図 1 は、 サプジェクトを入力している例です。 mail コマンドを実行すると、 Subject: というメッセージが出力さサプジェクトの入力カイ足さ れる場合もあります。これは、管理者か設定しているから です。ューサーか設定することもできます ( これについて は、 . mailrc ファイルの節で説明します ) 。 mail では、同しメッセージを同時に複数の相手に送信 できます。その場合は、それらのユーザーをすべて mail の引数に指定します。たとえば、 papa 、 yusuke 、 seiji の 3 人に送るには次のように入力します。 % mail papa yusuke seij i このガ去では、 3 人のユーザーがメールの受取人になり ます。このはかに、受取人以外の人にもコピーを送ると いう方法で複数のユーザーに同しメールを送信すること もできます。この場合は、以下のチルドエスケープのい -c ユーサー名 -b ユーサー名 すれかを使います。 前者は、、プラインド・カーポンコピー " と呼びます。 UNIX MAGAZINE 1995.5