UNIX - みる会図書館


検索対象: 月刊 C MAGAZINE 1991年10月号
32件見つかりました。

1. 月刊 C MAGAZINE 1991年10月号

三田典玄のランタムアクセス ままの状態て、「完璧な」サポートをしていた うこともあることは十分に予想される。そ あるのは仕方がない。要は , 最初からその うしないと「製品」という完璧な「もの」がい ら , その企業のその部門は赤字て、ある。企 リスクを見込んて、製品価格に反映させ , き 業としたらそういう部門はなくしてしまう つまて、も求められ続けることになってしま ちんとしたサポート体制を確立する「リスク 方向にもっていかざるを得ない。だから , マネジメント」をいかに行うか , ということ う。もうユーザもメーカーも , ソフトウェ アを「製品」としててはなく「サービス」とし そこにかけるコストも力も入らない だろう。そして「うちは製品のサポートをこ う悪循環が始まりつつある。 てとらえる , ということが本当に必要にな んなに真剣にやっていますよ」という「付加 価値」を宣伝することも必要だろう。日本人 ってくるのて、はないだろうか ? アクシテントとサービス は勤勉だ , 完璧な製品を作る , などといわ ユーササポートの時代 れた遠い昔のことなどは忘れて , 「事故は起 私たちは背広を着る。ジーパンをはく。 こるもの」という前提に立ったサポート体制 ネクタイを締める。そしてパンを食べる。 こういう目てソフトウェアや , コンヒ。ュ こそ , 本当にハードウェアメーカーに必要 それが自然になってしまったときから , 「西 ータ応用製品を考えていくと , ユーザサポ なのて、はないだろうか ? 洋流」はいやて、も受け入れざるを得ないこと ートはお金を取ってすべき大切な会社の業 ソフトウェアは大丈夫 ? 務のひとつ , ということになってくる。 3 年 になってしまった。コンピュータもそのひ とつだ。そしてコンピュータという機械が 前 , 私は ( 本誌てもよく紹介している ) SCO 実は単なる機械て、はなく , 世の中をながめ 最近の証券会社の損失補填だ , 大手銀行 (Santa Culz Operations) という , IBM-P る根本的な考え方に抵触する「思想」を具体 C 上て、動く「パソコン UNIX 」を商売にしてい の不正融資だなどという話を聞くまて、もな る会社にお邪魔したことがある。 こて、驚 化する機械て、あるとわかったときには , も く , 私のまわりを見渡してみるだけて、「勤勉 いたことのひとつにその業務人数構成と企 うこの線路から外れるわけにはいかない て、誠実な日本人」は減っていると思わざるを というほどになってしまった。この線路か 業戦略がある。この会社の全社員はその当 得えない。株て、ポロ儲けする話しかしない ら外れたら日本という国の産業そのものが ようなオジサンはだいぶ減ってきているが , 時 400 人前後だったが , その半分の 200 人余 というのが現状なのてある。 りが , 「電話サポート部隊」というのて、ある。 あぶない 依然としてルイ・ヴィトンとロレックスに アクシデントとサービス , という間題に そして TUNIX World 』や fUNIX Revie かぎりない信仰を抱いている長い髪に なると , これは「保険」の出番てある。保険 スカのおねーさんは , 街中にやたらと多い w 』などの UNIX 専門誌に載せる同社広告の ( あ , 別に私のまわりに多い , というわけて、 というものに封しての考え方も , やはり西 ほば 1 / 3 のスペースが製品の宣伝て、はなく , 洋から導入する必要がて、てきたもののひと それを使うための講習会への誘いなのて、あ はありません。誤解なきよう ) 。彼女らの多 つだ。「もしも」が計算て、きるものだとする る。もちろん , 講習会も電話サポートも有 くはカネに対しては誠実かもしれないが , ( 統計学て、すね。つまり ) 立場を取らざるを 償のサービスて、ある。 明らかに勤勉て、はない , というのが多いの 得えないのだから , 当然保険は必要なもの はあちこちて語られていることて、ある。実 ソフトウェア , あるいはコンヒ。ュータと になってくる。「もしも」はあり得る。そし いうものがそういうことを必要とする「商品 際 , 日本の戦後教育をまじめに受けていれ てその「もしも」を計算する。そして製品コ 性格」を持っているから , そうなったのて、あ ば , そういうアタマになってしまうのは仕 ストをはじき出す。危険も安全ももうタダ ることは十分に理解て、きた。実際 , 商品を 方のないことかもしれない。 というのがコンピュータ化 作る立場にいる私も , もうサポートをメー て、は済まない て、あるならば , そういう人間がソフトウ された資本主義というものて、ある。 ェアやハードウェアを作っていく人間の中 カーが無償てやっていたら , 少ないコスト に入り込んてくるとすれば , ソフトウェア の中て、はロクなサポートがて、きないところ タダて、もらえるもの ( サポート ) をたとえ のような「見えない」ものは「製品」という「て、 まて、きている , ということを肌て感じてい どうしようもないクズて、もありがたがる , きあがったもの」てはなく , 自動機械を使っ る。「サポートはサービス」という時代が , というビンポー体質から抜けきら・ないと , たサービスの提供 , というように考える必 何よりもコストの面て、破綻しつつあるのて、 本当はこの「ソフトの時代」は生き抜けない はないか , と考えている。現状て、はユーザ 要があるだろう。サービスは人間が行うも はロクなサポートが受けられない , と不満 のて、はないだろうか ? のだから , 間違いもあるし , そのサービス を提供する側と提供される側の妥協 , とい を漏らすことは目にみえている。もしこの 114 C MAGAZINE 1 1 10

