返回资讯中心
外部精选
软件工程
#开发者实时流

MoofTCP:为 68k Mac 提供的 MacTCP 现代替代方案

来源标题:MoofTCP – A modern replacement for MacTCP on 68k Macs

开发者推出 MoofTCP,一个面向运行 System 6 的 68k Mac 的 MacTCP 替代品,采用便携 C 语言从头编写的 TCP/IP 协议栈,并附带控制面板、安装器和 DHCP 客户端。它兼容 MacTCP 的 .IPP 驱动接口,现有程序无需修改即可运行,同时提供不含 DHCP、可节省约 5 KB 内存的 Lite 版本。

Hacker News 最新marcusbasant2026/11/6 · 5 天前15 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

MoofTCP——68k Mac 上 MacTCP 的现代替代品

为运行 System 6 的 68k Mac 提供一个现代、节省内存的 MacTCP 替代品。MoofTCP 是 Apple MacTCP 的直接替代品。为 MacTCP 编写的程序无需修改即可在其上运行,但其底层是一个用可移植 C 从头编写的新 TCP/IP 协议栈,并自带控制面板、安装程序和 DHCP 客户端。它是为配备 4 MB 内存的 Mac Classic 打造的,因此每一个字节都至关重要。

MacTCP 很出色,但它已经老旧了,在配备 4 MB 内存、使用 BlueSCSI 这类 SCSI Wi-Fi/以太网适配器的 Mac Classic 上,它响应缓慢、占用内存大,而且设置起来很麻烦。MoofTCP 的目标按优先级排列如下: ……同时占用的常驻内存不超过 MacTCP。

直接替代兼容。实现 MacTCP 的 .IPP 驱动接口(TCP、UDP、ICMP echo)以及 dnrp 名称解析器。你现有的 MacTCP 程序可以直接工作。

DHCP 或固定地址。在控制面板中任选其一。无需再管理静态 IP。

MoofTCP Lite。不带 DHCP 的版本,可节省约 5 KB 系统内存,适合内存紧张的机器。一个安装程序同时包含两者;通过一个复选框选择使用哪个版本。

友好的安装程序。它会把 MacTCP 的文件移到一边,安装 MoofTCP,而其“移除”按钮会把一切精确恢复原状。中断的安装可以自我修复。

支持 MultiFinder。退出曾打开过连接的应用时,会自动清理。

内置诊断。可选的内存日志和一个小型 MoofDiag 工具,用于提交缺陷报告。

可移植的核心。core/ 中的 TCP/IP 协议栈不使用 malloc,也没有全局状态,并在桌面上通过 sanitizer 和 fuzzer 进行了测试。

截图 安装程序 MoofTCP Lite 面板

快速开始 从 Releases 页面下载 MoofTCP-1.0.dsk、MoofTCP-1.0.hqx 或 MoofTCP-1.0.sit,并将其传到你的 Mac 上(BlueSCSI 共享文件夹是个不错的选择)。 打开 MoofTCP Installer,保持 Lite version (no DHCP) 未勾选,然后点击 Install。 重启 Mac。 打开 Control Panels、MoofTCP,输入你的 IP 地址、掩码、路由器和 DNS 服务器(或勾选 Get the address by DHCP),然后保存。 再次重启。你已上线。 要回到 MacTCP,运行安装程序并点击 Remove。发行版中的 Read Me 文件包含详细信息,包括如何在 MoofTCP 和 MoofTCP Lite 之间切换。

经测试,StuffIt Lite 3.6 可用于解压 .hqx 包。

一台运行 System 6.0.8 的 68k Mac(这是经过测试的版本)。如果在其他版本上可用,请反馈! 一个提供 .ENET0 驱动的以太网适配器,例如配备 DaynaPORT 的 BlueSCSI v2 WiFi。MoofTCP 不包含以太网驱动。

