UNIX MAGAZINE 2001年6月号

キーフレーズ

UNIX MAGAZINE IPv6 http:// Linux ファイル 2001 システム Windows サーバー ネットワーク www IPv4 FreeBSD 設定 利用 コマンド Summit DHCP アドレス RFC etc 対応 場合 Web アプリケーション インストール インターフェイス configure mod クライアント プログラム for Solaris usr ホスト名 指定 address DNS Freenet Windows NT Windows 2000 Tomcat NetBSD wwwoffle ntsec インターネット シリアルポート 000 ポート server 表示 VLAN Administrator ユーサー lnternet 可能 プロトコル 接続 XML make () 実行 CPU 情報 org mysql できる gzip 2000 アクセス デジタルカメラ ディレクトリ 作成 MySQL データベース データ SCSI mgp MagicPoint name Cygwin net 使っ 電子メール 必要 conf Subject サービス ソフトウェア Server html and ユーザー PCI 使う .com コンピュータ co.jp

目次

S 就 Up lPv6 なさあつなこうグローバル 6bone へ ! 大江将史 ー・ -- - ーふとしたことで T21 一 -- ・ - ・一 写真 1 ThinkPad T21 と T20 、 それと 1620 三三三論ニ 私の所属する研究室では IBM のノート PC がたいへ ん多いのですが、さらに数台の ThinkPad か加わりまし た。新たに加わったのは、 ThinkPad X20 と ThinkPad T21 ( 2647 ー 9AJ 。 SXGA 十液品、 1 , 400 x 1 050 ) です。 研究室のポスも同し T21 を入手し、私も運よく別の経路 で T21 を使う機会を得ました ( 写真 1 ) 。 T21 は、私がふだん使っている T20 と、ディスフレ イやサウンド、ネットワークなどの本体のノ、一ドウェア構 T21 の SXGA 十 成がよく似ています。 T20 からディスクドライプを外し て T21 に付けるだけでイ吏えそうだったので、付け替えて Pentium III 1GHz をイ吏用した ThinkPad T22 が発 みました。すると、ほとんど手間をかけすに移行できまし 表されて、 た ( 面倒な OS のインストールやデータ中幻はおこないま 「ついにノートでも 1 0()0MHz 突入か・・・・・・」 せんでした ) 。 罸にに取り残されていく自分を感しつつ、新しくやって OS については、 NetBSD はまったく間題なく移行でき きた ThinkPad T21 を使ってみました。 ています。 SXGA 十用に XF86Config を更新したくらい ・最大の差は、これまで使っていた T20 が 1 , 024 x 768 で、とても簡単でした。 Windows 2000 では、 SXGA 十 (XGA) の解像度の液品であったのに対し、 T21 2647 ー をサポートしたディスプレイ・ドライバ周りの更新が必要 9AJ と 5AJ は、 14.1 インチで埆早像度が 1 , 400 x 1 , 050 でしたが、これは付属のドライバ CD によって難なくす (SXGA 十 ) の TFT 液品です 1 。 CPU 速度やメモリより み、 T20 から T21 へ不子するのに 30 分もかかりません も、見えるだけにインパクトがあります 2 。 でした。これはマイナー互換匪のいいところです逆に 1 , 400 >< 1050 ということは、当然ながら 1280 x いえは、解伽隻以外は代わり映えしないということです。 1 , 024 (SXGA) よりも高いんですよ。よって、 IBM は 一方ポスはというと、愛しの東芝の Tecra8000 十 この解像度を SXGA 十と表現しています。 FreeBSD 3.5.1 十 PAO 工竟から T21 十 FreeBSD 4.2 への移行を試みていますが、音か鴫らないなど、苦労して 1 去斤の T22 2647-5EJ / 9EJ も 14.1 インチの SXGA 十の TFT いるようてす。どこか大変だったかというと・・ 、いけま 液品です。さらなる強者は DELL の lnspiron 8000 シリーズで、 UXGA ( 1 , 600 x 1 , 200 ) のモデルがあります。もう、鬼ですな。 せん、このまま熱く語り出すと、肝腎の IPv6 のことを忘 2 VGA が 640 x 480 、 SVGA が 800 x 600 、 XGA が 1 , 024 x れてしまいそうです。この説明は最後にまわしましよう。 768 、 SXGA が 1 , 280 X 1 , 024 、 SXGA 十が 1 , 400 X 1 , 050 、 UXGA が 1 , 600 x 1 , 200 、 QXGA が 2 , 048 x 1 , 536 てす。 87 UNIX MAGAZINE 2001.6

