← 返回信息流
AI 资讯Hacker News·5 天前

Macsurf:面向macOS 9的现代网页浏览器

原标题:Macsurf, "modern" web browser for macOS 9

速览

Macsurf 是一款专为 macOS 9 操作系统打造的网页浏览器,旨在为复古计算环境提供现代化的浏览体验。该项目通过适配现代 Web 标准,让旧版系统用户也能流畅访问当前互联网内容。这体现了开源社区对经典计算平台的持续维护与情怀支持。

AI 深度解读

MacSurf:让 25 年前的 Mac 拥抱现代 Web

背景

Classic Mac OS(经典 Mac 操作系统)在二十多年前就已经无法跟上 Web 的发展步伐,而现代 HTTPS 协议的普及更是彻底终结了旧系统在原生环境下的联网能力。大约在 2016 年,随着现代 HTTPS 的全面落地,运行 Mac OS 9 的设备几乎无法访问任何活跃的实时网站。如果你现在从柜子里翻出一台 Power Mac G3 或 G4,它大概率只能停留在本地,无法连接到当今的互联网。

然而,MacSurf 项目试图从机器本身解决这个问题。它不是一个截图代理,也不是通过远程终端进行的“障眼法”,而是一个真正原生的浏览器。该项目利用平台原有的工具链——包括 CodeWarrior、Carbon、QuickDraw 和 Open Transport——在 1999 年 iMac 仅有的 64 MB 内存限制下,实现了真正的 CSS3 布局和 ES5 JavaScript 执行。自 2026 年 5 月下旬以来,MacSurf 通过内置的 macTLS(基于 BearSSL 的堆栈,包含 Mozilla CA 信任锚点)直接与现代 Web 进行 TLS 1.2 通信,不再需要代理服务器。

据项目方称,这是首个针对 Classic Mac OS 的严肃 NetSurf 端口,也是首个在 Mac OS 9 上原生支持 CSS Grid、CSS 自定义属性(Custom Properties)和 ES5 JavaScript 的浏览器。

核心内容

MacSurf 是一个面向 Classic Mac OS 9 PowerPC 平台的现代 Web 浏览器。尽管它仍处于早期 Alpha 阶段,但已经具备了令人瞩目的基础能力:它能在 233 MHz 的 G3 iMac 上运行,支持 CSS3、ES5 JavaScript 以及带 Alpha 通道的 PNG 图像,并能原生处理 TLS 1.2 连接至真实的 HTTPS 网站。

当前状态与局限性

项目方明确警告,MacSurf 尚未准备好用于日常浏览(daily driving)。虽然它能渲染页面并执行 JavaScript,但大多数现代 Web 应用仍无法正常工作。具体限制包括:

  • 重型单页应用(SPA)无法流畅运行。
  • 尚未实现的现代 CSS 特性。
  • 表单交互缺失。
  • 在真实硬件上 JavaScript 执行速度较慢。
  • 不支持视频、音频、WebGL、Service Workers 以及重度依赖 React 等现代框架的网站。

版本演进与技术突破

MacSurf 的迭代历程展示了其在底层协议和渲染引擎上的重大突破:

  • v1.3.1 — Forward, refined (2026-05-29): 这是最新版本。主要改进在于 TLS 1.3 的多曲线 ECDHE 支持。macTLS 现在在 supported_groups 中提供 X25519、secp256r1 (P-256) 和 secp384r1 (P-384)。通过清晰处理 HelloRetryRequest,即使像 68kmla.org 这样强制要求 NIST 曲线的服务器也能驱动重新密钥化。这使得该论坛(基于 nginx 的 XenForo,配置为仅 NIST 曲线)现在可以在 G3 iMac 上通过 TLS 1.3 + P-384 完整渲染。

  • v1.3 — Forward: 这是历史上首个在 Classic Mac OS 上实现原生 TLS 1.3 的版本。它在 BearSSL 原语上实现了 RFC 8446 握手,支持 ChaCha20-Poly1305 和 AES-128-GCM。该实现已在 G3 iMac 上通过 Cloudflare 的 /cdn-cgi/trace、Akamai、BrowserLeaks 和 How's My SSL 进行了端到端验证。

  • v1.2 — Sealed: 关闭了文档中记录的不安全存根熵源漏洞(通过 macEntropy v1.0),并通过两个 fetcher 连接了 POST 表单,同时发布了真正的下载管理器。

  • v1.0 — Showcase: 浏览器界面重构版本。

  • v0.6.2 — Speed-Run: 冷启动速度优化,将 mactrove.com 的加载时间从 30 秒以上缩短至约 2-3 秒。

  • v0.1a1: 首个编号 Alpha 版本。