兼容性 已在真实的 Mac Classic(System 6.0.8、4 MB、配备 DaynaPORT 的 BlueSCSI v2 WiFi)以及 Snow 模拟器中测试。 有程序无法运行?请提交 issue(见下文)。

MoofTCP MoofTCP Lite 驱动代码 95,623 字节 90,722 字节 首次打开后的空闲系统堆(真实 Mac Classic,单 Finder,完整版本) 约 30.7 KB 不适用 MultiFinder 会按需增长系统堆,因此那里的空闲内存变化更大。

MoofTCP 会在内存中保留一份小型诊断日志。如果某个程序行为异常但 Mac 仍在运行,请立即运行 MoofDiag(它位于发行版的 diagnostic tools 下载包中),并提交一个 issue,附上它在自身旁边写出的 MoofDiag.out 文件,以及关于你当时在做什么的说明。也欢迎让你的 LLM 分析代码库和诊断输出,并提交修复 PR。

不支持 IPv6。 仅在 System 6.0.8 上使用 DaynaPORT 以太网驱动测试过。 DHCP 是基础实现:没有租约 RELEASE,没有 INIT-REBOOT,也没有地址冲突探测。在其运行期间,程序无法使用 UDP 端口 68。如果没有 DHCP 服务器,首次打开会等待约 10 秒然后失败。

从源码构建 你只需要 Docker。固定版本的 Retro68 交叉编译器镜像会自动拉取。 scripts/build-mac.sh MoofTCP # the MoofTCP file -> build-mac/moof/ MT_LITE=1 scripts/build-mac.sh MoofTCP # MoofTCP Lite -> build-mac-lite/ scripts/release.sh --force 1.0 # one installer with both -> dist/MoofTCP-1.0.{dsk,hqx,sit} release.sh 还需要 hfsutils、macutils、unar、gcc 和 Python 3。 可移植核心和胶水逻辑会在你的桌面上用 gcc 和 CMake 测试(默认开启 AddressSanitizer 和 UBSan): cmake -S . -B build && cmake --build build ctest --test-dir build --output-on-failure cmake -S . -B build-lite -DMT_NO_DHCP=ON # the Lite configuration 模拟器测试(Snow)需要 Apple 系统软件和 BlueSCSI DaynaPORT 镜像。这些不在本仓库中,你必须自行提供;scripts/ 中的脚本(setup-home.sh、golden-stage.sh)展示了预期要求。

core/ 可移植 TCP/IP 协议栈(无 malloc、无全局变量),在主机上测试 mac/ Mac 胶水层:.IPP 驱动、INIT、解析器、控制面板、安装程序、诊断应用 tests/ 主机测试(ctest),包括 fuzzer scripts/ 构建、发布、模拟器和硬件会话脚本 tools/ 固定工具版本;tools/sit 是一个小型 StuffIt 格式写入器

贡献 欢迎缺陷报告、兼容性报告(“程序 X 可用/不可用”)和 pull request。对于代码更改,请阅读 CONTRIBUTING.md 并先运行主机测试(见上文)。CLAUDE.md 是代码及其规则的详细地图。安全问题:见 SECURITY.md。

Retro68 用于 68k 交叉编译器。 Snow 用于测试所运行的 Mac 模拟器。 BlueSCSI 和 DaynaPORT 用于本项目围绕其构建的网络硬件。 Claude Code 被用于开发此项目,并由人类进行规划和测试。

TODO 随着我们实际使用,在真实硬件上进行更全面的烧机测试 以类似方式重制 Daynaport(敬请期待 MoofPort) 审查 BlueSCSI 代码库,寻找更紧密集成以提升性能的机会 还有进一步算法优化的潜力,可在更小或更旧的系统上提升性能。

许可证 MIT。“MacTCP”和“StuffIt”是其所有者的商标,此处仅用于描述兼容性。MoofTCP 不包含任何 Apple 或第三方代码;构建它使用的是 Retro68 工具链中随附的 Apple 接口。

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →