EWS4800

Last update: 2000/10/22

EWS4800 について

NEC のワークステーション EWS4800(OS: UX/4800)シリーズは、 数少ない国産 UNIX の一つです。 ユーザレベルでは以下の様な特徴があります。

EWS4800 へのフリーソフトの導入

EWS4800 を使いやすくするためにフリーソフトを導入しましょう。 といっても初めから自分でする必要はありません。 UX/4800 Compile Memo に、ほとんどの有名なフリーソフトのコンパイルメモと patch があります。
しかし、そこに無いソフトをコンパイルする必要があるかもしれません。 そこで、以下に EWS4800 でフリーソフトをコンパイルする時に 注意すべきことがらをまとめておきました。
  1. configure
    最近のフリーソフトは、configure スクリプトを 持っているものが増えてインストールが楽になりました。 多くの OS では、
         configure
         make
         make install
    
    と打つだけでインストール出来る様になっていますが、 EWS4800 では問題があるものが多いです。
    まず、GNU の autoconf を用いて configure スクリプトを 作成している場合、config.guess というファイルが 付属しているのですが、このファイルが EWS4800 UX/4800 R10.0 以上に対応していないのです。 config.guess(autoconf-2.12 付属) の中に、
         R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
    
    と EWS4800 用のエントリがあるのですが、 これは UX/4800 R9.* 以下用なのです。 そこで、UX/4800 R10.0 以上では、
         R3000:*System_V*:*:* | R*000:UNIX_S*V:*:*)
                                 ↑         ↑
    
    と変更します。 これで、config.guess がある場合の configure は、ほとんど通る様になります。
    また、config.guess が無い場合で configure を実行すると、 "unknown host" の様なエラーが出る場合は、
         configure --host=mips-nec-sysv4.2
    
    とオプションを付けて configure を実行すると大丈夫なことが多いです。
  2. C コンパイラ
    EWS4800 は、C コンパイラを二つ持っています。 /usr/abiccs/bin/cc (ANSI C コンパイラ)と、 /usr/necccs/bin/cc (K&R C コンパイラ)です。 基本的に、/usr/necccs/bin/cc では、 ほとんどのソフトはコンパイル不可能なので /usr/abiccs/bin/cc を使う様にします。 どちらかが、/usr/bin/cc にリンクされているのですが、 /usr/necccs/bin/cc の方になっている場合(こちらの場合が多い)は、 環境変数 CC を /usr/abiccs/bin/cc にしてから configure スクリプトを実行します。
         setenv CC /usr/abiccs/bin/cc
         configure
    
    また、Imakefile から xmkmf を用いて Makefile を作成する様になっている場合は、 Imakefile のマクロ定義の最後("all:" のある行の手前)に
         CC = /usr/abiccs/bin/cc
    
    を加えておきます。
    もっとも gcc を使えば、この様なことは必要なくなります。
  3. C コンパイラオプション
    gcc ではなく /usr/abiccs/bin/cc を使う場合、 コンパイラオプションを、
         CFLAGS = -O -KOlimit=3000
    
    の様に指定します。 これはデフォルトでは最適化のリミットが小さいための処置です。 ただし、これ以上大きくしてもコンパイル時間の増大を招くだけでほとんど無意味の様です。
  4. X を使うツールの場合
    UX/4800 R11.* 以下の場合、 デフォルトの X のバージョンが X11R5 になっています。 このままでは Shape 等の機能が使えませんので X11R6 を使う様にします。
         ln -s /usr/abiccs/include/X11R6 (適当なディレクトリ)/X11
    
    として、CFLAGS (等)に "-I(適当なディレクトリ)" を付け加えます。 ライブラリは、
         LDFLAGS = -L/usr/abiccs/lib/X11R6
    
    の様に指定します。
  5. X を使うツールの場合(2)
    EWS4800 では、ネットワーク系のライブラリ libsocket.a(so) と libnsl.a(so) が分離されています。 libX11.a(so) はこれらを必要とするので libX11.a(so) をリンクする場合は、
         -lX11 -lsocket -lnsl
    
    とします。 最近のソフトの configure では自動的に対応してくれることが多いです。 Imakefile を使う場合にも自動的に付加してくれます。
  6. その他
    気が付いたら追加してゆきます。
(補足) EWS4800 上での top コマンドについて

top はシステム上のプロセス情報(CPU 使用率やメモリ使用率など)を表示するユーティリティーです。 ps コマンドに似ていますが、情報を定期的に更新させることができ、また対話的機能もあるので非常に便利です。
ところが、EWS4800 版は古い機種(CISC?)用には移植されていますが、 最近の機種では使用できません。 News Group などでも時々話題になっているようですが、誰か移植してくれないかなぁ。 システム依存の部分が多いので難しいのですが。
(実は私が一番最初に EWS4800 でコンパイルしようとしたのが、この top です。 こんな難しいものを最初にやろうとするなんて…。 でもそれぐらい必要性は高いのですが。)

その後、EWS-UX R9.* 用は、ほぼ完全に動作させることは出来ました。 ただ、UX/4800 R10.*以上では難しくて(カーネルが情報持ってないみたい;_;) 中途半端なままにしていたところ、 w3m の開発者 ML で知り合った下津さんから UX/4800 R10.*〜R12.*(32bit)用の top をいただきました(ありがとうございました)。 ただ、まだちょっと不完全のようですね+_+。 ソース(patch)があれば、もうちょっと直せそうではあるのですが。 でも、カーネルのソースがないと完璧には無理だろうなぁ。 しかも、最大メモリの情報のところでカーネルにバグがありそうだし…。

(2000/05/03) 追記
top-3.5beta11 に svr42MP 用のコードが入り、これを使うことで、 UX/4800 R10.* 以上なら動作します。また、R9.* でも svr42 を使って動作します。
以下にコンパイル環境と patch を挙げておきます。


・R10000(64bit), UNIX_SV 4.2MP, R13.* 以上
   [patch] top-3.5beta11_R10000-UNIX_SV-4.2MP.patch
   [machine] svr42MP
   [CC] /usr/ccs64/bin/cc
   [owner] root:sys
   [mode] 2711

・R4000(R4400), UNIX_SV 4.2MP, R10.* 以上
   [patch] top-3.5beta11_R4000-UNIX_SV-4.2MP.patch
   [machine] svr42MP
   [CC] /usr/abiccs/bin/cc
   [owner] root:sys
   [mode] 2711

・R4000, UNIX System_V 4.2, R9.*
   [patch] top-3.5beta11_R4000-UNIX_System_V-4.2.patch
   [machine] svr42
   [CC] /usr/abiccs/bin/cc
   [owner] root:sys
   [mode] 4711

ホームページへ このページのトップへ 新着情報 コンピュータ コラム
ダウンロード 用語集(索引) 用語集 プロフィール リンク 掲示板

このページへのお問い合わせは hsaka@mth.biglobe.ne.jp まで御願いします。