Think GNU 第 13 回

□番外 ダラス USENIX 編□

CJ No.5/'91.3.18 発売号掲載

0. はじめに

 ダラス行きの直行便は空いていた。東京から 10 時間 30 分あまりの飛行で、日本との時差が 15 時間あるので、また時差ボケにやられるな、と思いつつ飛行機から降りた。

 ここ 3ヵ月の間、北京、香港、ダラス、ボストンと海外に出かける機会が続いた。少し疲れたが、ようやく落ち着いて本業に取り掛かれる。湾岸戦争のために、これからもうしばらくは海外には出られないだろう (出なくて済むだろう)。北京、香港、ボストンでは予想通り食べるものには事欠かなかった。ダラスでは初めての土地のせいか、食べるものを探すのに苦労したし、見つかっても大味な点に加えて時差でまいっていた。ボストンでは中華と日本料理をと思ったが、忙しくて MIT の中でのみの食事となってしまった。◆1

 ダラスでミーティングがあり、ついでに USENIX に参加した。Uniforum の展示会が開かれていたが、戦争の影響で特に日本からの参加者が少なかった。

 USENIX は、いつものように 2 つのチュートリアルとテクニカル・セッションに分かれている。今回は、1 日目の Richard による gcc 入門と、2 日目の Stephan C. Johnson による並列プログラミング入門に出席した。休憩時間と夜から深夜にかけては端末室 *1 に入り浸りで作業していた。テクニカル・セッションにも参加したあとボストンへ移動し、プロジェクト GNU のマシンを借りてログインするとともに Richard らと打ち合わせを行なった。

 帰国してしばらくすると、CMU の Mach カーネルのコピー・フリーの部分が配布された。そのソース・コードを読むので、ここ当分忙しい。

1.USENIX

 Uniforum の展示会にはとうとう時間がなくて行けなかった。USENIX の会場は、ダラスの Grand Kempinski ホテルで開催され、Uniforum の展示会場から車で 30 分、空港からも 30 分の距離の所であった。USENIX の会場と Uniforum の会場は無料のシャトル・バスが運行していた。

 キーノート・セッションは Pixer 社の人が講演した。Pixer 社には NeXT 社も出資しており、RenderMan という 3 次元の PostScript と言われる言語とそのツールで有名である。発表の後の、3 次元のカラーのデモンストレーションは音が入っていて迫力があった。その中の多くは実際の TV コマーシャルで使われているものだそうで、Unix マシンが数多く採用されている。これからは CPU 能力をこういった方向に使うようになるだろう。アプリケーション・プログラムはなく、簡単にプログラミングできるツールも用意されていないので、グラフィック・コマンドを書くのは困難ではあるものの、自分の身近にグラフィック・ワークステーションがあれば面白いだろう。

 テクニカル・セッションでは、分散ファイル・システムのパネル・ディスカッションが興味を引いた。ベル研の Plan 9 と Sun の NFS(Network File System)、Transarc 社の AFS(Andrew File System) のそれぞれの代表者がパネラーであった。◆2

1-1. チュートリアル

 前述のように、今回のチュートリアルでは次のものに出席した。

1-2.gcc

 gcc のチュートリアルを聞くのは 3 度目なので、これまでの講義内容とほぼ同じであった。次のような目的を持っている人に有効であろう。作業方針やデバックの方法も提示していた。

 目新しい点として、内部データ構造が C++ 用のものだけではなく、Fortran 用のものも入ってきた。ボストンに寄った際に Richard と話していて、GNU Fortran が動き始めている、と言っていた。ライブラリも作ってあるとのこと。私は特に興味はないが、Fortran で記述されたベンチマーク・テストでも良い性能を期待できる。というのは、gcc を使ったベンチマークの結果が良いので、そのバックエンドを使用している Fortran の高得点が期待されるからである。

1-3. 並列プログラミング

 並列処理の分野において、移植性が良く汎用のプログラミング言語でよく使われているプログラムや方法論は現在では存在しないので、従ってノウハウもない。しかし、特定のアーキテクチャのマシンではノウハウが蓄積されていることがわかった。

 CPU の増加に伴って能力が上がるようなプログラムの作成方法、あるいは問題領域 (アプリケーション分野) の選択の説明があった。

