返回资讯中心
外部精选
软件工程
#社区热议

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

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

开发者推出MoofTCP,一个专为运行System 6的68k Mac设计的MacTCP兼容替代品,采用便携C语言从零重写的TCP/IP协议栈。它完全兼容现有MacTCP程序,自带控制面板、安装器和DHCP客户端,并针对4MB内存的Mac Classic优化,提供节省约5KB内存的无DHCP精简版。其常驻内存不超过MacTCP。

Hacker Newsmarcusbasant2026/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 很棒,但它太老了,在配备 BlueSCSI 这类 SCSI Wi-Fi/以太网适配器的 4 MB Mac Classic 上,它响应慢、吃内存、设置也麻烦。MoofTCP 的目标依次是: ……同时占用的常驻内存不超过 MacTCP。 即插即用兼容。实现 MacTCP 的 .IPP 驱动接口(TCP、UDP、ICMP echo)以及 dnrp 名称解析器。你现有的 MacTCP 程序直接就能用。 DHCP 或固定地址。在控制面板里二选一。不用再管理静态 IP 了。 MoofTCP Lite。不带 DHCP 的版本,可节省约 5 KB 系统内存,适合内存紧张的机器。一个安装程序同时包含两者;用一个复选框选择装哪个。 友好的安装程序。它会把 MacTCP 的文件移到一边,安装 MoofTCP,它的“移除”按钮会把一切原样恢复。安装中断也能自我修复。 MultiFinder 感知。退出仍有连接打开的应用时,会自动清理。 内置诊断。可选的内存日志和一个小工具 MoofDiag,用于提交 bug 报告。 可移植的核心。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 # MoofTCP 文件 -> build-mac/moof/ MT_LITE=1 scripts/build-mac.sh MoofTCP # MoofTCP Lite -> build-mac-lite/ scripts/release.sh --force 1.0 # 一个包含两者的安装程序 -> 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 # Lite 配置 模拟器测试(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 格式写入器 贡献 欢迎 bug 报告、兼容性报告(“程序 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 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →