HN | 📄 原文链接 | 2026-07-14 收录

在 Sega 32X 上运行 Linux:谁还需要硬件同步原语?

来源:cakehonolulu.github.io — cakehonolulu — 2026-07-13

📋 概述

继在 Atari Jaguar 上运行 Linux 之后,作者 cakehonolulu 成功将 Linux 移植到了 Sega 32X(1994 年发售的 Genesis/Mega Drive 扩展模块)。32X 拥有两颗 23MHz 的 Hitachi SH2 处理器和一颗 68000,但仅有 256KB 系统 RAM + 64KB VRAM——远不足以运行 Linux。

作者利用 Krikkz 烧录卡的 SSFv2 mapper 功能将 4MB ROM 映射为可写 RAM,并通过交叉编译 sh2eb-elf 工具链、修复 GCC 内部错误和寄存器冲突问题,成功让内核启动。最惊人的成就是:在 SH2 没有硬件同步原语(无 TAS 指令、无缓存一致性)的情况下,使用 Peterson 算法纯软件实现 SMP,让两颗 SH2 同时运行,并以 68000 作为总线仲裁器和 IPI 路由器。最终在实机上输出了 Linux 控制台画面。

🔑 核心要点

💡 金句

Performance is abysmal, bus contention is bonkers; but it does work, and that's fine by me.
← 返回 HN 首页