RS/6000上的PowerPC Solaris

2020-05-29 05:19:33

以下是PA8600/PA-RISC的客座帖子!谢谢你写了这篇令人难以置信的关于超级稀有Unix的文章!

计算机领域最诡异的时期之一是在90年代中期,当时主要的RISC供应商都有自己的计划来主导消费者市场,并最终消灭英特尔。这是一个旨在消灭PC的高价非x86系统、Windows NT被移植到非x86平台、PC风格的硬件与RISC CPU配对、苹果将IBM服务器的处理器系列放到Mac上,以及Silicon Graphics为任天堂设计游戏机的时代。虽然他们的尝试在嵌入式领域为MIPS和AIM联盟创造了奇迹,但这些打入主流的尝试中有相当一部分是彻底失败的。

尽管如此,在此期间发布了一些奇怪的产品,大多数人认为这些产品只存在于科技杂志的广告和评论中。其中一个这样的产品是用于PowerPC的Solaris。现在Solaris已经在Intel平台上存在很久了,Illumos分支有一些有趣的端口,包括DEC Alpha端口,但是PowerPC CPU体系结构有一个被遗忘的官方端口。与OS/2不同的是,它是完整的,并且有一个网络堆栈。它也可能是PowerPC平台上最奇怪的操作系统之一。

它是一个小端的32位PowerPC Unix,可能是唯一运行在32位模式下的操作系统。Windows NT和OS/2(IIRC)是其他32位PowerPC小端操作系统,而Linux是64位小端操作系统。

这是一个访问权限有限的版本,但感觉就像一个发布的产品一样精致。

与AIX不同的是,它被设计为在各种硬件上运行,如果销售更多的PPC硬件,它还有扩展的空间。例如,您可以随机添加一个3Com ISA NIC,它实际上可以与之配合工作。

我将演示关于装配硬件的可能最奇怪的完整PowerPC操作系统:IBM RS/6000 7020 40P,也称为Power Series 440(6015),代号为“SandalFoot”。该系统是一台基于PowerPC 601的机器,在LPX风格的外壳中采用PCI和ISA总线。这也是为数不多的能够运行它的机器之一。所有屏幕截图都来自VGA2USB卡,因为仿真器只能运行AIX。

要运行Solaris,系统要求就像Windows NT for PowerPC一样。你需要一台准备机(PowerPC参考平台,根据维基百科,不要与HIV预防药片或PrEP混淆)。现在,寻找一台预备机可能是为PowerPC设置Solaris的最困难的部分,也是理解为什么您需要了解一些PowerPC平台的历史的原因。

到目前为止,PowerPC硬件最大的问题之一是每台机器的引导方式完全不一致。虽然Alpha机器有SRM/ARC,SPARC机器有OpenBoot,但每个供应商都有自己的启动PowerPC机器的方式,尽管推出了标准。

基本上有两个不同的阵营在制造PowerPC机器,IBM和苹果。IBM的通用PowerPC机器计划由行业标准的低成本机器组成,这些机器围绕PowerPC CPU、芯片组和大量从PC平台升级的支持组件,以及PCI和ISA。CHRP和PREP标准实质上是装有PowerPC处理器的PC。IBM的计划是,总有一天你会用PowerPC机取代你的PC。Windows NT被移植到PowerPC平台,OS/2有一个命运多舛的端口,以及少数第三方Windows NT PPC机器被出售,这一事实巩固了这一点。

另一方面,苹果希望用PowerPC CPU制造Mac电脑。较旧的Power Mac没有PCI插槽或Open固件,只有从经典68k Mac继承而来的NuBus插槽。事实上,大部分引导和操作系统代码都是仿真的68k代码。后来,苹果将从PowerPC标准中移除他们喜欢的一些东西,如Open Firmware、PCI,甚至克隆产品上的PS/2和VGA端口。苹果的计划是用Mac取代PC,而Mac Clones在LPX主板上采用了苹果风格的硬件。虽然PCI克隆以开放固件为特色,但这个版本的设计是为了从ROM加载Macintosh Toolbox,同时通过添加启动Mac OS X/Rhapsody或BeOS等功能来“预防”它们。

尽管有这些相似之处,Mac电脑是它们自己的计算机,在内部与IBM系统完全不同,除了共享相同的CPU,后来可能还会共享Open固件。但即使是带有Open Firmware的Mac也不能从为IBM系统格式化的硬盘引导,反之亦然。这是安装PowerPC Linux的常见问题,因为许多安装程序不检查它们在哪台机器上运行。此外,与现代的英特尔Mac不同,PPC Mac被设计为只引导专门为其编写的操作系统。他们不能运行任何专门为IBM机器编写的操作系统。

