Virtual Box用のXenix TCP / IPの設定

Virtual Box用のXenix TCP / IPの設定

質問

Unix Stack Exchange メンバー 皆様こんにちは。

助けてもらえますか? XenixのVirtual Box設定はDHCPベースではないため、不明です。

XenixとTCP / IPスタックをインストールしました。また、ループバックをpingできるように設定しました。デフォルトのゲートウェイ割り当て方法も調べてルータに設定しましたが、8.8.8.8やルータ192.168.1.1はpingできませんが、ループバック127.0.0.1はpingになります。

私が知っている限り、XenixはDHCPを使用できないため、Virtalboxはブリッジモードに設定されています。ブリッジモードでは、mkdev tcp内のIPアドレスを固定アドレスに設定しました。ルータ内部にMACアドレスと固定IPを用意しました。しかし、これは不可能です。また、Windows 11ホストと同じIPアドレスを試してみましたが、やはり機能しませんでした。

Lynxブラウザを使用してXenix VMを使用してGoogleにアクセスできることを確認できるように、これを実装する方法を教えてください。私が知っている限り、ループバックアドレスをpingできるので、TCPが動作しているのです。

どんなアイデアがありますか?

ジェニックス

アップデート 1/27/23: 今調べたところ、VirtualBoxにXenixに必要な3comアダプタがあることがわかりました。 Xenixのような80年代のオペレーティングシステム用に特別に設計されていますが、このオプションにどのようにアクセスできますか?数年前、私はベンチマーク技術者として働いていたときに古いISAアダプタを見続けました。

https://www.virtualbox.org/svn/vbox/trunk/src/VBox/Devices/Network/Dev3C501.cpp

virtualbox.cpp ファイル

答え1

一般的に言えば、幸運になるはずです86ボックスそしてPCapネットワーク。私は個人的に3comB(Etherlink II)またはWD8013EBTカードをシミュレートしました(ここSCOがサポートする機能を確認できます。

次のように説明されます。

  1. ジェニックスのインストール
  2. TCP / IPパッケージのインストール(およびオプションのメンテナンスアップデート)
  3. mkdev 3comB(またはmkdev wdnエミュレーションカードに応じて)適切なカード用のドライバをインストールします。正しいIRQおよびI / Oアドレスを使用してください。次に再起動すると、起動画面に認識されたデバイス(3comB)が表示され、/ dev / 3comB0が必要です。
  4. mkdev tcpシステムのホスト名とIPアドレスを設定します。あなたのブロードキャストアドレスはおそらく192.168.1.255ですので、デフォルトを受け入れないでください。
  5. /etc/tcpの構成設定が正しいことを確認してください(参照:https://virtuallyfun.com/2019/01/15/virtual-xenix-the-internet-pt-2/)ゲートウェイをデフォルトパスに設定するコマンドを追加します。あなたの場合には(あなたがしたように)次のようになりますroute add default 192.168.1.1 1
  6. /etc/resolv.confを作成し、dnsを追加します(たとえば、nameserver 8.8.8.8末尾に改行を含む)。

Xenix + TCP / IPは非常に気まぐれな組み合わせなので、時にはランダムなカーネルパニックが発生します...また、3comカードを使用するとパフォーマンスが低下し、「注:tcp sum / src」カーネルメッセージがたくさん表示されます。コンソールにスパムを送信します。問題は、ドライバーが「現代の」システムの速度をうまく処理できないことです。;遅いシステムをシミュレートするか、少なくともメッセージを隠すことでこの問題を解決できます。私は適応したSCO指令次に、次の操作を実行してカーネルのtcpprintfsパラメータを変更します。

# cd /
# adb -w xenix -
tcpprintfs/D
[should print _tcpprintfs:  1]
tcpprintfs/W 0
[should print _tcpprintfs:  0x1=    0x0]
$q
# reboot

カーネルを再リンクするたびに(またはusr/sys/inet/libinet.aから直接シンボルをパッチするたびにこのプロセスを再実行する必要がありますが、アーカイブなので、いくつかの追加手順が必要です)。

関連情報