# 62. 你的电脑不是你的

内核恐慌 · 2021-01-03

<https://lib.pan.icu/42199b50-9a35-428e-a13c-24b1bc77ccd3>

本期节目邀请独立开发者刘亚晨（Surge、Elpass 作者）分享 M1 MacBook Pro 的惊人性能与 macOS OCSP 认证引发的隐私争议。他实测编译代码耗时从 Intel MacBook Air 的 260 秒降至 40 秒，风扇几乎不转，Rosetta 2 模拟 x86 程序甚至比原生 Intel 更快。针对 Big Sur 中因 OCSP 服务器被 DDoS 导致应用无法启动的问题，他指出检查协议明文传输会泄露用户所用应用（如 Surge），并讨论了苹果承诺的加密、异步检查与 opt-out 改进。最后，三人从用户控制权角度辩论，认为苹果的强安全机制本质上是用部分自主权换取便利与防护，普通用户更倾向于这种平衡。

## Questions this episode answers

### M1芯片的MacBook Pro编译代码比Intel MacBook快多少？

刘亚晨实测编译同一份代码，M1 MacBook Pro 耗时约40秒，而同年款的 Intel MacBook Air 需约260秒，性能提升超过6倍，且编译过程中 M1 的风扇几乎不转、机身无明显发热。

