フリーSolarisでここまでやれる! (注釈集) |
Free Solaris 7 は、薄い、簡易包装的な紙のフォルダーに、CD-ROM
3枚と DCA のフロッピーディスクがじかに止められているだけです。
一方、Free Solaris 2.6
の方は、しっかりした紙の化粧箱に、メディアと紙マニュアルが収められています。
CD-ROM は、ビニールカバー付きのフォルダに入っています。
これは恐らく、Free Solaris 2.6 については製品版の Solaris 2.6 メディアセットをほぼそのまま Free版用に流用したのではないかと思います。 一方、Free Solaris 7 の方は、最初から Free Solaris 用に簡易包装されたのだと思います。
Free Solaris のメディア代は、当初は SPARC版 Intel版各々 $10 でしたが途中で SPARC版 Intel版セットで $10 に変更されて安くなっています。(日本までの送料も安くなっています) この変更があったのは、Free Solaris 7 が出た 1998年10月27日よりも少し前からでしたが、恐らく、このタイミングで Free Solaris 7 に切り替わったのでしょう。 ということで、10月の上旬あるいは中旬に Free Solaris を申し込んだ人も、手にしたのは Free Solaris 2.6 ではなく Free Solaris 7 だったのではないかと思います。
さて、もう今は Free Solaris 8が申し込めます。
Solaris 8 EAの方はすでに届いていますが、こちらはビニールカバーつきの
フォルダとなり、再び豪華になりました。
『フリー Solaris でここまでやれる!』の原稿は、1998年11月11日から 当初 Free Solaris 2.6 をベースにして書き始めました。ところが間もなく、17日には注文しておいた Free Solaris 7 が届きました。この時、やはり新鮮さが第一と、Free Solaris 7 ベースに乗り換えたのです。
Solaris 8 EAの方も、原稿を書き終えたとたんに米SunでSolaris 8の 発表があり、滑り込みで文章の一部を修正したりしました。
tip を使うには、普通は /etc/remote を設定しますが、環境変数 REMOTE を使うことも出来ます。この場合は /etc/remote の設定は要りません。
私の場合、
#!/bin/sh REMOTE='ttyb:br#9600:dv=/dev/ttyb:el=\n\r^c^u^d:pa=zero:' export REMOTE exec tip ttyb |
のようなスクリプトを用いています。
Intel版 Solaris 7 も、ネットワークブートできますが、SPARC版とは違って ok boot net と簡単には行きません。ひとつの方法として、DCA のフロッピーディスクでブートして、そのメディア選択メニューから、 [X] NET を選ぶことによってネットワークブートできます。
なお、このように DCA からブートする場合は tftp の段階は終了していることになるので、 サーバ側では tftp の設定は要りません。 (RARP/bootparam/NFS の設定は要ります)
また、Intel版のネットワークブートでは、本来 /usr/sbin/rpld というサーバプロセスが用いられるようで、rpld は Solaris 2.x/7 にしかありませんが、DCA を使ってブートする場合は、rpld は必要無く、このため、Solaris 2.x/7 以外のマシンでもブートサーバになれます。
ただし、SunOS 4.x などが NFS サーバになる場合、そのデバイスファイルとして、major/minor 番号が1バイト(255まで)しか使えないという問題があります。 SPARC版ではそれでも特に支障はありませんでしたが、Intel版では 255を超える番号が使われることも多く(SCSIデバイスなど)ちょっと問題です。 しかしながら、Intel版のネットワークブート自体は 私のところでも確認出来ています。
ブートのために最小限必要なパッケージは、
SUNWcsr -- ルートの基本パッケージ SUNWcar -- /platform SUNWcsd -- /dev SUNWcsu -- /usr SUNWcsl -- libc.so (Solaris 7 で SUNWcsu から分離) SUNWkvm -- /usr/platform SUNWesu -- awk など SUNWlibms -- libm.so (awk がリンクしている)
です。ここで、SUNWesu が必要なのは、rc スクリプト中で awk が使用されているためです。SUNWesu が無くてもエラーを出しながらも一応立ち上がります。 awk が libm.so とリンクしているため、さらに SUNWlibms も最小限ブートに必要となってしまいます。
(少なくとも、awk は SUNWcsu に含めるとかした方が、パッケージとして奇麗だったのではと思います)
実は、上記のパッケージのみでブートした場合、Key table が無いためデフォルトの英語キーとみなすとの意味の Warning が出ます。これも考慮する場合は、
SUNWkey -- /usr/share/lib/keytables
も、最小限パッケージとして必要ということになります。
Intel版の場合、最小限パッケージとしては上記の他にさらに、
SUNWos86r SUNWos86u SUNWpsdcr SUNWpsdir SUNWpcmci
が必要でした。SUNWpcmci は、たとえ PCMCIA を使っていなくても、このパッケージをインストールしないと 多数のエラーメッセージが出る状態になりました。
はい。ありません。
lndir コマンドは、X11 のソースに含まれています。X11
をインストールすると lndir
コマンドができます。したがって、全く初めて X11
をインストールする場合には lndir
コマンドが使えません。
私の場合は、X11R6.4 のソースを NFS で、複数の OS で共有していて、NFS サーバの SunOS 4.1.4 上で lndir を実行しました。
もちろんこれは、ソースを共有する上で、こうした方が便利、 というだけのものなので、これから新規に Solaris 7 上で X11R6.4 を make される方は、lndir を使わずに、ソースのディレクトリもリードオンリーにせずに、普通に make して下さい。
Netscape 4.51 では、Solaris 2.5.1 用で OK
Netscape 4.5 では、Solaris 2.5.1 用のバイナリがなぜか Xlib を静的リンクしており、今回のように X_LOCALE 付きの X11R6.4 とリンクして日本語対応するためには、Xlib が動的リンクされた Solaris 2.4 用バイナリを使う必要がありました。
しかし、その後リリースされた Netscape 4.51 では、Solaris 2.5.1 用のバイナリも Xlib は動的リンクされていますので、これを使えます。 今現在、Netscape 4.51 も、X_LOCALE と fakelocale.c と リソースを使って日本語対応を確認しています。
Solaris 7 では、MB_CUR_MAX が定数のように見えて、 実は /usr/include/stdlib.h で、
#define MB_CUR_MAX __ctype[520]
と、変数になっています。このため、MB_CUR_MAX の値を fakelocale.c で強引に 1 より大きい値にすることにより、Motif からマルチバイト関係の 関数を呼んでもらえるように出来ました。 関数を呼んでもらえたので、fakelocale.c で mbtowc() などの関数を wrap して、 適切な処理をしてやることにより、Netscape の TEXTAREA 等がほぼマトモに 表示されるようになったのです。
Solaris 7 とは違って MB_CUR_MAX が本当に定数で、MB_CUR_MAX=1 となっています。 Motif もこの状態でコンパイルされていると思われるため、 マルチバイト関係は fakelocale.c の方法ではうまく行かないと思われます。
glibc2 のソースでは、
#define MB_CUR_MAX (__ctype_get_mb_cur_max ())
と、関数になっています。
Linux(glibc2)では、glibc2 + wcsmbs-locale と、さらに mozillafix によって、 Netscape の日本語テキストの入力問題が、ほぼ完全に解決されました。
なんだかんだ言って、やはり Netscape がちゃんと動かないとユーザーは ついて来ないと思います。 (NEWS-OS 4.x/6.x が廃れてしまったのも、 その理由が大きいように思います) … そして、Netscape がちゃんと使える RedHat 5.2J や Vine 1.1 に、大勢のユーザーがついて来たのです。 (Free Solaris 7 は、自力で日本語対応できるパワーユーザーのみついて来た?)
ただ、RedHat 5.2J や Vine 1.1 では、Netscape 3.x が存在しないのが残念です。 (私は今でも SunOS/Solaris では Netscape 3.04 が一番使いやすい) (今からでも遅くないので、Netscape 3.04 Linux(glibc2)版を出して欲しいな) しかし、その他の点においては、現状、Linux の方がどんどん魅力的になっています。
たとえば…
…と、Linux が生活上、不可欠 になってきているのです。
(自分で構築した、Free Solaris 7 の X11R6.4+X_LOCALE 環境も、CD-R に焼いて保存しましたが、それを焼くのに Linux を使いました)
(ところで、Linux kernel 2.0.36 とかだと CD-ROM のタイムゾーンのバグ があるのです。TZ=UTC で mkisofs しましょう)
だだ、Java をやるならやはり Solaris でしょう。でも、Java 自体も…
このように、往年のOSとしての安心感がある SunOS 4.1.4 と、最新のOSとしての魅力のある Linux(glibc2) の両極端に興味の対象が行くと、Solaris 2.x/7 はどっちつかずの感があるのです …
… と思っていたら …
Solaris 8ソースコード公開、 Free Solaris 8(商用・非商用)と、 変化が激しい…
… でも、SunOS 4.1.4 のソースの方も公開して欲しい …