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에서 직접 기호를 패치할 때마다 이 프로세스를 다시 실행해야 합니다. 그러나 아카이브이므로 몇 가지 추가 단계가 필요합니다).

관련 정보