在带联网功能的AXPbox中安装OpenVMS 8.4 Alpha

2020-11-05 04:18:07

跳到上一篇文章的主要内容,我在上一篇文章中向Tomáš向AXPboxby宣布了es40仿真器的分支,包括错误修复和返工,允许它毫无问题地安装OpenVMS8.4。从那时起,我贡献了一些补丁和文档更新,现在NetBSD也启动了(netbsd的补丁来自其他es40分支)。我也研究过网络设置,因为这是一个有点单调乏味的过程,因为pcap和linux是用于网络仿真的pcap。SIMH(其中一个很棒的VAX仿真器)在网络方面也遇到了同样的问题。本指南将向您展示如何安装AXPbox,并让OpenVMS 8.4准备好并在AXPbox中运行联网功能。这是一本很长的指南,有很多信息和输出。

我建议你阅读AXPbox wiki安装指南,将来可能会有更多关于安装OpenVMS的更新。

这本指南篇幅很大,内容很全面,我们涉及的范围很广。使用上面的内容表格跳到您感兴趣的部分。主题的顺序是明确的,这样你就可以跟上了。如果你有能力,一定要回馈AXPbox,这是我们开发开源AlphaEmulator的唯一希望。

我将从一些关于网络的内容开始。在托马斯的帮助下,我花了很长时间才弄清楚发生了什么事,为什么会这样。简单地说,AXPbox使用libpcap来模拟网络。在Linux上,主机系统不会接收axpbox生成的数据包。这意味着,如果您在台式机上运行AXPbox,您的台式机将无法与AXPbox通信,但网络上的其他系统将可以。这个问题可以通过在您的主机系统上使用2个网络接口(一个用于axpbox,一个用于常规联网)或通过VirtualBox设置来解决,我们将进一步解释。

SIMH记录了这个问题,它们具有相同的联网设置(尽管SIMH还支持TUN/TAP和VDE,它们不会受到此问题的影响)。

在使用WinPcap界面的Windows上,模拟计算机可以在同一界面上与主机交谈。在其他安装了libpcap的平台(Linux、Mac OS)上,由于主机网络栈不接收模拟器发送的数据包,因此模拟计算机不能通过选定的接口与主机交谈。解决方法是在主机中使用第二个NIC,并将它们连接到同一网络;然后主机和模拟器可以通过物理局域网进行通信。

2.11-我的Linux、OSX或其他Unix主机无法通过以太网与PDP-11或VAX通信;为什么?

这些系统上的网络堆栈自然不会接收使用pcap_sendPacket API传输的数据包……

我在桥接网络适配器方面也遇到了问题。我习惯于在使用KVM虚拟机时为创建一个桥接器,并为每个虚拟机提供其自己的TapX接口,它们可以通过这种方式直接访问网络。

由于上述原因,如果你想使用网络(你可能会这样做,玩集群是很棒的),并且你的PC上只有一块网卡,我建议你使用有两个独立网络适配器的虚拟机。在本指南中,我在我的桌面上使用Ubuntu20.04,它运行VirtualBox(为了便于使用,我在本指南中选择了它,而不是KVM)。

VirtualBox有一个带2个虚拟网络适配器的Debian 10虚拟机,第一个在VirtualBox NAT网络中,一个将由OpenVMS使用,第二个桥接到我自己的局域网,那个用来从Ubuntu通过SSH连接到DebianVM。

这台Debian 10虚拟机运行的是AXPbox,所以这有点像是在进行虚拟机初创。把你的纺纱上衣准备好。

AXPbox内的OpenVM可以连接到互联网,通过VirtualBox,您可以创建端口转发回OpenVMS。这将在后面的网络部分进行解释,包括屏幕截图。

我遇到了两个网桥接口的问题,OpenVMS无法连接到我的路由器,我的主机PC也无法连接到OpenVMS,但Tomas已将该设置与KVM配合使用,因此可能会起作用,但为了便于重现,我将重点介绍此VirtualBox NAT设置。