[21:20](https://lib.pan.icu/42199b50-9a35-428e-a13c-24b1bc77ccd3?t=1280000)

### 为什么 Intel MacBook 从睡眠唤醒时会卡顿，而 M1 款不会？

刘亚晨推测，Intel 机器睡眠时 CPU 完全停滞，唤醒瞬间大量 app timer 事件堆积导致卡顿。M1 芯片的低功耗小核始终在后台运行，系统取消了 Power Nap 选项，唤醒时无需集中处理积压事件，因此更流畅。

[1:02:00](https://lib.pan.icu/42199b50-9a35-428e-a13c-24b1bc77ccd3?t=3720000)

### macOS 的 OCSP 证书检查如何泄露用户隐私？

OCSP 请求通过明文 HTTP 发送，包含证书序列号，该序列号可唯一标识开发者及具体 app。网络中间人截获后便能得知该 IP 的用户正在运行哪些软件，甚至精确到具体应用。

[1:28:02](https://lib.pan.icu/42199b50-9a35-428e-a13c-24b1bc77ccd3?t=5282000)

## Key moments

- **[0:00] 跟进**
  - [0:32] 「吟诗光猫案」告破一半：厂家确认光猫内环路检测报文发出诗句，但代码作者仍未知
  - [2:00] 同轴电缆延长WiFi需使用MoCA转接器解决75欧姆与50欧姆电阻不匹配问题
- **[4:44] M1初体验**
  - [4:44] 本期嘉宾刘亚晨是Surge和Elpass两款软件的作者，专职iOS独立开发者
  - [12:03] 刘亚晨：M1芯片性能「是不是把英特尔按在地板上摩擦，这地板已经快按穿了」
  - [13:19] 刘亚晨发现M1 MacBook Pro的风扇几乎不转：「这个多的这个风扇拿来干嘛的？我现在就没有能让它转起来过」
  - [15:11] 刘亚晨实测M1 MacBook Pro编译代码时温度几乎无变化，而iMac Pro和MacBook Air风扇满转
  - [16:47] Rio指出苹果之前MacBook散热差、性能限制的根源是英特尔芯片的高功耗
  - [18:20] 最早垃圾桶Mac Pro无法迭加更新，根本原因是英特尔CPU和AMD GPU的散热限制
- **[34:01] 软件兼容**
  - [34:23] 开发者工具链在M1上兼容性不足，刘亚晨建议将整个终端设置为Rosetta 2模式运行
  - [36:18] 刘亚晨观察Rosetta 2运行Intel程序时内存占用约是原生Intel设备的两倍
  - [38:45] 评测显示M1通过Rosetta 2运行X86程序的速度甚至超过原生Intel机器
  - [40:14] M1 Mac的WiFi和蓝牙芯片集成在主芯片中，不再是独立的PCIe或USB设备
  - [42:01] M1 Mac若系统彻底崩溃，唯一恢复方法是用另一台Mac线刷，类似iPhone的DFU模式
  - [45:28] iOS版Surge在M1 Mac上运行时可接替系统VPN，无需单独适配
- **[57:48] 唤醒慢**
  - [58:20] 刘亚晨分析英特尔Mac唤醒卡顿是因为后台timer积压，M1因持续后台运行而瞬间唤醒
  - [1:03:12] M1 Mac取消Power Nap节能选项，因为高效核心一直后台运行无需合体计时器
  - [1:12:14] Rio预计未来U1超宽带芯片集成到Mac和Apple Watch后，可大幅提升解锁可靠性
- **[1:15:14] OCSP风波**
  - [1:15:38] 刘亚晨解释OCSP协议原本用于HTTPS证书吊销，苹果将其用于App签名检查
  - [1:18:20] macOS Big Sur发布后，苹果OCSP服务器被自己DDoS，导致全球Mac应用启动卡死
  - [1:21:24] 刘亚晨指出OCSP检查本质上是为开发者证书提供了一个远程Kill Switch（老板键）
  - [1:27:18] 苹果OCSP请求通过明文HTTP传输，中间人可据此精准推断用户安装的特定App
  - [1:30:24] 苹果官方承诺2021年为OCSP增加加密传输、服务器故障保护和用户退出选项
  - [1:34:46] 刘亚晨认为苹果只是「偷懒了，把HTTPS的OCSP那套东西直接拿来用在App检查上」
- **[1:44:33] 你的电脑？**
  - [1:44:53] 刘亚晨认为用户让渡部分权利给苹果以换取安全便利，权利与责任对等
  - [1:48:37] 刘亚晨强调用户仍可通过关闭系统完整性保护或安装Windows等方式拿回完全控制权
  - [1:50:50] 苹果经典「Get a Mac」广告中PC演员其实是Mac铁粉，而Mac演员不懂电脑

## Speakers

- **Rio** (host)
- **吴涛** (host)
- **刘亚晨** (guest)

## Topics

Apple 生态, 安全

## Mentioned

Apple (company), Intel (company), Microsoft (company), Android (product), Apple Watch (product), DTK (product), Dropbox (product), Elpass (product), Linux (product), M1 (product), Mac mini (product), MacBook Air (product), MacBook Pro (product), Surge (product), T2 (product), U1 (product), Windows (product), Xcode (product), iMac Pro (product), iPhone 12 mini (product)

## Transcript

### 跟进

**吴涛** [0:01]
您正在收听 《 内核恐慌 》， 一档大致以计算机科技为主题的娱乐 Podcast。 我们号称 " 硬核 "，但是也没有什么干货 ； 想听人听 ，不想听人就别听 。

我们的网址是 pan.icu， 您可以在网站上找到订阅我们节目的方法 ，以及联络我们的方式 。 我是吴涛 。

**Rio** [0:19]
我是 Rio。 呃 ， 今天节目开始前 ， 我们做一个简单的 follow-up—— 哎 ， 好久没有做 follow-up 了 ， 哈哈 。 呃 ，是针对上一期这个叫 《 吟诗的光猫 net》 提到的几个问题 。

我顺便说一下后续吧 。 第一个就是说 ， 那个 " 吟诗光猫案 " 呢 ， 嗯 ， 算是告破一半 。

**吴涛** [0:39]
怎么个一半法 ？

**Rio** [0:40]
就是我发出去之后， 有这个我的那个光猫的生产厂家的朋友找过来 ， 跟我确认过 。 那个猫 ， 那个那个那个 ， 叫那首诗 ， 确实是他们光猫里面的设备发出来的 。

不是外面的设备 ，也不是我的局域网站里面其他设备发出来的 。 它们在它们的那个测试环境里面 ，也复现了这个东西 。

然后那个产生那个诗的选项也找到了 ， 就是那个环路检测 。

**吴涛** [1:05]
所以我猜对了 ？

**Rio** [1:06]
对 ， 你猜对了 。 它每 —— 它不是每 10 秒发一个包吗 ？ 那就是用于环路检测 。 但是呢 ， 就是没有找到这个东西是谁写的 ， 哈哈 ，也不知道为什么是这首诗 。

我说过的光猫型号是上海贝尔阿尔卡特生产制造的嘛 ， 所以目前也不知道是贝尔的工程师干的 ， 还是阿尔卡特工程师干的 ， 还是说上海贝尔阿尔卡特后来的工程师干的 。

目前找不到人 ，因为也不知道这个 firmware 到底谁写的 ， 就可能也比较久远了 。

**吴涛** [1:33]
暴露了它们没有 version control 是吧 ？

**Rio** [1:35]
或者说就是找我那个朋友 ，他不是做那块开发的嘛 ， 所以他也不清楚 。 但没有这个权限去查看那个到底这个是谁 —— 谁 commit 进去的 。

我也不知道他们有没有 。 有可能是没有的 ， 对吧 ？ 这个我就不清楚了 ，他们内部的问题 。 但就说至少 ， 我说这个算是告破了一半 ， 就是说找到了这个源头 ， 找到了它这个是干嘛用的 ，但是不知道是谁写进去的 ，以及为什么是这首诗 ， 对吧 ？OK， 这是第一个 follow-up。

第二个 follow-up 就像是我们不是花了很长时间在讨论到底能不能够用已有房子里面用于接电视的那个同轴电缆来延伸这个 WiFi 的信号的那个距离嘛 ， 对吧 ？

目前来看呢 ，有两种观点 。 我们到时候也会把这两个连接 ， 是一个 super user 上面的这个回答放进去 。 就是说正常你直接接 ， 就是我上次我说那个方法 ， 你直接把那根同轴电缆 ， 就墙里面那根同轴电缆 ， 给电视用的 ， 当成 WiFi 天线来延长是不行的 ，因为它的电阻不对 。

那个同轴电缆的电阻 ， 电阻好像说是 —— 等下我确认一下哈 —— 好像是 75 欧姆吧 ， 应该是 。 对 ，75 欧的电阻 。

但是 WiFi 天线的那个同 —— 就是那个叫 —— 这个专业名词我也找到了 ， 叫做馈线 。 就是 ， 哈哈 ， 这个就是延长 WiFi 的天线 ， 那根导线的电阻是 50 欧 ， 所以正常你直接接上去肯定是不行的 ，因为信号很快就衰减了嘛 。

但是呢 ，有一种设备是可以转化一下， 就是它在那个同轴电缆两端都接上一个类似于转接器一样的东西 ， 可以把一个 WiFi 的信号转成那个同轴电缆上适合 —— 类似于你可以想象它是一个放大或者怎么样 ， 然后把它传导到另外一端 ， 最后再解码出来 ， 然后再重新转回 WiFi 能用的 。

就这种东西是有的 。 但这个设备有点贵 ，而且国内我在淘宝 、 在天猫 、 在京东上都没有找到 ，但是在亚马逊上好像是有的 。

那个东西叫做 Mocha，Mocha， 我不知道这个是什么的一个缩写 。 然后呢 ， 我还发现一个特别好玩的东西 ， 叫做 WiFi over Coax， 就是专门干这件事情的 ， 就是专门在用那个同轴电缆延长 WiFi 信号的一个解决方案 。

对 ， 就是要用到刚才那些东西嘛 ， 所以就解决这个电阻不匹配的问题 。 大家如果生活在国外， 然后你那个房子里面没有走网线 ， 只有这个同轴电缆 ， 你就想解决这个信号的问题的话 ， 你可以去亚马逊上搜一下叫做 Mocha，Mocha。

那个 Mocha 都大写 O 是小写 ， 这么一个设备 ， 它可以完成这个东西 。 然后我们也在我们的听众群里面 ， 就是 Telegram 那个听众群里面 ，有在海外的听众朋友 ，他确实也买了 ， 用过这个东西 ， 好像效果还不错 ， 能够达到千兆吧 ，他应该说是 。

**吴涛** [4:23]
如果你不是一定要延长这个 WiFi 信号的话 ， 可以直接把网线转到同轴电缆上 。 就那个转接头非常简陋 ，但是就 just works，也是可以的 。

**Rio** [4:33]
对 ， 就这种方案也是可行的 ，但就具体怎么操作 ， 大家可能要去自行研究一下 。 因为我房子里面有同轴电缆 ，但我实在是不想搞它 ， 哈哈 。

**吴涛** [4:43]
OK。

**Rio** [4:44]
好 ，OK。 就是 follow-up 吧 。 那今天我们开始今天的正题 。 今天有点特别哈 ， 我们好久好久没有邀请过嘉宾了 ， 今天我们邀请到一位重磅嘉宾 ， 就是我们的老朋友 。

### M1初体验

**吴涛** [4:57]
这期我们又是跪着录的 ， 可以说 。

**Rio** [5:00]
这期我们邀请到我的一个好朋友哈 ，是就是大家可能很多人都用过这个网络开发调试工具 Surge 的作者 ， 刘亚晨 。

亚晨你好 。

**刘亚晨** [5:11]
两位老师好 。

**Rio** [5:13]
要不亚晨你稍微简单介绍一下自己 ？

**刘亚晨** [5:17]
我觉得可能我自己的软件的这个受众和你们的听众其实应该覆盖面挺大的吧 ， 所以还需要再介绍一下吗 ？

我也不知道该怎么样去介绍 。

**Rio** [5:28]
东西应该是不用介绍的 ，但是大家应该对你这个人还是不太熟悉 。 就是你有什么可以给听众朋友们分享 ， 就是介绍一下自己的 ？

**吴涛** [5:36]
对 。 然后有什么我们想知道 ， 我们会接着再代替听众来提问的 。

**刘亚晨** [5:43]
行 ， 那我就简单的说一下吧 ， 剩下的靠你们提问吧 。 我现在的身份的话 ， 就是专职的 iOS 的独立开发者 ， 然后之前的话 ， 主要是创业者的一个身份 ， 干过很多一些很标准的一些创业的事情 ， 甚至还做过一些像技术猎头这样的一些和技术都已经快越来越没相关的一些事情 。

然后反正从 15 年开始 ， 然后变成了一个专职的独立开发者 。 现在的话 ， 主要的产品是 Surge 和 Elpass 两款 ， 然后同时的话 ， 还有一些客户的项目作为技术顾问去参与 。

大概就这些 。

**Rio** [6:21]
Elpass 这个可能很多人不知道哈 ， 是一个密码管理器 ，是应该是比那个 1Password 要好用的 。

**刘亚晨** [6:27]
好 ， 谢谢 。

**Rio** [6:29]
但这个相对来说比较小众 。 但密码管理器我记得我们之前节目里面还有单独讲过一期 ，不过那个时候你还没有写嘛 ， 所以我们如果下次再聊的时候 ， 可以到时候再专门介绍一下 。

但虽然今天我们邀请了这个亚晨 ，但是我们今天也不聊 Surge，也不聊 Elpass， 甚至也不聊这个 —— 可以最后有一点相关 ，但是甚至也不主要聊独立开发 。

今天我们其实是要聊苹果 ， 对不对 ？ 其实这个事也比较简单哈 ，是因为目前我们三个里面只有亚晨现在你是买了那个 M1 芯片的 MacBook Pro， 对吧 ？

**刘亚晨** [7:01]
对 ，是的 。 好像是我 ， 就比较急 。

**吴涛** [7:04]
所以你是在发布的那一天 ， 就是可以定的时候 ， 第一时间定的吗 ？

**刘亚晨** [7:07]
对 ，而且我当时第一时间定了之后， 由于它标准配置是 8G 内存 ， 要定制版才能是 16G 内存 。 定制了之后会使得发货周期延迟到我印象中正常发货时间应该是 20 号还是 19 号左右 。

我特别急的又等不了 ， 然后拖了一个 Apple 的朋友 ， 让他帮我查了一下现在实体店的库存 ， 发现离我家比较近的一家店还有 16G 的一个高配版 。

我就立刻跑到店里去现场拿了它回来 ， 然后把原来的订单给取消了 。

**Rio** [7:37]
这里有个小知识哈 ， 就是说我们通常认为苹果店里面只有那种所谓的标配版 ， 对吧 ？ 它比如说通常它苹果它在网站上它给一个 Mac 配 ， 它会给一个低配和一个高配 ， 这两个都是标准配置 ， 你不用去定制就可以直接在店里买到的 ， 对吧 ？

但是这次好像有点不一样 ， 对不对 ？ 这次是因为它的两个标准配置都只有 8G 内存 ， 然后 16G 理论上按照官网的那个逻辑 ， 你是需要定制才可以选的 。

**刘亚晨** [8:02]
对 ，是的 。 但是其实我和朋友聊了一下 ，他说一般的话店里面会备大概 5 台左右的顶配机器 ， 就是每家店都会有这么一个储备 。

所以说的话 ， 如果就是不确定的话 ， 可以提前去他们官网上找到那个店的一个店的直接拨打他们的店的电话 ， 然后打电话去问一下他们现在有没有高配这个库存 ， 然后再过去直接就可以购买 。

**吴涛** [8:23]
所以他们应对的这个场景就是一个土豪走进苹果店说 ：" 我要你们店里最好的电脑 ， 你给我拿一台出来 。"

**刘亚晨** [8:29]
对 ， 我感觉应该是这个意思吧 。

**Rio** [8:31]
他比如说你去买那个顶配 ， 它我记得就是这次的这个 M1 的 MacBook Pro， 它能选的只有是内存是可以变成就是标配的 8G 和高配的 16G， 然后唯一能选的就是那个 SSD 的配置了 ， 对吧 ？

那这个 SSD 的它的那个高配的能最多是配到哪里 ？ 它店里面那台 ？

**刘亚晨** [8:49]
店里的机器我记得都是 1TB 的 ， 就是现在这次三个选项嘛 ：512、1T 和 2T。 我印象中全是 1T， 没有 2T 的那个机器 。

**Rio** [8:58]
所以其实也没有真的到最顶那个 ， 就是所有的加到最大最贵的那款它还是没有的 。

**刘亚晨** [9:05]
对 ，而且颜色也只有深空灰 ， 就深空灰的 16G 的 1TB 机器 ， 这个机器好像是有个三四台左右 。

**Rio** [9:13]
就是你颜色也没得选 ， 如果你拿这台这个 16G 的配置的话 。

**刘亚晨** [9:16]
对 ，是的 ， 没错 。 所以但是本来我就是要选的话就选深空灰 ， 所以说这个倒是无所谓 。

**Rio** [9:20]
就刚好是吧 ？ 就他们其实还是有一些这个大数据去支撑这个决策 ， 说一般买这种配置的人 ，他不会选那种比较骚气的颜色 。

**刘亚晨** [9:28]
而且这次其实那个颜色只有深空灰和银色 ， 都是两个比较保守和传统的颜色 ，也没过太大的区别 。

**Rio** [9:35]
嗯 ，SKU 数量是要比较简单的是吧 ？

**刘亚晨** [9:39]
对 ，是的 。

**Rio** [9:40]
OK。 所以其实对土豪还是没有那么的友好 ， 对吧 ？ 不能说我想买啥买啥 ， 你给我最顶的那个 ，不在乎钱 ，money is not an issue 的时候也没有买 ，也还是得去网上定制 。

**刘亚晨** [9:52]
我觉得要是真土豪的话 ， 可能不会在意是 M1 还是什么 ， 直接来一个 Mac Pro 就直接带走了是吧 ？ 这好像是个偏见啊 。

**Rio** [10:03]
土豪 stereotype。 所以目前你看就是我们网上也看了一些这个各种这个媒体网站的这个测评了哈 ，但是我们聊一聊你实际使用下来的感受吧 ， 就是跟他们测评的你觉得有多大差异吗 ？

**刘亚晨** [10:17]
这个其实我作为那个就是最早就参与到那个 Arm 芯片版本的那个 Apple 的开发的开发者来说 ，因为 DTK 我早拿到了嘛 。

**Rio** [10:26]
哦 ， 对 ， 你是有 DTK 的 。

**刘亚晨** [10:28]
对 ，是的 。 但是 DTK 的话由于受协议限制 ， 我也没有 —— 我还没有仔细去看 ，在现在这个状态下， 我还能不能给它公开的发表一些 review， 一些意见 。

**Rio** [10:39]
啊哈 。

**刘亚晨** [10:39]
我想一想啊 ， 我觉得应该没什么太大问题吧 。

**Rio** [10:43]
所以这个是有 NDA 的是吧 ？DTK 是有 NDA 的 。

**刘亚晨** [10:46]
对 ， 这是有 NDA 的 。 它官方写的是我不可以在 public 的场所去对它进行 review。 但是好像我没有仔细看它有没有一个期限 ， 就到什么时间解禁 ， 好像是没有的 。

那我为了避免踩到这个坑里 ， 我还是尽量就不提它吧 。

**Rio** [11:02]
OK， 我们就假装它不存在是吧 ？

**吴涛** [11:04]
对 ， 我们谈论它 ，但这并不是一个 review。

**刘亚晨** [11:07]
明白 。 我就是在想打这个擦边球 。 就是之前通过用 DTK 的时候 ， 我就能感受到这个苹果的这个 Arm 芯片 ， 这个 A 系列芯片的话 ， 很有可能它之后出来的正式产品会更牛逼 ， 就是原来已经其实很牛逼了 。

但是那个等到一个 —— 但是那块芯片的话是 A22Z，是那个 iPad 之前用的芯片 。 所以的话 ， 那么如果它本身就是为移动设备 、 为低功耗设备设计的 ， 那如果是在这种基础上再为 MacBook 或是 MacBook Pro 的话 ， 然后去更优化的去设计一款芯片 ， 那它出来的效果应该是非常劲爆的 。

然后确实的话 ， 从这几天的一个不管是测试还是使用来说 ， 都非常的让我感觉很兴奋 。 这确实是一个可能有划时代意义的产品的这么一个进步 。

**Rio** [11:58]
就按我们这个行业里面的话说 ， 就是一屁股挤爆了这个英特尔的牙膏 ， 对吧 ？

**刘亚晨** [12:03]
对 ， 我自己的话说是不是把英特尔按在地板上摩擦 ， 这地板已经快按穿了 。

**吴涛** [12:08]
已经按出了一个棺材来了 ， 可以把英特尔盖棺定论了已经 。

**Rio** [12:13]
我们看到网上的测评 ， 它性能基本上都说是这种 ， 我们能看墙上的这个定语都是什么 massive improvement， 都非常 —— 就是通常是吊打的 。

至少我们看到那个数字啊 ， 跑分的 —— 跑分有很多指标嘛 ， 我们看最常见的几个 ， 什么 Geekbench 啊 ， 什么那个什么那个那个叫什么 Spec 那些 ， 对 ， 都是可能提高了百分之七八十这种这种级别的性能的提升 。

**吴涛** [12:36]
对 ，而且很多网站那个论述就是一开始我们是怀疑的 ， 一开始我们是非常抵触的 ，不愿意相信这个结果的 ，但是实际上手之后， 我靠 ， 原来真的这么香 。

**Rio** [12:47]
对 ， 关键是就是说它在这种提供这种性能这么大幅度性能提升的情况下 ，是基于什么呢 ？ 是不发烫 ， 对吧 ？

按那个我看他们测评的方法 ， 那个评论的原因也说是风扇基本不怎么转或者听不到 ， 然后特别是像那个 MacBook Air 这一款 ， 它根本就没有风扇嘛 。

**吴涛** [13:06]
而且续航能力还非常的恐怖 。

**Rio** [13:08]
就相关的嘛 ， 如果说你在那个风扇又不转 ， 又不 —— 就不怎么发热的情况下， 说明能耗是低的嘛 ， 那电池不变的情况下， 能耗变低 ， 你续航就显然变长了嘛 。

但是我没有想到会有那么长 ， 对吧 ？

**刘亚晨** [13:19]
对 ， 这个我其实都还有一个疑问 ， 这个 Mac Pro 这个多的这个风扇拿来干嘛的 ？ 我现在就没有能让它转起来过 。

**Rio** [13:26]
但它在转吗 ？ 就是它是 —— 你确定它是一直在转 ， 还是说需要才转 ？

**刘亚晨** [13:32]
我贴上去看感受的时候 ， 应该是以非常低的频率在转的 ， 就是你基本上是完全感受不到它在转 ， 那实际上它确实在转 。

**吴涛** [13:42]
它转的意义可能就是为了提供一个压力 ， 让灰尘不要进去 ，that's it，不是为了散热 。

**刘亚晨** [13:49]
可能真的是 。

**Rio** [13:50]
或者就是为了一个 —— 它就 —— 因为这样它这个就叫什么来着 ？ 就是热工程是吧 ？ 热力学什么玩意儿吧 ？

就是它得维持一个平衡嘛 ， 就是那个 ——

**吴涛** [13:59]
热动力学你想说 ？Thermodynamics。

**Rio** [14:02]
我只知道以前那个校那些去清华读这个热工程的 ， 热动力什么热能学的这些 ， 好像说他们都是烧锅炉 ， 对吧 ？

但其实这个东西是可以用到很多场景的 ， 烧锅炉只是一个比较大型的使用场景 ， 对吧 ？ 包括你现在做芯片也好 。

**吴涛** [14:20]
烧锅炉很难的 ，come on。

**刘亚晨** [14:23]
它可能是以这么低的一个转速的话 ， 就已经能够把它维持得很好了 。

**Rio** [14:27]
平衡了 。

**刘亚晨** [14:28]
对 ，是的 。

**Rio** [14:28]
因为那个同样是这个 M1 芯片的那个 MacBook Air， 它是完全被动 ， 然后我们看到因为昨天那个 iFixit 出那个拆解图了嘛 ， 就它把那个打开看了一下， 那那个 MacBook Air 里面它其实只是有一块比较大的那个散热片 ， 对吧 ？

但是完全没有那个风扇 ， 它也可以完成这么一个就是不是那种高负载 ，不是那种持续高负载状况下的散热 。

那照理说这个 MacBook Pro 有一个小风扇 ， 它能够低速的运转 ， 能够也能够很快的实现这个热的平衡嘛 。

**刘亚晨** [15:02]
对 ，而且这个和英特尔机器比起来真的是天壤之别 。 我第二轮测试的时候是测试去编译代码 ， 然后看他们的性能怎么样 。

我两台英特尔的机器 ， 一台是 iMac Pro， 一台是 MacBook Air， 都是才开始编译第一轮到一半的时候 ， 风扇就已经基本上到满转了 ， 就已经进入很吵的状态了 。

**Rio** [15:21]
就是战斗机来袭的感觉 。

**刘亚晨** [15:24]
对 ，是的 。 然后那个 M1 的那台 MacBook Pro 的话 ， 三次测完了之后， 我摸它就感觉温度几乎没有提升 。

**Rio** [15:32]
就还是那种室温的状态 。

**刘亚晨** [15:35]
对 ，是的 ， 就让人感觉这已经是黑科技一样的一个存在了 。

**Rio** [15:40]
因为我们知道 MacBook 是前几代的时候换过一个更薄的外壳嘛 ，以前是 —— 就是以前不是那个 Type-C 接口 ， 对吧 ？

以前是那个 —— 就是它拆白接口的时候 ， 它那个时候大家都会抱怨说有时候如果用的太猛 ， 它那个底部啊会比较烫 。

特别是 MacBook Pro 那个有独立显卡和这个 CPU 的两个热源嘛 。 后来它换到了现在就是这个外形的 ， 就是薄薄的 ， 然后边上是那个 Type-C 接口的时候 ， 就更烫了 。

就是英特尔的时候 ， 对吧 ？ 我们到如果你放在膝盖上的话 ， 它是有这个 —— 他们那个说法叫什么来着 ？

火腿肠煎蛋 ， 对不对 ？

**刘亚晨** [16:16]
而且我还听过一个说法 ， 就是对于那个现在的四口的那个 MacBook Pro， 你要给它充电的话 ， 是一定应该要插固定插右边还是固定插左边 ， 这样去减少它那一侧的发热才能平衡 。

**吴涛** [16:29]
对 ， 我们上一期好像结尾的时候谈到这个了 ， 就是你要是从一边插的话 ， 它会特别烫 。

**Rio** [16:34]
因为它有一个叫什么 ？ 那个电压管理模块是在某一边 ， 然后会导致升温 ， 然后升温就会降频嘛 ， 然后性能也会受影响 。

**刘亚晨** [16:42]
现在 Apple 把这个锅就完全的丢给了英特尔 ， 告诉大家啊 ， 好 ，不是我们做的烂 。

**Rio** [16:47]
对 ， 所以就这件事情证明了之前那个有几个问题 ， 就是苹果我们不是老是说它最近 Mac 这几代就迭代都非常的慢 ， 然后就是非常的就不让人满意嘛 ，但最后我们的锅现在可以明确的说是英特尔的锅 ， 对不对 ？

**吴涛** [17:01]
真相大白 。

**Rio** [17:02]
亚晨我记得你也有买那个垃圾桶的那个 Mac Pro 是不是 ？ 就是第一代的那个 MacBook Pro 嘛 。

**刘亚晨** [17:09]
对 ， 那是 13 年的那个型号了 ， 垃圾桶的话 。 对 ， 垃圾桶总共就一代 ， 没有之后也 —— 前无古人乎来着 。

**Rio** [17:17]
它更新过一次 CPU 好像 。

**刘亚晨** [17:19]
我记得好像只是小型号的 ， 就是可能是加了几个选项吧 ， 反正都是 13 年的那一款 。

**Rio** [17:25]
对对对 ， 就没有大改过 。

**吴涛** [17:26]
对 ，在汽车的术语里面叫 facelift， 小改款 。

**Rio** [17:30]
小改 ， 对吧 ？ 不是大改 。 然后就是当时它不是那个垃圾桶 ， 它出来的时候说是最后他们的不是要做了一个媒体 ， 邀请那些就是 Mac 的那种专业媒体去开了一个小会 ， 说他们之前那个设计是叫什么来着 ？

遇到了这个 thermal constraint 嘛 ， 就是遇到了热能的限制嘛 。其实这个锅也是英特尔的 ， 对吧 ？ 因为或者说是加上这个 AMD 的 ，因为那个显卡也是个散热大户嘛 ， 就是他们没有想到就是说你们竟然不能够按照我们预期的这个提升这个能 —— 那个功耗 ， 就是叫做每单位功耗的性能 ， 导致我们不能在这么小的空间里面用一个单一的风扇完成整个设备的散热

， 所以导致我们产品的这个 form factor， 这个外观外形和整体的这个形态没有办法支撑你不断的后续的迭代 。

这口锅已经毫无疑问的坐实的落到了英特尔和 AMD 头上了 。 那英特尔是显卡 ，是 CPU， 然后 AMD 是因为显卡嘛 ， 对吧 ？

**刘亚晨** [18:31]
反正都是你们的 。

**Rio** [18:32]
对 ，因为我们现在看到确实也是 。 现在你说 ，因为我 —— 亚晨你也好像我看到你买了最近那个什么新出的那几台显卡 ， 你看那个显卡都是一个大卡 ， 然后上面三个风扇 ， 对吧 ？

然后一转起来也是非常响的 。

**刘亚晨** [18:43]
对 ， 那电磁炉似的 。

**Rio** [18:45]
电磁炉 。 然后我们看到这次就是 M1 芯片不光是这个 CPU 的那个性能爆表 ，GPU 的性能也是把 —— 但它是集成显卡 ， 它的集成的显卡的这个性能也是把英特尔的那个叫时代的那个就是 Iris 吧 ，也是按在地板上磨穿 ， 对吧 ？

它提升的好像还不止 —— 不是说百分之几十这种情况 ， 它是提高了两三倍吧 ， 我记得那个大概数字是 。

**刘亚晨** [19:11]
对 ， 那个图形性能我倒是没有仔细测试了 ，因为那个确实不是我了解的东西 。 然后我看了的话 ， 别人的评测的话 ， 很多是视频博主去评测 ，他去进行视频编辑的时候的一个性能 。

只不过由于那个 M1 它自己有那个 H.265 的那个硬解码吧 ， 所以说这个好像这个评测有点不太公平 。

**Rio** [19:31]
这个事情要吐槽一下啊 ， 包括这个我记得最开始爆出这件事情做的一个显示的对比 ，是那个叫做 Jonathan Morrison 对吧 ？

他在 YouTube 上做了一个好像是两三分钟的短评吧 ，他评的是输出一段这个 H.265 的这个视频 ， 就是他是做 —— 他是做那个视频博主嘛 ， 对吧 ？

他说我有一个原始视频 ， 我编辑好了 ， 我要输出成那个叫成片 ， 要流出来成一个 H.265 这种可以给大家播放的一个文件 。他先在那个他的 —— 好像是他的 iMac Pro 吧 ， 上面开始点 ， 然后已经那边就已经开始在转码输出了 ， 对吧 ？

然后他说这个时候他拿出他刚买的这个 iPhone 12 的这个 mini， 然后说什么这个你磨叽半天 ， 说那现在我们开始在这个 iPhone mini 上面去做同样的事情 。

结果那个时候已经那个 iMac 上面已经跑了可能一两分钟了 ， 对吧 ？ 然后这个他在后面点 ， 然后这个时候 iPhone mini 还是比他那个 iMac 先完成这个转码工作 ，但看起来是很 impressive， 对不对 ？

但是这个事情刚才就说亚晨讲的它不是太公平 ，是原因是在于说一个是用专用硬件去做输出 ， 另外一个是用那个 CPU 去压 ， 那肯定是不能比的嘛 。

**刘亚晨** [20:41]
对 ， 只不过说到不公平这事的话 ， 我们之前大家就比 CPU 性能的时候 ，其实现在拿来和 M1 比的东西都是拿 iMac Pro、Mac Pro 这种顶级的桌面端的 CPU 去比了 ， 移动端的根本就早就已经不知道甩到哪里去了 。

**Rio** [20:59]
就是如果有功耗限制的肯定都是比不过的 ， 对吧 ？ 那只有找那种不太受功耗限制的 。 因为像那个 iMac Pro， 就桌面级 CPU 它都是功耗都是可能几十上百瓦的这种 。

**刘亚晨** [21:09]
对 ，因为我自己对比的时候 ， 我是测的是我的 iMac Pro 和我的之前的 19 款的 iMac、MacBook Air。iMacBook Air 的话 ， 它那个 CPU 是比较弱了 ，是两核的 。

但是相比现在的 MacBook Air 的话 ， 相当于这是一个一年前的完全同价格的一个产品拿来比较 。 然后我记得测试结果的话 ，在 M1 上面的编译时间大概是 40 秒 ， 到了 MacBook Air 上面的话是大概接近 260 秒 ，是这么一个翻这么多倍的差距 。

**Rio** [21:39]
就是 6 倍 ， 对吧 ？

**刘亚晨** [21:41]
对 ， 没错 ， 就是我在做这个测试的时候 ， 到后面我真的都不想等 MacBook Air 测三次的结果了 ， 太漫长了 。

**Rio** [21:49]
那个 Air 还是有风扇的 ， 对吧 ？ 我记得它有一个小风扇 。

**刘亚晨** [21:52]
对 ，是的 ，而且风扇转已经转到最响了 。

**Rio** [21:56]
但你这个也是有风扇 ，但是如果说你是拿这个 M1 的 Air 比 ， 我相信这个结果也不会差的太远 。 因为我们看它的那个测评结果 ， 一般好像说是 8 分钟以上才会那个 throttle， 就是降频限速嘛 。

**刘亚晨** [22:09]
没错 ， 所以这次的话 ， 这次这个 Air 和 Pro 的其实是一个定位还挺奇怪的两个产品 ， 就是感觉好像到底该买 Pro 还是买 Air 的话很难选 。

**吴涛** [22:18]
就你可以解释一下你为什么选择买 Pro 不买 Air 嘛 ？ 因为就从参数上来说好像差的并不多 。

**Rio** [22:25]
它的屏幕首先是差不多的是吧 ？

**刘亚晨** [22:27]
我印象中好像没有区别 ， 所有的技术都是一样的 。

**Rio** [22:31]
对 ，而且这次不一样 ，以前他们那个就上一代就是英特尔芯片的那个 Air， 它那个屏幕不是所谓的那个 P3 那个广色域的屏幕嘛 ，但这次它连这个也升上来了 。

**刘亚晨** [22:41]
对 ， 我记得我之前我购买之前看过那个学今天学习功课的时候 ， 发现好像没有什么屏幕上有人提到过会有区别 。

我自己买 Pro 的话是想再给 Touch Bar 一个机会 ，因为我上 —— 我在这台 Air 之前的那台的话也是台 MacBook Pro，但那个 Touch Bar 用的我非常糟心 ， 就是经常的我会想要一个功能键的时候 ， 要么摸不到它在哪里 ， 特别是 escape 键 ， 或者是它直接死机掉 ， 所以说就非常的难受 。

所以这一次想着既然要换的话 ， 那我就再给你顺便给 Pro 一个机会 。

**Rio** [23:16]
你的上一代那个 Pro 的是没有独立的物理的那个 escape 键的那款 ， 对吧 ？

**刘亚晨** [23:21]
对 ，是的 ， 那是最早发布的那一款的 Touch Bar。

**Rio** [23:25]
它后来是出过一款有单独的这个 escape 键 ， 同时有 Touch Bar 的 MacBook Pro 我记得 ， 对不对 ？

**刘亚晨** [23:31]
对 ， 就是上一款 。

**Rio** [23:32]
就是 19 年更新那一代 。

**刘亚晨** [23:33]
是 19 还是哪一年我不记得了 ， 反正就这一代和上一代在这个方面是一模一样 。

**吴涛** [23:38]
就是今年年初那一代吧 ， 应该是 。

**Rio** [23:41]
哦哦 ， 就今年的 ， 就是只要如果你现在去苹果店买 ， 然后你说你要这个英特尔芯片的 MacBook Pro， 它都是同时有物理的 escape 键和 Touch Bar。

所以你是我遇到的第一个好像还不太反感这个 Touch Bar 的人。 但是你刚才说其实体验也不是很好 。

**刘亚晨** [24:00]
我其实是很反感的 。

**吴涛** [24:02]
我刚才想说就是你用第一代 Touch Bar 你觉得很不爽 ， 然后你说想要再给第二代 Touch Bar 一个机会 ， 这个思路就比较 。

**刘亚晨** [24:13]
那就比较奇怪是吧 ？

**吴涛** [24:14]
就很 Pro 啊 ， 感觉 。

**Rio** [24:15]
这就是真的资深果粉吧 。

**刘亚晨** [24:17]
而且可能可以算吧 ， 就是因为既然要换电脑了 ， 那就多带来一点变化 ， 多带来一点不一样的去体验呗 ，是吧 ？

**Rio** [24:24]
这个我觉得也可以理解啊 ，因为有一个很显著的区别 ， 就是说英特尔的 ， 就是英特尔芯片的 MacBook Pro 的那个 Touch Bar 是用 T2 那个芯片来驱动的 ， 它有一个单独的一个 BridgeOS 来驱动它 ， 对吧 ？

就导致各种各样的这个通讯的问题我们都看到 ， 都已经看到各种什么死机啊 ， 什么没反应啊 ， 都已经很多吐槽了 。

但这次 M1 的 Touch Bar 照我的理解 ， 首先 M1 已经把 T2 的所有功能整合在 M1 里面 ， 没有单独的一个 T2 芯片了 。

那我的理解应该也不存在这个所谓的这个 BridgeOS 了 ， 对吧 ？ 它应该就是在 M1 芯片里面单独自己在内核里面跑的 。

那所以有可能说这样就可以解决 Touch Bar 之前各种什么响应失灵 、 什么死机的问题 ， 对不对 ？

**刘亚晨** [25:12]
对 ，因为这事情我之前和 Rio 我们自己私下聊过 ， 就是从我自己观察的话 ， 就在旧版的设备上，T2 的芯片用的是 USB 总线和那个整个 CPU 去进行通信 。

按照我们自己之前的经验来说的话 ，USB 的这个总线的可靠性一般来说可能是没那么高的 ， 就是它还是会在某种情况下就闪断了 。

然后说会不会是因为这样的一个原因导致那个 Touch Bar 有的时候就突然间就死机了 ， 或者是它就怎么就不灵了呢 ？

所以说我也是在想试一下 。

**Rio** [25:41]
所以你想再给它一个机会看一下对吧 ？

**刘亚晨** [25:44]
对 ，是的 ， 对 ， 看它这是不是也是英特尔的锅 。

**Rio** [25:48]
那如果说我们抛开这个不稳定性和死机这种因素来看 ，Touch Bar 本身你觉得它的这个使用性还是可以的 ？

**刘亚晨** [25:57]
我觉得也不太好说 ， 就是它虽然说看上去直观上来说它把很多操作放在键盘上了 ， 这样我能够直接站着操作的话是一个提升 ，但它有一个扣分项 ， 就是假如说我本身我自己会定了很多 Fn 的功能键有特定的作用 ， 我如果是键盘的话 ， 我能摸到那个键在哪里 ， 我好我很多时候就可以操作就直接对按下去了 。

但是如果是 Touch Bar 我完全按不到 ， 我必须得低头去看到底在哪按上去 。

**Rio** [26:22]
对 ， 这个问题我觉得是没有办法通过任何软件和这个就是什么优化来实现 ，因为它就是一个很物理的东西 ， 对吧 ？

你能不能通过触感来摸到那个东西 ？ 因为那个因为 Touch Bar 最核心的就是说它把那个 Fn 那排键的功能变成了一个随时可以定义 ， 它叫 context-aware 嘛 ， 就是说根据使用环境 ， 比如你切了一个那个某一个 APP 到那个前台 ， 它那个 Touch Bar 那功能就不一样 ， 对不对 ？

但这个就导致你没有办法说此时你不看那个 Touch Bar 的时候它会怎么样 ， 你是不知道的 。

**刘亚晨** [26:53]
对 ，而且还带来的另外一个问题就是误触 ， 就是我可能会不注意就碰到它了 ， 就把什么程序就调不对了 。

**吴涛** [27:00]
我记得 Touch Bar 刚出来的时候我发过一条推 ， 就说我花了 20 年的时间学习怎样不看键盘来打字 ，Touch Bar 出来之后我又反过来说要看键盘了 ， 这个就让人感觉很逆历史潮流 。

**刘亚晨** [27:15]
所以我觉得 Touch Bar 这个东西真的是有点像苹果就是为了做的不一样 ， 强行做出来一个不一样的东西 ， 然后感觉说不定之后希望它能改邪归正吧 。

**Rio** [27:26]
但是你还是用金钱支持了它 ， 你用脚投票说你们还接着在这条邪路上越走越远吧 ？

**刘亚晨** [27:33]
对 ，是好像是哈 ， 你这样说的话 ， 我还是怀着一个比较果粉的心态 ， 希望再给它一次机会 ，是我自己的问题 ，不是它的问题吧 。

但现在这两天用下来感觉好像不是我的问题 。

**Rio** [27:45]
OK， 好 ， 那我们到时候再关注一下就是这次这个 M1 的 MacBook Pro 普及开后 。 首先我们看确实是不是说这个 Touch Bar 的各种不稳定问题可以归咎于这个 BridgeOS 和这个 USB 的这个不稳定性 。

如果这个问题解决之后我们再来看 ， 刨除掉这种导致极大扣分的负面因素之后，Touch Bar 本身它能不能够打动消费者 ？

除了这个 Touch Bar 之外， 这回的这个 M1 芯片的 MacBook Pro 和 MacBook Air， 它唯一的区别就只有在外形和重量上了 ， 好像是 。

因为那个不管是就是接口也是一样的 ， 屏幕是一样的 ， 甚至连这个 WiFi 天线的数量都是两根都是一样的 ， 对吧 ？SSD 也是一样的 ， 那个触摸板都是一样的 。

**刘亚晨** [28:30]
对 ， 这件事情给人感觉就是 Apple 应该是把直接把原来的英特尔的版本就拿过来换了个新 ， 换了个主板 ， 大概其他的没有什么大的改进就直接拿出来了 。

好像在 mini 上这件事情会更显著一些 。

**Rio** [28:44]
就至少我们看那个 iMac iFixit 昨天的拆解图 ， 它打开来看我们来对比跟上一代就英特尔的这个芯片的 MacBook Pro， 它确实是一模一样的 ， 连那个他们说那个就是连那个 CPU 风扇的型号都是一模一样的 。

**刘亚晨** [28:59]
没错 ，而且 mini 的话好像据说会额外空出来很多空间 ， 就是明明可以做的更小的 、 更精简的一个设备 。

**Rio** [29:08]
对 ， 它其实里面就是半空了已经 。

**刘亚晨** [29:10]
对 ， 当时 Rio 问我要不要买 mini， 我觉得这肯定不能买 ， 这明明可以做的更小 ， 然后一定要塞在既有的壳子里边 ， 那我宁可等更小的下一代好了 。

**Rio** [29:23]
下一代也不一定变得更小 ， 可能变得更 powerful 呢 ， 就是下次给你一个 mini、mac mini pro 之类的这种 。

**刘亚晨** [29:28]
对 ，不管怎么说呢 ， 这一代显然没有下一代好嘛 。

**Rio** [29:31]
对 ， 这句话永远是对的 ，但是早买早享受也是 ， 这也是有道理 。 但我印象特别深刻啊 ，因为我当时是买的就是你们记不记得苹果是在 12 年发布的第一款那个 Retina 的 MacBook Pro 15 寸的那款 ， 它当时还是搭载的独立显卡 ， 还是这个 Nvidia 的 ， 应该是多少来着 ， 什么十几 00M 吧 ， 好像是 。

**刘亚晨** [29:52]
对 ， 那一代我应该也是买了的 ， 我都是第一个去吃第一代螃蟹的 。

**Rio** [29:58]
那你遇到那个质量问题了吗 ？

**刘亚晨** [30:01]
我好像不记得我遇到什么问题 ， 我记得我对那台 MacBook 当时还各方面挺满意的 。

**Rio** [30:06]
说回来这个 m1，因为你没有买那个 mini， 然后因为你有那个 DDK 嘛 ， 所以我们目前但苹果目前还没有公布到底说那个 DDK 它是租给你们用 ， 对吧 ？

当时也说的很明确 ， 那个东西产权不是属于你的 ， 到时候你还得退回去 。

**刘亚晨** [30:21]
对 。

**Rio** [30:21]
但是不知道退回去之后， 然后呢 ，因为你是为那个付了钱的 ， 对吧 ？

**刘亚晨** [30:25]
对 ， 当然那个钱的话 ， 它说的是一个 program fee，是加入这个计划的钱 ， 它和买这个设备根本就没有任何的关系 。

所以说它即使要求你收回去 ， 然后什么也不说 ， 你也是没有办法说去抱怨这件事情 。 但是好像据说按照当年那个 Power PC 这个迁移的那个时候的事情的话 ， 苹果之后你还回去的时候是会还给 ，是会再换给你一个市售的一个正式版的一个产品的 。

现在开发者大家都还挺期待这件事情 。

**Rio** [30:56]
当时它是给了一个好像是英特尔版本的 iMac 给那些就是尝试的开发者 ，但是可能这件事情不太好比 ，因为当时那个苹果开发者的数量还是非常少的 ， 对吧 ？

至少跟现在不是一个数量级 ， 可能差两个数量级了估计 。 那现在就是说有这么多人的情况下， 估计不能送 iMac 了吧 ，有点贵哈 。

**吴涛** [31:16]
能送一个 Mac mini 回来就已经不错了 。

**Rio** [31:18]
对 ， 我觉得可能送一个 M1 的 mini 应该算一下价值上应该是差不多的 ，因为现在它 M1 的那个 Mac mini 它标配是多少钱 ？

好像就是 600 刀差不多是吧 ？599 还是 699 来着 。

**刘亚晨** [31:30]
好像差不多 ， 反正是这个价位上 。 但要是这样比的话 ， 现在开发者虽然说可能比原来多了很多 ， 比如说多 10 倍吧 ， 那它苹果的市值也翻 10 倍了是吧 ？

那也可以啊 。

**Rio** [31:43]
但它也不能赔钱给你嘛 ， 我的意思就是说它可能就是让点利 ， 比如说我这个不怎么赚钱 ， 你算吧 ， 如果说我们查一下现在那个 Mac mini 的这个官方售价是多少钱 ， 对吧 ？M1 的刚好 699 嘛 ， 你交的那个开发者那个费用差不多是 500 刀 ， 对吧 ？

那我们知道苹果大概是通常来说是 30% 的这个

利润率嘛 ， 那差不多这个 mini 可能成本也就是三四百刀的样子 ， 那减掉物流成本估计能打得住 ， 我估计 。

**刘亚晨** [32:12]
实在不行的话 ， 我觉得给开发者一个折扣券什么的能够抵消一下， 你直接去自己去买的时候的价格我觉得其实也已经很不错了 。

**Rio** [32:20]
抵 5 年 Apple Developer 年费 。

**刘亚晨** [32:24]
也可以 ，也可以 ，也是个方案 。

**Rio** [32:28]
或者给那个就是 App Store 的那个 gift card 嘛 ， 你可以去店里买东西也行 。

**刘亚晨** [32:34]
对 ， 那就和其实就和抵钱差不多一个意思嘛 。

**Rio** [32:37]
对对对 ，但你自由一点嘛 ， 你不一定说一定假设你不想要 mini 了 ， 你就想要个 air， 对吧 ？ 你就它给你选择权多一些嘛 。

**刘亚晨** [32:43]
是的 。

**Rio** [32:44]
这个还挺期待到时候会怎么样 。 那如果说到时候真的换回来一个 mini， 你可以拿它来做这个什么编译主机用 ， 对吧 ？

**刘亚晨** [32:52]
对 ， 可以 ， 到时是没问题的 。

**Rio** [32:55]
因为毕竟比你那个 iMac Pro 的那个编译性能要好嘛 。

**刘亚晨** [32:58]
对啊 ， 我现在都在犹豫我要不要干脆拿个 mini 来把我这个 iMac Pro 给替代算了 。

**Rio** [33:04]
就把那个 iMac Pro 给出了 ， 然后换一个那个什么 Pro XDR Display 回来接上那个 Mac mini。

**刘亚晨** [33:12]
对 ，但是那个显示器的价格又变成了一个阻碍 。

**Rio** [33:16]
等一下 ，他们说是什么来着 ？ 就是那个显示器的那个支架的价钱是要比那个 mini 贵的 。

**刘亚晨** [33:22]
对 ，是的 ， 那个支架比 mini 还贵 。

所以我去店里买的时候 ， 我又仔细的端详了一下那个支架 ， 它做的确实是很优雅的 。

**Rio** [33:33]
很 fancy， 对吧 ？ 有一种这种跑车的感觉是不是 ？

**刘亚晨** [33:39]
对 ，是的 。

**Rio** [33:41]
那你要买吗 ？ 我觉得还是值那个钱的 。

**刘亚晨** [33:44]
我觉得想了一想 ， 冷静一下， 还是等到它二代出现 M2 这样的芯片的时候再迁移吧 。 确实现在在 M1 上要完全拿来作为一个工作开发环境的话 ， 可能还会稍微有一点障碍 。

这种情况下的话就没有必要这样非要强行换过去了 。

**Rio** [34:01]
那刚好那我们就刚才聊完了硬件好了 ， 我们就过渡到说这个软件的问题 。 就是目前你用下来在日常生活中我们分两类吧 ， 就首先说你的工作上如果用它会遇到什么样的障碍 ， 然后说是如果你日常就是日常消遣也用它会遇到什么样的问题 。

### 软件兼容

**Rio** [34:17]
我们先做工作这块吧 ， 就是说你说还是有一些工具链不够那么完善的 ， 对吧 ？ 就主要是哪些呢 ？

**刘亚晨** [34:23]
是的 ， 就是如果是苹果自己相关的 Xcode 相关的这些东西的话 ， 几乎都毫无问题 ， 所有东西都它都帮你已经想好了 ， 你就顶多是调点参数 ， 改些参数就行了 。

然后的话最多的话就是 Browse， 就是那些命令行下面的话一些工具 。 本身的话这次做的这个兼容层是非常完美的 ， 就是英特尔的 RTX 在机器上执行不会有任何的问题 ，但是一旦遇到像 batch script 这样的脚本的时候 ， 就可能会出问题了 。

然后特别是当它需要去编译本地编译一些那个代码出来 ， 然后去运行的时候就会出问题 。 但其实这个事情有一个很简单的解决方法 ， 你把你整个 terminal 就是 ITERM 或者是官方的 terminal 用那个特定的一个指令去执行了之后， 让它直接让整个 terminal 运行英特尔的框架之下， 这样的话它去执行的下面的子进程 batch 和 script 的话都会延续着这个它的母进程的这么一个父进

程的这么一个设置 。 所以说就是以虚拟的方式去运行 ， 所以说可以消灭掉很多很多的问题 。

**Rio** [35:27]
这里可能要解释一下， 就是说首先默认情况下在 M1 的 Mac 上面你开的任何程序 ， 它有两种程序 ， 一种是原生的这个 Arm， 就是这个 Arm 那个指令集的这种程序 ， 然后就是所谓的这个叫 native， 我们叫原生 ， 对吧 ？

还有一种就是用英特尔的这个指令 ，但是是通过那个 Rosetta 2 的这个模拟层来实现的 ， 对吧 ？ 它 emulation 就是用在一个 Arm 的芯片上模拟运行 X86 的指令 ， 然后来跑原来那些旧的英特尔的那些指令集的程序 ，不做任何修改 。

**刘亚晨** [36:01]
对 ，是的 。

**Rio** [36:01]
然后你的目前的状况是说 ， 如果你用那些原生的 ，有的话是没有任何问题的 ，但如果说原生它原来是英特尔的这个指令集的程序 ， 你最好还是用 Rosetta 2 的方式来驱动它会比较好一些 。

**刘亚晨** [36:18]
就是它如果本身是二进制的分发 ， 然后是英特尔的代码 ， 你就直接当它就是一个原生程序 ， 用起来没有任何的问题 ， 这个兼容层做的非常好 。

**Rio** [36:27]
但这个时候它还是通过这个模拟的方式来执行的 ， 对吧 ？ 因为它不是原生的一个 Arm 程序 。

**刘亚晨** [36:32]
对 ， 它只是因此 CPU 性能上会有损耗 ， 另外我观察的话 ， 它的内存占用上几乎是它在英特尔设备上的两倍 ， 可能是要涉及到这个虚拟的这个方式的话 ， 它有一些特定的一些损耗吧 。

**Rio** [36:45]
可能要翻译一些指令 ， 要缓存起来可能 。

**刘亚晨** [36:47]
对 ，是的 ， 所以的话就是一个内存和 CPU 的一个问题 ，但是不会影响你工作 。 所以但是的话就是会直接跑不起来的程序的话 ， 主要都是一些特别复杂的 ， 然后脚本类型的 ，因为脚本类型的话 ， 它会导致你这个翻译的机制 ， 你不知道你现在该去工作 ， 你该对这个脚本进行一些特定的一些兼容性的一些事情 ， 所以就它就整个就 break 掉了 。

**Rio** [37:10]
你的意思就是说脚本就是它是以 Arm 的方式来运行的 ，但是开发者是在这个 X86 的指令集上实现 ， 所以导致这里面有点冲突的地方 。

**刘亚晨** [37:19]
对 ，是的 ， 没错 。 就比如说你是那个脚本 ， 它直接靠一个脚本去编译出一段代码 ， 这个编译的那些各种参数和那个命令的话 ， 都是为 X86 环境设计的 ， 然后这个时候你去执行的话 ， 那个整个 batch， 整个 terminal 这个环境全都是在 Arm 状态下， 它运到这个脚本 ， 那个脚本里面自然都各种命令就和它出问题了 ， 它就没法进行下去了 。

**Rio** [37:39]
就可能连那个参数都不支持了 ， 比如说 X86 特有的参数 。

**刘亚晨** [37:43]
对 ，是的 。 但是如果你把整个 terminal 都是使用那个 Arch 指令 ， 让它以那个虚拟那个环境的话去执行的话 ， 那后面的整个这一套它就全部都对上了 ， 所以说它又能用起来了 。

**Rio** [37:55]
就是连整个这个 terminal 都运行在 Rosetta 2 的这个 X86 的环境里面 ， 所以它下面启动的所有的这个脚本 ， 它也认为它是还是在一个 X86 的这个芯片上运行 ， 所以就不会出任何问题 。

然后因为这个 Rosetta 2 的这个模拟层又做的特别好 ， 所以目前来看兼容性上是可以得到保证的 。

**刘亚晨** [38:12]
对 ，是的 。

**Rio** [38:12]
OK， 那你有没有留意到这个它用这个 Rosetta 2 来模拟运行 X86 的这些 ，不管是脚本也好 ， 还是一些就是比如说像 Dropbox 它还没有改 ， 对吧 ？

这种原生的程序 ， 除了刚才你提到这个内存占用比较大的问题之外， 它性能损耗大概有多少 ？

你能感受得到吗 ？

**刘亚晨** [38:28]
UI 程序的话几乎感受不到 ， 就是你可能感觉点开的时候稍微它慢了一点 ， 就是可能慢了那么一秒不到的一个时间吧 ，但是我不确定这是心理作用还是那个它真的是慢了一个作用 。

**Rio** [38:41]
也有可能是今天我们要说到的后面那个问题导致的 ， 对吧 ？

**刘亚晨** [38:45]
是的 。 然后根据别人的评测结果来看的话 ， 即使是在虚拟层上运行的那个速度的话 ， 都比在原来的英特尔机器上原生运行还快 ， 这个实在是太可怕了 。

**Rio** [38:57]
对 ， 这个是我觉得最让我们吃惊的一个地方啊 。 它在一个 M1 芯片上模拟运行 X86 的指令 ， 还比在 X86 的原生的那个机器上去运行还要快 ，因为这个 M1 的这个性能提升足够大嘛 ， 对吧 ？

然后它模拟损耗 ， 比如说它 M1 比这个上一代 X86 的性能提高了 70%， 然后它模拟损耗可能只有 20% 或者是 30%， 那这样算下来我还是有 40% 的提高 ， 对不对 ？

这个真的是把英特尔踢板磨穿了 。

**刘亚晨** [39:29]
是的 。

**Rio** [39:30]
太惨了 。

**刘亚晨** [39:31]
这个就让人感觉就都怀疑人生了 ， 这英特尔到底这么多年最近在干什么 。

**吴涛** [39:35]
真的是没有对比就没有伤害 ， 就你在 Apple 搞出一个东西之前 ， 你是不知道英特尔是已经老态龙钟到了什么地步 。

**刘亚晨** [39:45]
是的 。

**吴涛** [39:46]
虽然我们经常会调侃牙膏厂 ，但是我们可能心里面总会有一个想法说 ， 可能现在芯片发展的确是到就是到了这个瓶颈了 。

**Rio** [39:55]
老是说这个摩尔定律到头了 ， 对不对 ？ 然后苹果说来看我吊打你一下 。

**刘亚晨** [40:01]
对 。 只不过在新的 M1 上面的话 ， 还是能发现一些不一样的东西 ，有一些可能是在本来在 X86 结构上我们已经熟悉了十几年， 几十年的一些东西 ， 它现在在苹果这里被颠覆了 。

比如说我发现的话可能有这几个 ， 一个是根据最新的拆解结果看的话 ， 新的 WiFi 和蓝牙芯片已经不再是一个高通的一个独立的一个设备了 。在原来的 iMac 上的话 ， 我理解的话 ， 它应该还是在 PCIe 总线上的一个设备吧 。

**Rio** [40:30]
它老的那个苹果的 Mac 方案的 WiFi 方案一般都是接那个博通的方案嘛 ， 博通的单独给它做一块卡 。

但是这个事情呢 ， 好像也不是苹果先发明的 ，因为我记得如果没记错的话 ， 英特尔是就是最近两年做了一个技术吧 ， 就是它把那个 WiFi 的就是主要就是这个因为 WiFi 它分两个 ， 一个是叫做 physical layer 嘛 ， 就是物理层 ， 就包括什么无线信号的乔治解调那一套东西 ， 它单独还有一个东西 ，但是它的那个逻辑就是什么协议啊 ， 控制那层 ， 它就已经做到了

英特尔的芯片里面去 。 所以你现在去买一些比较最新的这个最新的英特尔的移动笔记本 ， 你会发现它那个也是在那个芯片组里面 ， 就是在那个英特尔的芯片里面完成的 。

就这个事情也是一样的 。

**刘亚晨** [41:14]
啊 ， 明白 。

**Rio** [41:14]
以后都是变成那种独立的 ， 就我们以前还搞那个就拆那个叫什么拆卡 ， 比如说我们给一个老的 Mac 换上比如说 WiFi 6 的这个 WiFi 卡也是可行的嘛 ，但以后就越来越不可行了 ， 就是因为它是集成在 CPU 里面的了 。

**刘亚晨** [41:30]
对 ，有一个更加的更直观的就是那个 FaceTime 的摄像头 ， 原来的话 FaceTime 摄像头是靠也是靠 USB 总线接入的 ， 现在在新的 M1 设备上， 我在系统信息里面看 ，USB 总线上默认上是干干净净的 ， 什么设备都没有 ， 说明这些内置的这些设备的话 ， 很有可能现在都是苹果自己的一些特殊的一些实现去直接就和主芯片去通讯了 ，而不再是一些标准的像我们是熟悉的这些方式

。

**Rio** [41:56]
它这叫 SOC 嘛 ， 对吧 ？System On Chip， 这个整个都是非常令人吃惊的 。

**刘亚晨** [42:01]
另外还有一个比较有趣的事情就是 ， 当你的 M1 设备如果它真的整个系统坏了之后， 你怎么样去让它恢复这个事情变得也很有点稍微有点奇怪 。

就原来的话 ， 我们的电脑不管是台式机也好 ， 笔记本也好 ， 坏了的话 ， 像 Mac 的话是进入恢复模式 ， 从网上重新下嘛 ， 然后像是或者的话更传统的方式就是拿 U 盘或者是光驱光盘重新去装整个操作系统 。

现在在新的 M1 设备上， 当如果你出现了真正彻底死掉的设备的彻底死掉开不开的时候 ， 你要做的事情是再找一台 Mac 把它两个连起来 ， 然后把那台 Mac 按照特定的开机方式让它进 DFU 模式 ， 然后在这边的 Mac 上去刷它 ， 就像刷一个 iPhone 一样 。

**吴涛** [42:47]
它不能自举了 。

**刘亚晨** [42:48]
对 ， 我还没有试过 ，但是不知道是否拿一个可启动的 U 盘上去之后能够通过 U 盘去启动 。 根据之前 DTK 的一些经验的话 ， 就是那个时候是不行的 ， 就唯一的恢复方法就是我再拿一台 Mac， 然后把它接上来当成一个设备 ， 然后把它刷一遍系统 。

**Rio** [43:07]
所以听到这里 ，其实我们已经猜出了 DTK 你是遇到了什么问题 ， 才需要做这种操作 ，是吧 ？ 虽然我不能评论它 ，但是我们推测出来应该是这么一个结果 。

**刘亚晨** [43:17]
对 ， 我没有对它进行 review。

**Rio** [43:21]
OK。 刚才说到了这个软件 ， 你的就是工具软件没什么遇到问题 ， 就是那你日常需要用的一些软件上面有遇到什么问题吗 ？

就是不管是原生运行的还是需要模拟运行的 。

**刘亚晨** [43:32]
应该是完全没遇到 。 首先是因为我用的软件的话 ， 大家这些开发者的话都更新速度非常快 ， 基本上日常用到的像 Bair、Syns 这些的话都已经专门适配 ， 已经是原生代码的那个版本都已经出来了 ， 所以说没有任何问题 。

然后有一些稍微的旧一点的程序 ， 你像 Dropbox 啊 ，Spotify 啊这些的话 ， 就靠兼容层加虚拟化的运行也没有任何问题 。

**Rio** [43:57]
而且我相信这些他们也会比较快的把那个 M1 版本的就是做出来嘛 ，因为他们还是要做这个原生的比较在乎用户体验的一些公司嘛 。

**刘亚晨** [44:06]
是的 。 而且其实整个迁移过程的话 ，其实工作量并不大 ， 都是比较烦 ， 主要是各种参数的一些兼容性的一些小修小调的一些问题 ， 没有什么需要你彻底去颠覆原来架构重构这样的一些事情 。

**Rio** [44:19]
对 ，因为你自己也有几个程序是很快就 port 到了这个 M1 上面去 ， 好像这过程中我理解应该也是比较平滑的 ， 没有遇到什么太大的问题 。

**刘亚晨** [44:29]
是的 ， 就基本上就是几个依赖库 ， 然后把它拿来之后调整一下它的一些编译参数 ， 然后在 Arm 上能编译出来 。

然后至于我自己的代码的话 ， 主要是依赖 Xcode，Xcode 这些的话就基本上是点两下搞定 。

**Rio** [44:43]
这就一直在这个苹果生态体系里面的 ， 它是比较舒服的 ， 对吧 ？ 它已经帮你把所有的问题都解决了 ， 然后你只用点点就好了 。

**刘亚晨** [44:52]
对 ， 一方面是它帮解决了吧 ，但另外一方面就是本身的话 ， 这个 Mac 和 iOS 的开发者生态是就是打通的 ， 大家基本上写的代码的话 ， 除了一些因为用的一些专用库不一样 ， 它不兼容 ，但实际上本身大部分你在 Mac 上的代码在 iOS 上也是能用的 ， 所以说这个它就自己就本身就不存在这个迁移的这么一个障碍 。

**Rio** [45:13]
所以就是那你在实际的就是比如说我们现在你做了两款 Surge 的就是 iOS 版和 Elpass 的 iOS 版 ， 现在都可以 ， 就理论上你就可以在 Mac 上去下这个 iOS 版来用 ， 只是说它的界面可能没有为这个 Mac 单独优化 。

然后碰巧刚好这两个软件都是有单独的为 Mac 优化 ， 甚至功能上也有比较大的不一样的这个 Mac 版本 ， 所以好像也没有什么必要啊 。

**刘亚晨** [45:39]
是的 。 但而且让人感觉 Apple 这件事情做的还挺细心的 ， 就是本来以为它大概是做到这么一样之后， 你启起来就像原来我们的虚拟机一样 ， 然后你可以在里面用上面大部分的 UI 功能 ， 就已经还是一个不错的一个情况了 。

比如说我自己开发 Surge 的时候 ， 虚拟机里面的 Surge 是肯定没有办法启动 Network Extension 这个网络扩展去接管我 Mac 的那个网络的 。

但是现在我发现神奇的是 ， 就是在 App Store 上面你下了 Surge 之后， 你用 Surge 的 iOS 版 ， 它在 iOS 的这么一个模拟器这么一个虚拟环境下， 你启动了之后， 它能够对接上系统 Mac 系统上的 N1 扩展这一套的所有的逻辑 ， 然后把整个系统的 VPN 给接管了 。

这个是让我也很惊艳的一件事情 。

**Rio** [46:26]
也就是说不用怎么改 iOS 的这个版本 ，也可以去操作 Mac 一些底层的一些系统扩展 。

**刘亚晨** [46:33]
没错 。 因为它这些扩展的话 ， 它的 extension 的话 ， 它在 Mac 上和 iOS 上它的接口是完全一样的 ，有很多扩展的接口都是完全一样的 ， 像 。

**吴涛** [46:43]
之前我看那个 Net Extension Filter Data Provider， 就是当时跟那个我们接下来要聊的话题比较相关的那个新闻里面的时候 ， 我注意到它的 availability 是比如说它写会它会写说 iOS 9.0、macOS 10.15， 然后加上 Mac Catalyst 13 以上 ， 就是它会说这个 class 的这个或者这个 API 的整个接口在这三个版本里面是一是完全一样的 ， 所以它迁移成本应该是蛮高的 。

**刘亚晨** [47:12]
没错 。 但是就是让人感觉它也既然去花了这个心去 ， 还是要花这个心去做这个事情的 ，也是挺不容易的 。

**Rio** [47:20]
就它可以不接 ， 然后就是就导致这种用不了 。

**刘亚晨** [47:23]
对 ， 它也可以完全不接 ，其实一般来说用户不会太在意这件事情 。

**吴涛** [47:28]
它也要求你改写 ， 像 Microsoft 就直接会 Windows 就会要求你就你就再写一遍喽 。

**刘亚晨** [47:36]
对 。

**吴涛** [47:36]
从他们来看 。

**Rio** [47:38]
这个时候反倒是说 ， 哎 ， 苹果对这个跨平台兼容性做的还蛮好的 ，是吧 ？ 但它都自己的这个控制的底层系统嘛 。

**刘亚晨** [47:46]
没错 。 就是我看起来它还挺用力的会去推这件事情的 ，因为我一开始以为的话 ， 就是可能我在 iOS 的 App 里面 ， 它如果在 Mac 虚拟环境下， 我一些获取系统配置系统参数的一些函数应该是能拿到的是 Mac 的一些参数 ， 这才是比较合理的 。

结果我发现其实 Apple 对这个进行了一个造假啊 。 我在一个 iMac 的设备 ，在一个 Mac 设备上面 ， 如果是 iOS 的这么一种运行的方式的话 ， 我拿到的设备信息是 iPad 14， 对 ，14 多少 1。

**Rio** [48:16]
它会欺骗你是吧 ？

**刘亚晨** [48:18]
对 。

**Rio** [48:18]
让你以为它是在一个 iPad 上运行的 。

**刘亚晨** [48:21]
对 ， 没错 。 操作系统版本是 14.1 还是 14.0， 就是它完全的去虚拟化造假出来一套 iOS 环境 ， 让你整个应用相信你真的是在一个 iOS 上面去运行 。

**Rio** [48:33]
对 ， 这里其实就我们就很自然的说到这件事情了 ， 就是说当时大家都在担心嘛 ， 就说这个就是换成 Arm 这个指令集后的这个 M1 上面很多很多原生的这个 X86 的软件不就运行不了了吗 ？

那怎么办呢 ？ 不会面临这个软件荒吗 ？ 那其实我们看目前它的提供了两个解决方案 ， 一个就是说通过那个 Rosetta 2 来模拟运行 X86， 目前来看这个质量还是非常好的 ， 基本上没有什么大的问题 。

然后就是说你还可以拿这个 iOS 上面的软件库直接在 Mac 上不做基本上不做什么修改 ， 就在 Mac 上面去运行 。

这个就说又提供了一个 ， 就是说它是提供了一个单从功能性来讲 ， 它其实提供了一个超级 ， 对吧 ？ 它除了能运行 Mac 本身的那些历史的软件 ， 能运行专门为 M1 这个芯片优化过的这个 native 的这个 Mac 的软件 ， 还可以运行本来在 iOS 上面运行 ， 没有想到过会在 Mac 上跑的这种软件 ， 对吧 ？

它其实是集了三个平台的好处 。

**刘亚晨** [49:34]
对 ，是的 。

**吴涛** [49:35]
Trinity， 三位一体 。

**Rio** [49:38]
这个非常好 。 那有一个问题哈 ， 就是说可能打岔问一下， 就是说因为你自己也是这个 iOS 这个程序的开发者 ， 它这样的话会不会导致你的这个产品的布局和这个包括这个定价策略会有一些影响 ？

**刘亚晨** [49:54]
对 ，是的 。 我也在思考这个问题 ， 然后现在暂时还没有那个就是一个比较明确的一个结论吧 ，但是确实是未来会需要更多去考虑的一个事情 。

**Rio** [50:05]
Surge 这种比较特殊 ， 就可能还相对来说比较清晰点 ，因为至少我们看到这个 Surge 的 iOS 版和这个 Surge 的这个 Mac 版 ， 它在功能上有比较显著的区别 ， 比如说例如这个路由模式 ， 这个是只有 Mac 版才有的 ， 对吧 ？iOS 版目前是基于因为平台限制是没法提供的 。

**刘亚晨** [50:21]
是的 。

**Rio** [50:22]
那但是如果你是直接把 iOS 版在 Mac 上运行 ，因为你根本那边就没有这个代码嘛 ， 所以它也是没有这个比如路由模式这种增强性的功能的 ， 对不对 ？

所以这个相对来说有这种差异性的地方 。 但是对于这个 Elpass 来说就比较尴尬 ，因为它功能其实是差不多的 ，也没有说有平台这种排他性吧 。

当然 Elpass 可能不太合适来比 ，因为 Elpass 本来它不是靠这个卖这个本身这个授权来盈利的 ， 对不对 ？ 它是靠订阅嘛 。

**刘亚晨** [50:49]
对 ，是的 。 对于现在主流是订阅制的话 ，其实就不存在这个问题 。 本来用户就是买一份订阅 ， 然后在所有平台上就可以用 。

所以说你把 iOS 你非要拿 iOS 版本在 Mac 上用的话 ， 那作者其实 。

**Rio** [51:01]
他也不拦你 ， 对吧 ？ 你爱怎么用怎么用 。

**刘亚晨** [51:03]
对 ，不会拦你 ， 爱怎么样怎么样吧 。 但是你比如说像 Syns 这样的话 ，是按单平台独立去购买的话 ， 就会有点尴尬这个事情 。Mac 版的原生应用的用户体验比起 iOS 版来说还是挺差距非常大的 。

就毕竟是个模拟器是嘛 ， 你永远你所有的操作都是在那么一个虚拟化的那么一个小窗口里面干的 ， 和你在 Mac 上面的话各种丰富的 。

**Rio** [51:26]
就交互还是差别很大 。

**刘亚晨** [51:27]
对 ， 差别还是很大的 。 所以说我觉得对开发者来说应该是不太不会太 care 的一件事情 ， 就不会说因为你能在我上面用了之后， 我就收入减少了 ， 或者是我就很担心啊怎么样的 ， 我觉得倒是不会太成问题 。

**Rio** [51:42]
对 ， 我觉得可能主要还是像避免 ， 或者说如何苹果如何才能避免 ， 就是 iPad 这种比较尴尬的一个状态嘛 。

比如说我们现在看到就是很多这个国内的软件也好 ， 甚至国外的软件其实也相对好一点 ，但是其实也有这个问题 ， 就是说它要么就是没有这个 iPad 版 ，因为我记得好像是这个 Instagram 到现在还是没有 iPad 版 ， 对吧 ？

**吴涛** [52:04]
没有 ， 肯定没有 。

**Rio** [52:06]
对 ， 它就是你要强行在 iPad 上运行 iPhone 版也行 ， 对吧 ？ 就是变成一个很小的窗口 ， 或者你用两倍的方式把它扩大嘛 。

然后像国内的有些软件呢 ， 就是说它有这个 iPad 版 ，但 iPad 版明显一看就是基本上没有怎么用心去做 ， 就随便重新 。

**刘亚晨** [52:22]
就放大了一下 。

**Rio** [52:23]
放大了一下， 就是很粗暴 。 比如说我记得最印象最深刻的像那个京东 ， 对吧 ？ 京东这个 APP 我用的比较多 ，有时候买东西看什么 ，有时候 iPad 上在手边我就直接在 iPad 上用 。

它连那个就是横屏转过来都不支持 ， 就只能在 iPad 上竖屏 ，但我刚好就是有那个外接键盘 ， 我的 iPad 大部分都是横屏的状态嘛 ， 就很尴尬 。

我每次用的时候还得把脑袋斜过斜个 90 度去看它 。

**刘亚晨** [52:47]
我已经放弃了 ， 我直接就用那 Safari 的浏览器里面用 。

**Rio** [52:52]
对 ， 然后我就在想啊 ， 就是说这种 iOS App 可以在 Mac 上运行是可以的 ，但会不会有开发者单独为这件事情去优化 ， 我觉得还是一个非常存疑的事情 。

就是如果不解决这个付费的或者用户数量的问题 ， 可能还是比较难 。 你说 iPad 绝对用户数肯定还是比 Mac 绝对用户数要多一些的嘛 ，但即便如此 ， 厂商还是觉得 iPad 好像没有那么重要就不管 ， 那 Mac 上面就更不用想了 。

**刘亚晨** [53:21]
对 ， 它其实得从另外一个角度 ， 可以从另外一个角度来看这件事情的话 ， 就是对于我们这种开发者是本身就有多平台的软件存在的 ， 所以说会出现互相平台之间抢占那么的一个问题 。

但是对于更多的可能开发者来说 ， 它根本就没有 Mac 版本 ， 所以说它是凭空的话多了一部分市场和用户 ， 对于他来说这绝对是一个好消息 。

**Rio** [53:43]
或者说他再做一点点简单的适配调整 ， 能够比较低成本的去支持 Mac， 它其实也还可以的 ， 只要不让它完全再为 Mac 单独定制一套 ， 那就很麻烦了 。

**刘亚晨** [53:56]
对 ，是的 ， 没错 。

**Rio** [53:58]
对 ，因为这里就不得不吐槽一下我们日常用的这个 Twitter 的这个官方客户端 ，在 Mac 上面 ， 它本质上也是一个 iOS 版 ， 它通过那个叫什么 Catalyst 的方式吧 ， 来运行 。

我觉得就是 Catalyst， 对 ， 所以说可能 Catalyst 稍微简单解释一下哈 ， 就是如果有朋友不太熟悉 ，Catalyst 是一套在

X86 的芯片上的 Mac 上面 ， 需要开发者做一些处理 ， 才能够把一个 iOS 软件变成 Mac 上可以运行的这么一套方案 ， 对吧 ？

**刘亚晨** [54:31]
对 ，是的 。

**Rio** [54:31]
和这个对比起来 ， 那显然是在 M1 芯片的 。

**吴涛** [54:35]
和 Rosetta 2 的差别 。

**Rio** [54:37]
没有 ，Rosetta 它是在 M1 上运行 X86 的 Mac 程序 ， 对吧 ？ 那这个是那个 Catalyst 是在 X86 的 Mac 上运行 iOS 的程序 ， 对吧 ？ 然后现在就说你可以就那个时候还是要这两个事情都是要 ， 就 Rosetta 是不需要开发者介入的嘛 ， 然后这个 Catalyst 是需要开发者做一些操作的 。

然后它现在还有一个不需要开发者做一个默认操作的 ， 就是说直接在 M1 芯片的 Mac 上面去运行 iOS 的程序 。

那我觉得像比如说像 Twitter 这种客户端这种做的这种调性 ， 那你还不如不要那个 Catalyst， 你直接在 M1 上去运行一个 iOS 版本 ，Twitter 可能效果还好一点 。

**吴涛** [55:16]
Wait a second，Twitter 的客户端你在用吗 ？

**Rio** [55:19]
我有在用啊 ， 非常难用啊 。

**吴涛** [55:21]
我都已经完全忘记这件事情了 。 对 ， 我就忘用网页版 ，因为在 Mac 上面刷推的时间可能也没有那么多吧 ， 就可能发推的时间要比刷推的时间多 。

**Rio** [55:31]
对 ， 发推会比较多一些 。 它毕竟还是有那个系统级别的整合嘛 ， 比如说你在一个网页上你要 share 到 Twitter 的话 ， 你有两个方案嘛 ， 一位就是说你手工编辑复制你那个叫什么 URL 到 Twitter 里面去发也可以 ， 对吧 ？

但是如果它有那个虽然说是一个 Catalyst 改的一个 APP，但好歹它会提供在 Share Sheet 里面分享那个菜单里面提供说分享到 Twitter 你可以做一些相对的操作嘛 。

就我还是比较 buying 这一套便利性的 。

**吴涛** [56:00]
我从来没有用过这个功能 ， 就是 share to Twitter 这样 。

**刘亚晨** [56:05]
我还是在继续用 Twitter bot，但 Twitter bot 的话现在受那个 API 影响比较大了 ， 就是它那边 Twitter 没有给很多数据回来 ， 很多的那些别人的回复啊什么的话 ， 你拿 Twitter bot 这种第三方客户端根本看不见 ， 所以说 Twitter bot 也就刷刷 timeline。

**Rio** [56:20]
对 ，因为最近那个这两年 Twitter 的那个就是产品本身的改动还是比较大的 ， 你看它最近又出了一个新的新的那叫 Fleets 啊什么功能 。

**吴涛** [56:29]
越发操蛋了嘛 。

**刘亚晨** [56:31]
说白一点就是越发操蛋了 。

**Rio** [56:34]
就是它还这些新功能都还没有在 API 的层面上体现给第三方开发者去接入嘛 ， 所以你要去跟原生客户端去竞争这个 feature reach， 那肯定是比不上的嘛 。

就说这里你作为用户 ， 你就必须得想说那你怎么办 ， 对吧 ？ 那我就属于那尽量用原生还是原生吧 ， 反正捏着鼻子用呗 。

**刘亚晨** [56:55]
对 。

**Rio** [56:57]
行 ， 那差不多就是 M1 的这个 Mac 的问题就聊到这里哈 ，因为也是你是刚拿到差不多还没有一个星期 ，有一个星期了吗 ？

**刘亚晨** [57:05]
没有一个星期吧 ， 应该就三天四天左右的样子 。

**Rio** [57:08]
对对对 ， 就可能接下来可能看我们目前看性能是没有问题的 ， 然后不管是原生性能就是爆表 ， 然后模拟性能还是超越原来 ， 兼容性目前来看都还好 ，但是可能还是有些小小的这种不尽人意的地方 。

但是我相信过个半年一年， 等到它明年出第二代的这个 Mac 的这个处理 ， 就是可能 M2， 比如说举个例子哈 ， 的时候大家再去买 ， 可能到时候一个是有新的这种外形的机器了哈 ，因为就是说这些兼容性的问题基本上也都解决了 ， 对吧 ？

该转原生的都转原生了 ， 然后该模拟的如果还有问题的可能也都修掉了 ， 对吧 ？ 然后那个时候大家再去换一个问题就不是很大了 。

### 唤醒慢

**刘亚晨** [57:48]
我这里还想问一下两位 ， 你们用你们现在的 Intel 的 MacBook，有觉得在就是电池状态下开盖之后到解锁这个过程非常的痛苦吗 ？

**Rio** [58:00]
首先我现在没有用 Mac， 我现在手里拿的是 X86 的 ， 所以我只能告诉你说唤醒那个那一个过程肯定不是非常的快 ， 它还是要等一下下 。

**吴涛** [58:09]
我好像基本上不怎么关盖 。

**Rio** [58:14]
好的 。

**吴涛** [58:15]
我唤醒的过程就是按一下， 随便按一下键盘什么键 ， 或者敲一下鼠标这样 。

**刘亚晨** [58:20]
好 ， 明白了 。 就是我最近几年的这个感受上来说的话 ， 我的话 MacBook 我每次每次打开它的盖子的时候都感觉非常的痛苦 ， 黑屏可能就会黑个一到两秒 ， 甚至有的时候不知道为什么卡个五六秒也是经常常见的事情 。

然后亮了之后整个 UI 也是卡住的 ， 然后输密码也是没有反应 ， 然后进了桌面之后可能也还得再卡一段时间才能恢复正常 。

我在后面我在 Twitter 上也大概问了一下， 好像有很大部分用户也是有同样的问题 ，但是好像有另外一部分用户好像又没有遇到这样的问题 。

我还挺奇怪这个问题到底是怎么造成的 。

**吴涛** [58:57]
我好像没有遇到 ， 就是在我绝无仅有的几次把它带着到处走的过程中， 就是可能一天比如说要开个会 ， 然后频繁关合十来次 ， 好像没有发生过这样的事情 。

但是你刚才说你要输密码 ， 就是我知道是有些人用手表解锁的话 ， 就是它那个免密码解锁的时候会遇到这样的情况 ，但是我好像没有遇到过 。

**Rio** [59:22]
因为这里面有一个机制的问题是这样 ， 就是说首先你取决于它是就我们讲系统休眠和系统睡眠 ， 它不是一个概念 ， 我们好像之前某一期节目里面提到过 ， 所谓这个 sleep 就是说就是它的那个内存是不断电的 ， 就是你整个内存还是在那个就整个系统的镜像还是在内存里面 ， 你只要打开它可以比较快的去跟得上 。

但如果你是休眠 ， 它就存在这么一个有一个所谓的深度休眠和这个浅度休眠问题了 。 就是你真的这个 hibernate 休眠的时候呢 ， 它的那个内存的镜像是写到磁盘的 ， 这个时候就是说哪怕你整个系统没电 ， 或者是你电池没有用光了 ， 它在唤醒的时候还是能够把那个之前的状态给唤醒回来 。

但是取决于你电脑有没有插电 ，以及你电池的剩余状态 ， 它内存是有可能会掉电的 。 这个时候如果你再打开唤醒的话 ， 它等于要从先从 SSD 上把内存里面的那个原来的那个镜像读回来 。

就是你看我们现在内存都是 16 个 G， 对吧 ？ 可能至少 80G 以上吧 ， 开发者 16 个 G 可能是标配 。 如果你是那个叫什么来的 ， 那个台式机可能是 ，但台式机不会拔电 ， 应该问题没有这个不存在这个问题 。

就是说如果是笔记本的话 ， 就是说假设我们就以 16 个 G 的这个内存镜像要都读回来的话 ， 那其实你算一下它的那个就是存储到内存带宽 ， 本来就要读 16 个 G 就要那么长时间嘛 ， 然后再上电 ， 再自检 ， 再引导起来系统 ， 就不是说从新开始 boot 啊 ， 就是说恢复之前那个状态 ， 它肯定是需要一个时间的嘛 。

**刘亚晨** [1:01:01]
但是其实我们讨论的这个好好 ， 我之前写了篇文章解释 ， 就是和这个其实真的没有关系 。 因为的话 ， 现在在最新的 MacBook 里面 ， 它的机制是一旦盒盖休眠了之后， 它就动静 ， 那个动它就先把内存 dump 一份到那个固态存储上， 保证那个断电之后的问题 ， 然后除非电池彻底耗尽 ， 一点电都没有了 ， 它你都是从标准的从 RAM 上直接唤醒的这种模

式 ，而不会去走休眠这种模式 。

**Rio** [1:01:28]
就只要是电池有电 ， 它的内存是不会掉电的 。

**刘亚晨** [1:01:31]
对 ，是的 。 要不是的话 ，因为那个现在 16G 那么大读回来 ， 你很明显你能看到一个进度条在那走进度条的 ， 那个读取那个速度是太慢了 。

**Rio** [1:01:40]
对对 ， 就你说只是说哪怕是内存没有掉电情况下， 它的唤醒也是非常慢的 ， 对吧 ？

**刘亚晨** [1:01:45]
对 ，是的 。 这个我自己做了一个猜想 ， 就是不确定这个猜想是对的 ， 就是在如果我就有一个习惯 ， 就是因为我的 MacBook 不是主力的工作机 ， 所以说我可能把它放在那盖个一两天 ， 我都可能不会用一次 ， 然后这时候才打开 。

然后如果是在 Intel 的设备上的话 ， 你在休眠的一个状态下的话 ， 整个 CPU 是彻底不活跃的 。 所以说你在打开那一瞬间 ，有很多的 APP， 它的代码的话 ， 它有很多的 timer 计时器 ， 要触发一些各种各样的事情 。

这个时候你这盖盒的越久 ， 关不用的时间越长 ， 这个各种的 timer 就堆的越多 ， 所以说这一瞬间 。

**Rio** [1:02:21]
堆积的任务在处理 ， 对吧 ？

**刘亚晨** [1:02:23]
对 ， 全部都出来了 ， 然后就要去处理 ， 然后就会导致这一个时间是非常卡的 。 然后现在我在我测试了一下新的那个 M1 的 MacBook 的话 ， 它整个 CPU 的核在后台是一直会有不间断的去唤醒整个系统 ， 然后去工作的 ， 就和你的 iPhone 一样 ， 就是它不是完全的一个彻底休眠的一个状态 。

**Rio** [1:02:42]
就是它所有的后台任务都是在一直运行的 。

**刘亚晨** [1:02:45]
对 ， 所以你就不会在那个那一时刻会有这么大量的一个任务量堆过来 ， 然后非要在那一刻全部解决掉 。

**Rio** [1:02:52]
你说这个我想起一个事 ， 就是你在那个 M1 的 MacBook Pro 上面 ， 你去它的叫 System Preferences， 就是系统设置里面找到那个能源 ， 就是 Energy Saver， 就是节能那个选项之后， 它还会有那个选项叫做 Power Nap 那个选项给你吗 ？

**刘亚晨** [1:03:09]
没有了 ， 我看过 ， 它那个选项已经取消了 。

**Rio** [1:03:12]
可能就这个问题导致的 。Power Nap 是我觉得是十点几引进的一个新特性 ， 就是说它可以让你那个 Mac 在待机或者休眠状态下， 它还是隔三差五的唤醒一下， 然后来处理一下， 比如说是做这个 Time Machine 的备份啊 ， 它说是检查邮件啊 ， 或者是 iCloud 的一些推送处理 ， 对吧 ？

但是这个是仅限于我的理解哈 ， 仅限于苹果的第一方的这些应用 。 它当时要求一个东西 ， 就是那些应用必须得支持叫做 timer， 就是合并吧 ，因为我们知道它的那些 timer 是就是各自各自 APP 有各自各自的 timer 的节奏嘛 ， 它可能不一定在一起 。

它当时为了支持这个 Power Nap， 那些应用如果你想要在 Power Nap 期间 ， 就是用户盒盖期间还能做一些后台更新的话 ， 你必须满足一些前提条件 ，其中还有一个就是说你必须能够支持把你的 timer 能够合并 ， 比如说你本来是定时定的是 ， 比如说 3 分 50 秒后唤醒一个事件 ， 你要去运行 。

但是因为如果你要在 Power Nap， 就是说你必须牺牲掉这个准确性 ， 它系统有可能说我在 3 分 20 秒的时候就把你唤醒 ， 或者是在 4 分 4 分 10 秒的时候才把你唤醒 ，因为我要考虑把尽可能多的 timer 时间合并到一个 Nap 的周期 ， 我就只用唤醒一次嘛 ，因为每次唤醒都要比较大的能耗嘛 。

所以在 M1 的芯片上不存在这个问题 ，因为它没有这个 Power Nap 这个功能 ，因为它的后台它不是有那个什么四个小的这个这个这个小核心嘛 ， 就是 Efficiency Core， 对 ， 高效率的核 ， 对吧 ？

所以它会一直在后台运行 ， 所以不需要 Nap， 就跟你的手机 ， 跟你的那个 iPhone 跟你的 iPad 一样 ， 它是其实是一直在后面有待机状态在运行的 ， 那就不存在说我需要合并 timer 这个问题 。

那你只要你不过分的去使用 ， 它还是会让你去完成这些 timer 的功能的 ，也就不会导致你说开盖以后， 导致可能上一个那个 Nap 周期累积的那些 timer 事件一下都冒出来 ， 啊 ， 我马上要处理了 ， 对吧 ？

**刘亚晨** [1:05:12]
对 ，而且那个 Power Nap 选项的话 ， 我记得默认设置情况下 ，在电池的那个情况下是关掉的 ， 就是你得自己去电源设置里面去允许它在电池的情况下执行 Power Nap。

**Rio** [1:05:23]
对 ， 就是如果你是一个电池设 ， 就是比如说你是一个笔记本 ， 你是带电池的 ， 它有它有它在那个节能选项里面会有两个 Type， 一个是电池模式 ， 一个是就是供电插插电源线的模式 ， 插电线的模式里面那个 Power Nap 默认是开的 ， 然后插那个电池模式它默认是关的 ， 你得手手动打开才能完成 ，因为它还是要费电嘛 ， 对吧 ？

但是它现在如果是 M1 的话 ， 就完全不给这个选项了 ， 我就我就有那么自信 ， 即便是这样还是不会费电 ， 对不对 ？

**刘亚晨** [1:05:50]
没错 ， 对 。 所以现在如果有 Intel 的 MacBook 的用户 ， 可以尝试一下把那个选项勾上之后， 能不能缓解那个就是唤醒了之后会卡顿的问题 。

**Rio** [1:06:00]
就至少它通过那个牺牲一些电量的方式来减缓最后同一打开唤醒 ， 然后全部 timer 时间都跑出来 ， 要要挨个处理的问题 ， 对吧 ？

**刘亚晨** [1:06:11]
对 ，但有另外一个问题 ， 就是我曾经遇到过原来的 MacBook， 就是我明明是休眠 ， 就盖上盖 ， 然后就带着出去旅行或者怎么样了 ， 然后到目的地一打开 ， 整个电池就 0%， 完全耗尽的这种情况的 ， 对 。

**吴涛** [1:06:25]
没电了 ， 我有遇到过这种情况的 。

**Rio** [1:06:28]
这个好像他们说过一个原因 ， 就是我不知道是不是这个情况 ， 就是因为你在背包里面的那个盒盖的话 ， 它是竖直的嘛 ， 如果说你没有夹紧的话 ， 比如说你书包比较空 ， 然后你抖一抖 ， 它是有可能在那个过程中把那个盖打开了 ， 就不断打开 ，不断关上 。

**吴涛** [1:06:46]
盖子变成打开状态 。

**Rio** [1:06:48]
对 ， 就它又变成又在运行 。

**吴涛** [1:06:49]
我这里不太可能 ，因为我背的是一个就是那种带专门夹层的包 ， 它会把整个 MacBook 就整非常紧的包裹起来 ，但我还是遇到过这种问题 ， 就是下班的时候把电脑放进去 ， 然后去健身 ， 然后回到家里面再打开 ， 电脑已经没电了 ， 这样 。

**刘亚晨** [1:07:08]
可能是后台有什么程序阻止了 ， 强行阻止了休眠这样的一个事情 ， 然后它它实际是运行的 。

**吴涛** [1:07:14]
有可能 ， 对 。

**Rio** [1:07:15]
或者是出现了一个 bug， 根本就没有进到休眠状态 ， 然后一直就是在那个尝试进入休眠 ， 然后不断的去这个耗能的一个状态 ，也有可能 ， 对吧 ？

但是呢 ， 我们目前都知道这个锅可以甩给 Intel 了 。

**刘亚晨** [1:07:29]
哈哈哈 ，是的 ， 这个也一起甩了吧 。

**Rio** [1:07:31]
因为 M1 没有这个问题了 。

**刘亚晨** [1:07:33]
对 ， 没这个问题了 。 我什么时候都来跑 ， 我只是变得跑得慢了一点而已 。

**Rio** [1:07:37]
对 ，不过你刚才说到这个这个 timer 的这个问题 ， 如果我在想 ， 假设苹果 ， 假设如果确实问题是如你所说那么一个的导致的 ， 它开机的时候会比较 ， 就 Intel 的那个 MacBook 开机会比较 ， 就是揭开盖会比较慢的话 ， 它其实可以等一下再启动那些 timer 事件的处理 ，也还是可以解解决这个问题吧 ？

**刘亚晨** [1:07:57]
好像从架构上来说会比较难 ，因为那已经是那个代那个程序自己的一个代码的一部分的逻辑了 。 你这个时候你要是强行的把那那部分程序全部给 sleep 住 ， 然后就只只把 Kernel 唤醒 ， 只把那个 UI 的进程和这种事情唤醒的话 ， 好像想起来想想还是一个很复杂的事情 。

**Rio** [1:08:17]
就会导致比如说你打开之后那个程序没有响应 ， 虽然说它不不影响你其他系统的性能 ，但是那个程序本身没响应 ， 会导致你说你这个东西是不是挂掉了 。

**刘亚晨** [1:08:26]
对 ，而且系统很有可能系统的某些东西也要非得依靠某个程序的某个结果怎么样的东西 ， 你把它 sleep 做完 ， 那系统也卡住了 ， 然后大家就互相锁死 。

**Rio** [1:08:36]
对 ， 我们把这个 Surge 给 sleep 住 ， 然后打开 ， 哎 ， 没网了 ， 哈哈哈 ， 就完蛋了 。

**刘亚晨** [1:08:44]
对 ，不对 ， 然后那边要检查 OCSP 的请求 ， 然后有 ， 然后就互相就死循环的卡住了 ， 所以看起来也不太可行 。

**Rio** [1:08:52]
对 ， 就这个鸡和蛋的问题很难解决啊 。

**刘亚晨** [1:08:54]
对 。

**Rio** [1:08:55]
说到这个开机 ， 你用那个手表解锁了这个 M1 的这个 MacBook Pro 吗 ？

**刘亚晨** [1:09:00]
我没有哎 ，因为我的手表的话只去只是健身的时候戴 ， 所以日常的话我都没有戴手表 。

**Rio** [1:09:06]
平时你不戴是吧 ？

**刘亚晨** [1:09:07]
对 ，而且 M1 的话有那个指纹 ， 所以说我也不戴 。

**吴涛** [1:09:09]
看亚琛和我一样 ， 我我基本上很少戴 Apple Watch， 现在不去健身了 ， 连连这个机会都没有了 ， 就放那吃灰 。

**Rio** [1:09:17]
OK，因为我平时还是戴的 ，但是因为戴一段时间就会 ， 它那个背后那个圈会压在手上， 压上一个印子 ， 就那部分皮肤会非常的这个痒 ， 就是难受嘛 ， 痒的 ， 然后就就又摘掉了 ， 就是也是出出门 ， 就是我需要走步的时候才戴上它 。

呃 ， 就这个问题还是比较难解决 。

**刘亚晨** [1:09:35]
那其实也是去健身房 。

**Rio** [1:09:37]
对 ， 之前遇到问题就是说那个我老是经常经常性的解锁不了这个 Apple Watch， 就是它你看到它在尝试解锁 ， 对吧 ？

那我是 Mac mini 哈 ， 然后它过了几秒 ， 我说这几秒时间我已经足够我输入密码完成登录的过程了 ， 对吧 ？

但是它还没有解锁 ， 最后它还告诉我失败了 ， 我还是得输一遍密码 ， 就这个可靠性非常低 。

**刘亚晨** [1:09:59]
对 ， 这个对于苹果来说简直太常见的一件事情了 ，是吧 ？ 各种的这种只要涉及到两个设备不在一个一起的这种感觉 ， 这个 bug bug 的发生率有 50% 的那么高 。

**Rio** [1:10:09]
我我是十次 ，有七次可能都解不开 ， 可能碰运气能解解锁开 ， 可能两三次这种 。

**刘亚晨** [1:10:15]
哎 ， 你的是第几代的那个 Watch？

**Rio** [1:10:18]
就是五代啊 ，不是最新这个 ，但是也是比较新的嘛 。

**刘亚晨** [1:10:21]
啊 ， 对 ， 那是去年， 那那个应该是没问题的 ，因为原来一二代的时候确实是好像实现方式整个都是不一样的 ， 那个成功率就是非常低 。

**吴涛** [1:10:29]
我就是一代的 ， 可能就是太老了 ， 无它就是太老了 。

**刘亚晨** [1:10:34]
对 ， 我当时是开发 Elpass 的时候 ， 我专门开适配了 Watch， 然后用让 Watch 可以解锁 ， 然后就发现我那个原来的最早的那一代应该是零代了 ，S0 啊 ， 那个成对 ， 那个那个真的不行 ， 那个成功率就低到可能 5% 不到的那么一个这么低的一个成功率 。

**Rio** [1:10:50]
直接直接放弃了 ， 那代那代机器真的非常非常慢 ， 就是那个 DDoS 好极嘛 ， 然后那个处理器也不行 ， 续航也不行 ， 然后哎 ， 挺坑的 。

**刘亚晨** [1:11:00]
是的 ， 然后换到五代了之后就发现成功率在测试的时候是达到了 99% 左右 ，但是在日常的使用中确实很多时候也会出现 ， 就不知道怎么它就不不工作了 。

**Rio** [1:11:12]
可能依赖于蓝牙的那个 2.4G 环境 ， 可能还是有些讲究 ，因为现在 2.4G 环境确实就是特别是在城市里面是比较糟糕的 ， 嗯 ， 然后说不管你再怎么努力 ， 你解决不了这个无线这个射频的问题的话 ， 它可能还是没有办法实现 ， 就是说稳定可靠的解锁 。

**刘亚晨** [1:11:30]
对 ，但这个锅好像也有一个可以甩给 Intel 的可能 ， 就是我之前做过一些蓝蓝牙的一些开发 ， 然后你会发现就是其实整个 macOS 和 iOS 的那个蓝牙协议站还是经常会出现问题 ， 整个协议站崩掉的 ， 所以是不是也是 Mac 上面的核心 ， 原来原来在老架构上面和蓝牙的通讯不是那么顺畅 ， 然后它出问题了 ， 然后在 M2 M1 的芯片上面也把这问题给修好了 ，也

是有可能的一种理论 。

**Rio** [1:11:58]
也有可能哈 ， 就是之前它是用那个 ， 它的之前蓝牙和 WiFi 应该都是博通的方案嘛 ， 就是在 Mac 上面 。

**刘亚晨** [1:12:04]
对 ，是的 。

**Rio** [1:12:05]
那这次它改用自己的方案 ， 说不定也也也有可能 。 对 ， 你可以关注一下， 就是你之后试着解锁几次看一下 。

**刘亚晨** [1:12:13]
行 ， 好 ， 没问题 。

**Rio** [1:12:14]
但我觉得最终要解决这个问题 ， 可能还是得靠 ，不管是从安全性还是可这个可靠性上， 还是得看那个就是 ， 哎 ， 今是从 iPhone 11 吧 ， 开始搭载了那个 U1 的那个 Ultra Wide-Band 的那个东西 ， 看能不能解决 ，因为那个一个是可以解决这个通讯可靠性 ，因为它是那个超宽带 ， 它是可以同时在多个频段上发几个消息了 ， 就不就不用再等蓝牙的一个跳频 2.4G 那么弄 ，而且它有

那个距离嘛 ， 就是说它可以更加安全可靠的判断 ， 哎 ，是不是你这个表刚好在这个 MacBook 的旁边 ， 然后我就可以有更大的这个呃信任空间 ， 说那肯定是你本人在解锁这个东西 ，而不是说通过这种叫做什么人类攻击的方式来来做的嘛 。

**刘亚晨** [1:12:57]
对 ， 没错 ，但是这个好像还是一个遥远的现实啊 ， 这个只在 iPhone 上目前装载了 ，Watch 和 Mac 上都还没有 。

**Rio** [1:13:06]
Watch 上面看主要是空间的限制吧 ， 怎么能够实现说把那个再微缩一下， 或者直接整表上的 ， 它还不是 SOC， 它是叫做 SOP 吧 ，System on Package 吧 ， 就是它整个整个那个系统都封装在一个 package 里面去了 ， 然后就是它整合度是比那个 M1 还要高的 ， 所以说到时候如果它把 U1 整合进去 ， 我觉得应该也是有可能性的 ，但只是说功耗啊 ， 这些天线怎么弄我不太清楚哈 ，但

是我希望是能够实现的 ， 然后 U1 应该上 Mac 上好像都还没有 ， 对吧 ？ 哪怕是这个 M1 的 Mac 上面是没有的 。

**刘亚晨** [1:13:40]
对 ， 都没有 。

**Rio** [1:13:41]
说不定这个 M2 可能就有了 。

**刘亚晨** [1:13:42]
应该是了 ， 按时间的话 ， 应该是到了一个该改模具该进行大升级的那么一个时间了 。

**Rio** [1:13:48]
对啊 ， 对啊 ，而且它它这个它要整合在芯片里面 ， 它也比较好做嘛 ， 都是在自己的这个 ， 就不管说安全性上还是说这个这个空间上面上， 都比较好弄 ， 对吧 ？

我觉得而且这个场景也很合适啊 ， 对吧 ？ 用这个表或者手机靠近一个你的 Mac 就就解锁了 ， 那其实还是很方便的嘛 ， 就是不用做什么操作 。

**刘亚晨** [1:14:07]
对 ， 我今天才从你这学习了 ， 原原来 U1 是可以拿来传输数据的 ， 我原来的理解的话 ，以为它只能去标定一个方向 。

**Rio** [1:14:15]
标定方向是它的那个物理特性导致的嘛 ， 传输数据它只要能够传输信号 ， 它都是可以传输数据的嘛 ，而且我理解它那个带宽还比较高 ，因为它可用的那个就那个无线的频段会比较宽嘛 ， 所以我觉得 U1 如果内置到 Apple iPad， 甚至是这个啊 ， 这个 Mac 里面 ， 它甚至你知道我现在用那个叫什么 Sidecar， 对吧 ？

就是通过是通过 WiFi 来实现的嘛 ， 它是通过 5G 的一个 WiFi 来实现的 ， 对吧 ？

**刘亚晨** [1:14:38]
对 ， 应该是 WiFi 的 。

**Rio** [1:14:39]
对 ， 如果它用 U1 的话 ， 还可以把那个 WiFi 的带宽解放出来 ，其实还是更好的一个方案了 。

**刘亚晨** [1:14:44]
对 ，是的 ， 是一个我们希望的未来 。

**Rio** [1:14:47]
对对对 ，anyway， 这个就是未来的这个苹果的这个 Mac 几代设备 ， 还是非常值得期待的 。 那大家可以去买点这个苹果股票哈 ， 反正我我是买了 ， 你们你也买了 。

**刘亚晨** [1:14:59]
我先先卖违禁了 ， 先卖违禁了 。

**Rio** [1:15:03]
对 ，OK， 今天我们前半部分叫我们叫什么寓意先扬 ， 对吧 ？ 先表扬了一顿这个苹果的这个这个这个硬件 ， 现在我们开始吐槽模式 。

**吴涛** [1:15:13]
很招在后面 。

**Rio** [1:15:14]
对 ， 就是在聊的第二个话题 ，其实是跟其实是相对来说一个比较糟糕的一个一个 ， 或者是比更加难解决的一个事情吧 。

### OCSP风波

**Rio** [1:15:22]
啊 ， 这东西叫什么啊 ？ 我不知道这个中文名叫什么 ， 我只就是这个这个缩写叫做 OCSP， 它的全名叫做 Online Certificate Status Protocol， 叫什么在线证书状态协议 ， 大概这么翻译一下吧 。

要不亚晨你给我们先解释一下 ，因为这个你这个是一个开发者专门用的东西 ， 你给我们解释这个东西是干嘛用的 ， 为什么它会这次变成一个很大的问题 。

**刘亚晨** [1:15:46]
行 ， 然后其实这个 OCSP 这个东西的话 ， 本身的话和应用的话 ， 它只是正好被套用在这了 ， 它本身不是为了解决应用安全性的那么一个问题 ， 它是解解它解决的问题是什么呢 ？

是就是在原来的传统的证书体系下啊 ， 证书可能更常见的场景是 HTTPS 网站 ， 我们当我们访问一个网站的时候 ， 网站要通过各种的加密手段给我们出示一个合理和有效的证书 ， 我们浏览器才知道我们连接到了一个这个网站是真实的 ，不是别人造假的 ， 然后这么一个情况 。

但是这个情况就会出现我的那个运营商也好 ， 或者其他 whatever 什么样的情况都行 ， 导致我把证书表情泄露出去了 ， 那我需要有一个措施能够补救 ， 然后能够把我泄露出去这个证书给它注销掉 。

所以说就有各种各样的方式去进行叫做证书吊销 。

**Rio** [1:16:35]
就这个 OCSP 就是用来吊销证书用的 ， 对吧 ？

**刘亚晨** [1:16:38]
对 ，是的 ，OCSP 就是来吊销证书的一种方式 ， 最早的时候应该是用来叫 CRL 的一种方式去吊销 ，CRL 就是定期的系统去或者是浏览器去查一个地方 ， 然后给你返回一大个列表啊 ， 哪个证书是被吊销了的 ， 你记得你不要想再相信它了 ，但这个东西就是越堆越大 ， 越堆越大 ， 越堆越大 ， 现在大家这么多网站那么多东西 。

**Rio** [1:17:00]
对 ， 它只能不剪嘛 ，因为 。

**刘亚晨** [1:17:01]
对 ，是的 ， 然后就搞得这个东西就会感觉看起来很不优雅 ， 然后 OCSP 的话其实也挺简单的 ， 就是每次访问的时候 ， 我再去找一个特定的我相信的服务去去问一下， 然后说 ， 哎 ， 这个证书 。

**Rio** [1:17:14]
它又没被吊销掉 。

**刘亚晨** [1:17:16]
对 ， 它也没被吊销掉 ， 然后服务器说 OK， 没问题 ， 然后我就我本地就放行就可以了 ， 然后可能会再加上一些缓存机制 ， 就是比如说只有几天才会访问一次 。

**Rio** [1:17:26]
这个可能有点我们做个这个这个刚才那个很技术的一个描述哈 ，但我们做一个比较形象的一个比喻 ， 就好像我们现在说是你去拿一个美国签证 ， 它虽然发给你了一个一个签证 ， 你拿到了那个所谓的 Visa 那张纸 ， 贴在你的护照上了 ， 对吧 ？

但是你实际上要去美国之前 ， 还是得在一个美国官方指定的一个网站上去注册一下， 说 ， 哎 ， 我要来美国了啊 ， 虽然你之前给我发过这个签证 ，但是你现在我再确认一下我能不能来这次 ， 对吧 ？

差不多这个 OCSP 就是说这个确认这个过程 。

**刘亚晨** [1:17:56]
可以这样解释 。

**吴涛** [1:17:56]
我觉得 OCSP 更像那种就是比如说你买了一瓶酒 ， 然后酒上有一个什么防伪标签 ， 然后说你打电话到某某某地方查这个标签是不是真的 ， 类似于这样一个东西 。

**刘亚晨** [1:18:07]
哎 ， 对 ， 这这个解释好像非常的合适 ， 几乎是一模一样的一个机制 。

**吴涛** [1:18:11]
因为就是 OCSP 的它那个验证的那个网址 ， 实际上是在证书内部 ， 就是它发给你证书的时候就告诉你 ， 你要是想查这个证书的真伪 ， 你要去哪哪查 。

**Rio** [1:18:20]
对 ， 所以它这次我们就苹果这次遇到的一个问题是说啊 ，因为这个新发的这个 macOS Big Sur 这个呃 11 版本 11 的这个新系统 ， 大规模的人去通过 OCSP 的方式去查这个应用证书 ，因为你你存你换了新系统嘛 ， 然后你都要去去你开每一个程序的时候都要先检查一遍这个东西 ， 导致苹果的这个 OCSP 服务器被等于是等于是它自己被自己 DDoS 了嘛 ， 拒绝服务攻击了 ， 导

致它缓慢 ， 然后导致所有人所有的这个 Mac 程序都启动不了 ， 就是都在等这个查询的结果 。 那就这里面可能有个跳跃的地方就在于每为什么每次启动 Mac 程序之前需要去检查一下这个证书 ， 就苹果做这个东西的目的是什么 。

**刘亚晨** [1:19:07]
这个的话最早的时候其实是就是一种安全的机制 ， 就是这个类似的机制的话 ， 就是在可能公众理解一般理解起来更简单的一个说法叫数字签名 ，在 Windows 上也有 ， 呃 ， 可能背后逻辑是这样的 ， 就是因为有恶意软件嘛 ， 那么我就要求你们每个人分发软件的时候 ， 必须都给这个软件加上一个签名 ， 就是这个所谓的证书 ， 对吧 ？

就你签完名得到一个证书 。

**Rio** [1:19:31]
对 ， 我才能认为这个软件是一个相对安全的软件 ， 我才能允许你打开 ， 然后背后最新的逻辑就是这个证书的获取是有一定的门槛和难度的 ， 对于 Mac 来说的话 ， 就是你的证证书是就是你的苹果开发者账号证书 ， 首先你要付钱才能买到 ， 要 99 刀 ， 呃 ， 你对于 99 刀这么一个成本上来说的话 ， 假如说你要非常大的广泛的去撒网 ， 然后

的话你想每一个分发都用不同的证书 ， 几乎是不可能接受的一个成本 。 另外就是你在注你在注册账号的时候是需要提供信息的 ， 支付的时候也是需要暴露你的支付的信息的 ， 假如说真的是之后需要跟你秋后算账 ， 你是个恶意软件 ， 那么是有证据可以去追寻的 。

**刘亚晨** [1:20:12]
就抓到你本人， 对吧 ？

**Rio** [1:20:13]
对 ，是的 。

**刘亚晨** [1:20:14]
你说 Surge 我们是可以找得到 ， 苹果是找到你在哪的 ， 对吧 ？

**Rio** [1:20:17]
对 ，是的 。

**刘亚晨** [1:20:18]
你在哪里注册啊 ， 你的这个法律主体是什么都能找得到 ， 就这个证书里面是包含的这些信息 。

**Rio** [1:20:23]
对 ，是的 。

**刘亚晨** [1:20:24]
除非从苹果给你这认证过 ， 你是不可能自己伪造一个默认情况下被苹果设备信任的证书的 。

**Rio** [1:20:31]
对 ， 这个是算法层面决定的 ，但这个你应该比我懂得多 ， 你可以直接给大家科普 。

**刘亚晨** [1:20:37]
哈哈 ， 这个我们我们下次再解释 ，但是我们从从实用性的解释的说 ， 就说你是不可能伪造一个呃苹果发给签发给你的证书的 ， 这个是这点安全性是可以保证的 。

那么对 ，在这个证书技术上再做 OCSP 的原因是我猜想啊 ，是不是说苹果认为我即使发给你一个可信的证书 ，但是你作为一个开发者也有可能拿这个证书来分发恶意软件 ， 对不对 ？

**Rio** [1:21:04]
对 ，是的 。

**刘亚晨** [1:21:05]
或者说你先分发了一个正常软件 ，但是你可能潜伏一段时间才启用你软件里面的恶意的功能 ， 这个时候苹果需要一个手段说 ， 即便我签发了一个可信的证书给这个软件的开发者 ， 然后他用这个证书给他的程序签了名 ， 我也要有一个所谓的叫 Kill switch， 对吧 ？

就是库克上那个 Tim Cook 可以按个键 ， 老板键 ， 老板键说禁止这个软件在苹果苹果设备上运行 ，因为它现在是一个恶意软件 ， 它有一些隐藏的功能 ， 我们当时是不知道的 。

**Rio** [1:21:36]
没错 ，是的 ， 这是一种可能 ， 还有另外一种可能是 ， 比如说开发者他不小心把它证书泄露了 ， 然后被公众所知道 ， 这个时候大家谁都可以用了 ， 那这也是需要把它注销掉 。

**吴涛** [1:21:46]
你把钥匙丢了 ， 需要整个导致整个楼都要换锁 。

**Rio** [1:21:49]
哈哈哈 ，是的 ， 这个 OCSP 其实是为了还就本质上来讲 ， 它还是为了保障用户的这个安全性考虑 ， 所以说在每次一个应用程序启动之前 ， 都去检查一下这个应用程序签名的证书是否被吊销过了 ， 如果它被吊销过的话 ， 这个程序就不能启动 ， 对吧 ？

**刘亚晨** [1:22:08]
其实还有一点偏差 ， 就是它也不是每次启动都会检查 ， 一般它还是有一个时间的缓存 ， 隔一段时间可能一两天 ， 我到时候没有具体测了 ， 可能是几天 ，也可能是几个小时这么一个时间吧 ， 然后它就会需要重新去检查一下 ，而且甚至有可能啊 ， 当然这个也是推测 ，不能确定 ， 苹果压根没有考虑 OCSP 在软件在 Apple 包的验证上这件事情 ，因为整个系统关于证书数

字签名的验证的东西都用的是一同一套公有体系 ， 然后在开发者上面的话应该是 Security Framework， 然后这套体系的话既会被拿来验证 HTTPS 你访问的网站是否是合理法的 ，也会来验证开发者那个那个开发者签名的应用包是否是合法的 ， 所以说它可能也根本没有想那么多细节 ， 就直接把那个东西搬过来在这用了 。

**Rio** [1:22:57]
OK， 如果你电脑是在没联网的状态下， 这个 OCSP 它是可以直接就直接失败 ，其实不影响你启动的 ， 对不对 ？

**刘亚晨** [1:23:05]
对 ， 这其实是 OCSP 协议本身设计的时候就有问题 ，但这个问题好像从理论上我印象中之前讨论是不可能解决的 ， 就是假如说黑客恶意的 ，他能够控制你的链路 ，他能阻止你的这个查询 ， 那怎么办 ？

**Rio** [1:23:19]
就不准你去检查 OCSP， 对吧 ？

**刘亚晨** [1:23:21]
对 ， 你不可你因为不太不太能够说你这个 OCSP 访问失败 ， 我就不允许继续 ，因为访问失败这件事情 。

**Rio** [1:23:29]
太多因素了 ， 对吗 ？

**刘亚晨** [1:23:30]
对 ， 太多因素了 ，在网络上各种方面还是都还是可能的 。 我自己观察的话是系统会重试 5 次 ， 会你如果这个连接失败了的话 ， 它会在后台自动重试 5 次 ， 如果 5 次之后都还是无法访问的话 ， 它就不管了 ， 它就继续运行 。

**Rio** [1:23:44]
那所以这里面有个非常简单直白的问题了 ， 就是说如果它 OCSP 检查默认就说如果网络不通的情况下， 它也能够就就放过不检查 ， 然后就让这次先启动以后再说 ， 它是不会影响用户使用的 。

那为什么这次会导致这么大规模的用那个不能启动呢 ？

**刘亚晨** [1:24:01]
它的问题在于它没有服务器直接说我不行了 ，而是服务器被被 DDoS 了 ， 没有响应 ， 所以说在等着它服务器说话 。

**Rio** [1:24:09]
OK， 这个代码就非常傻 ， 如果说你正常加个什么加个 timer， 就一个一个 timer， 比如说 5 秒之后还没有成功 ， 你就直接放弃了 ， 这个其实是也不会导致这么多的问题 ， 对吧 ？

**吴涛** [1:24:19]
但实际上等待 5 秒也是相当长的一段时间 。

**刘亚晨** [1:24:22]
Timer 应该是有的 ， 我觉得应该不止 5 秒 ， 可能这个那个 timer 我没有实际遇到那个它真正当机的那个时那个时间那个事情了 ， 就是我没有观测到它的倒计时多少秒 ，但是应该不止 5 秒 。

而且我觉得这可能是真的是一个第一世界没有考虑到的问题吧 ， 对于苹果的工程师坐在苹果的网络里面 ， 从来都不会觉得执行一个网络请求 ， 那个堵塞的执行一个网络请求会 。

**Rio** [1:24:44]
对 ， 还能失败 。

**刘亚晨** [1:24:45]
对 ， 还能失败 ， 还能卡住 ， 这不就几几毫秒的事情吗 ？ 有什么关系呢 ？

**Rio** [1:24:50]
对 ， 关键是说如果它是直接失败反而对了 ， 反而如果是直接失败就是网络不通的情况下， 它反而也也不会出什么太大问题 ， 它属于这种 。

**吴涛** [1:24:57]
对 ， 直接 502 之类就就就可以了 ， 对 。

**Rio** [1:25:00]
对 ，但这是属于那种就是它那边那边服务器响应非常非常慢的 ， 就说我还我还在正在努力中， 对吧 ？

你不要你不要放弃这种感觉就很 ，但即便是这样 ， 即便是这种失败场景 ， 它如果说它是就是这个 OCSP， 它是一个我们说什么的叫做异步的 ， 就是它它检查 OCSP 和和这个让你启动 App， 它是两个不需要一前后有依赖关系的这个逻辑步骤 ， 它其实也不会导致这问题 ， 对吧 ？

就说你你启动是启动了 ， 能检查检查 ， 你可以下次再告诉我这个结果 ， 或者说你你检查好了之后， 你弹个小窗出来说 ， 哎 ， 这个程序刚才我检查失败了 ，但是你已经把它打开了 ， 我现在警告你说这个已经被吊销 ， 可能有问题 ， 你赶紧退出来 ， 对吧 ？

也是可以的嘛 。

**刘亚晨** [1:25:42]
对 。

**Rio** [1:25:42]
但是它连这个也没有做 。

**刘亚晨** [1:25:45]
对 ，而且这个问题的话 ， 可能导致了在国内绝大部分用户 ，他觉得 Mac 缓慢的一个很大的问题 ， 就有的时候我们会打开我们的 Mac， 然后点开一个 App， 我就看着图标在那弹弹弹弹弹 ， 弹个 10 秒其实 。

**Rio** [1:25:58]
一直在跳 ， 对吧 ？

**刘亚晨** [1:25:59]
对 ，不是一个很常常很那个很罕见的事情 ， 就是在检查这个证书 ， 它访问不畅 ，不是网络不畅 。

**Rio** [1:26:05]
对 ， 所以就说这本质上是一个软件架构设计的失误 ， 再加上这个网络这个基础设施呃 ，因为一些外部或者是不可预测的因素导致变得缓慢 ，而不是完全不可用的情况下， 双重压力导致的一个用户使用体验的重大的问题 。

**刘亚晨** [1:26:22]
对 ，是的 。

**Rio** [1:26:22]
所以就是还是要把这个苹果的这个架构的负责这块架构的人拖出来打板子才行 。

**刘亚晨** [1:26:27]
对 ， 我觉得很可能就是之前没有想过这件事情 ，在他们那从来没有遇到过这件事情 ， 那这个坑埋在那就没一直没人管 ，其实这个坑应该埋了相当长的时间了 ， 很很大 ， 很多年以前就已经是这么一个工作方式 。

**Rio** [1:26:41]
就引入 OCSP 我记得应该是至少可能是 3 到 5 个版本以前了吧 ， 对吧 ？ 大大版本以前了 。

**刘亚晨** [1:26:47]
对 ， 我作为开发者 ， 我自己观察后台请求 ， 我早就是看到后台不断的就是 OCSP 的请求会在就会有在一直在那个进行的 。

**Rio** [1:26:55]
OCSP 也是会直接发到开发者那里去的吗 ？

**刘亚晨** [1:26:58]
不是会发到开发者那 ，他发的应该是证书的那个颁发者那里去查 ， 应该是我从 Surge 上面看网络流量 ， 我是能看到它的频次的 。

**Rio** [1:27:05]
你是从中间人的角度去看它 ？

**刘亚晨** [1:27:07]
对 ，是的 ， 我能看到它的请求 ， 然后因为它那个请求本身是 HTTP，是明文的 ， 所以说你能看到它明信息 ， 所以这也是导致这一次大家对它在隐私方面的一个泄露上的一个批评的一个原因 。

**Rio** [1:27:18]
对 ， 刚才我们说的就是说它是导致不可用嘛 ， 这个还是说是一个用户体验的问题 ， 可能相对来说如果它把这个架构改一下， 导比如说它做成异步的 ， 对吧 ？

不需要跟那个启动这个启动应用程序之间产生一个绑定关系 ， 那可能也还好 ，但可能这更要紧的是 ， 就是说它在 OCSP 检查过程中暴露出来的一些更侵犯隐私的事情 ， 比如说它说我们我们我我现在不太清楚是不是这么一回事哈 ， 我看到的这个说法是说它在 OCSP 请求是通过 HTTP 明文发送的 ， 没有通过没有走 HTTPS， 这个跟我们目前主流的呃 ， 只要是通过这个互联

网传输的信息 ， 都尽可能加密的方式来做 ， 这种做法是违背的嘛 ， 就是其一哈 。

**刘亚晨** [1:28:02]
对 。

**Rio** [1:28:03]
第二就是说它在这个明文的这个 OCSP 的请求里面还附带了你就是它要检查那个 App 的一个哈希 ， 这个所谓的哈希就是说可以唯一判定说你是否在 。

**刘亚晨** [1:28:16]
不是哈希 ，是 SN，是那个证书的 SN。

**Rio** [1:28:19]
证书的 SN 是证书的序列号 ， 对吧 ？

**刘亚晨** [1:28:21]
对 ，是的 。

**Rio** [1:28:21]
但是这个序列号是证书唯一的 。

**刘亚晨** [1:28:24]
对 。

**吴涛** [1:28:25]
假设我有一个证书和 App 之间的彩虹表的话 ， 我是可以反查出来这是哪个 App 的 。

**Rio** [1:28:29]
都是公开信息 ， 对吧 ？ 比如说 Surge， 它会有一个 SN， 对吧 ？ 它发了这个 SN 过去 ，但如果我只要假设假设我是这个 IC 或者任何一个中间人， 网络中间人， 我观察到了这个哎明文的 HTTPS 的流量 ， 然后我看到的是一个 IP 地址 ， 就是这个语言的 IP 地址 ， 它发现了苹果这个 OCSP 的服务器有一个明文的这个包 ， 包里面含有这个 SN， 那我可以 100% 精确的都是结论说这个

IP 的人在用 Surge 开发者证书签发的东西 。

**刘亚晨** [1:28:57]
对 。

**Rio** [1:28:58]
但是 Surge 开发者证书因为它只签发了两个东西 ， 就是 Surge 和这个 Elpass 这两个 APP， 那它肯定是在用其中这两个之一 ， 对吧 ？

**刘亚晨** [1:29:05]
对 ， 没错 。

**Rio** [1:29:06]
然后由于绝大部分的这个我们不刨开什么微软啊那些什么大公司哈 ， 就正常一些中小开发者 ，他可能一个证书就只开发一个 APP，其实我们可以基本上可以精确的定位到这个人是不是在用 Surge， 或者这个人是不是在用某某什么软件 ， 对吧 ？

有些比较敏稍微敏感一点敏感一点的软件 ， 就是我们是可以明确的知道这件事情的 。

**刘亚晨** [1:29:26]
对 ，是的 。

**Rio** [1:29:27]
所以从这个角度上来讲 ， 这个明文的 OCSP 的请求 ， 它的确是泄露了用户的隐私 ， 这个说法是没错的 ， 对吧 ？

**刘亚晨** [1:29:34]
对 ， 这个说法是没错的 。

**Rio** [1:29:35]
我们也看到就是这个这但这是一篇嗯 ， 这个是一篇这个博客里面 ，他有专门去解释这个整个整个这个底层原理怎么回事啊 ， 我会把这个这期的 show notes 里面会贴出这篇这文章的这个链接 ， 大家可以去如果感兴趣这个技术细节可以去点去来看 。

但我们也看到就是隔了可能几天之后， 苹果出了一个官方的算是一个回应吧 ，他在他的这个他的这个 support page 里面叫做 Safely Open Apps on your Mac， 就是说呃在你的 Mac 上安全的打开启应用程序里面 ， 最下面加了一个 section 叫做叫做这个 Privacy Protection 隐私保护它 ， 它说它最后加了一段话哈 ， 它给了三个方法 ， 它说在明年我们会增加几个变化 ， 一个是说通过加密的协议去传输这个这

个 OCSP 的请求 ， 对吧 ？ 这是其一 。 第二就是说它有更强的保护措施去解决刚才我们讲的就是说如果服务端不可用 ，不就是各种呃失败的原因呃出出现 ， 就尽量避尽量避免呃因由于服务器或者网络不可用而导致无法启动这个应用的情况嘛 ， 对吧 ？

然后就说还给用户一个选项 ， 说说用户可以 opt out， 就是可以不要这些安全保护措施 ， 就彻底的保护这个隐私 ， 对吧 ？

**吴涛** [1:30:50]
我就是要裸奔 ， 我就是像像要像 Windows 一样 。

**Rio** [1:30:54]
呃 ， 对 ， 我我就不想检查 ， 对吧 ？ 你我就不想给你苹果知道我我在运行什么样程序 ， 虽然说这个说法我觉得有点奇怪哈 ， 就是说你你你都在用苹果的软件硬件系统了 ， 你要不想让苹果知道这个是不可能的 ， 对吧 ？

苹果苹果如果要想知道 ， 它总有各种各样方法知道嘛 ， 你跟它你在这里做文章是没有用的 。 但是我们来看啊 ， 就是虽然苹果还没有公布它说它具体的解决方案是什么 ， 那我们我们这是一个毕竟是个技术节目嘛 ， 我们来想想有哪些方法可以避免这个问题 。

那首先来看哈 ， 我们先说刚才也提到了 ， 就说把这个 OCSP 检查和 App 启动的这个两个过程呃独立开来 ，不要做成是像呃如果因为 OCSP 检查失败就就是没有结果 ， 或者还在进行中， 就要等它结果才能启动 App， 这个明显是不合理的 ， 对吧 ？

**刘亚晨** [1:31:40]
对 。

**Rio** [1:31:41]
所以就是要它就 OCSP 它是一个应该是一个异步 ，在背景后台去运行的一个东西 ， 然后前台应用在还是正常执行 ，不用等待任何网络请求 ， 然后后来如果你 OCSP 检查结果 ， 你告诉我说啊要么就下次不能用 ， 或者是你这次不能用 ， 你直接弹个窗 ， 或者是给个什么提示 ， 然后把那个那个那个 APPfreeze 住也可以 ， 对吧 ？

或者是强行杀掉它退出 ， 给个提示也行 ， 那这种方法就比较简单嘛 。 那其实我更关心的就是说 ， 那是否或者说如何通过一个加密的协议来传输这个 OCSP 的检查 ， 或者说从技术上有没有可能就说不 ， 就是哪怕是我用明文传输 ，但是不会泄露用户的在用哪个证书的 ， 或者说在用哪个 APP 的这么一个信息 。

**刘亚晨** [1:32:28]
其实这个问题它之所以就是 OCSP 有这个问题 ， 就是因为 OCSP 本身最早就是为 HTTPS 这个请求来设计的 ，因为我当我去访问 HTTPS 的时候 ， 这是一个加密连接 ， 我要去验证这个证书是否有效 ， 然后我要去执行 OCSP 请求 ， 如果这个 OCSP 请求也是 HTTPS 的话 ， 那那它这个请求又该谁来检查呢 ？

集合单的问题 。

**Rio** [1:32:52]
这个说法当然我觉得逻辑上是可以理解 ，但是我觉得如果我们不去追求那么的 100% 完美的话 ， 这个我觉得也不是不可以接受呀 ， 就是如果说 OCSP 的请求它不是每次都要检查的话 ， 就是如果它可以像就是网页的 HTTPS 的检查也可以异步的话 ， 它完全可以就说我检查 OCSP 的那个 HTTPS 请求的 OCSP 我可以不做嘛 ， 或者说是我等下次嘛 ， 或者说等这个呃或者异

步来做也可以嘛 ， 至少让我保证这一次的 OCSP 请求是可以完成的 。 然后我们再来看你那个 OCSP 请求是这个就是它是两个因果的 OCSP 请求 ， 它它不需要一定是同时完成嘛 。

**刘亚晨** [1:33:29]
对 ， 这个从我的理解上来说的话 ，是当时是在 1999 年吧 ， 那个时候对隐私的保护的重要性没有现在这么强 。

然后本身的话 ， 你通过访问 HTTPS 的话 ， 你通过在链路上已经 SNI 已经泄露出你的那个访问的域名了 ， 所以说这个事情你访问哪个网站这些已经暴露了 。

就加不加密和走不走 HTTPS 的关于在 OCSP 请求上的话 ， 只涉及安全性的问题 ，不涉及隐私性的问题 。 安全性的问题的话 ，在响应结果上本身就已经被证书的那个数字签名给解决了 。

所以说你加 HTTPS 是解决隐私问题 ，在 1999 年那个时候 ， 估计大家一是它本身在 T2 的 SNI 上就已经泄露过一次了 ， 然后二是也没有这么特别的去关注这个隐私上要这么保护的一个事情 ， 所以说就没有考虑这件事 ， 这是我的理解 。

**Rio** [1:34:16]
因为它毕竟它是一个 online 的事情 ， 就是说你一定要联网 ， 然后你才要你本来就要发多东西 ， 哪怕我不通过 OCSP 来看 ， 我直接看你连去了 ， 假设我是个中间人哈 ， 我直接看你连去了哪个目标的 IP， 我也知道你去访问了什么网站 ， 对吧 ？

这个场景跟这个 App 上面启动 ，因为你有些 App 你可以是不用联网的嘛 ， 你就是本地启动一个 ， 比如说我启动一个随便某某 APP， 它它本来也不需要联网 ， 对吧 ？

它就我只是在本地启动 ，但是却通过 OCSP 这个东西泄露出我在开什么程序 ， 这就很奇怪了 ， 对不对 ？

**刘亚晨** [1:34:46]
对 ， 所以就是我的关核心观点就是是苹果偷懒了 ，他没想那么多 ， 就把那边现成那个东西就拿过来就用了 ， 没有根本没有考虑过这些这些事情 。

**吴涛** [1:34:55]
你完全可以把整个 OCSP 验证这一套搞到本地执行 ， 定期在这个呃 macOS 里面更新一套苹果从 Root Certificate 到啊具体到每一个 App 的证书的这么一套验证链 ， 然后你把这个整个验证过程放在本地完成就可以了 。

**刘亚晨** [1:35:13]
这其实就是原来传统的 CRF， 就是提前我把哪些哪些被吊销了的东西先全部下滑在这等着 ， 然后我只用更新这个就行了 。

**Rio** [1:35:21]
这个面临的最主要的一个限制就是说这个列表到底有多大 ， 我是不知道的 ，但如果想来 ， 这种在 App 上面被吊销证书的情况应该还是比较少的吧 ？

因为不像 Web 它是一个完全开放的一个状态嘛 。在 Mac 上几乎没有听说过有哪个知名的软件 ， 或者没有见过哪个软件就是出或者是安全的什么东西被出现过吊销证书的情况 ，其实在 iOS 上会很常见 ， 就是 iOS 的话有很多一些黑色产业什么的滥用企业分发那个 ， 然后去分发了很多的应用 ， 然后他们一旦苹果把他们的那个企业证书吊销了之后， 就会靠 OCSP

把证书给注销了 ， 这样的话用户的设备上那个应用就直接打开了 。 核心就是苹果之前没有仔细想过这件事 ， 没有过没有去仔细考虑把证书体系用在应用包检查上面 ， 这些细节上会不会导致问题 。

但是如果就是他好好的想了 ， 我该怎么样去做这套逻辑 ， 做这个流程的话 ， 应该是有非常多的方案能够做出一套既保证隐私又安全又稳定的一个一个结果的 。

在目前他不用它做任何就是额外的工作哈 ， 只是简单的把这个 OCSP 就是 H 呃 OCSP.apple.com 这个网站强制通过这个 HTTPS 去访问 ，也可以解决这个隐私保护泄和不泄露的问题的 。

你只有苹果知道吧 ？ 中间人是不知道的吧 ？

**刘亚晨** [1:36:35]
对 ， 理论上应该没问题 ，但是从开发者的角度的话 ， 系统架构上我觉得可能会有问题 ，因为它本身就把这些东西的功能性已经划划分成块了 ， 那么就是那个进程可能本身就没办法去再执行 HTTPS 了 ，不然它就会产生一个循环了 。

所以我觉得最后结果肯定就是它整个机制可能都完全给颠覆掉 ， 然后重新重写一套专门为检查 App 证书的那么一套体系 。

**Rio** [1:37:00]
就是既不依赖现有的这个 HTTPS 的这个证书体系 ，但又可以同时保证安全 。

**刘亚晨** [1:37:05]
对 ， 应该是就是我觉得就是这是可以值得就是专门花精力就好好的重新做一套 ，而不是就是偷个懒 ， 然后把 HTTPS 里面的东西拿过来就直接用 。

**Rio** [1:37:15]
那它其实如果因为我们知道它苹果那个都是有自带那个证书嘛 ， 它其实用那个 Root 证书给所有的设备签发一个苹果专用的证书 ， 然后用这个证书去签名这个 HTTPS 不是那个 OCSP 的请求 ， 然后再发给加密的时候再发给苹果也是可以的嘛 ， 就这个还是比较简单的 。

**刘亚晨** [1:37:33]
对 ，是的 ， 就是这样 。 这种改动其实很简单 ， 就是改两下就是改好了 ，但是如果要改的话 ， 那干脆从头再来 ，是不就把所有这些事情都考虑清楚嘛 ？

因为现在的话我们可能有隐私问题 ， 还有就是堵塞问题 ， 那个隐私问题倒是其实确实混淆一下， 怎么样一下的话就能够解决了 。

那堵塞问题要解决的话 。

**Rio** [1:37:53]
就异步嘛 。

**刘亚晨** [1:37:54]
对 ， 异步我在考虑异步的话可能没那么简单 ， 那异步第一次启动的话必须得是同步的 ， 要不的话一个恶意软件它已经起来了 ， 它该干的坏事都干完了 ， 你现在那个异步结果来了再把它吊销 ， 你这个赶不上已经赶不上这个时间了 。

**Rio** [1:38:08]
这个是一个问题 ， 就是你要不要阻止 ， 或者说你要多大程度上去阻止第一个那个那个程序 ， 或者说其实你想本来这个 OCSP 就是一个滞后的解决方案 ，不管是你说你你及时去查询 ， 它也是一个滞后的方案 ，因为你始终是要等到你发现这个程序它是恶意软件之后， 你再才能够去吊销这个它的证书 ， 然后再通过 OCSP 发布出去这个东西嘛 。

所以我觉得你去这个时候你去追求所谓的这个及时性 ，其实好像意义不是特别大 。

**刘亚晨** [1:38:35]
对 ， 没错 ，是的 。 而且现在其实在 10:15 还还是 10:14 开始 ， 已经又加了新的一层那个 No Renation 那个公证那个机制 ， 呃那个和这个证书又是独立的 。

**Rio** [1:38:46]
哎 ， 这个机制跟 OCSP 还不一样吗 ？ 你这个我一直没有搞明白 ， 这顺便可以解释一下 。

**刘亚晨** [1:38:51]
这个证书的这个机制的话是持续存在的 ， 就是这个每次启用那个超熊启动那个程序的话 ， 就好像或者是隔一段时间都会要去检查这证书是不是有效 ， 然后从此触发 OCSP 可以动态去吊销 。

那个的话只在入口检查 ，而且那个是针对每一个应用包 ， 就是我每一次开发者发布一个包 ， 都需要把那个包丢到苹果的服务器上去 ， 先做一次 hash 和各种安全性的检查 ， 然后它生成一个有效的一个签名和叫做 ticket， 然后拿给我 ， 我附在应用包里面 ， 然后下发给用户 ， 然后用户打开这个应用包的时候会检查这个 ticket 是否是有效的 。

一种是本地的静态检查 ， 同时也向服务器会检查这个 ticket 是不是有效的 ， 然后如果是有效的话才允许运行 。

**Rio** [1:39:36]
对 ， 你说的那个就是这个 Notarization 那个服务 ， 对吧 ？ 就它这个过程是做这件事情的 。

**刘亚晨** [1:39:40]
对 ， 就它其实是两个层面的东西 ，也就是说 OCSP 检查的是证书 ，但是这个证书是签发给某一个开发者账号的 ， 然后这个开发者账号可以开发很多个 APP 出来 ， 然后它它所有的检查都是检查这个证书会怎么怎么样 ，但是 Notarization 是针对于这个开发者开发的单个应用程序而言的 。

**Rio** [1:39:58]
单个二进制 ， 每个二进制都需要单独的去重新写 。 我也在思考这两种方式 ， 它到底是为什么要搞这么一种额外搞这么新的这么一层 。

**刘亚晨** [1:40:07]
它设计这两个机制的用意是或者 Notarization 主要解决什么样的问题 ？ 它说是检查这个恶意软件 ， 对吧 ？

我想的话可能有这么几个优势吧 ， 一是这样的话 ， 你每次提交的时候 ， 它其实是现在是有个要求的 ， 就是你要求你要满足以下的一些新的一些系统的安全特性 ， 这个安全特性的话 ， 随着时间的推进 ， 它的要求会变得越来越严格 ， 然后比如说像现在的一些 hardened 的一些 runtime 的一些各种限制 ， 你必须得启动了这些保安全保护之后， 你它才给你发这个签发这

么一才给你通过这么一个公证 ， 然后所以说它会能够主动的去控制去鞭策开发者 ， 你赶快把这些新的安全特性都给我做上， 要不是的话你你就别大家就用用起来会很麻烦 。

然后另外一方面的话 ， 就是可能会考虑到有些开发者他偶然发了一个版本 ， 那个版本是带有恶意软件的 ， 或者是它有什么样严重漏洞的 。

**Rio** [1:41:00]
啊 ，不用把证书都杀掉 ， 只用刚才那个版本就可以了 。

**刘亚晨** [1:41:03]
你把证书一杀掉 ， 这个可能影响的效果那个就可能是威力太大了 。 比如说 Google， 假如说 Chrome 的某个版本带来不小心带来个恶意包 ， 你这把 Google 的证书一杀 ， 这个感觉整个互联网可能都得炸了 。

**Rio** [1:41:15]
公证是解决 ， 就是说是那种出呃不是这开发者主观故意 ，而是因为疏忽或者是因为一些什么原因别的原因导致说它某一个版本的 APP 有问题 ，但是整个开发者证书还是还是安全的 。

**刘亚晨** [1:41:29]
对 ， 我觉得应该这个应该是这样 。

**Rio** [1:41:32]
我理解就是说 Notarization 它还有一个作用 ， 就是说因为我们知道并不是所有的这个 Mac 上面的应用程序都是通过这个 Mac App Store 发布 ，其实我们用的大部分这种第三方的软件都不都不是通过这个 Mac 呃 App Store 发布的 ， 所以苹果是不知道你的这个 APP 到底有 ， 它没有机会知道你你下载的这个第三方 APP 到底有没有包含恶意程序嘛 ， 就是哪怕它知道它也没法去对比 ，因为

它不知道你电脑上装了什么东西嘛 。 那么通过这个 Notarization 这个公证的机制 ， 它其实是强迫开发者必须上传一份到他那去留档 ， 然后他发现这个恶意版本之后， 它可以直接跟从它的库里面去比对 ， 说这个版本是否在我这里公证过 。

如果被公证过 ， 它就有可能被分发到其他地方去 ， 那我可以通过这个公证书后的那个时候那个时候 ticket 对吧 ， 来查到说它在哪些这个 Mac 上用过 ， 我可以去估算这个安全问题的影响范围嘛 。

**刘亚晨** [1:42:27]
没错 ， 甚至我也可以直接去拿到这一份之后， 我好去分析它的代码 ， 它到底是干了什么样的一些坏事 。

**Rio** [1:42:34]
所以是通过这个机制解决了 Mac App Store 提供的 ， 就是就是应用商店提供的一一种安全特性 ，但是又不需要强制大家都必须通过这个应用商店去发发程序嘛 。

**刘亚晨** [1:42:44]
对 ， 没错 。

**Rio** [1:42:45]
目前这两两重机制上， 一个是在用户这个开发者账号这个层面 ， 一个是在每每个单个应用的层面 ， 双重保护机制 ， 这个都是属于这个叫什么 Gatekeeper 那个要要管的事情嘛 。

就这个来看 ， 目前这个 Mac 上面的整个安全性还是还是比较有有保障的 ， 对吧 ？ 因为这个事情我印象特别深刻 ， 你知道就是在那个你知道在中国你要用那个网银哈 ，其实现在就是消费者端基本上都是用手机银行 ， 没什么太大的一个问题 ， 都会通过这个 App Store 那个 ， 你只要不做越狱 ，不做这个什么这个事情 ， 都还是能够保证你的这个安全的 。

但是在那个企业银行 ， 你还是要用那个所谓 Windows 的那个那个程序 ， 然后去下那个银行的那个客户端嘛 。

然后非常搞笑的就是那些客户端的安装程序 ， 我看了一下， 十有八九是通过 HTTP 明文去传输的 ，而且它下回来那个东西 ， 它 Windows 上也是有签名的这个机制的 ， 对吧 ？

但是你看它都是未知开发者 。

**刘亚晨** [1:43:40]
哎 ， 就感觉这些安全素养还是有一个很需要极大的提高的各个方面 。

**吴涛** [1:43:46]
安全素养实际上是是需要厂商来倒逼的 ， 我觉得在在就是在倒逼开发者做到比较安全的这一点上， 苹果实际上是业界先锋 。

**刘亚晨** [1:43:55]
没错 ， 苹果特别能逼开发者 。

**Rio** [1:43:58]
万一就不可能说哎 ， 我们下一个 Windows 10 的什么某一个版本更新 ， 然后强行加一个那个安全选项 ， 那默认你如果是未知未知开发者 ， 就没有通过签名的 ， 我根本就不给你运行 ， 它根本就不敢加这种选项 ， 对不对 ？

**吴涛** [1:44:11]
地球就炸了 ， 估计 。

**刘亚晨** [1:44:13]
这种事业只有苹果现在能够推得动 ，其他人好像不敢 。

**Rio** [1:44:16]
嗯 ， 对 ， 就说这个安全性上我觉得还是还是有比较好的保障的 ，但只是说在实现细节上， 我觉得确实还有很多刚才我们讨论的很多比较啊简单的就可以改进的空间 ， 对吧 ？

那其实还是可以更好的避免出现我们今天讨论的各种各样的问题吧 。

**刘亚晨** [1:44:33]
对 ，但其实这个讨论的话有会有到有到两个方面 ， 一个方面的话是刚刚我们说的隐私问题 ， 另外一个方面他们大家会有一种感觉 ， 就是就是像你最早那篇文章的标题嘛 ， 呃 Your Computer Isn't Yours 你的电脑不是你的 ， 那我就是我是否是我作为用户丧失了我对我的设备完全的控制权这么一件事情 。

### 你的电脑？

**Rio** [1:44:53]
技术精英这个圈子里面 ， 我说你或者说我们说说你懂安全这个东西 ， 你知道怎么回事 ， 你会觉得啊 ， 我不应该把这些信息都泄露给苹果 ，但是其实从我觉得哈 ，其实从普通人的角度来讲 ， 普通人是没有这个能力去分辨这些细节的 ， 必须要有一个了解这个事情的厂商 ，他信得过的这个厂商去完成这个事情 。

这个如果这个世界上还有什么大企业可以让你相信的话 ， 可能苹果上面属于属于那个屈屈指可数的几个之一吧 ， 应该是 。

**吴涛** [1:45:20]
这句话是非常深刻的一个一个果粉 ， 只有最最骨子里的果粉才会说出来 。

**Rio** [1:45:26]
哈哈哈 ，其实就是从普通人心里也可能还是能能理解的嘛 ， 就是我买了一台电脑 ， 这是我的电脑 ， 我想运行什么程序 ， 你苹果凭什么有权限插手 ， 说你不让我运行它 ， 这是可以理解这种心理 。

**吴涛** [1:45:38]
当然我不认同这样这样的说法 ，但是我从一个魔鬼代言人的角度来说 ， 我要反驳的话 ， 我说那你实际上你开的车也是一样的 ， 虽然你的车不能左右你能去哪不能去哪 ，但实际上你的车买回来之后你自己也是修不了的 ， 就别说你可能能换一些换一些内饰 ，但 that's it 就是现在的包括很多 4S 店都是修不了你的车的 。

**Rio** [1:46:04]
改车是违法的 ， 中国是不能上路的 。 哈哈哈 。

**刘亚晨** [1:46:08]
对 ，是的 。

**吴涛** [1:46:09]
这个法规的道在其次 ， 这很多 4S 店也实际上也是修不了你的车的 。 你就比如说现在奥迪或者是宝马之类的车 ， 你到 4S 店你说我的车有什么问题 ，他帮你测一下 ，他能做的就是把你坏的那个零件寄回去 ， 然后换一个新的过来 。

that's it 他已经失去了能够帮你维修车辆的这样一个一个作用了 。

**刘亚晨** [1:46:29]
就我觉得这本质上是一个权利和这个责任的一个分摊的问题嘛 ， 就是说没错 ， 如果从绝对的说我要有自主权的情况下， 美国不是也得讲什么叫做这个叫做 Right to Repair 嘛 ， 就好像是那些美国农民都比较强势嘛 ，他要买什么高级的那些拖拉机 ，他坏了他要修 ， 对吧 ？

他如果这个拖拉机要送去这个 John Deere 原厂再修 ， 再给他发回来 ， 那这个作物就烂在地里了 ， 这明显是不可以接受的嘛 ， 对吧 ？

就是这个我觉得完全是可以理解的 。 但是其实像你说像这种对于普通人来说 ， 你说一个电脑啊 ， 或者是一个这个一个手机 ， 对吧 ？

你就如果突然不能用的话 ， 你对你来说好像也没有那么大的一个一个损失 。 但是更主要的是说 ， 如果厂商说允许开放很多接口 ， 让你去做一些底层的修改 ， 或者哪怕像苹果这次他说给到一个选项 ， 可以让你 opt out， 可以放弃这些安全保护 ，但最终你被黑了 ， 你的这个资产被盗了 ， 或者说假设你钱里面有 1,000 个比特币 ， 假随便举个例子啊 ， 然后你又把

这个安全想要关掉 ， 然后你说你比特币偷了 ， 你你怪谁呢 ？ 你还是会去怪苹果 ， 对不对 ？ 你说你这个安全怎么做的怎么这么糟 ？

那这个时候就就你就明显就是说你的权利和责任是没有对等的嘛 。 对于绝大多数这种不是那么懂技术的 ，也不知道那些安全措施应该如何去日常践行的 ， 哪怕是说对于我们这种懂行的人， 你每天要去想各种各样的安全措施 ， 各种各样的牺牲 ， 各种各样便利性 ， 你也很心累嘛 。

就是我觉得从日常的时候来讲 ， 你还是我我愿意放弃一些所谓的我自己的一些权利 ， 去换取说啊 ，有人去帮我 take care，有人把这个事情给我搞定 。

我我我愿意 ， 我甚至愿意为此付出更高的这个这个价格 ， 对吧 ？ 这就是这个溢价的地方在这里 。

那为什么我现在不想去用安卓 ，不想用 Windows？ 这个你说安卓不好用吗 ？ 其实也不是 ， 现在安卓都做的挺好的 ， 对不对 ？Windows 也跑的很流畅 ， 都没有问题 ，但我还是不想用啊 ， 就是因为我觉得没有人去帮我盯这盯的这一块嘛 。

对 ， 所以我觉得还是要一些成年人的想法 ， 就是说你的权利和责任始终是对等的 。 对 ，是的 。 而且我觉得还有个底线 ， 就是如果你真的觉得你要是你的 ，其实你现在也是有办法的 ， 虽然麻烦一点 ， 进恢复模式把 SIP 关了 ， 把各种东西改了 ，也能够绕过这个限制 。

**Rio** [1:48:36]
裸奔去 。

**刘亚晨** [1:48:37]
对 ， 你也是能够 ， 甚至不行你把 Mac OS 3 了是吧 ？ 你装个 Windows， 那也是你的 MacBook 嘛 ，也能用 。

**Rio** [1:48:43]
就不要买 Mac 吧 ， 跑个跑装个 Linux 买个 PC 多好 ， 又便宜又好用 。

**刘亚晨** [1:48:48]
啊 ， 对对 。

**吴涛** [1:48:48]
对 ， 那篇文章的一个论点就是你在 M1 Mac 出来之前 ， 你是可以选择 ， 比如说我装个 Linux， 我装个 Ubuntu 都是可以的 ， 对吧 ？

这个硬件上面我装什么操作系统是完全 OK 的 。 但是从 M1 Mac 之后， 你除了装 Mac OS 之外， 没有办法装别的了 。

**Rio** [1:49:03]
但你可以不用买 Mac 呀 ， 没有人逼着你买 Mac 嘛 ， 对不对 ？ 所以这个也很扯 。

**刘亚晨** [1:49:07]
对 ，是 。 而且现在好像据说苹果也在考虑 ， 正在和搞开放出来 M1 的设备也能装起来操作系统 ，但是这可能就是一个比较大的工程了 。

**Rio** [1:49:17]
问题是谁谁会去适配呢 ？ 微软吗 ？ 微软做一个把那个 Windows on Arm 移植过来 。

**吴涛** [1:49:22]
啊 ， 我觉得 Linux 一定会出一个 M1， 或者说 Apple Silicon 的版本 。

**刘亚晨** [1:49:27]
我觉得微软也不是没有可能啊 ， 现在微软不是苹果的最佳合作伙伴开发者吗 ？

**Rio** [1:49:32]
哈哈哈 。 微软它现在是它的那个 ARM 生态是依赖高通嘛 ， 高通不是出了哎 ， 它最近是发了一个什么来的 X 吧 ， 还是 Pro X， 就是那个 Surface Book 还是 Surface， 就 Surface， 就也是一个那个 ， 就它出它微软自己那套那个 ， 就是两用的那个那个便携便携电脑 ， 它就好像就用的是高通的那个处理器嘛 。

**刘亚晨** [1:49:52]
但是你看现在苹果如果能够把其他厂商打成这样的话 ， 那微软之后会不会也觉得就那干脆硬件上我就硬上你了吧 ， 我也也来加注苹果的这个 ARM 生态 。

**Rio** [1:50:03]
对 ， 反正我又不卖 ， 我又不靠卖硬件赚钱 ， 对吧 ？ 我就卖卖软件 ， 然后我能够在这个 M1 的 Mac 上面跑 ， 那何乐而不为呢 ？

**刘亚晨** [1:50:11]
对啊 ，是啊 ，也是有可能的 。

**Rio** [1:50:14]
这个世界都太 crazy 了 ， 就你你就十年前你都不敢想象说啊 ， 这个微软还要去给苹果适配一下系统 ， 这什么情况呢 ？

**吴涛** [1:50:24]
说到十年前 ， 这十年前那个 Windows Guard 这次又出来了 ，在苹果发布会上 。

**Rio** [1:50:29]
啊 ， 对对 ，是那个 PC versus Mac 那个广告里面那个 PC 嘛 。

**吴涛** [1:50:34]
对 ， 稍微有点发胖 ，但是还是风采不减当年 。 我有读过一个报道 ， 就说这个广告里面两个人， 就是这个这个 Windows Guard 实际上是一个呃 ， 是一个 Mac 的铁粉 ，而那个 Mac Guard 实际上对电脑一窍不通 。

**Rio** [1:50:51]
可能是个 Windows 用户 ， 对吧 ？

**吴涛** [1:50:53]
哈哈哈 ， 对 。

**刘亚晨** [1:50:55]
啊 ， 这这个才是真的果粉啊 ， 愿为了愿意这个支持这个 ， 然后牺牲自己来来出演这个坏人。

**Rio** [1:51:03]
牺牲自己的形象 ， 那好了 ， 换取苹果的高档 。

**刘亚晨** [1:51:06]
哈哈哈 。

**Rio** [1:51:06]
那也换取了一些美元 ， 我觉得哈哈哈 ， 主要是美元比较像 。

**刘亚晨** [1:51:10]
那那他肯定的 。

**Rio** [1:51:11]
哈哈哈 。 OK， 那好啊 ， 那今天我们就这个苹果的 M1 芯片和这个 OCSP 的问题展开了这个深入而友好的讨论 。

哈哈哈 ， 那也非常感谢亚晨来我们这个节目做客啊 。

**刘亚晨** [1:51:26]
感谢两位的邀请 。

**Rio** [1:51:28]
我们这还有机会的话 ， 亚晨也可以常来我们节目再聊聊其他的一些事情 ， 我们可以比如说聊聊独立开发者呀 ， 聊聊 Surge 啊之类的事情 。

**刘亚晨** [1:51:37]
行 ， 好的 ， 还是感觉有很多蛋可以扯的 。

**Rio** [1:51:40]
哈哈哈 ， 对对对 。 那好 ， 我们今天节目就先到这里了 。

**吴涛** [1:51:44]
您刚刚收听到的节目是 《 内核恐慌 》， 一档尽量贴近计算机科技主题的娱乐 Podcast。 我们号称硬核 ，但是也没有什么干货 ， 想听就听 ，不想听就别听 。

我们的网址是 pan.icu， 您可以在网站上找到订阅我们的节目的方法 ，以及联络我们节目的方式 。 如果您期待我们更频繁的更新 ， 欢迎您到爱发电我们捐款 ， 捐款地址可以在爱发呃 ， 可以在我们的网站上找到 。

先发电后催耕 ， 文明催耕从你做起 。 如果您觉得意犹未尽 ，也欢迎您去收听 Rio 和黄海姐主持的节目 《 风头圈 》，Rio 和任宁主持的节目 《 提前怀旧 》，以及基本不由吴涛主持的 《 自弹自唱 》。

**Rio** [1:52:23]
拜拜 。

**刘亚晨** [1:52:24]
拜拜 。

**吴涛** [1:52:24]
拜拜 。

---

本节目库由 PodHood（https://podhood.com）提供支持——播客网站平台。