2. 月刊 C MAGAZINE 1991年10月号

0 0 従来 UNIX システムは , 大学などの研究機 関て、利用されることが多かった。それゆえ , そのシステムを駆使する技術は , 長い間こ れらの小さな世界て、培われ , 師から弟子へ 徒弟制度のごとく伝授されるものてあった。 もっとも , この構図は現在に至っても大筋 において変わっていないことは , ちょっと めんどうな話になると , 「身近なシステム管 理者に聞きましよう」と逃げている UNIX 入 門書が多いことから想像て、きるて、あろう。 とはいえ , ここ数年て、 UNIX の世界も随分 と様変わりしてきた。低価格ワークステー ションの攻勢と前後して , 素人同然の状態 から , いきなりシステム管理の必要に迫ら れるユーザが急増している。当然のことな がら , 彼らには頼りになる「身近なシステム 管理者」はいない。それゆえ , 知識の出所と しては書籍に頼らざるを得ない た購買層をターゲットにした「システム管理 入門書」はけっこうあり , そこそこ売れてい るようて、ある。 , こて、紹介する「 UNIX システムチュー ング』は , そういった「入門書」を読み終え , 「とりあえず動かす」という最低ラインをク リアした人が , 「性能を向上させる」という 一歩進んだシステム管理をめざすときの必 読書といった位置づけにある。 UNIX 入門書 が大量に出始めた時期を考えあわせると , 現在このような本を必要としている人は相 当数にのばるに違いない まさに絶妙のタ イミングといえよう ( 原書は 2 年ほど前に出 版されたのだそうだが ) 。 本書の構成は次のようになっている。 第 1 章システム性能概論 ムの動作を測定解析するための手法が チューンを行う前段階として , システ 第 2 章システム動作の監視 おくべき基本的な事項が概説されてい こて、は , 性能改善にあたって念頭に ・今月の書籍・ 『 IJ N Ⅸシステムチューニング』 UMX システムチューニンク Performance system lüning ・アスキー ・定価 3.200 円 ー A5 判並製 / 493 頁 ■ Mike Loukides 著 / 砂原秀樹監訳 システムの中核をいじるのだから ) やや てある。その作業の危険性ゆえに ( 何せ 締めくくりは , 「カーネルカスタマイズ」 第 8 章カーネルの再構成 性能向上のノウハウが述べられている。 れの要素とシステムの性能との関係 , こは , いわば「各論」てある。それぞ 第 7 章端末の性能 第 6 章ネットワークの性能 第 5 章ディスクの性能 第 4 章メモリの性能 説されている。 「作業負荷そのものを減らす」方法が解 止やスケジューリングの工夫によって , こてはおもに , 不要なデーモンの停 グ」らしい話になってくる。 このあたりから , いよいよ「チューニン 第 3 章作業負荷の管理 から ) 解説が加えられている。 についても ( 間接的に役立っという見地 法に始まり , cron やアカウンティング 準的なツールを使った測定とその分析 解説されている pps や iostat のような標 敬遠されがちな手法て、はあるが , 本章 て、はポイントを押えた , たいへん丁寧 な解説がなされいる。「ちょっとやって みようかな」と思わずその気になってし まうに人も少なくないはずだ。 日常的に行うことてはないにしろ , 上 級管理者を目指す者にとっては避けて は通れぬ必須のテクニックといえるだ 序文によれば , 本書は BSD UNIX を基本 として書かれているそうなのだが , 決して BSD に偏った内容になっているわけて、はな い。むしろ全編をとおして , BSD, System V 併記という原則が貫かれている。さらに Sun OS や XENIX における相違点について の記述も豊富て、ある。 やや残念なのは , Mach( 今後 , 急速な普 及が予想される ) に関する記述カ階無に近い ことだが , Mach 自体が比較的新しく , ノウ ハウの確立が十分て、ないという事情はあっ たのかもしれない。むしろ , 実用面を考え るならば , 現在ワークステーション全体の 中てかなりのウェイトを占めている Sun 0 S に対して相当の配慮をしたことは評価て、き 本書て、扱われているチューニングの手法 は , 標準的なツールとノウハウを用いた , いうなれば正攻法のチューンてある。 UNI X を使い込んている人の目には , さほど斬新 には映らないかもしれないが , 本書がウィ り , むしろそのことが , 「正しいチュー ことは , 冒頭にはっきりと述べられてお ザード級の超絶技巧を指向するものてはな BOOk Review 51 ( 佐々木宏 ) ん気持ちのいいものてある。 金のかからないチューンナップは , たいへ ムチューニングの腕を振るってほしい。お ぜひとも本書を片手に , 思う存分システ るといえるだろう。 グの集大成」としての本書の価値を高めてい

3. 月刊 C MAGAZINE 1991年10月号

mc. bat(List 10 ) はソースが入っているデ ィレクトリに置き , cb. bat(List 11 ) はコン ノヾイラの入っているディレクトリに置いて 呼び出しの方法は , mc プログラム名 て行う (. C は必要ない ) 。 UN Ⅸ版関数のコンバイル UNIX 版の関数をコンパイルし , ライプラ リに格納するには , 以下のように cc て、コン パイルした後 , ar を使用すればよい えば , libmy. a という名前のライプラリファ イルに収納する場合は , 以下のようにする。 cc func. c -c ← M にラージメモリの 指定 ) (PC-UX/V て、のコンパイルには , ラージ モデルを使用するのて、 , さらにラージメ モリモデルの指定 , ー MI が必要て、ある ) ar Ⅳ /usr/lib(/large)/libmy. a func. 0 CURSES ライプラリとリンクする場合に は , コンパイル ( あるいはリンク ) の際にリ ンクオプションを指定する必要がある。具 体的には , 以下のようにする。 cc test. c ー 0 test 自作ライプラリ curses MS-C 版および Turbo C 版 , それぞれのラ 「 . uxc 」あるいは「 . uxh 」となっている。 版のソースについては , 識別用に拡張子が プラリファイルが収録されている。 UNIX もある ) のソース , ドキュメントおよびライ ジョンアップのため不要になり省いたもの 付録ディスクには , 全関数 ( ただし , バー 付録ディスクについて 変換する必要がある。 し , MS ー DOS ファイルを UNIX ファイルに アイル読み込みツール ( msread など ) を使用 のて , まず各 UN Ⅸに付属する MS-DOS フ ァイル形式て付録ディスクに収録している なお , 各関数は , MS-DOS のテキストフ 応用 C 言語 C の道具箱 MS-C 用 config. h MSC #define MSDOS # i fndef PROTOTYPE #define PROTOTYPE mcl. bat cd *msc List 8 #end i f #endif #ifndef MSDOS #def i ne List 7 % 1. obj lib lib*X3 + % 1 ; lib lib*X3 ー /AL /0d /W3 /Zi /c /J \ % 2 \ % 1. c clb-ms. bat clb % 1 ソースが入っているカレントディレクトリ名追加するライブラリ名 List 9 de 1 CL cb % 1 ソースが入っているカレントディレクトリ名追加するライブラリ名 cd *msc List 1 0 mc. bat cd \ % 2 cb-ms. bat List 1 1 cd }msc CL /AL /0d /W3 /Zi /c /J \ % 2 践 1. c COPY % 1. Obj \ % 2 de 1 % 1. obj link /CO /NOI /NOD / ST : 30000 \ % 2 \ % 1 , \ % 2 \ % 1 , cd \ % 2 del % 1. obj ージメモリモデル用のライプラリファイル Iib*X3 + lib \ 11i e は , 以下の名前て収録している。 cboxmcc. lib (MS-C 版 ) cboxtcc. lib (Turb0 C 版 ) 編集部注 本連載本号関連ファイルのうち , 記事掲 載ファイルは YCMAGAYOUYOUi•ィレク トリに , C BOX ライプラリのソース , ドキ ュメント , ライプラリファイルなどは付録 ディスク C BOX ディレクトリに自己解凍圧 縮ファイル形式て収録してあります。詳し くは付録ディスク README ファイルをご覧 ください 応用 C 言語 119

4. 月刊 C MAGAZINE 1991年10月号

創刊 2 周年記念特別モニタ & プレゼント付きアンケート ( お願い ) 下記のアンケートにご記入の上 , 封書にてご返送ください。 ( 1991 年 10 月 18 日消印有効 ) ( あて先 ) 〒 108 東京都港区高輪 2 ー 19 ー 13 NS 高輪ビルソフトバンク株「 C マガジン」編集部モニタ & プレゼント係 フリガナ 学校名 会社名 所属部門 マシンの使用頻度 お使いですか おもにどのような目的て いるマシンには〇印 ) ( 機種名・おもに使用して 何ですか ? ご使用のマシンは 歳 性 1 男 別 2 女 プログラミング歴 希望商品番号 年 か月 製造業 2 1 技術 , 設計 8 総務 , 庶務 プログラマ 1 6 運輸 , 通信 , 公共サービス 7 その他サービス業 ソフトハウス , 情報処理業 3 学校 , 研究所 4 商社 , 卸 , 小売業 5 政府 , 公共機関 8 建設業 9 学生 10 金融 , 保険 , 不動産業 11 その他 4 教育 5 営業 , 販売 6 生産 , 工事 7 企画 , 調査 11 その他 2 研究 , 開発 3 情報処理 , EDP 9 経理 , 財務 10 経営 , 社業全般 1 2 7 経営 8 自営 ソフト技術 3 ハード技術 4 エレクトロニクス技術 5 その他技術 6 事務・営業 9 教職 10 学生 11 その他 自 ほば毎日週数回 宅 月数回 ( メーカー・機種名 ) 会社・学校 あまり使わない ほば毎日 週数回 会社・学校 月数回 あまり使わない ☆現在どのような周辺機器をお使いですか ? 自宅 ハードウェアは ? 現在購入を考えている ☆現在購入を考えているハードウェアは ? その他ポード RAM ポード ( 容量 ) 光磁気ディスク イメージスキャナ プリンタ ハードディスク ( 容量 ) ディスプレイ ☆ソフトウェアについておきかせください ( 製品名も書き添えていただけると幸いです ) 番号 現在使用されている ソフトウェアは ? 現在購入を考えている ソフトウェアは ? 1 . C 言語コンパイラ 2 . C 言語関連ライプラリ 3 . C 言語開発ツール 4 . その他言語処理系 ( 言語名 ) 5 . 日本語ワープロ 6 . 外国語ワープロ 7 . 統合型ソフト 8 . 表計算ソフト 9 . データベース 1 MS-D()S Ver. 2.1 まて 2 MS-DOS Ver. 3.1 3 4 MS-DOS Ver. 4.0 以上 5 OS / 2 6 CP/M-86 8 OS ー 9 9 Human 68K 10 UNIX System V おもに , どの OS をお使い ですか ? ( メーカー・機種名 ) 会社・学校 会社・学校 LAN インタフェイス モデム 外部フロッビー CD-ROM ディスク 数値演算コプロセッサ EMS ポード その他 製品名 番号 会社・学校 会社・学校 製品名 MS-DOS Ver. 3.3 7 CP/M-68K 11 UNIX BSD 12 その他の UNIX( OS のメーカー名 ( ( メーカー名もお書きくだ 13 その他 (

5. 月刊 C MAGAZINE 1991年10月号

T Øⅱ〇跡 ( 斗 T ワ。 ロ 7 凵、印、メ 2 一 ロ印、 / 0 メ 川十ー r3x4 ロ汁ゅ ロヾ印ト凵川いー ロ、 7b0H7 凵ヾロ↓「ロ屮 口 -f 7 斗 7 一 . 冊ⅱ O ワ ロ叮蚪〈。鑄 C 涬〔こ ロ # 導 = ~ 一 , C 涬〔こ 口 A まま涬〔こ 〕 Jj 三 t) 涬ワ c. ワワ d . ØftL 4 一、〕Ø , C 叫Ⅳ Un 気Øペ T ワ。 a..2 麟 b. 一 c. 斗 > d. e. メ印 Unix: C MAGAZINE ・ 9 一こ 0 ロ 7 き 7 。郊ロ FORTRAN ロ PascaI ロ COBOL ロ小 0 言 ( 7. U 三 xO 鄰 口ま虐洋 1 言 口ま洋 2 言

6. 月刊 C MAGAZINE 1991年10月号

実行環境 56 C MAGAZINE 1 1 10 GCC とは , 「基本ソフトウェアはフリーて、 ているが , ここて、も簡単に解説しておく。 は , 本誌てもすてに多くの記事て、紹介され オリジナルの GCC および G 十十について リジナル GCC / G 十十 ートの「ライプラリ」の項目を参照 ) 。 小数点の計算がて、きる ( これについては本バ れを使えば 80387 なして、もひととおりの浮動 ションライプラリが付属しているのて、 , には , テストバージョンの 80387 工ミュレー ラのが原則だが , 最近のバージョンの djgcc 浮動小数点演算を行う場合は , 80387 を使 つけられない場合が多いだろう ) 。 ア的な制約てこれほどたくさんのメモリを 活用てきる ( もっとも , 実際にはハードウェ のて、 , 最大 128M バイトまて、の拡張メモリが バイトまて、の物理アドレスに対応している OS 工クステンダの g032 の仮想記憶は 128M あるのが望ましい。 djgcc て、使われている D 用てきるメモリが最低て、も IM バイト程度は が低下するのて、 , 拡張メモリも含めて , 利 かしたときに , ページの退避によって速度 が 512K バイトて、は , 大きなプログラムを動 容量が必要てある ) て、ある。ただし , メモリ のままインストールすると 8M バイト程度の ラスタの関係て、 , 付録ディスクの djgcc をそ 必要 ( 編集部注 : ハードディスクの FAT / ク ト , ディスクは 4 ~ 5M バイト程度が最低限 djgcc を利用するには , メモリは 512K バイ うに , PC ー 9801 への移植も行われている。 認されている。また , パート 2 て、述べるよ ャのもの ) や J ー 3100 などての動作がすて、に確 PS / 2 互換のマイクロチャネルアーキテクチ る。日本のマシンとしては , PS / 55 ( 最近の BM-PC ( AT 互換機および PS/2) 上て動作す オリジナルの djgcc は , 80386 を搭載した I なければならない」という理念のもとに , R ichard M. Stallman 氏が主宰する GNU プロ ジェクトの一環として配布されているフリ ーソフトウェアの C コンパイラてある。 GC C は lnternet を中心とするネットワーク上て、 広く配布されており , 次のような特徴を持 つ。 ・高度なグローバル最適化 ( パイプライン などの局所的な最適化は現バージョン て、はそれほど行われていない ) ・強力なインラインアセンプラ機能 ・コンパイラの移植性が高いのて , 多く のハードウェア・ OS に移植されている ・ K&R および ANSI 規格に対応 ( 独自の拡 張もある ) また , G 十十は GCC の C 十十版て、ある。多 くの UNIX 上の C 十十コンパイラが C のソー スを出力するプリプロセッサ方式て、あるの に対して , G 十十は直接アセンプラコードを 出力するネイテイプコンパイラとなってお り , コンパイル時間が短くて済む。さらに G 十十のコンパイラのコードの大部分は GC C と共通になっているのて、 , GCC との互換性 現在 , 一般に配布されている GCC は , Ve r. 1.40 が最新版 ( ' 91 年 8 月現在 ) だが , GCC の開発者や移植者向けに , すて、に Ver. 2 の アルファリリースも始まっている。 Ver. 2 て、は , パイプラインを考慮した最適化など が追加されている。 なお , 今配布されている djgcc は , GCC/ G 十十 Ver. 1 .39 をベースにしている。 オリジナル GCC / G 十十 と可 gcc の相違点 djgcc は , オリジナルの GCC を忠実に g03 2 上に移植したものてある。コマンドの起動 方法はもちろん , オプジェクト形式やアセ ンプラの命令体形などもオリジナルのまま になっている。 それて、も , ファイルシステムなどを MS- DOS に頼っているため , オリジナルの GCC と使い方が異なる点がいくつかある。 MS-DOS て、は , ファイル名がべースネー ム 8 文字十拡張子 3 文字に制限されている。 このため , UNIX て、本来長い名前だったの が , 先頭の部分だけが残って , 末尾が切れ てしまったファイル名が多い たとえば , bison. simple bison. Sim となっている。 複数の拡張子を含んだ ファイル名 * . * . * といった , 複数の拡張子を含ん だファイル名が使えない点も問題となる。 たとえば , GCC をはじめとする UNIX 上 のコンパイラの多くは , a. out 形式というオ プジェクトフォーマットを採用している。 このフォーマットを読み書きするプログラ ムから読み込まれる a. out. h というへッダフ ァイルが , djgcc て、は aout. h という名前に変 わっている。 このほか , GCC のソースの中に , c-pars e. y というパーザのソースがあり , bison はこ れを c-parse. tab. c という C のソースに変換す るが , djgcc て、はこのファイルが c-parse_ta b. c という名前になっている。 MS-DOS のファイル名て、は , 大文字と小 文字は区別されない ところが , C 十十に は , String. h というへッダファイルがあり , これは C の string. h とは別物て、ある。 そのため C 十十機能を有する djgcc て、は , 大文字て、始まる C 十十のヘッダファイルは , ( アンダースコア ) をつけた形にフ 先頭に ァイル名が変えられている。たとえば , St ring. h は string. h となる。 ファイル名の長さ ↓ を、 - 大文字と小文字の区別

7. 月刊 C MAGAZINE 1991年10月号

文字て、指定してしまうことがあるのて、 , 注 意が必要だ。 具体的には , GCC が認識する拡張子は , . cc C 十十ソース . c C ソース cpp に通したあとの C ソース . S アセンプリ言語ソース cpp に通したあとのアセンプリ言 語ソース となっている。また , これ以外の拡張子の ついたファイル , たとえば , 0 オプジェクトファイル . a ライプラリファイル などは , そのままリンカ (ld) に渡される。 環境変数の項て、述べたとおり ,gcc コマン ドの引数として指定するファイルて、は , デ ィレクトリの区切りには / しか使えない さらに , 最適化オプションとして , -fom it-frame-pointer をつけると , 末端の関数の さて , インストールが終わったところて、 , 一部て、 , スタックフレームの生成が省略さ 実際のコンノヾイルに移る。 れるのて、 , コードが速くなりサイズもやや コンパイルは次のコマンドて、行う。 gcc ー 0 ー 0 linedisp linedisp. c 減少する。 また , -v をつけると , gcc コマンドからプ こて、 , linedisp. c を LINEDISP ℃などと リプロセッサ , コンパイラ , ローダが起動 指定してはならない。 gcc コマンドて、は , フ される様子が逐一表示される (Fig. 5 ) 。 ァイル名中の大文字小文字が区別されてい て , 拡張子の種類によって , そのファイル がどのようなファイルかが判定されるから だ。ファイル名の補完機能を持ったシェル などを使っていると , ついファイル名を大 Fig. 5 linedispx. c(List 2 ) のコンノヾイルの様子 B>gcc ー 0 ー 0 linedisp -fomit-frame-pointer -v linedisp. c gcc version 1 .39 b : /djgpp/bin/cpp. exe -v -undef -D GNUC -DGNUDOS -Dunix ー Di386 -D unix -D i386 ーー -D OPTIMIZE_ linedisp. c 9 : /ccAA AAA. cpp GNU CPP version 1 .39 b : /djgpp/bin/ccl . exe g : /CCAA AAA. cpp -quiet -dumpbase linedisp. c -fomit-frame- pointer ー 0 -version ー 0 g : /ccAA AAA. s GNU C version 1.39 ( 80386 , BSD syntax) compiled by GNU C version 1.39. default target switches : ー m80387 b : /djgpp/bin/as. exe ー 0 linedisp. 0 g : /CCAA AAA. s b : /djgpp/bin/ld. exe ー 0 linedisp b : /djgpp/lib/crtO. 0 linedisp. 0 -lc mkdir b : *djgpp このほか , djgcc および g032 の実行コマン pkunzip -d djgpp. zip b : *djgpp ドが b : YdjgppYbin に入っているのて、 , とすればよい pkunzip というコマンドは , PKZIP という のディレクトリをコマンド実行バスに登録 シェアウェアのアーカイバに入っているも しておく必要もある。 のだが , Turbo シリーズのコンパイラに入っ 編集部注 : 本誌付録ディスク収録の djg ている unzip や , フリーソフトウェアとして cc のインストール方法については , 上 配布されている unzip も機能は同じなのて、 , 記の方法に準じてはいない。詳しくは どれを使って展開してもよい 付録ディスクのうち , N 0. 1 ディスクに いずれのアーカイバて、展開する場合も , 収録されている README ファイルを参 アーカイプされているとおりのディレクト 照のうえ , 指示に従ってインスト リの構造を保ったままて、展開することに注 ーノレ していただきたい。 意が必要て、ある。 pkunzip て、は , ー d オプショ ンをつけると , 展開する際にアーカイプさ れているとおりのディレクトリが作成され 次に , 環境変数の設定が正しく行われて いることを確認する。ここて、は , autoexec. コンノヾイル bat の中て、 , set gccbin=b : /djgpp/bin set gccinc=b : /djgpp/include set gcclib=b : /djgpp/lib set gcctmp=g : / set g032=emu b : /djgpp/emu387/ emu387 としてある。 このほかに , bison や flex も使う場合は , set bison simple=b : /djgpp/lib/b ison. simple set bison hairy=b : /djgpp/lib/bis on. hairy set flex skeleton=b : /djgpp/lib/f x. skeleton という設定も必要て、ある。 この場合は 80387 を使わずに emu387 を使 ってエミュレーションが行われる。また ページの追い出しは g : \ に対して行われ この設定の際に , ディレクトリの区切り には , \ て、はなく / を使ったほうがいい。環 境変数については , \ を使っても自動的に / に変換してくれるが , gcc コマンドなどを起 動する際には , 必ず / を使わなければならな 74 C MAGAZINE 1991 10 実行 こうして出来上がった実行形式 linedisp B >

8. 月刊 C MAGAZINE 1991年10月号

L 」を機能強化して発売した。 同ソフトは WATCOM 社の製品から機種 依存部分を取り去り , 独自のユーザインタ フェイスとエデイタを付加したもの。 COB OL の標準規格 (JIS X3002 ー 1980 / ANSI X3. 23 ー 1974 / ISO 1989 ー 1978 ) に準拠し , COBO L 機能単位のうち , 中核 , 表操作 , 順ファイ ル , 相対ファイル , 索引ファイルのレベル 1 のすべてと , レベル 2 の主要部分の機能を サポートしている。おもな特徴は以下のと おり。 ・約 60 のサンプルプログラムが付属 ・漢字 ( 2 バイト文字 ) をサポートし , 文字列 としてだけてはなく , データ名 , 手続き 名への使用も可能 ・インタブリタに対話式デバッガを内蔵 き換えて使用することも可能。おもな特徴 は以下のとおり。 ・ POSIX 標準規格に準拠 ・簡易プログラム言語 AWK ( nawk 準拠 ) 付 属 ・ラインエデイタ ed, ex, スクリーンエデ C MAGA 1 , 300 , 000 円 1 , 420 , 000 円 ・必要メモリ く価格 > 問い合わせ先 640K ノヾイト 7 , 800 円 ( 株 ) ソフトビジョン イタⅵ付属 く動作環境 > ・対応機種 ・対応 OS ・必要メモリ く価格 > 問い合わせ先 PC ー 9801 シリーズ (PC-98X A, LT を除く ) IBM-PC/XT/AT NEC MS-DOS Ver. 3.1 以上 I BM PC-DOS Ver. 3 以上 640K バイト以上 68 , 000 円 パーソナルメディア ( 株 ) く動作環境 > ・対応機種 ・対応 OS ・必要メモリ く価格 > 問い合わせ先 PC ー 9801 シリーズ J ー 3100 シリーズ FMR シリーズ MS-DOS Ver. 3.1 以上 640K バイト以上 58 , 000 円 ( 株 ) LIFEBOAT 〒 141 東京都品川区西五反田 1 ー 23 ー 9 協和五反田ビル 6F TEL 03 ( 3490 ) 8841 丿し、 0 く動作環境 > の練習も可能 ・キータッチ練習だけてなく入力スヒ。ード の練習が可能 ・日本語変換システムによるローマ字入力 ・不得意な指をグラフにより確認可能 ・指定した指ごとに練習が可能 とおり。 が可能となっている。製品の特徴は以下の てはなく , ューザが練習方法を決めること ように決められた課題に従って練習するの 同ソフトは従来のキー入力練習ソフトの ト「 TYPE RUNNER 」を発した ( 株 ) ソフトビジョンはキー入力練習ソフ ( 株 ) ソフトビジョン 「 TYPE RLJNNER 」 〒 323 栃木県小山市駅南町 3 ー 10 ー 11 TEL 0285 ( 28 ) 3640 「 PROICE/ 凵 NK TLJ-V53 」 岩崎技研工業 ( 株 ) 岩崎技研工業 ( 株 ) は NEC の 16 ビット MP U 「 V53 ( 4PD70236 ) 」に対応したインサーキ ットエミュレータ「 PROICE/LINK TU-V 53 」を発売した。おもな特徴は以下のとお く TU-V53 > ・ 16MHz の高速対応工ミュレータ ・拡張アドレスモードをサポートし , 最大 16M バイトのメモリ空間が使用可能 ・ 256K バイトのノーウェイトエミュレーシ ョンメモリ搭載 ・ 132PIN PGA, 120PIN QFP の 2 種類のパ ッケージを用意 く PROICE/LINK> ・ターゲット MPU ュニットの交換のみて , 複数の MPU に対応可能 ・ GP-IB, LAN インタフェイスをオプショ ン装備 TU-V53 を使用するには , PROICE/LIN K 本体 , I/F カード ( PC981F ー 03 ) , 及び高級 言語対応デバッガ ( iDEB Ⅲー V53 ) が必要と 〒 101 東京都千代田区神田錦町 3 ー 6 TEL 03 ( 3293 ) 4711 「 MKS ツールキット」 バーソナルメティア ( 株 ) パーソナルメディア ( 株 ) は MS-DOS 上て UNIX 環境を再現するためのツール集「 MK S ツールキット」を発した ノし、 0 同ソフトは UNIX 環境を再現するためにシ ェル (KornShelI) を中心として , 140 近いコ マンドを収めたツール集。 MS ー DOS のファ イル名の制限やマルチタスキングが不可能 な点などを除けば , MS-DOS 上 <UNIX 環 境を再現てきる。通常 , 同ソフトの KornS hell は MS-DOS の COMMAND ℃ OM から 起動するが , CONFIG. SYS<SHELL に指 定することにより .COM/AND.COM に置 なる。 く価格 > TU-V53 PROICE/LINK 本体 iDEBIII-V53 PC981F ー 03 PC モデル 41 PC モデル 21 PC モデル 10 950 , 000 円 100 , 000 円 50 , 000 円 980 , 000 円 ・対応機種 ・対応 OS PC ー 9801 シリーズ (PC-98X A , LT , ハイレゾモードを除 MS-DOS Ver. 2.11 以上 間い合わせ先岩崎技研工業 ( 株 ) News Square 171 TEL 075 ( 602 ) 7878 〒 601 ー 13 京都市伏見区下鳥羽平塚町 13 ー 3

9. 月刊 C MAGAZINE 1991年10月号

PC ー 9801 版 釦 III 飆 特集 現する 640K バイトを超えた 386 プロテクトードの世界 djgccii 高機能・高性能なフソ—イるトウ三アの。ン謇イ ? ダし 、・て広く配布されている GCC は 3 これまで数多くのワク = ステシ旨ンやミニコンなどに移植されてきた回は , を搭載した旧 M 十 C およびア c 1 用の GCC / G 十十 。である亟 cc と第それを動かすための DOS 工クみテンダ g つを取り石 ( 概要 , PC 円 1 、の移植 , 応用例にいて 解説するほかー主要コンパイラとの比較も行ラ。 協力 / 株プロシード 安田英之 。・ dJgcc は De J D 引 0 「 je 氏か 80386 の旧 M - PC に移植した G 。、 CC および G 十十である。 dJgcc には , g032 という独自の DOS 工クステンダか含まれ仮想記憶までサポートしているので , メモリ ぅ = を大量に消費するプログラムを小さな実メモリのマシン上で動作さ せることかできるにという特徴かある。この dJgcc の概要につい 当てオリジナルの GCC との相違点や g032 の機能を中心に述べる。 インフレーム上て、使われてきたソフトウェ GCC は , Free Software Foundation によ アて、ある。ところが , 数年前から , 「 MS-D って配布されているフリーソフトウェアの OS マシンて、動く GCC はありませんか ? 」と C コンパイラて、ある。この GCC は , もともと いう質問が , ネットワーク上て、頻繁に上が UNIX マシンなどのワークステーションやメ はじめに 54 C MAGAZINE 1991 10 cc 概要

10. 月刊 C MAGAZINE 1991年10月号

このようなバージョンアップの方法は , を表す。 かを I / O ポートを使って指定し , 領域が変わ ・差分ファイルのほうが , オリジナルの るたびに領域を指定しなおす必要がある。 そのほかの ソースよりも小さいことが多いのて、 , これて、は , グラフィックスを扱うソフトウ ユーティリティ 配布ファイルのサイズが小さくて済む ェアを作成するときに , 非常に手間がかか ・バージョンアップとは独立な個人的な ってしまう。 そこて、 djgcc ては , 仮想記憶のメカニズム 変更点をユーザが加えている場合て、も , を応用して , グラフィック画面が 0Xd00000 変更点がそれぞれ独立て、あれば , 個人 00 から最大 IM バイトの領域に連続して存在 的な変更を加えたファイルに対して , バージョンアップによる変更を加える しているかのように見せる機能をサポート ことがて、きる している。 これを実現するには , 0Xd0000000 からの bison とは , UNIX 上の yacc と上位互換性 というメリットがある。 領域へのアクセスがあった場合 , 工クステ のある GNU のパーザ ( 構文解析プログラム ) diff コマンドは , この差分ファイルを作成 シエネレータて、 , パターンを使って文法を ンダが , それがどの領域かをアドレスから するためのものて、ある。たとえば file. c とい うファイルが変更後のものて、 , オリジナル 求めて , 64K バイトの物理アドレス上の VR 記述すると , それに対応するパーザを作る。 GCC/G 十十をコンパイルするときにも使う AM にその領域が指定されていない場合は , のファイルが file.org となっている場合に 工クステンダが代わりに I / O 出力を行って物 ( もっとも実際には , GCC の配布ファイルに は , は bison て、生成されたパーザの C 言語ソース 理アドレス上の VRAM にその領域を指定 diff -c file.org file. c >file. dif とすると file. dif に差分ファイルが作られる。 し , なおかっ仮想記憶のマッピングを変更 が入っているのて、 , 変更を加えないかぎり パーザの再コンパイルは省略て、きる ) 。 して , 論理アドレス上の VRAM の正しい領 -c オプションは , 差分をコンテクストス 域にその物理アドレス上の VRAM を対応さ タイルて、 , つまり , 変更箇所の周囲の何行 か ( デフォルトて、は 3 行 ) を含んだ形て、 , 出力 せる , という作業が必要になる。 利 ex この処理の様子を Fig. 1 に示す。 するためのものて、ある。 このような処理を行うためには , 工クス flex は , UNIX の lex と同様なレキシカル この差分ファイルを入手したユーザが , アナライザ ( 語句解析プログラム ) 生成ツー 変更前の file. c に差分ファイルを適用して , テンダ自体が , どのグラフィックスアダブ バージョンアップ後の file. c を得るには , オ タを使っているかを把握し , それに対応し ルて、ある。正規表現を使って , 処理対象の た動作を行う必要がある。そのため , 仕様 リジナルのファイルがあるディレクトリて、 , テキスト中に現れる語句の文法を定義する 次のようにして patch コマンドを実行する。 が異なるグラフィックスアダブタにそれぞ と , それぞれの語句を読み込んだときにそ れ対応する , グラフィックスドライバが用 れに対応するトークンを返すようなレキシ patch file. c file. dif カルアナライザを作る。 bison または yacc と オリジナルの GCC のソースから djgcc のソ 意されている。 組て、使われることが多い グラフィックスドライバの選択は , 環境 ースを生成するときにも , この patch コマン ドが利用て、きる 6 変数 g032 を使って行う。現在標準的に使わ diff/patch れている VGA アダブタを使っている場合 は , 何も設定しなくてよいが , ほかのアダ 将来の課題 diff および patch は , ふたつのテキストフ プタを使う場合は , ァイルを比較して , それらの間の相違点を set g032=driver c : *djgpp*drivers 差分ファイルとして出力したり , その差分 djgcc に関連した話題として , 将来期待て、 *tseng4k. grdgw 1024 gh 768 tw 132 th 43 のような設定が必要て、ある。オプションは ファイルを使って , 一方のファイルからも きそうなトピックスをいくっかあげる。 う一方のファイルを生成したりするためツ それぞれ VC PI/D P Ⅶ規格への対応 ドライバのファイル名 ールて、ある。 ・ driver . ソフトのバージョンアップを行うときに 水平ドット数 は , 古いバージョンのソースファイルと変 垂直ドット数 VC 円規格 更を加えた新しいソースとの差分を取り , 水平キャラクタ数 垂直キャラクタ数 その差分ファイルを配布することが多い g032 は工クステンダなのて、プロテクトモ 62 C MAGAZINE 1 1 10 djgcc に含まれているそのほかのユーティ リティのうち , 主要なものを紹介する。 bison