インデックス画面へ戻る 第1.74版 1997年11月 1日

DOS/Win31でLinuxと仲良くなろう(^_^)


[ご注意]
この文書は1996年頃に書き始めたもので、文書最後のコメントも1997年11月に書いたものです。
このため、内容が極めて古く、所々におかしな記載が見受けられます。
1996年頃に戻ったつもりでお読み頂ければ幸いです。(笑)
なお、明らかな技術的記載間違いを発見された際には、御連絡頂ければ修正致します。


諸般の事情でWin95 やNTに対応していないソフトを使うために、どうしてもWin31 からアップグレードすることができない環境をお持ちの方もいらっしゃるかと思います。
特に、一部の業務用途のソフトを使用するために、やむなくWin31 を使用し続けている環境が見受けられます。
そんな環境でも、TCP/IPネットワークに接続したいのが最近の事情であろうかと思います。
実際、私の職場ではそんなPCがごろごろあります。

また、好みの問題で95はインストールしたくない、という向きもあるでしょう。
(私がそうだったりします(^ ^;))

ここでは、LAN経由でDOS/Win31マシンからLinux BOX等のTCP/IPネットワークにアクセスするためのソフトウェアを紹介します。
これらのソフトは実際に私が職場や自宅で使用しているものです。

[1]NDIS2ドライバでパケットドライバをバインドするdispkt11.zip

Ethernetカードに添付されているNDIS2ドライバでパケットドライバを実現するソフトです。
通常、LAN カードには添付されているドライバフロッピーの中に「パケットドライバ」という、com 型の常駐ソフトがおまけで付いております。(*注)
これは、DOS 上でTCP/IPによるLAN を実現する幾つかのソフトにおいて必要となるものです。
例えば、後述するNCSA TELNET や、winpkt.comを介して使用するWin31 上でのTrumpet Winsockにおいて必要となります。
しかしながら、パケットドライバは既存のLAN とぶつかります。
例えば、私の職場ではArtisoftのLANtastic を使用していますが、これが既にインストールされている環境においてパケットドライバを常駐させると、LANtastic が動作しなくなります。
そこで、既存のLAN との共存を図りつつ、TCP/IPアプリも使用できるようにするために、このソフトが必要になります。

このソフトは、Microsoft LANMAN for DOSや、LANtastic 等の、NDISドライバを使用するDOS 用LAN クライアントにおいて、パケットドライバによるTCP/IP接続を実現します。

インストール方法:

(1) protman.dos を用意します。

このファイルはMicrosoft LANMAN for DOSや、LANtastic に含まれています。
英語版のLANMANはフリーでMicrosoftのftpサイトにて入手できます。
また、LANtastic においてはインストールの際にNDISドライバにてインストールするように指定すれば、自動的にC:\LANTASTI ディレクトリに格納されます。

(2) dis_pkt.dos を、protman.dos と同じディレクトリに置きます。

(3) protocol.ini を編集します。

protocol.ini に、以下のような記述を追加します。

[PKTDRV]
  drivername = PKTDRV$    ←dis_pkt.dosのドライバ名(固定)
  bindings = MS2000_NIF   ←LAN カードのラベル名
  intvec = 0x60           ←割り込みベクタ(0x60以上)
  chainvec = 0x66         ←チェインベクタ(0x60以上で上記と重ならないもの)

例えばLANtasticならば、以下のようになるでしょう。

;;;;;;;;;;;;;;;;;;;;;protocol.ini sample;;;;;;;;;;;;;;;;;;;;;;;;
;PROTOCOL.INI for LANtastic Version 6.00
;
[PROTMAN]
  DRIVERNAME = PROTMAN$
  DYNAMIC = YES

[PKTDRV]
  drivername = PKTDRV$
  bindings = MS2000_NIF
  intvec = 0x60
  chainvec = 0x66

[MS2000_NIF]
  DRIVERNAME = MS2000$
  IOBASE = 0x0340
  INTERRUPT = 10