PPC机器之间的混乱也导致论坛上弹出一个问题,“我如何在我的Mac上安装PowerPC Windows?”即使在今天,新的OpenPOWER/PowerNV机器也使用与IBM硬件不同的引导加载程序,并且完全没有开放固件。

无论如何,IBM在RS/6000、pSeries和Power等几个品牌下构建了几代不同的PowerPC UNIX计算机。几乎所有的系统(除了Linux型号)都将运行AIX,以后的系统也将运行IBMi。然而,并不是所有的PowerPC IBM硬件都可以运行为PREP硬件设计的操作系统。

要运行这些旧的准备操作系统,您需要查看1994-95年期间的一组非常特定的机器,其中许多机器没有大多数RS/6000机器的特征诊断显示。要运行PowerPC Solaris,这里也大同小异。您需要一台RS/6000 40P或7248 43P(不是显示器的后140和150)。罕见的PPC ThinkPad和个人电脑Power Series机器也将运行Solaris。它还与摩托罗拉的PowerStack机器兼容,一位BetaArchive用户有幸在VME板上运行它。尽管至少40p的固件文件已经存在,而且在QEMU中已经做了一些努力,但在撰写本文时,很难找到这些机器,而且还没有进行仿真。

我的电脑配备PowerPC601CPU、192MB内存(最大)、Weitek P9100显卡(品牌为IBMS15 IIRC)和非IBM3Com网卡。3Com网卡存在系统问题,因为在引导期间,如果网卡连接到网络,系统将拒绝完全引导,并将冻结或BSOD(在NT中)。该NIC在AIX上也不受支持,最终需要更换。

奇怪的是,不仅IBM40p/7020/6015没有在HCL中列出,而且它使用的网卡也在HCL中。众所周知,SandalFoot系统用于早期的prep OS开发,这是有意义的。与RS/6000型号250不同,40P具有PCI和ISA总线以及早期PowerPC机器相同的601CPU。

要安装PowerPC Solaris,首先需要制作引导软盘。这在PREP操作系统中并不少见。PowerPC Windows NT还需要ARC加载程序的引导软盘。这里的不同之处在于有两张引导软盘;一张用于摩托罗拉机器,另一张用于IBM机器。即使在PowerPC上,这也并不罕见,Moto Powerstack和Apple Network Server计算机都需要定制的AIX安装介质,而Windows NT为每台PPC计算机都有特定的HAL。

在Motorola PowerStack机器上,您需要用于安装AIX的相同固件,而不是用于NT的ARC固件。在IBM机器上,这要容易得多,您只需制作软盘并将其插入即可。然后您按下电源开关,您将最终转到Open Firmware提示符。因为这些IBM机器没有Open Firmware,所以每次您引导机器时,Bootloader都会从软盘或硬盘加载Open Firmware。请记住,即使这些机器上加载的系统管理服务也是软盘。

然后,您遇到了安装操作系统的第一个大障碍,“磁盘”和“网络”被映射到非常具体的设备,如果这些设备的SCSI ID不同,它将无法引导。如果光驱不在ID 3,硬盘也不在ID 6,命令将不起作用。您需要设置一个环境变量,并告诉它在第一次安装时手动从这些磁盘引导。

启动操作系统类似于在Sun上启动,但安装程序类似于英特尔版本。发生的第一件事是您等待低速光驱加载操作系统,因为屏幕变成了Open Firmware白色。您需要设置终端类型,然后在加载X之前设置视频和鼠标输入。视频选项仅限于S3864/928、威特克P9000和P9100以及Moto的Cirrus Logic GD5434。请注意Power Series 440(6015)/RS6k 7020 40P的代号为“SandalFoot”。

一旦您在Solaris中输入此命令,它将在Sun或Intel机器上启动加载X,并且安装程序将完全相同。此阶段非常平淡无奇,因为慢速CD驱动器会将文件复制到硬盘。我没有拍很多这部分的屏幕截图,因为你可以用QEMU或旧的SPARCStation获得同样的体验。您可以设置网络信息,对硬盘进行分区,选择想要的内容,然后在安装时袖手旁观。

然后,您将被放入Open Firmware Bootloader,如果“引导盘”不能自动引导操作系统,您将输入正确的命令使其引导。

但是,安装并未完成。下一步是交换CD并安装GUI。默认安装会将您拖到命令行,使用第二张磁盘,您可以安装OpenWindows和CDE,并获得完整的工作桌面。登录,切换CD,切换到正确的目录,然后运行安装程序。