当我插入USB网卡适配器并将AXPbox配置为使用该适配器时,连接工作正常。如果您的PC中有多个独立的网卡,则不需要安装虚拟机。

**总结、安装VirtualBox、安装带有2个NIC、1个NAT和1个桥接NIC的Debian 10虚拟机,或在您的PC中使用多个NIC。

如果你熟悉KVM,你也可以做到这一点,根据上面的理论和解释,网络设置应该足够简单。

目前,只有一个合法选择可以获得OpenVMS安装介质,即VSI社区许可计划。填写那里的表单,您将收到一封电子邮件,其中包含VSI SFTP服务器的登录凭据。

登录SFTP服务器并下载名为ALPHA0842L1.ZIPEXE的文件。这是OpenVMS Alpha的自解压存档文件,但可以在任何操作系统上使用解压缩或存档管理器正常解压。解压缩后,您应该有文件ALPHA0842L1.ISO。

$unzip ALPHA0842L1.ZIPEXE归档文件:ALPHA0842L1.ZIPEXE警告[ALPHA0842L1.ZIPEXE]:120320个额外的字节在Zipfile的开头或内部(无论如何都尝试处理)膨胀:ALPHA0842L1.ISO$md5sum ALPHA0842L1.ISO e19f1123bdb565d9f9bb736be5314c46 ALPHA0842L1.ZIPEXE$md5sum ALPHA0842L1.ZIPEXE 2228fcd259640a16a57a6c609ec ALPHA0842L1.ZIPEXE e19f1123bdb565d9f9bb736be5314c46 ALPHA0842L1.ZIPEXE$md5sum ALPHA0842L1.ZIPEXE。

您还将收到一封电子邮件,其中包含您的许可证、PAK文件。把那个也留着吧。

或者,您也可以使用现已结束的HPE OpenVMS爱好者计划中的ALPHA084.ISO。不过,您确实需要一个不同于HPE的许可证PAK,并且您需要将Debian虚拟机内部的日期设置为追溯到您的HPE爱好者许可证仍然有效的时候。对于业余爱好者来说,它可以在AXPbox中正常工作。

这是一个托管HP ISO网站,这是另一个网站,但我不确定这些网站还能存活多久。在谷歌上搜索文件名或求助于无法律互联网协议,以获得此ISO的副本。

我将假设您在已经设置的Debian 10虚拟机中执行了这些步骤。它们对Ubuntu20.04也是一样的。

--找到了PCAP。网络支持已启用--找到SDL。已启用SDL图形支持--找到x11。已启用X11图形支持--C++编译器标志:-O3-march=ative-DNDEBUG--C编译器标志:-O3--链接器标志:--配置完成--生成完成--构建文件已写入:/root/git/axpbox/build目标Axpbox的扫描依赖项[1%]生成CXX对象CMakeFiles/axpbox.dir/src/AliM1543C.cpp.o[3%]生成CXX。_usb.cpp.o[...][95%]生成CXX对象CMakeFiles/axpbox.dir/src/gui/scancodes.cpp.o[96%]生成CXX对象CMakeFiles/axpbox.dir/src/gui/sdl.cpp.o[98%]生成链接CXX可执行Axpbox的CXX对象CMakeFiles/axpbox.dir/src/lockstep.cpp.o[100%][100%]生成目标Axpbox。

如果您有来自VSI的PAK(产品激活密钥)和业余爱好许可证,则可以方便地构建一个ISO,然后在安装后装载该ISO并在OpenVMS上运行Alpha_Community_License_PAK_XX_XXXX.COM脚本,然后再进行复制和粘贴。并不是所有的终端仿真器都能很好地处理它(速度太快),而且有了惠普许可证,它的复制和粘贴就太长了。VSI许可证似乎更短。

#为scriptmkdir许可证创建文件夹#将许可证脚本复制到该文件夹cp Alpha_Community_License_PAK_SEP_2020.COM许可证#生成该文件夹的ISO genisoImage-V许可证-o pak.iso许可证。