2. プロジェクト GNU の作業項目

 ボストンはやはり寒かった。例年に比べれば暖かかったが、雨が降る程度でもマフラーとスキー用の帽子と手袋をして、プロジェクト GNU の作業場所である MIT の LCS(Laboratory Computer Science、コンピュータ科学研究所) へ向かった。そこに寄って Richard らと 2 回にわたって、これからどんなツールを作成していくか、それらにはどんな特徴を持たせたいか、について話し合った。その概略の一部を紹介する。

2-1.Oleo 用の X インタフェース

 スプレッドシートは簡易計算ツールで、一説によると、ビジネス用のパーソナル・コンピュータ市場はこのプログラムで立ち上がったとも言われる。実際に使ってみるのが一番早いが、簡単に説明してみる。縦の合計や横の合計を多用している計算書を作る場合は、昔ならば電卓と格闘して作成した。まして同じような計算書を複数枚、数種類作る場合は大変面倒である。このプログラムは、それぞれの欄に属性を持ち、欄を数値で埋めると横の合計や、縦の合計を自動的に算出してくれる。算出方法はあらかじめ会話的に与えておく。

 Oleo は、現在作成中の GNU スプレッドシートである。端末の文字ベースのユーザ・インタフェースを提供するが、次のような X Window ベースにしたい。◆3,4

 現在作業中の Oleo は、文字端末上でのコマンドのキーの割り当てを、bash(GNU シェル) や gdb(GNU デバッガ) と同じようにユーザが自由に変更することができる。将来は、X Window System に対応させて、コマンド・メニューやキーの再割り当ても可能にすることを目指している。◆5

2-2. インタフェース・ビルダー

 X Window System 用のユーザ・インタフェース、特にウィンドウのレイアウトを最初から書くのは大変である。ライブラリやウィジェット (ライブラリより機能が上のもの) あるいはツールキットを使っても手間はそれほど減らず、統一されたユーザ・インタフェースを提供するのも難しい。これを容易にするのがインタフェース・ビルダーで、NeXT 社のものが有名である。

 プロジェクト GNU でもインタフェース・ビルダーを考えている。

2-3. 数値計算パッケージ

 数学用、統計用、科学用数値計算パッケージもプロジェクト GNU の作業リストに入っている。例えば、行列演算や数値積分、FFT などのサブルーチンの集合である。FSF では統計用のパッケージから始めたいとのこと。

2-4. 数式処理システム

 JACAL という数式処理システムを開発中である。これの対象領域を広げたい。

2-5. その他

 次の作業もタスク・リストに入っている。

3. 今月のニュース

3-1.Mach カーネルのフリー・コードの配布

 かねてより噂されていた CMU の Mach カーネルの最新版 3.0 のコピー・フリー部分がリリースされた。これでようやくプロジェクト GNU において本格的に GNU カーネルの作業を開始することができる。

●バージョン

Mach 3.0 マイクロカーネル MK41  ◆6

●リリース日

1991 年 2 月 7 日

●投稿者

mrt@MRT.MACH.CS.CMU.EDU(Mary Thompson)

●ニュース・グループ

comp.os.mach

●入手方法

方 法 anonymous ftp

マシン名 cs.cmu.edu(128.2.222.173)

ファイル名 mach3/{default.tar.Z,i386.tar.Z,mips.tar.Z}

 この他に日本の 5 箇所の ftp サイトから anonymous ftp で取得可能

●報告

 CMU で作成している Unix サーバのサブセットとして POE がある。GNU カーネルでは、まずこれをベースにした拡張を行ない、Unix サーバとする。

 この POE はファイル・システム・コードも含むだろうか ? 今ふと疑問が浮かんだ。◆8

4. おわりに

 ダラスの USENIX に参加した時の本体と周辺を縮めて報告した。

 ダラス、ボストンを廻った今回の出張の帰国出発点はボストンになった。ボストンのローガン国際空港から、朝 7 時 30 分発の飛行機に乗った。東京、マレーシア行きであった。途中のシカゴで小さな飛行機からジャンボ機に乗り換える。もちろんすいていた。ボストン〜シカゴ間は 3 時間ほど、シカゴ〜東京間を北回りで 12 時間 30 分ほど乗って午後 2 時 30 分に成田に着いた。ローガン空港で日の出を拝めたことと、北極を眼下に見ることができたのが幸いとはいうもののだいぶ疲れた。2 週間ほどその疲れをひきずりながら、次回の USENIX のころは (戦争は終わっていることを願いつつ) どうなっているのだろうか、と憂慮している今日このごろである。◆9,10

