
macsurf v2.3
适用于经典 Mac OS 9 PowerPC 的现代网页浏览器。真正的 CSS3、ES5 JavaScript、原生 HTTPS。使用 CodeWarrior 基于 Carbon API 构建。
现代网络,运行在 25 年前的 Mac 上。
一款面向 Carbon 时代的原生浏览器,支持 Mac OS 8.6 至 Mac OS X 10.6:真正的 CSS、现代 JavaScript,以及直接在 Mac 本机上运行的 HTTPS。无需代理,无需第二台机器。
MacSurf 2.0.5 在 Power Mac G3 iMac 上,通过原生 HTTPS 以完整桌面宽度渲染 hackaday.com。
🆓 每月免费稳定版在 macsurf.org 上发布的经过测试的构建版本,对所有人免费,背后有真实的硬件测试。 最新稳定版:MacSurf 2.3 "OPEN TABS" |
⭐ 每周版,面向支持者开发中的构建版本每周都会进入 Beta-Box,领先于每一个稳定版发布,并附带开发笔记。 |
每个项目都以源码形式保持免费。你可以自行构建,永远不需要 Beta-Box。你付费购买的是构建版本和更新节奏,而不是访问权限。
支持开发
关注我们
感谢我们的支持者:
Ko-Fi:Chris Marks, Rogue, Turuun, kilgeist
Patreon:Mack Chamberlain, Lucas, Joseph Mulvaney, Shlooom
[!NOTE] 2.3 "OPEN TABS" 是自 2.0 以来 MacSurf 最大的一次发布。标签页终于启用,在一个原生 Mac 窗口中拥有独立的页面、滚动、历史、渲染和 JavaScript 状态。其底层是一次重大的动态页面/生命周期重写、更大的浏览器 API 覆盖面、更多的 CSS 和图像/SVG 支持、重建的原生管理器、更强的网络与安全,以及一场由硬件驱动的长期稳定性攻坚。MacSurf 仍然是诚实的、开发中的软件;一些非常繁重的现代应用仍会暴露出布局和 API 的缺口。详情请参阅 2.3 发布说明 和 docs/status.md。
为什么会有这个项目
网络在二十年前就超出了 Classic Mac OS 的能力范围,而现代 HTTPS 在 2016 年前后彻底终结了它。今天从壁橱里翻出一台 G3 或 G4,它几乎无法访问任何一个在线网站。
MacSurf 在机器本身上解决了这个问题,没有截图代理,也没有远程终端技巧。它是一款用该平台上原生的工具构建的原生浏览器:CodeWarrior、Carbon、QuickDraw、Open Transport。它通过 macTLS 直接与现代网络进行 TLS 1.3 通信——这是一个基于 BearSSL 的协议栈,内置完整的 Mozilla CA 证书包,并编译进二进制文件;它还通过 macQJS 运行现代 JavaScript——这是 QuickJS 移植到 Mac OS 9 的版本。
据我们所知,这是第一个认真移植到 Classic Mac OS 的 NetSurf,也是第一个具备原生 CSS Grid、CSS 自定义属性和设备端现代 JavaScript 引擎的 Mac OS 9 浏览器。
真实网站,真实硬件
下面的每一张截图都是实时网站,在运行 Mac OS 9.2.2 的 Power Mac G3 上使用 MacSurf 2.0.5 截取。它们作为硬件基线保留在此;MacSurf 2.3 已经大幅超越了这些图片中展示的浏览器。
![]() hackaday.com 一个现代的、重度依赖 JavaScript 的新闻网站,以完整桌面宽度呈现。 | ![]() 68kmla.org 一个完整的 XenForo 论坛:已登录、全宽、正确的文字大小。 |
![]() macintoshgarden.org 图片密集且样式完整,通过原生 HTTPS。 | ![]() news.ycombinator.com Hacker News:登录页和首页,没有幽灵框。 |
2.3 新增内容
标签页。 一个原生 Mac 窗口现在可以承载多个独立的浏览器页面。Command-T 打开一个标签页;Command-W 关闭当前标签页。后台标签页保留自己的 JavaScript 领域、标题、URL、内容和滚动状态,而不会接管前台界面。
此版本还带来了重大的动态页面和 JavaScript 兼容性改进;更深入的 DOM 重建安全性;CSS 数学、尺寸、Grid、变量和绘制改进;原生 WebP 和更强的 SVG;重建的下载窗口;改进的偏好设置、书签和历史记录;更严格的 HTTPS/安全行为;以及大量崩溃和生命周期修复。
MacSurf 2.3 支持 Mac OS 8.6 至 Mac OS X 10.6。在 Intel Mac 上,PowerPC 构建版本在可用时通过 Rosetta 运行。
2.0.5 新增内容
头条是 hackaday.com 以完整桌面宽度渲染(如上所示):正确的字体、文章卡片和图片各就各位。
其下包括:文本以真实设备像素测量(作者设置的 font-size 不再绘制得小 25%)、一次大规模的现代 CSS 改进(两端对齐文本、软连字符、逻辑属性、盒对齐简写、网格自动尺寸)、一个能力更强的 JavaScript 引擎(真正的 fetch/XHR、解析 Promise 链、DOM 遍历、document.cookie),以及跟踪器/广告网络拦截。完整的 2.0.5 说明 →
2.0 新增内容
![]() 输入即提示地址栏 输入时基于历史记录和书签提供建议。 | |
![]() 历史记录管理器 按天分组、可搜索、可清除。一个真正的窗口。 | ![]() 书签管理器 保存、整理,并直接从菜单跳转。 |
早期截图:相同网站在之前构建版本上的表现
![]() 68kmla.org | ![]() macintoshgarden.org |
![]() macintoshrepository.org | ![]() machut.net |
![]() lobste.rs | ![]() DuckDuckGo |
它是如何走到今天的:几个早期里程碑
![]() v0.2:Mac OS 9 上的 JavaScript 第一个带 JS 的页面在设备端实时求值。 | ![]() CSS Grid 真正的 Grid 布局:跨列、整行主视觉、自动换行。 |
组成部分
| 组件 | 语言 | 用途 |
|---|---|---|
browser/ | C (C89, CW8) | NetSurf 分支,带有 macos9 前端。UI 使用 Carbon,绘制使用 QuickDraw,网络使用 Open Transport,JavaScript 使用 macQJS。 |
macTLS同级仓库 | C (CW8) | 面向 OS 9 的原生 TLS 1.3(回退到 1.2):直接从 Mac 进行 HTTPS。底层为 BearSSL,内置完整的 Mozilla CA 证书包。 |
macQJS同级仓库 | C (CW8) | QuickJS 移植到 Classic Mac OS:在 PowerPC 上运行现代 ES2023 JavaScript。 |
目前可用的功能
|
渲染与 CSS
|
JavaScript、macQJS(QuickJS / ES2023)
网络与安全
浏览器界面
|
支持的系统
MacSurf 2.3 支持 Mac OS 8.6 至 Mac OS X 10.6 Snow Leopard。
- PowerPC Mac 直接运行 MacSurf。
- Intel Mac 在可用时可以通过 Rosetta 运行 PowerPC 构建版本。
- Mac OS 9 仍然是主要目标,也是在原始硬件上测试最深入的环境。
- 推荐内存:最低 128 MB,推荐 256 MB,最重的 JavaScript 网站需要 384 MB。
稳定性与诊断
2.3 的很大一部分工作是你本不该注意到的:更强的页面/运行时所有权、更安全的 DOM 重建、受保护的延迟回调、缓存/内容生命周期修复、重新转换时的图像复用、TLS 边界检查以及标签页隔离。
MacSurf 现在还拥有一个深入得多的内置诊断系统,用于关联导航、文档、框架、网络请求、JavaScript 任务、定时器、变更、XHR/fetch、Promise 拒绝、布局、绘制和兼容性缺口。最终的 Tiger 多标签页压力测试完成了 20/20 轮循环,零崩溃、零挂起,随后在 Mac OS 9.2.2 硬件上进行了测试。
下载
MacSurf 2.3 "OPEN TABS"(2026-09-19)。查看完整的 2.3 发布说明 →了解变更内容。
- 下载 MacSurf →:用 StuffIt Expander 解压并双击。MacSurf 支持 Mac OS 8.6 至 Mac OS X 10.6;在 Intel Mac 上,PowerPC 构建版本在可用时通过 Rosetta 运行。无需安装程序。
- 已经在 Mac OS 9 机器上?从纯 HTTP 的 macsurf.org 获取,因为 GitHub 目前还无法在设备端渲染。
- 所有版本 →
想要版本之间的构建?每周的开发中构建会进入 Beta-Box,面向支持者,领先于每一个稳定版发布。
构建
MacSurf 在 Mac OS 9 上使用 CodeWarrior 8 Pro(8.3 更新)构建。源代码对 Retro68 PowerPC GCC 交叉编译无警告,我们用它来进行 Linux 端的快速语法检查。
原生 HTTPS 通过 macTLS · JavaScript 通过 macQJS · 基于 NetSurf 构建 · 介绍视频














