Sparc ScreenFetch

SPARC 的(并不)顺利怀旧之旅

近日从海鲜市场喜提一台末代升阳微系统旗舰机型(Sun Ultra 45),这台机器开始了我的倒霉小众架构怀旧之旅。

(本来该是)二十分钟的大冒险

在某个周六的下午。这趟(并不)快乐的旅程开始了,一开始的预测是简简单单进行一个系统的装,然后就可以欢快的去吃晚饭。机器本身的表现不错,除了二十多公斤的重量让人搬运十分痛苦。插电,接显示器,开机一路都很顺利(这台机器配备的是 XVS300,接口是 DMS59,一根简单 VGA 拆分线就能解决,如果是沟槽的 13W3 接口,那祝你在寻找支持绿色同步的显示器的旅途上过的愉快),但是这就是顺利进行的最后一步了。原装的吸入式光驱发挥了吸入式光驱的传统美德,吃了吐吐了吃,最后还是没吃下去。而 Sun4U 老旧的 OpenBoot 并不支持从 USB 启动。于是我们试图使用网络启动,但这些老机器基本上都不支持现代的 DHCP,因此你需要配置 TFTP 和 RARP,然后找一个安装好的 SPARC 架构的 Debian 或者 Gentoo(或者如果你想要 Solaris 的话,一个安装好的 Solaris 也可以)

我们手头并没有这种东西,因此采用了另一个办法——通过 Qemu 安装好系统,然后将安装好的磁盘镜像复制到真实磁盘上。道理上来讲这应该是个很快能做完的事,直到我们发现这 Qemu 性能怎么这么低啊。Qemu 的 SPARC 模拟只有 Sun4U 默认模式能单核启动,且仅支持 IDE 总线,不支持 USB,因此安装速度奇慢无比。安装后需要手动按照 OpenBoot 路径修改 Grub 配置,否则内核会找不到路径而爆炸。

Debian 大爆炸

我们一开始试图安装 Ports 里的 Debian 12和13混合体,但是这个版本在安装到一半时就会包损坏且无法修复,于是选择在 Ports 里次新的版本 10,这个版本倒是能够安装成功,但是 netinstall 不连接软件源缺少关键软件,如 dhcpcd 和 openssh-server,但是更新上去之后会有同样的包损坏问题,所以必须使用非常慢的 Debian Snapshot 进行安装,继续折磨。

在从慢如龟爬的软件拉取过程之后,我们终于拿到了 gcc 等软件,成功进行了一个娱乐跑分软件分的跑,成绩竟然比某些现代架构还高。

但这并不是结束……

二回战

我突然想起来我在深圳某人处还有一台久未开机的 Sun Enterprise T5220,因此将其取了回来,好消息是这次光驱胃口比较好,不会吐碟。

但是由于 Sun4V 架构的虚拟化功能,Logical Domain,只被 Solaris 和 OpenBSD 支持,而这两者的可用软件数量只能说是旗鼓相当的对手,因此选择了 Solaris 作为基础系统,Solaris 的安装过程倒是没出现什么问题,但是到了启用 ldmd (Logical Domain 管理程序)的时候无论如何也无法启用,查询后发现该机器 PROM 版本过低,需要升级,但是 Oracle 提供的升级需要购买维保服务,甚至 Google 也无法找到升级包。但,在找开心版软件方面,你永远可以相信俄国人。通过 Yandex 搜索,在 RuTracker 一个奇怪的角落里找到了一个神必 Mega 链接,下载到了 ilom 固件。从 ssh 连接到 ilom,启动刷写过程,等待完成并自动重启后,Solaris 的 ldmd 即可成功启用。

但这并不是最难绷的环节,由于 ldom 的特性,创建虚拟机需要先从主系统中释放资源,而这个释放资源的过程里的限制也是有点类人的——它并不是要求系统剩余内存资源是 256M 的倍数,而是要求减少的资源是。解决这个问题之后虚拟机成功启动了。

这里还有一个鬼故事,升级固件后,linux 无法从裸机启动。升级之前可以裸机启动但无法启动虚拟化功能,只能说越是企业级设备越能让你起夜的定律还在发力。

附加内容:死人架构和 RIIR 神人

如果说 ARM64/AMD64 架构折腾难度为1的话,信创平台的难度大概是1.5,而 Power 平台大概是2,多出的难度主要来自于 IBM 又臭又长没人想读的手册和奇怪的硬件需求(比如内存必须插8或16根)。而 SPARC 这些死人架构难度则是 5-100。SPARC 在一众死人架构中还算活的好的,由于支持持续到 2031 年,而且甚至有人给 Solaris 11.4 移植了相当新的 Go 和 Rust,这位选手在一众死人架构中还算比较能用的。而隔壁的 IA-64(Itanium/EPIC)则是在去年年中的 Linux/GCC 开除人籍,年底的 HP-UX 停止维护以及昨天的 Windows Server 2008 R2停止维护后,彻底成为了还剩 0 个操作系统支持的死人。甚至更早死去的 HP-PA 以及 Alpha 生存状况都比 Itanium 好些。

某种意义上说,架构大战最终随着大型机业务的死亡结束了,x86、ARM64 以及 RISC-V 之外的架构已经在通用计算领域事实上死亡(可能活人还包含一个 LoongArch,SW-64 只能算半个)。MIPS 公司已经全力投入 RISC-V 开发、POWER 架构处于维护状态、s390x 已被发配班加罗尔、SPARC 被甲骨文和富士通事实性放弃,等待支持期结束。

而 RIIR 神人们推动的基础软件 Rust 化正在彻底杀死这些老架构,APT 在明年即将因为对 Sequoia PGP 的支持强制要求 Rust,Python Cryptography 也即将换成 Rust 实现。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注