参考文献

★1

 Richard Stallman,"Introduction to The Internals of The GNU C Compiler",1991 Winter USENIX Tutorial Text

★2

 Stephen C. Johnson, "Parallel Programming and Scalable Software",1991 Winter USENIX Tutorial Text


Think GNU 連載第 13 回【脚注】

◆1

半年程で戦争は終結したが、今度は不景気の波が押し寄せている。

*1

端末室…USENIX では端末を複数台置いて参加者が自由に使えるような便宜をはかっている。そこでは電話用のモデムや Internet へのアクセスも可能である。

◆2

AFS は性能向上のためにキャッシュを備えている点と、広域ネットワーク・ファイル・システムが構築できる点が特徴である。

◆3

〈スプレッドシート・プログラムの運用〉スプレッドシート・プログラムの運用について考えてみた。清算書を計算する場合、スプレッドシート・プログラムがあると便利である。スプレッドシート・プログラムがなかったとすると、清算書を作成する手順は、

(1) 支払いが発生するつど、その日付と内訳をメモしておく。

(2) 後日、清算書を書く際に、メモの内容を清算書に書き写す。

(3) 電卓を使って、縦計と横計、そして必要に応じてレート換算を行なう。

 スプレッドシート・プログラムがあれば、電卓代わりに使うことができる。つまり、(3) はこのようになるだろう。

(3') メモ内容の金額の部分をスプレッドシート・プログラムに入力する。併せて計算式も入力し、合計を求める。

 金額だけでなく、内訳もプログラムに与え、清算書のフォーマットで出力する方法も考えられる。フォーマットする機能がプログラムに要求される (Oleo には現在そういった機能はない)。あるいは、後処理プログラムを用意して、スプレッドシート・プログラムの計算機能をフォーマットしてもよい。

 スプレッド・プログラムで処理するにせよ、後処理プログラムで処理するにせよ、複雑なフォーマットは難しい。あるいは、複雑なフォーマットを手短に作れない。これを可能にしたのが DTP であり、会話型のものが適している。そこで DTP にスプレッドシート・プログラムの計算機能を取り込む、という方法を考えてみる。

 プロジェクト GNU では、現在 TeX という DTP を採用している。GNU Emacs への DTP 機能の導入というアイデアが以前からある。早期実現が望まれるところである。

◆4

Oleo に X Window System インタフェースを追加する予定がある。その際、簡単なフォーマット機能が入るかもしれない。

 Oleo の文字端末ベースのユーザ・インタフェース部分を少し修正すれば、MS-DOS 上に移植できるだろう。

 ノートブック型のパーソナル・コンピュータに Oleo を移植し、清算すべき項目が発生した時点で、内訳と金額を Oleo に与えていくという運用方法も考えられる。つまり、データが発生したら処理するという方針である。清算書の作成時に最終的な縦計や横計を計算してフォーマット出力する。このような運用をも考慮に入れて、Oleo への機能拡張、追加をはかるべきであろう。つまり、X Window System ユーザ・インタフェースだけをサポートし、文字端末ベースのユーザ・インタフェースを削除するようなことのないように。

◆5

〈ウィンドウ・プログラムで思うこと〉たいていのウィンドウ・プログラムはマニュアルを参照しなくても使える。しかしながら、カスタマイズ機能が不十分である。このことを解決するには一般に、

という方法がある。どの程度実用に耐え得るか、一度実験してみたいと思っている。

◆6

MK41 の 41 はマイナー・リリース番号である。

◆7

マイクロカーネルのみでは独立して動作せず、何らかのサーバが必要である。

◆8

POE はβリリースとして配布されている。ファイル・システムも含んでいるが書き込みをサポートしていない。

◆9

ちなみに、ここで撮影した朝日の写真が第 10 回の中で使われているものである。

◆10

戦争はすぐ終わったが、核査察を受け入れるか、受け入れないかで最近緊張が高まっていた。