转换表总大小:0总Rockbridge属性字节数:0总目录字节数:0路径表大小(字节):10最大BRK空间使用量0175个写入区段(0 MB)。

稍后,当我们重新安装完OpenVMS时,我们将从ISO激活此许可证。点击此处阅读有关OpenVMS脚本、ISO和记录格式的更多信息。

综上所述,srmrom是一种BIOS,但是对于alpha和openvms来说,这是引导所必需的。它可以从HP获得,但现在不能使用了,所以我对其进行了镜像。创建一个rom文件夹并将文件下载到那里:

缩写SRM源自Alpha系统参考手册,该手册描述了Alpha体系结构和相关固件。

PALcode是分配给SRM固件提供的一组特定功能的名称。PAL代码用于提供高级操作系统或应用软件所需的低级功能,这些功能在Alpha硬件中可能无法直接使用。PAL代码是使用可用的Alpha指令和Alpha处理器实现的,尽管PAL代码在简化编程的模式下运行。PAL代码还允许访问特定Alpha微处理器实现的处理器特定功能和其他内部功能;操作系统或应用程序代码不容易访问的微处理器特定功能。

我们差不多准备好安装OpenVMS了。编译和准备之后,剩下的就是配置AXPbox了。

AXPbox有一个交互式配置提示符,您可以使用./axpbox configure调用该提示符。它会问你一系列问题,你可以在项目维基上阅读更多关于它的内容。出于本指南的目的,请使用以下配置。

将以下内容放入名为es40.cfg的文件中,该文件与二进制文件位于同一文件夹中。

Sys0=海啸{memy.bit=28;rom.srm=";rom/cl67srmrom.exe";;rom.解压缩=";rom/depressed.rom";;rom.flash=";rom/flash.rom";;rom.dpr=";rom/dpr.rom";;cpu0=ev68cb{速度=800m;}pci0.15=Ali_ide{disk0.0=file{file=";disk0.img";;ial_number=";vms";rev_number=";8.4";model_number=";OpenVMS8.3";;read_only=false;cdrom=false;autocreate_size=6000m;}disk1.0=file{file=";ALPHA0842L1.ISO";;read_only=true;cdrom=true;}}pci1.1=dec21143{适配器=";enp0s3";;mac=";08-00-DE-AD-BE-EF";;}pci0.7=ALI{MUSE.ENABLED=FALSE;VGA_CONSOLE=FALSE;}pci0.19=ALI_USB{}}。

更改适配器=#34;enp0s3&34;行以匹配您的VirtualBox NAT适配器。也就是说,不是具有您要连接的Debian VM的IP的NIC,而是具有内部VirtualBox网络的NIC。在我的示例中,enp0s8是桥接适配器,enp0s3是NAT适配器。

确保ALPHA0842L1.ISO安装ISO与二进制文件和此配置文件位于同一文件夹中。如果您忘记放置该文件,您将收到以下提示:

Pci0.15(Ali_Ide).disk1.0(File):无法打开文件ALPHA0842L1.ISO!仿真器故障:运行时异常:pci0.15(Ali_Ide).disk1.0(File):文件不存在且未设置autocreate_size:/root/git/axpbox/src/DiskFile.cpp,第124行分段错误。

我的设置是1800 MHz cpu.Speed和30位内存(1 GB而不是256MB)。对于本指南,我将推荐默认值(800 MHz和256MB)。

如果要跳过启动时的内存测试(节省几分钟的引导时间),请在CPU块的iCache行下面添加以下内容:

请注意,这将导致OpenVMS安装失败,因此请在安装完成后添加该行。

Pci0.15(Ali_Ide).disk0.0(文件):无法打开文件disk0.img!pci0.15(Ali_Ide).disk0.0(文件):写入6,000 1KB块:100%pci0.15(Ali_Ide).disk0.0(文件):6,000 MB文件disk0.img created.pci0.15(Ali_Ide).disk0.0(文件):已装载文件disk0.img,12288000 512字节块,15360/16/50。

如果一切设置正确,仿真器应提示您连接到telnet端口:

连接到仿真器提示符指定的telnet端口(将10.0.0.8替换为Debian VM的IP)。

$telnet 10.0.0.8 21264正在尝试10.0.0.8...连接到10.0.0.8。转义字符是';^]';。这是ES40 EmulatorOpenVMS PALcode V1.98-104、Tru64 UNIX PALcode V1.92-105上的串行端口#0在CPU 0[...]256 MB系统内存上启动控制台测试系统测试NetworkAlphaServer ES40控制台V7.3-1,构建于2007年2月27日12:57:47P00>;>;

如果您看到P00>;>;>;提示,请继续。如果您得到崩溃,断开连接或段故障,检查仿真器选项卡,它有一个错误什么是错误的。

在我们的示例中,DQB0具有安装磁盘,而DQA0是我们的根磁盘。引导安装ISO:

(启动dqb0.0.1.15.0-标志0)dqb0.0.1.15.0的数据块0是一个有效的启动数据块,从dqb0.0.1.15.0中读取1230个数据块,引导程序代码Read inbase=200000,IMAGE_START=0,IMAGE_BYTES=99c00(629760)在2000处初始化HWRPB在ff56000处初始化页表初始化机器状态设置与主CPU的亲和性跳转到引导程序代码OpenVMS(TM)Alpha操作系统,版本V8.4-。

正在安装所需的已知文件...。正在配置设备...%EWA0,控制台%EWA0设置的自动协商模式,链路状态:UP%EWA0,自动协商(内部)开始%EWA0,选择全双工100base TX连接。

****您可以安装或升级OpenVMS Alpha操作系统,也可以安装或升级OpenVMS Alpha分发介质(CD/DVD)上包含的分层产品。您还可以执行DCL命令和过程来执行独立任务,如备份系统磁盘。请选择以下选项之一:1)升级、安装或重新配置OpenVMS Alpha版本V8.4-2L1 2)显示此过程可以安装的分层产品3)安装或升级分层产品4)显示已安装的产品5)重新配置已安装的产品6)删除已安装的产品7)查找、安装或撤消修补程序;显示或删除恢复数据8)执行DCL命令和过程9)关闭此系统输入选择或?寻求帮助:(1/2/3/4/5/6/7/8/9/?)。

OpenVMS Alpha分发介质上提供了以下补丁包。-VSI AXPVMS TCPIP_NFS_PAT V5.7-ECO5A修补程序压缩VSI AXPVMS TCPIP_SSH_PAT V5.7-ECO5D修补程序压缩。发行说明和附函,以确定您的系统是否需要任何或所有这些补丁程序。按Return键继续...。

按回车键,如上所述。系统将询问您是否要格式化磁盘:

***此过程将询问一系列问题。()-附上可接受的答案[]-附上默认答案键入您的回答,然后按<;Return>;键。键入:?-重复解释^-更改先前的输入(并非总是可行)Ctrl/Y-要退出安装过程,有两种安装/升级选择:Initialize-删除目标磁盘上以前存在的所有软件和数据文件,并安装OpenVMS Alpha。保留--在目标磁盘上安装或升级OpenVMS Alpha,并保留目标磁盘的所有其他内容。*注意:您不能在安装了任何其他操作系统的磁盘上使用PERVERE安装OpenVMS Alpha。这包括其他体系结构的OpenVMS实现。是要初始化还是要保留?[保留]。

您必须输入将安装OpenVMS Alpha的目标磁盘的设备名称。输入目标磁盘的设备名称:(?选择)?Device Device Error Volume Free Transans Mnt Name Status Count Label Block Count CntDQB0:mount wrtlck 0 ALPHA0842L1 936 81 1DQB1:Offline 1DVA0:Offline 0DQA0:Online 0DQA1:Offline 1DAD0:Online 0输入目标磁盘的设备名称:(?供选择)DQA0。

如果要群集,则每个磁盘都必须有唯一的名称。我倾向于使用系统主机名作为系统盘名。在本教程中,只需按回车键即可获取默认设置:

目标系统盘可以用盘上结构级别2(ODS-2)或级别5(ODS-5)进行初始化。(?。有关详细信息)您要使用ODS-2还是ODS-5进行初始化?(2/5/?)5。

Files-11是五个独立文件系统的总称,称为磁盘上结构(ODS)级别1到5。

ODS-1是RSX-11操作系统使用的平面文件系统,受较旧的VMS系统支持以实现RSX兼容性,但从未用于支持VMS本身;它在很大程度上已被ODS-2和ODS-5所取代。

ODS-2是标准的VMS文件系统,并且仍然是系统盘(安装操作系统的盘)最常用的文件系统。

尽管ODS级别指定很少提及ODS-3和ODS-4,但ODS-3和ODS-4分别是对CD-ROM ISO 9660和High Sierra格式文件系统的Files-11支持。

ODS-5是Alpha和IA-64平台上提供的ODS-2的扩展版本,它增加了对使用非ASCII字符保留大小写的文件名的支持,并改进了分层目录支持。

您已选择在新磁盘上安装OpenVMS Alpha。目标系统盘DQA0:将使用结构级别5(ODS-5)进行初始化。将启用硬链接。该磁盘将标记为ALPHASYS。目标系统磁盘上当前的所有数据都将丢失。这样可以吗?(是/否)是。

输入系统用户的密码。由于这与Linux上的root帐户或Windows上的Administrator帐户相同,因此请使其成为一个好帐户。

您必须输入系统帐户的密码。密码的长度必须至少为8个字符,并且不能超过31个字符。将进行检查和验证。系统不接受容易被猜到的密码。密码不会在您输入时显示。系统帐户密码:重新输入系统密码进行验证:

此系统是否将成为OpenVMS群集的成员?(是/否)现在,此系统是否为OpenVMS Galaxy中的实例?(是/否)否。

接下来是两个DECnet网络问题。首先是关于这个的更多信息,背景理论。因为我们将在未来的文章中建立一个集群,所以现在我们必须说明这一点。

对于SCSNODE名称-主机名,如果您愿意的话-您必须记住只使用6个字符或更少。SCSSYSTEMID稍微复杂一些。它是通过公式X*1024+Y计算的,其中X是DECnet区域编号,Y是该区域中的DECnet节点编号。

既然我们是从头开始,我们可以使用X=1;作为节点号,正确地考虑这一点是有意义的。有用提示:使用您想要分配给这台机器的IP地址的最后一个八位字节!因为我想把IPs10.0.2.131和10.0.2.132赋给节点,所以我会把这个设为Y=131,下一个设为Y=132。这给我们留下了这个安装的SCSSYSTEMID1155和DECnet代码1.131。稍后用于集群的另一个VM将获得1156SCSSYSTEMID1156AS SCSSYSTEMID1DECnet代码1.132。

此节点将命名为U1,稍后将命名为U2上的第二个节点。为什么?因为它很短。

要使系统正常运行,必须设置两个参数:SCSNODE和SCSSYSTEMID.SCSNODE可以是1到6个字母或数字。它必须至少包含一个字母。如果您计划使用DECnet,SCSNODE必须是DECnet阶段IV节点名或DECnet-Plus(阶段V)节点同义词。如果您有多个OpenVMS系统,则每个系统上的SCSNODE必须是唯一的。

输入SCSNODE:u1如果您计划使用DECnet,则必须根据DECnet第四阶段地址设置SCSSYSTEMID。

您是否计划使用DECnet?(是/否)[是]DECnet第四阶段地址的格式为DECnet_AREA_NUMBER。DECnet_NODE_NUMBER DECnet_AREA_NUMBER是一个介于1和63之间的数字。DECnet_NODE_NUMBER是介于1和1023之间的数字。如果您计划使用没有第四阶段兼容地址的DECnet,请输入0.0。

SCSSYSTEMID将设置为1156。计算如下:(DECnet_Area_Numb。

.