Skip to content

4.3 macOS 用户迁移指南

macOS 与 FreeBSD 共享大量 BSD 组件,因此从 macOS 迁移到 FreeBSD,命令行入门较从 Windows 迁移更为容易。

4.3.1 共同的 BSD 血脉

从历史角度看,macOS(以及由此衍生的 iOS、iPadOS 等)的核心层(Darwin)基于 BSD 代码,并融合了其他技术。

text
Original Unix
        |
        V
     4.3 BSD ------------------------------------------------------+
        |                                                          |
        +----------------------+                                   | (基于 4.3 BSD)
        |                      |                                   V
        V                      V                           CMU Mach Project
   4.3BSD-Reno             386BSD 0.1                              |
        |                      |                                   V
        |                      V                                 Mach
        V                 FreeBSD 1.0                              |
   4.4BSD-Lite                 |                   +---------------+---------------+
                               |                   |                               |
                               V                   V                               V
                        FreeBSD 4.x/5.x        OSFMK 7.3                     NeXT Mach 2.5
                               |            (Based on Mach 3.0)              (Integrated 4.3 BSD)
                               |                   |                               |
                               |                   |                       +-------+
                               |                   |                       |       |
                               |                   |                       |       V
                               |                   |                       |    NeXTSTEP
                               |                   |                       |       |
                               |                   |                       |       V
                               |                   |                       |    OPENSTEP
                               |                   |                       |       |
                               |                   |                       |       V
                               |                   |                       |    Rhapsody
                               |                   |                       |       |
                               +---+               |                       |       |
                                   |               |                       |       |
                                   V               V                       V       |
                               +-----------------------------------------------+   |
                               |                   XNU Kernel                  |   |
                               |                                               |   |
                               |         (Mach 2.5 Base + OSFMK 7.3            |   |
                               |          + FreeBSD 4.x/5.x VFS/Networking)    |   |
                               +-----------------------------------------------+   |
                                                       |                           |
                                                       V                           |
                                                     Darwin                        |
                                       (XNU Kernel + FreeBSD Userland)             |
                                                       |                           |
                                                       +---------------------------+
                                                                     |
                                                                     V
                                                                   macOS
                                                      (Darwin + Aqua UI + Cocoa)

macOS 系列操作系统可以看作独立的、类 BSD 操作系统分支,与 OpenBSD、NetBSD 和 FreeBSD 等系统具有同等地位。

组件来源
XNU 内核基于 Mach 微内核(CMU)、NeXTStep/OpenStep 架构,整合 BSD 子系统
网络栈BSD/FreeBSD TCP/IP 协议栈为核心(IPv4/IPv6),包含 IOKIT 驱动接口;NKE(Network Kernel Extensions,网络内核扩展)
虚拟文件系统基于 BSD VFS,支持 HFS+、APFS、UFS 等文件系统
用户空间工具BSD 用户工具(如 ls、cp、grep 等),经过苹果改造和增强
内存管理Mach 虚拟内存管理(VM),受 BSD 内存管理机制部分影响,支持分页、保护和共享内存
进程模型Mach IPC、Security Trailers、强制访问控制(MAC)机制,支持多任务和安全策略

4.3.2 基本比较

功能macOSFreeBSD说明
shellzshshFreeBSD 可选支持 zsh
权限提升sudo可选FreeBSD 可选支持 sudo
软件管理(二进制包)可选,通常为 Homebrewpkg/
软件管理(基于源代码)MacPortsPortsMacPorts 源自 Ports
防火墙pf (Packet Filter)内置 pf (Packet Filter) 等多种防火墙可选支持
服务管理launchd(命令 launchctlBSD init + RC 系统/
编译程序Clang + LLVMClang + LLVM/
生命周期3 年4 年/
文件系统APFS(默认)ZFS(默认)/
UNIX 认证逐版本认证未认证/

注意

macOS 中的许多命令行工具(如 sedgrepawk)已是较旧版本,与 FreeBSD 当前版本相比存在差异。

4.3.3 文件系统 APFS 与 ZFS 比较

特性APFSZFS
校验和仅元数据元数据 + 数据(端到端)
快照支持支持
写时复制支持支持
压缩仅支持上层特定文件压缩,非底层实时流压缩支持(LZ4、GZIP、ZSTD 等)
加密原生支持原生支持
去重不支持全局去重支持
克隆支持支持
RAID不支持RAID-Z / RAID-Z2 / RAID-Z3
空间共享容器内卷共享存储池内数据集共享
最大卷/池大小8 EB256 ZB
大小写敏感性macOS 默认不区分默认区分(可通过属性调节)

macOS 的 APFS 默认不区分大小写(Case-Insensitive),而 FreeBSD 的 ZFS 和 UFS 默认均区分大小写。

4.3.4 参考文献