リストーワークロードの内容 % /bin/sh -ie PATH=XXX : $PAITI T ・ 1 = " 'cat tem ー sed 's/. * [ tty= " export PAIY T 4 tty % Note : used for pseudo ttys , NOTICE can 0 Ⅱ ly support 48 users using ptys ttyq0 thru ttyqf , ttyrO thru ttyrf and ttysO thru ttysf ptn= 'map-pty % % 1 small edit —f temporary waxt keyb viscr2. dat >/dev/tty$ptn & vi small. txt く /dev/pty$ptn % % 2 ls ls ー 1 ls —a % % 3 big edit m —f temporary walt keyb vi s crl. dat >/dev/tty$ptn & v i big. txt く /dev/pty$ptn % % 4 spell spell big. txt >/tmp/$$ diff big. spell /tmp/$$ % % 5 big tex jtex teman. tex 2 > /dev/null Ⅱ tlue 1 —f teman. dvi teman. aux texman. 10g answers. tex index. tex dvi2ps sample. dvi > /dev/null 2>/dev/nuII Ⅱ true ls j latex s 叩 le. tex 2 > /dev/null Ⅱ true ls ー 1 j latex sample. tex 2 > /dev/null Ⅱ true % % 6 small tex rm —f sample. dvi sample. aux sample ・ 10g m -f tem temporary 表 3 xbench の結果 machine IPX(R5) IPX(OW3) IPX(OW2) SS2GX(OW2) SPARC LT Sun3 / 260 ( R4 ) 1PX(R4) SS2GX(R4) Sun3/50(R3) Sun3 / 260 ( R4 ) p 8 8 8 8 1 1 8 8 1 8 comm Ether Ether Ether Ether Ether UNIX Ether Ether UNIX UNIX line 232 , 178 215 , 645 206 , 299 199 , 064 63 , 121 23 , 050 135 , 309 100 , 856 10 , 000 35 , 769 ⅱⅡ 45 , 490 36 , 648 37 , 272 34 , 529 40 , 881 14 , 791 11 , 777 8 , 328 10 , 000 4 , 013 blt 54 , 958 53 , 263 53 , 150 45 , 712 48 , 720 18 , 308 6 , 579 5 , 394 10 , 000 3 , 089 text 369 , 187 173 , 250 156 , 406 136 , 616 174 , 281 40 , 937 178 , 406 144 , 375 10 , 000 38 , 156 7 , 509 , 917 1 , 293 , 149 1 , 178 , 630 1 , 083 , 205 3 , 224 , 857 859 , 756 2 , 708 , 784 2 , 087 , 472 10 , 000 638 , 005 cmplx 76 , 862 64 , 647 66 , 470 57 , 843 56 , 470 25 , 490 16 , 797 12 , 287 10 , 000 7 , 385 UNIX MAGAZINE 1992.9 XSt ones 98 , 867 79 , 673 79 , 028 70 , 900 67 , 452 23 , 639 19 , 381 14 , 962 10 , 000 7 , 679 19
・両ファイルの対比 連載 / / 凵 Language wc . NEW ーの taligent . c xy2rgb. c 218 rdate . c 142 2345 annex . C bridge COPYXY fingerd fssw pdx rdate rsattach . c sdinq sysnews taligent xy2rgb . C . C . C . C . C . C . C . C . C . C 115 300 150 299 142 16 61 21 218 343 115 42 288 150 308 16 61 21 2345 1987 年 11 月号の記事では、 2 つのファイルの項目を した。再掲しますので、じっくりとご覧ください。 照らし合わせるために、短い awk スクリプトを作成しま ・項目の過不足をみつけるスクリプト showmatch F ILENAME wc [ $ 2 ] "wc . OLD" { "wc . NEW" { F I LENAME = print $ 2 , wc [ $ 2 ] , 1 out [ $ 2 ] print $ 2 , else $ 1 END { for ( Ⅱ洫 (c) { if (out Cn] ! = print n, sysnews . c 21 21 sdinq. c 61 61 rsattach . c 16 16 pdx. c 299 308 mxfsd . c 228 228 fssw . c 150 150 fingerd. c 300 288 COPYXY ・ c ー 42 bridge . c 115 115 annex . C 343 harry$ awk —f showmatch wc ・ showmatch の実行結果 UNIX MAGAZINE 1992.9 この awk スクリプトはしつに巧妙な作りになってい て、ファイル名を判定するあたりなど、なかなかやるなあ と感心してしまいます。このガ去では、実行結果でソート 関係が崩れてしまっていますが、それは sort に喰わせて 並べなおせばよいだけのことです。 さて、 awk を使うのではなく、別なガ去でこの問題に 取り組んでみるとどうなるでしようか ? 新しいアプロー チのキーアイデアは、両ファイルに含まれる項目全部か らなる、、マスターファイル " をいったん作り、それに対 する差分というかたちで項目の不足を検出しようという ものです ( 全体集合との対比ですから、項目の過剰という 厄介な状況は発生しないはすです ) 。 ます、 2 つのファイルの和集合をとって、全項目を拾 い出します。 awk ' { print $ 2 } ' wc . OLD wc. NEW ー sort ー uniq —c >wc . MST ・中間結果 wc . MST の内容 1 2 bridge . c . C taligent. c sysnews . C sdinq. c rsattach . c rdate . c 2 pdx. c f S SW . C fingerd. c 1 COPYXY ・ c 1 2 2 2 1 2 2 73 wc . MST wc . OLD >wc .00 j oin ¯j 2 -al ー 0 1 . 2 2.1 -e ション付きの扣ⅲを使うことにしましよう。 係を明らかにします。 1992 年 5 月号で紹介した一 a オプ とみなして、これと wc . OLD とのあいだで項目の不足関 とが分かります。次にこの中間結果をマスターファイル この中間結果から、対応がとれない項目が 4 つあるこ
常に前向きな姿勢で皆様と 取り組んでいきます。 コンビュータ世界の変化を 是非味わいに来て下さい ・ X ウインドウ・プログラミングー 1 . X ウインドウ /GLJ12—ス 私と一緒に楽しい機械製図を CAD 担当の苫米地で魂 受講料 第 3 回 9 月 24 日木 ~ 25 日金 第 2 回 9 月 3 日木 ~ 4 日金 受講料 日数 . 2 日 ・ OSF/Motif プログラミングー 第 3 回 9 月 21 日月 ) ~ 22 日火 第 2 回 8 月 27 日木 ~ 28 日金 日数 : 2 日 ・ 0 S F/Motif ユーサ・インタフェース設計 第 2 回 12 月 10 日木 ~ 11 日金 第 1 回 10 月 22 日木 ~ 23 日金 日数 . 2 日 ・ lnterface Architect ユーサ 第 2 回 9 月 25 日金 第 1 回 8 月 18 日火 日数 . 1 日 受講料 受講料 粒よりのインストラクターとご一緒に。 若さいつばい、美人もいっぱい。 フレンドリーな雰囲気てあなたをお待ちしていま魂 受講料 : 3.5 万円 受講料 : 3.5 万円 楽しく学ぼうオープン・システム。 森田です。 YHP の中嶋悟と呼ばれている 1 体力と知力の続く限り 一生懸命教えま魂 オープン・システム新設コース開催日程 2. ネットワーク関連コース 8 万円 8 万円 8 万円 4 万円 ・ LAN 導入と構築入門 日数 : 2 日 第 5 回 9 月 28 日月 ) ~ 29 日火 第 4 回 8 月 20 日木 ~ 21 日金 ・マルチ・プロトコル・ルータ 第 2 回 1 1 月 1 0 日火 第 1 回 9 月 24 日木 日数 . 1 日 ・ LAN 構築基礎 ( 実践編 ) 日数 : 4 日 受講料 . 7 万円 受講料 : 16 万円 受講料 . 4 万円 第一回 8 月 31 日月 ) ~ 9 月 3 日木 第 2 回 10 月 13 日火 ~ 16 日金 ・ HP OpenView ネットワーク・ノード・マネージャ 日数 : 3 日 受講料 : 12 万円 第 1 回 8 月 31 日月 ) ~ 9 月 2 日水 第 2 回 10 月 26 日月 ) ~ 28 日水 ・この他にも UN Ⅸ系、プログラミング、データベース、オプジェクト指向などオープン・システム教育コースを多数開催しております。 ・お客様のご要望に合わせて、オンサイトコース、カストマイズ・コース、新人教育を実施しております。詳しい内容はお問い合わせ下さい。 *OSF. OSF/Mot1f は米国 Open 釦ー e Fou 面 atio 心 nc. の商標です。 * UN Ⅸは、 AT & T ベル研究所が開発した OS です。 X ウインドウは、Ⅷ T の登録商標です。 資料請求 N 。 .82 1 ・ PC / ワークステーション LAN 入門 日数 . 1 日 第 3 回 9 月 21 日月 ) 第 2 回 8 月 24 日月 ) 日数 . 1 日 ・オープン・システム・考え方と導入入門 3. オープン・システムコース 第 3 回 10 月 1 日木 第 2 回 8 月 25 日火 * 日程は全て東京のものです。 * 会場東京 ( 高井戸 ) 〔一部大阪も開催〕 詳しい資科を必要な方は、右の資料請求クーポン 本社〒 168 東京都杉並区高井戸東 3-29-21 横河・ヒューレット・パッカード株式会社 受付時間 9 : ~ 17 : 圓 B0120-130190 カストマ教育センター お問い合せはフリーダイヤルで をハガキに貼って、郵便番号、住所、会社名、 所属、氏名をご記人のト、 YHP カストマ・ 教育センター宛お送りトさい . IJ マガ 資料講求 AD—CEC08U
連載 /NET WORTH—② 図 6 ARCNET のフレーム形式 Starting Delimiter 1 Access Control 1 Frame Control 1 SOH Dest Addr 2 or 6 1 Source SO u rce Addr 2 or 6 lnformation variable Field CRC 4 図 7 TokenRing のデータフレーム形式 Alert Burst Destination 1 Count 2 Ending 1 Delimiter 1-508 bytes Data Frame Status 2 CRC ームと制御フレームの長さは 3 バイトまでである。図 6 は バケット・データフレームを示している。 もともとの ARCNET 形式は、発信地と受信地のノー ドを表すのに 8bit のアドレスを用いており、 Ethernet が 48bit で表すのとは異なる。データバケットはアラートバ ースト、単一の文字 (Start Of Heading) で表されるプリ アンプル、発信地と受信地のアドレス、 2 バイトで示され るデータフィールドの長さ、可変長のデータフィールド、 そして最後に 2 バイトの CRC で終るという構成のため、 IEEE802.3 によく似ている。データフィールドは最長 508 バイトである。 きわめて遅い転送速度 ( ARCNET はもともと 2 . 5 Mbps) は別にしても、 ARCNET のデータバケットが、実 際のデータを、上のレベルにあるネットワーク・プロトコ ルから運ぶのに用いるフィールドはきわめて小さい。 UNIX や DOS では、 1 つの 512 バイト・ディスクプロッ クを転送するためには、いくっかの小さな ARCNET フ レームに分割しなければならないので、性能面で不利であ る。 TokenRing IEEE 802.5 TokenRing には 3 つのフレーム形式があ る。 3 バイトのトークン、 2 バイトの中断信号 (abort sequence) 、そしてリングの管理やデータの転送に用いら れる可変長フレームである。 140 データを転送しようとしているどこかの局に捕まるまで、 トークンはリングのなかをいつまでもぐるぐると回ってい る。データフレームの形式は図 7 に示したとおりである。 フレームは ARCNET と同様、 1 バイトの開始信号で始 まり、そのあとにアクセス制御バイトとフレーム制御バイ トが続く。 IEEE802.3 の場合は、そのあとに 2 バイト、 または 6 バイトのアドレスフィールドが続くが、 Token- Ring ではアドレスフィールドはさらにリング番号と局番 号に分割される。データフィールドは可変長であり、その あとに 4 バイトのチェックサム、終端、そしてフレーム状 態バイトが続く。 データフィールドの長さに対する唯一の制限は、トーク ンを保持できるあいだしか、フレームを送り出すことがで きないということである。典型的なトークン保持時間は IOms である。 IEEE 802.5 が指定する 4Mbps の場合だ と、データフィールドの最大長は約 5 , 000 バイトというこ とになるが、これはネットワーク・インターフェイスカー ドの記憶容量によってかなり制限されることになろう。 IBM は標準とは別に、転送されているフレームがプリッジ を通して複数のリングのあいだを行き来しなければならな いときのために、 18 バイトまでの RI(Routing lnforma- tion: 経路情報 ) フィールドを追加している。データフィー ルドの潜在的な大きさを考えると、 TokenRing のフレー ムは、余裕で UNIX のディスクプロックを運ぶことがで きる。 IBM は、 TokenRing のアダブタ技術に関していくっ UNIX MAGAZINE 1992.9
+:äMlNIXver.1.5 ASCII UN Ⅸ学習キット《 PC -9801 版》 価格 14 , 800 円 ( 税別 ) PC -9801 で IJN Ⅸか体験学習できる ! カーネルを含むすべてのプログラムのソースコードを 八一ドティスクにインストールすることで LJNIX を実体験 ソースコードを解析しなから LJN ー X が完全理解できる M 爪Ⅸ 1.5 の特徴 286 、 386 のプロテクトモードで動作 カーネルは UN Ⅸ Verson7 コンバチ ( 2 バイトコード対応 ) カーネルを含むすべてのソースコードが付属 3.5 インチモデルにも対応 ハードディスクに MS ー DOS と共存できる ロ 5 以上のコマンド群 eIVlS(VI) elle(emacs) bawk ANSI 準拠 C コンバイラ dosdi 「 , dos 「 ead, doswrite ( DOS ←Ⅵ N Ⅸファイル交換 ) ハードディスクの注意 SASI / SCS にも拡張フォーマットでなければ使 用できません。 SC 引は割り込みレベルを爪 TO , 2 , 5 , 6 のいず れかに変更する必要があります。 PC ー 980 ト 27 ポードか、 PC ー 980 ト 55L ポード完全 互換でなければ使用できません。 対応機種 :PC-9801VX/RX/RS/RA/EX/ES/DX/DS/DA 必要メモリ : 640K バイト以上 ( プロテクトメモリ対応 / EMS 不可 ) メディア : 5 インチ 2HD / 3 . 5 インサ 2HD ディスクドライプ : 5 インチ 2HD 、 3.5 インチ 2HD のいすれか 2 台必要 SAS はたは SCS レ、一ドディスクー台必要 MS ー DOS : Ve 「 .3. X ( ノヾックアップ作業とフォーマットのみに必要 ) UN Ⅸ学習キット : 碧 45 MIN 好評発売中 お求めは、 全国有名ノヾソコンショップで リんツすット ・ IJNIX オペレーティングシステムは、 UNIX system Labo 「 ato ロ es コ nc. か開発し、ライセンスしています。 〒 107-24 東京都港区南青山 6-11-1 スリーエフ南青山ビル株式会社アスキー営業本部電話東京 ( 03 ) 資料請求 N 。 .87 株式会社アスキー 86 ー 8080 大阪 ( 06 ) 348-0018
誕生。モノクローム R 旧 CX 8 」 a ド " Computer Cor ・・ ? 2 」可 n Computer ( ~ ・′” " いい”・・ 6 Japan Comput 0 Japan Computer Cor 4 Japan Computer Co 甲 . 8 Japan Computer Co 甲 . 2 Japan Computer Corp 6 Japan Computer Co 0 Japan Computer C 4 JaDan ComDute GIoba XM GJoba1XM 滝のを
気楽に IJN Ⅸ、かっこよく X 0 neptune% xmodmap -pm xmodmap : up t0 2 keys per modifier , (keycodes 1 Ⅱ parentheses) : Va1ue Va1ue (Name) neptune% xmodmap 8 9 10 11 12 13 125 126 128 129 130 131 132 Oxffc8 Oxffc9 Oxffbe Oxffbf ( F11 ) ( F12 ) (FI) (F2) shift lock control mod 1 mod2 mod3 mod4 mod5 xmodmap. Shift—L (Ox6a) , Shift—R ( 0X75 ) Caps—Lock (Ox7e) Contr01—L ( 0X53 ) Meta—L (Ox7f) , Meta—R ( 0X81 ) Oxff6a (He1p) Oxff6a Oxffe5 (Caps-Lock) 127 Oxffe7 (Meta_L) 0X0020 (space) Oxffe8 (Meta—R) (He1p) Oxffab (KP—Add) Oxffab (KP—Add) neptune % これに対し、あるシンポルをどのような意味に解釈する か、といった対応つ、けをおこなうのが、、モデファイヤ・マ modmap : up to 2 keys per modifier , neptune% xmodmap -pm を指定すると表示できます。 ップ (modifier map)" です。こちらは、 -pm オプション (keycodes in parentheses) : neptune% xmodmap ¯e "remove lock = Caps—Lock" —e "remove control = ControI—L" neptune% xmodmap ¯e "add lock = Control—L" neptune% xmodmap —e "add CO Ⅱ t て 01 = Caps-Lock" up t0 2 keys per modifier , (keycodes -L (Ox6a) , Shift-R ( 0X75 ) neptune% xmodmap —pm in parentheses) : shift lock cont て 01 modl mod2 mod3 mod4 mod5 neptune% Shift Meta—L (Ox7f) , Meta—R ( 0X81 ) Caps—Lock (Ox7e) Contr01—L ( 0X53 ) shift lock control modl mod2 mod3 mod4 mod5 neptune% Shift—L (Ox6a) , Shift—R ( 0X75 ) Caps—Lock (Ox7e) Contr01—L ( 0X53 ) Meta—L (Ox7f) , Meta—R ( 0X81 ) このように、モデファイヤ・マップを変更する前と後で は、 CapsLock キーとコントロールキーが入れ替わって いるのが分かります。 一方、マウスポタンの割当ては、、ポインタ・マップ (pointer map)" で管理されます。初伏態では、左から 順番に 1 、 2 、 3 と番号が付いていますが、これを逆にし たいときは次のようにします ( ポインタ・マップを表示す るときは、一 pp オプションを指定します ) 。 neptune% xmodmap ¯pp There are 3 pointer buttons defined. これを見ると、、、右のシフトキーあるいは左のシフトキ ーか胛されたら、シフト料甲されたと解釈する " ことが分 かります。ちょっとキーを入れ替えたいというときには、 UNIX MAGAZINE 1992.9 9 アルファベットを大文字に固定するキーです。 ーを入れ替えたい場合は、次のようにします。 とします。たとえば、 CapsLock キー 9 とコントロールキ modmap —e ”内容 コマンドラインから変更するには、 凾はモデファイヤ・マップを変更します。 Physica1 Butt on 1 2 3 Button Code 1 2 3 neptune% xmodmap ¯e pointer = 3 2 1 " neptune% xmodmap ¯pp There are 3 pointer buttons defined. 39
い一「んいを第【 0 第 2 朗報でごサウルス。 ノベルの NetWare が Un ⅸマシンとつながります NetWare v3.11J/NetWare NFS vl. 2J 登場 / S\N N 0 E しし 盟 le Past, Present, and Future of Network Computing. ノベ ) レ株式会社〒 154 東京都世田谷区三宿ト 13-1 東映三宿ヒル 資料請求 No 83
SONY mn ⅸ ソニー・テクトロニクス ・グラフィック世界のリータ ソニーテクトロニクス株式会社 情報機器部 / 東京都品川区大崎 1-6-4 新大崎勧業ビル〒 141 TEL03 ・ 3779-7611 土浦営業所 / 0298 ・ 24-2602 名古屋営業所 / 052 ・ 581-3547 大阪営業所 / 06 ・ 947-0322 広島営業所 / 082 ・ 222-7221 福岡営業所 / 092 ・ 472-2626 日本語サポート Phaserm 世界初の紙を選劯ラー列濵 ・フェイス・チェンジ・インクジェット方式か実現する 300dpi 高品質カラープリント ・紙を選はす普通紙から OHP 刀ルムまで OK ・ノンアルコール固形インクで補給簡単、目づまりなし ・ PostScript レヘル 2 サホート・出力領域最大 295X445mm まて・ 24MHz RISC CPU で高速みージ処理 ・ MAC 、 PC 、 UNIX ・ PostScript( レヘル 2) と HP-GL 自動切換 に高品位のカラー・イメージをプリントて、きます て、目づまりもなく快適なフェイズ・チェンジ型の 日本語サポート / Phaser Ⅲカラー・プリンタ また、プロフェッショナルなデザイン・ワーク等に インクジェット・プリンタて、す 4698PXiJ 型は普通紙から OHP フィルムまて、、 世界初の紙を選ばない画期的な高品位フルカ も最適て、魂 PostSc 「 ipt レベル 2 搭載 / カラー・レンダリン 独自のジェット噴射プリント・ヘッド / 高彩度及び ラー・プリンタて、す日本語サポート、自社開発 グ機能、コンポジット・フォント機能等が拡張さ れた最新のバージョン PostScript レベル 2 が の固形インクの採用、 PostScript レベル 2 搭載 高品位カラー・プリント実現のため、独自の技 搭載されています。 術により高性能のプリント・ヘッドを開発。シング 等最先端の技術をフルに活用したベスト・マシ ル・ヘッド、シングル・パス機構を実現し、高速 ンて、す。 世界初の紙を選ばないカラー・プリンタ / 4698 て、高精度技術を確立しました。 PhaserIII PXiJ 日本語力ラー・プリンタ PXiJ 型は、厚さ約 0.08mm ~ 0.25mm まて、の 固形インクの採用 / 高彩度、高性能て、紙を選 ばないカラー・プリンタ実現のため自社開発に ほとんどの種類の紙、例えばトレーシング・ ペーパー、画用紙、カラー・ペーパー、 OHP 等 よる固形インクが採用されていま補給が簡単 資料請求 N 。 017 4698PXiJ 型
を見るのが大切です。 そこで、ます printf デバッグ " という方法を紹介し ましよう。これは、プログラムのなかに printf (C 一 語の場合 ) をいくつか入れておき、 ・いま、どの部分を実行しているのか ・変数の値はどうなっているのか を逐次表示させながらプログラムの実行を進めていく ガ去です。、、なんだ、そんなこと簡単しゃないか " とい われそうですが、これがデバッグの基本なのです。 たとえば、次の例を見てください。このプログラム は、引数に指定された 2 つの数字とそのあいだにある すべての数字を加算した結果を出力します。つまり、 main(argc , argv) % cat a. c とすれは、 55 を出力します。 % a. out 1 10 char int **argv ; 1 , sum ; int char int argc ; 1 ・ for (i = atoi(* + + argv) ; i く atoi(* 十十 argv) ; printf ("%d\n" , sum) ; % CC a. C % a. out 1 10 Segmentation fault (core dumped) 十十 ) printf ("position 1 \ Ⅱ " ) ; for (i = atoi(* + + argv) ; i く atoi(* + + argv) ; i + + ) { printf ("position 2\n") ; sum 十 = i ; printf ("position 3\n") ; printf ( "%d\n" , sum) ; main (argc , argv) % cat a. c が実行できます。今回は、次のようにしてみました。 ます。 for 文のなかでも、カンマ演算子を使えは pr ⅲ tf あり、複数の式を 1 つの式であるかのように実行でき ます。なお、 C 言語には、、カンマ演算子 " というものが してください。ます、 printf を入れる位置を変えてみ ろでセグメント違反になっていますから、そこに注目 position 2 という出力が 1 度だけ出力されたとこ のせいではないようです。 です。しかし、引数を変えても結果は同じなので、引数 どうやら、ループのなかでおかしくなっているよう Segmentation fault (core dumped) position 2 position 1 % a. out 2 3 Segmentation fault (core dumped) position 2 position 1 % a. out 1 10 このプログラムを実行すると、セグメント違反 ( Seg - mentaion fault) になってしまいます。どうやら、バ グが潜んでいるようです。このバグをみつけるために さっそく printf デバッグを実行してみましよう。 ます、セグメント違反をどこで犯しているのかを調 べます。今回のプログラムは短いものなので、ループ の前、ループのなか、ループの後ろの 3 カ所に printf を埋め込んでみましよう。 % cat a. c main(argc , argv) int argc ; 144 int char int for argc ; 1 , sum ・ (printf ("init\n") , i = atoi(* + + argv) ; printf("check\n") , i く atOi (* 十十 argv) ; printf("incr\n") , printf ("body\n") ; UNIX MAGAZINE 1992.9