mib という名前の整数の配列に、変数に対応する整数の 並びをオ巒内し、それを使って値を取得します。現在日骸リか らシステムか起動した日該リを引けば、システムか起動して いる時間か計算できます。 システムの負荷を得るためのコードは次のようになって います。 if (getloadavg (avenrun , sizeof (avenrun) / - sizeof (avenrun[O] ) ) (void)printf ( " , Ⅱ 0 load average - information available\n") ; (void)printf ( " load averages: " ) ; for (i = 0 ; i く (sizeof(avenrun) / - sizeof (avenrun[O] ) ) ; i + + ) (void)printf ("%s %. 2f't avenrun [i] ) ; (void)printf("\n") ; avenrun は double 型の要素数 3 つの配列です。この コードを実行すると、 avenrun には 1 分、 5 分、 15 分 の負荷の平均値かオ褓内されます。 getloadavg の呼出しで は、かならすしも 3 つの値を取得しなけれはならないわけ ではありません。第 2 引数として必喫な値の数を指定でき ます。この例にあるように、酉冽全体の大きさを配列の要 素の大きさで割れば、要素の個数は簡単に求めることがで きます。 w コマンドの先頭行の出力は uptime コマンドと同し = 0 ) else { if ( (u = strrchr(s , ド名本がファイル名と角 ( できます。 けた位置の後ろを指します。 / がみつからなけれはコマン 、、 / " がみつかれは、その後ろがファイル名になるのでみつ return ( ー 1 ) ; return ( 0 ) ; if (strcmp(u, "uptime") else です。しつは、これらは同一のコマンドです。つまり、同 し実行可能形式のファイルを指しています。 FreeBSD% ls —li /usr/bin/w /usr/bin/uptime 8144 —r—xr—xr—x 2 て 00t wheel 11772 11 / 20 21 : 02 /usr/bin/uptime 8144 —r—xr—xr—x 2 て 00t wheel 11772 11 / 20 21 : 02 /usr/bin/w FreeBSD% 86 最後のファイル名の部分を切り出します。後ろから調べて 関数自体はごく簡単で、 strrchr などによりパス名から には一 1 を返します。 コマンドとして実行された場合には 0 を、それ以外の場合 この関数はコマンド名を引数にとり、コマンドが uptime イルの最後で定義されている this-is-uptime 関数です。 とが分かります。この違いを生み出しているのが w. c ファ ド番号か 1 司ーなので、同しファイルの実体を指しているこ ls コマンドに一 i オフションを付けて実行すると、 i ノー 取り出したファイル名の部分が uptime という文字列 かどうかを調べることで、 uptime コマンドかどうかを決 定できます。 w コマンドと uptime コマンドのように、自 身のコマンド名によってその重川か変わるコマンドはすで にいくつカ呂介しました。意外に多くのコマンドがこのよ うな動作をしているので、すこし驚いたのではないでしょ うか。 ☆ 今回は、システムを利用しているユーサーの情報を得る という点に注目し、 utmp ファイルとそれを利用するコマ ンドを紹介しました。 utmp ファイルの内容を利用するという意味では、 who コマンドか基本となりますが、はかにも users コマンド、 w コマンドなどをとりあげました。とくに w コマンドで は、たんに utmp の内容を表小するだけでなく、 4 月号で も紹介した kvm-getprocs を使ってプロセスの情報を取 得し、 utmp の内容とプロセスの情報を組み合わせて出力 します。さらに、 w コマンドカ咄力するコマンドの選択方 法も説明しました。 プロセスの内容などはカーネルに問い合わせないと取得 できないのに対し、ユーザーに関する情報はファイルシス テム上のファイルに県存されています。それだけセキュリ ティ上の危険が少ない情報だということでしようか・ ( たしみ・ひさかす ) UNIX MAGAZINE 2001.6

しよう。 ehead カ甘茆のがもとの線形リストです。これを いったん from 変数にオ褓内し、 ehead 自体は空のリストに します。あとの処理は、もとのリストの各要素についてお こないます。具イ勺には、 from カ甘旨すリストのそれぞれ の要素を新たに作成しているリストのどの位置に挿入すべ きかを調べながら、順番に挿入していきます。こうして、 もとのリストとは別のリストを作りながらデータをソート しています。 from ehead ; ehe ad = NULL ; while (from ! = NULL) { for (nextp = &ehead ; (*nextp) & & from->idle > = (*nextp)—>idle ; nextp = &(*nextp) —>next) continue ; from = from—>next ; save—>next *nextp ; *nextp = ; プログラムの真ん中あたりにある for 文に注目してくだ さい。この for 文の本体は continue 文だけです。つま り、本体には実行文がありません。このような場合には空 文を用いることが多いのですが、このプログラムの作者は continue 文を使っています。 continue 文を用いること こに 1 つの文か有在することになり、空文を使う場 で、 合よりもみやすくなると考えたためでしよう。 w コマンドの出力を見ると分かりますが、知頁行では現 在時刻、システムか起動してからの経」鄙間、ログインし ているユーサー数、負荷の勺値などか表示されます。 れらの値はカーネルから取得します。システムか起動した 日該リは sysctl によって、システムの平均負荷の値は専用 の関数 getloadavg により取得しています。 システムか起動した時刻は、 CTL-KERN の KERN- BOOTTIME という変数にオ内されています。これを取 SC 翡 好評発売中 ! Java プログラミング・ノート 国際化と 日本語処理 CAFE BABE uNIX 風問一洋 国際化と日本語処理 プログラミング・ノート ava ・本体 3 , 000 円十税 ・ ISBN 4-7561-3481-5 ・ A5 判、 312 ページ ・風間一洋著 Run Anywhere" を目指すプログラマー 解説する。真の意味での "Write Once, サンプル・プログラムを示しながら平易に プログラミングに必須の知識を数多くの Java による日本語処理、さらには国際化 目次から に最適の 1 冊。 1 章 2 章 3 章 4 章 5 章 6 章 7 章 8 章 9 章 10 章 1 1 章 12 章 付録 Java はどんな言語か 国際化と地域イヒ Unicode ロケー丿レ 工ンコーティング タイムゾーン リソース / ヾンド丿レ フォーマット出力と解析 文字列の比較 テキストの境界解析 インブットメソッド 文字の表示 Unicode プロック / ロケール一覧 / 工ンコーティング名一覧 / タイムゾーン D ユーロ通貨記号への対応 得しているコードは次の部分です。 mib [ 0 ] = CTL—KERN ; mib [ 1 ] = KERN—BOOTTIME ; size = sizeof (boottime) ; if (sysctl(mib, 2 , &boottime, boottime . tv—sec ! = 0 ) { UNIX MAGAZINE 2001.6 一覧 / &size, NULL , 0 ) 株式会社アスキー 85 電話 ( 08 ) 535 ト 8 ] 94 出版営業部 〒 1 5 ト 8024 東京都渋谷区代々木 4 ー 33 ー ] O