预期体验

用户可以期待在 MacSurf 中看到:

  • 手工制作的页面和复古风格网站的良好渲染。
  • 相当一部分 CSS Grid 布局的支持。
  • 带有完整 Mozilla CA 信任库的原生 HTTPS 支持。
  • 在 PowerPC 架构上运行 ES5 JavaScript 的独特体验。

构建与运行

  • 运行:下载 MacSurf.sit(v1.3.1 二进制文件),在 Mac OS 9.1+ 且安装 CarbonLib 1.5+ 的环境下解压并启动。
  • 源码构建:克隆仓库后,在 Mac 端使用 CodeWarrior 8 打开 browser/netsurf/frontends/macos9/MacSurf.mcp 并选择 Build。
    • v1.3.1 是 macTLS 引擎的透明升级,无需更改 MacSurf 项目文件。
    • 从 v1.2 工作区升级到 v1.3 的构建者需添加四个 macTLS 文件以启用 TLS 1.3:bearssl/src/ec/ec_c25519_m15.cos9/ostls_tls13_keysched.cos9/ostls_tls13_record.cos9/ostls_tls13_handshake.c
    • v1.2 构建者需将 desktop/download.c 添加到项目文件列表中。

关键要点

  • 原生而非代理:MacSurf 并非通过远程服务器渲染网页再截图传回,而是在本地硬件上直接解析和执行现代 Web 标准,这是其技术核心差异。
  • 协议栈突破:通过内置基于 BearSSL 的 macTLS 堆栈,MacSurf 解决了 Classic Mac OS 无法处理现代 HTTPS(TLS 1.2/1.3)的根本障碍,无需外部代理。
  • 渲染引擎移植:作为 NetSurf 的端口,它成功在资源极度受限(64MB 内存)的 90 年代硬件上实现了 CSS3 和 ES5 JavaScript 的支持,包括 CSS Grid 和自定义属性。
  • 社区驱动与硬件验证:项目高度依赖真实硬件(G3/G4)的测试和 Bug 报告,特别是针对像 68kmla.org 这样的大型复古计算社区网站的兼容性优化。
  • 代码基础:代码使用 C89 编写,与 1999 年使用的 C 语言标准一致,利用 CodeWarrior、Carbon 等经典开发工具链。
  • 非生产级软件:尽管技术成就显著,但项目方明确表示其尚处于 Alpha 阶段,不适合日常使用,存在性能瓶颈和功能缺失。

意义与影响

MacSurf 的出现不仅是复古计算爱好者的一次技术狂欢,更是对 Web 技术演进史的一种逆向工程式的致敬与验证。

首先,它证明了现代 Web 标准(CSS3, ES5, TLS 1.3)在理论上是可以移植到极其有限的硬件环境中的,尽管性能代价巨大。通过解决 TLS 握手、加密算法(如 X25519, P-384)和渲染引擎(CSS Grid)的兼容性问题,MacSurf 为理解现代 Web 协议的复杂性提供了一个独特的“极简主义”视角。

其次,该项目揭示了 Web 发展的“断代”现象。二十年前,Web 技术开始超越旧操作系统的处理能力;而 HTTPS 的强制推行则彻底切断了旧系统的连接能力。MacSurf 试图弥合这一断裂,让 25 年前的硬件重新获得访问互联网的能力,尽管这种访问是有限且缓慢的

查看原文 →github.com