完成此操作后,只需键入reboot,一旦登录,您将进入与Solaris2.5.1在任何其他平台上的安装一模一样的桌面,只有一个不同之处。实际上没有第三方软件,多年来几乎没有为其制作软件的方法。您只能使用普通的OS和Solaris2.5.1附带的任何实用程序。您还需要使用OpenWindows,CDE在601CPU上要慢得多(但不像AIX4.3那样慢)。平台目录还告诉您它可以在哪些IBM机器上运行,并且所有RS/6000的标题都是PPS。6015是40P,6040和6042是ThinkPad型号830和850,6050/70是7248 43P的个人电脑Power Series变种,PowerStacks非常不言自明。

在很长一段时间内,那些碰巧拥有一台预备机的人忽略了Solaris for PowerPC,原因有一个:它没有编译器。编译器可能是任何操作系统中最重要的部分,因为它允许人们为其编写代码。和当时的UNIX操作系统一样,编译器是单独出售的。对于任何广泛分发的UNIX,这都不是太大的问题,因为GCC或其他第三方编译器是为该平台而存在的。此外,这些商业UNIX操作系统的大多数编译器最终都被在线转储。

由于端口的默默无闻和稀有性,Solaris for PowerPC很久以来都缺少这两种功能。但在2018年,Tenox挖出了官方编译器,但这一点在一段时间内仍然没有引起注意。这导致其他人在Solaris上试验交叉编译,并设法编译PowerPC Solaris软件。然后,他们发布了Solaris2.5.1 for PowerPC的GCC移植版,同时发布了如何编译的说明。

要使用GCC for Solaris,您需要解压缩编译器,将其添加到路径中,然后符号链接GCC最终要查找的几个文件。BetaArchive帖子中讨论了这一点,但我将在这里引用它。

$ls-l/opt/ppc-gcc/lib/gcc-lib/powerpcle-sun-solaris2/2.95/总计13224-rwxr-xr-x收集1个垃圾桶:5157747 2月16日10:30 cc1--rwxr-xr-x收集1个垃圾桶:404074 2月16日10:30集合2-rwxr-xr-x收集1个垃圾桶:453525 2月16日10:30 cpp-rw-r--r--{##**$$}453525 2月16 10:30cpp-rw-r--r--{##**$$}{##**$$}1}{##**$$}{##**$$}2月16 10:30。ecrti.o-rw-r--r--1垃圾桶:673012 2月16日10:30 ecrtn.o drwxr-xr-x;3垃圾桶:10242月16日10:29包括-rw-r--r--1垃圾桶垃圾桶:673012 2月16日10:30 libgcc.a drwxr-xr-x{2。:4212 2月16日10:30 scrt0.o-rw-r--r--将1个垃圾桶放入垃圾桶,至1360 2月16日10:30;o-rw--r--将1个垃圾箱放入垃圾箱,至1104 2月16日10:30 scrtn.o-rw-r--r--将1个垃圾桶放入垃圾箱,至7868 2月16日10:30。/usr/ccs/lib/Values-Xa.o lrwxrwxrwx:1根目录和其他目录2月24日22 21:36 Values-Xc.o->;/usr/ccs/lib/Values-Xc.o lrwxrwxrwx和1个根目录目录其他目录2月24日22 21:36 Values-Xs.o->;/usr/ccs/lib/。/usr/ccs/lib/Values-Xt.o lrwxrwxrwx:1根目录和其他目录,2月26日22 21:37 Values-xpg4.o->;/usr/ccs/lib/Values-xpg4.o$。

这样做之后,您现在至少可以用GCC编译C代码了。这意味着用于PowerPC平台的Solaris现在是一个可用的操作系统,只是它没有任何预编译的软件。即使是Windows NT for PowerPC也有更多的软件可供其使用。现在可以使用GCC或原始编译器编译软件,并可以在非ppc机器上与GCC交叉编译。使用交叉编译器还可以编译更多用于编译PPC Solaris代码的基础知识,比如make。在这个屏幕截图中,您还可以看到我编译了一个基本的“字节序测试”代码示例,以演示PowerPC端口的小字节序。

唯一的问题是,在有人制作预备机模拟器之前,人们几乎不会感兴趣。现在二手市场上很难买到PREP硬件,虽然在21世纪初可能很容易找到类似特定RS6K的东西,但从eBay的列表来看,MCA、CHRP甚至后来的PREP型号(如43P-140)比早期正在流通的PREP机器要多得多。QEMU可以在一定程度上模拟40p,但是目前它的40p模拟不太像实际的40p,而更像是取悦AIX的东西。不过,它绝对有“小端PowerPC Unix”的新奇之处。