;;;;;;;;;;;;;;;;;end of protocol.ini sample;;;;;;;;;;;;;;;;;;;;;

(4) config.sys にdis_pkt.dosを追加します。

例えば私の場合は、

DEVICE=C:\LANTASTI\PROTMAN.DOS /I:C:\LANTASTI
DEVICE=C:\LANTASTI\ne2000.DOS
DEVICE=C:\LANTASTI\dis_pkt.DOS

という感じで、カードのNDISドライバの後に記述します。

LAN のソフトは常駐量がデカイので、QEMMの使用をお薦めします。

<<<注意!>>>

・最近のPCI ベースのLAN カードには、パケットドライバが添付されていないことがあります。(例:INTEL EtherExpress)
・私の経験では、IDE HDD とAdaptec AHA-2940にてSCSI HDDを接続している環境において、AdapecのASPIマネージャを使用すると巧く動作しないことが判っています。(これは私の職場の環境です)
IDE HDD を含まずAHA-2940のみの場合(私の自宅の環境です)、またIDE HDD のみの場合、或はASPIマネージャを使用しない場合(以上は職場の環境です)であれば動作するようです。
・NE2000互換の安価なカードに添付されているNDIS2 ドライバなどは、「腐っている」ケースが多々見受けられます。
巧く動作しない場合、archieで探すなどの努力が必要になるでしょう。


[2]Win31上でパケットドライバを使うwinpkt.com

Trumpet Winsock等でパケットドライバを使うための常駐ソフトです。

Windowsを起動する前にパケットドライバがフックしている割り込みベクタを起動時のパラメータに指定します。
例えば、前述のdis_pktの例では、割り込みベクタに0x60を指定しておりましたので、Win31 起動前にコマンドラインから

c:\>winpkt 0x60[リターン]

とするだけで良いです。

Trumpet Winsock の方では
・slipもppp も設定しない
・winpktにて指定した割り込みベクタを指定する
ように設定すれば、起動時のログ表示画面にてパケットドライバを認識した旨を記す表示が出てきます。
失敗するとその旨がダイアログボックスにて表示されます。

割り込みベクタの確認には、Vzエディタに添付されているvmap.comや、ms.comやzmap.com等のフリーソフトが使えるでしょう。(因みにVzエディタは市販ソフトですが、vmap.comはフリーソフトです。)

因みに、winpkt.comは世界中のftp サイトに転がっていますが、古いものが多く、古いものは巧く動作しない場合がありますので、注意が必要です。


[3]AT互換機のDOS上でtelnet/ftpするNCSA PC-TELNET日本語版

添付のconfig.telに
・パケットドライバのI/OポートアドレスとIRQ
・Linux BOXのIPアドレス
・使用する漢字コード
等を記入します。
特筆すべき点は、
・ftp機能を内蔵している
・漢字コードにJIS を指定してもシフトJISの表示ができる
・Windowsと比べて起動が早い
・画面の表示色を簡単にカスタマイズできる
・ログの記録が簡単にできる
ことです。

なお、mnews 等で画面表示の行数がおかしくなることがあります。


[4]Win31上でtelnetするteraterm

Win31 上のIME にて、指定した漢字コードで入力ができます。
例えば、muleにてかんな等を使わなくても、JIS コードに指定しておけば、teratermがJIS コードに自動変換してくれますので、直接IME で日本語の入力が可能になります。


[5]DOS 上でnfs をmountするfnfs

フリーのDOS 用のnfs clientです。
実行形式の常駐ソフトで、常駐量は約20KB程度と、大変小さい事と、ソースが添付されているのが魅力です。
但し、スピードはさほど早くなく(約12KB/sec)、動作も不安定なように感じます。

コマンドラインから、

D:\TMP>fnfs -S 192.168.10.2 -D 192.168.10.3 -M /home/yoh -d q -m pbl -u yoh -l

とします。

パッケージに添付されているマニュアルにコマンドラインのオプションが書かれておりまして、

-S 自分(client)のIPアドレス
-D 接続先(server)のIPアドレス
-M 接続先でmount したい場所
-d DOS の空きドライブ名
-m 自分のホスト名
-u 自分のユーザー名
-l 表示されるファイル名を小文字にする

と、なっております。
しかしながら、最後の"-l"オプションが曲者で、私が試した限りでは、"-l"とすると逆に大文字で表示されるようになっておりました。
で、この逆と思われる"-U"オプションを指定しますと、ファイル名一覧は小文字表示となり、このためディレクトリに入れなくなります。

詳しくは、一連のfj.os.linuxの記事をご覧下さい。


[6]古い98DOS 上でtelnetするms-kermit98(ftp://ftp.s.u-tokyo.ac.jp/PC/terminal/kermit/msvp98b1.lzh)

もし、1997年現在においてもPC9801VMクラスのマシンを使用する事を考えるならば、多分このソフト位しか選択肢がなかなかないのではないでしょうか。
殆ど完全なvt100エミュレーション、軽快な操作性は1993年に作られた古いソフトである事を忘れさせてくれます。
いや、古いソフトだからこそ軽快なのかも知れません。

まず、パケットドライバ等がインストールされている必要があります。
実行ファイルmsvp98.exeと同じディレクトリに、以下のような内容のmskermit.iniと言うファイルを置きます。
なお、使用の際コメントは削除しておいて下さい。(^ ^;)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 自分のマシンのIPアドレスを決めます。
set tcp/ip address 192.168.10.3
;;; ネットマスクを定義します。自分のおうちLAN と同じ設定で良いでしょう。
set tcp/ip subnetmask 255.255.255.0
;;; ドメインを定義します。自分のおうちLAN と同じ設定で良いでしょう。
set tcp/ip domain hogehoge.or.jp
;;; ブロードキャストアドレスを定義します。
set tcp/ip broadcast 192.168.10.255
;;; 接続先のIPアドレスを定義します。
;;; これはなくても良いですが、起動時に"msvp98 connect"とすると自動的に
;;; 繋がるので設定しておいた方が良いでしょう。
set tcp/ip host 192.168.10.1
;;; 接続に使用するポートをTCP/IPに設定します。
set port tcp/ip
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

因みに、私はPC9801NSにてこのソフトを使用しております。(^_^)
98NSからLinux BOXのXFree86を起動させたりすると、ちょっとした悦に浸れます。(笑)

(参考文献:<http://www.naoe.hiroshima-u.ac.jp/staffs/hirata/pc-tcpip/>PC-TCPIP-FAQ-J)


 この家頁を書き始めた時は、まだ私の身の周りにはWin31 マシンやDOS マシンがメインでした。
 1997年も後半になると、もはやWin31 マシンを探すのに苦労するような状況です。
 特定業務アプリの為に、どうしてもDOS 或はWin31 にせざるを得ないマシンは、ネットワークから孤立化し、自然と誰も使わなくなり、使用頻度は落ちるばかりです。

 でも、98+DOS が主流だった頃には、愛着の湧くようなソフトが色々あったと思うんです。
 うちの職場では未だにCCT98IIIとxscriptとvzとXTRが入ったPC9801RA21が現役です。
 CCT98 のヒストリ機能は強力で、これにxscriptが組み合わさると殆ど無敵だと、未だに思います。
 実際の所、部署内の殆ど全員の机にPCが行き渡った現在においても、データベース端末としての9801RA21の使用頻度はなかなか落ちないので、リプレースもままなりません。
 本当は、各人のマシンに同等スペックの端末ソフトをインストールすれば良いのでしょうが、あの使い勝手を実現するようなソフトはなかなか見かけません。

 OSもハードも世代交代した現在ですが、アプリケーションソフトは昔のソフトにあったような、細かい所での神経の細やかさが失われたような気がしてなりません。

第1.74版 1997年11月 1日 松田 陽一(yoh@coolmail.net)
インデックス画面へ戻る