MacBook Pro上运行Linux与内核补丁实战
2026/9/4 20:00:49 网站建设 项目流程

每年 iPhone 大版本更新前后,都会有一批客户端、游戏甚至基础架构团队跟着忙碌:新机型要适配、新系统要验证、App 审核节奏也要重新规划。但对相当一部分后端或者偏底层的开发者来说,真正影响日常开发节奏的可能不是手机发布,而是下面这个非常熟悉的场景:本地主力机是 MacBook Pro,线上环境却常年跑着 Linux。

平时写代码在 macOS 上没太大问题,可真到了部署服务、排查系统日志、调整文件描述符、甚至需要验证某个内核补丁时,很多人会发现,Mac 的终端和 Linux 服务器并不能完全画等号。更麻烦的是,如果公司没有合适的测试机,想在内核层面做实验就只能靠 SSH 连到生产环境,风险很高。

本文会把“MacBookPro + Linux + 内核补丁”这三件事串成一条可以实际操作的学习链路:先搞清楚在 MacBook Pro 上运行 Linux 的几种方式,再通过虚拟机把 Ubuntu 环境跑起来,整理常用 Linux 命令,最后从原理和实践两个层面理解内核补丁是如何生成、应用和编译验证的。如果你是在 Mac 上工作、又需要掌握 Linux 环境的后端开发者,或者对内核源码感兴趣但一直没有找到合适入口,这篇文章可以作为一份完整参考。

1. MacBook Pro 和 Linux,到底是什么关系

1.1 为什么 Mac 用户绕不开 Linux

MacBook Pro 是很多开发者的主力设备,因为它的硬件、屏幕、续航以及 Unix 内核带来的终端体验都适合写代码。但还有一个事实是:目前绝大多数云服务器、容器镜像、嵌入式设备、大数据集群,底层都是 Linux。

典型的场景包括:

  • 云服务器和部署环境:线上服务跑在 Ubuntu、Debian、CentOS Stream 等 Linux 发行版上,本地和线上要保持一致,否则容易出现“本地好的,线上崩”的尴尬。
  • 容器与云原生开发:Docker、Kubernetes 都依赖 Linux 内核特性,虽然 Docker Desktop 可以在 macOS 上运行,但实现方式仍然是在 macOS 里隐藏了一层 Linux 虚拟机。
  • 嵌入式与驱动开发:路由器、车机、物联网设备、部分开源硬件几乎都是 Linux,需要交叉编译或内核级调试。
  • 开源项目贡献:很多服务器中间件、数据库、网络项目的 CI 环境都是 Linux,想完整跑起来必须熟悉 Linux 环境。

这些场景决定了,即使你日常用 MacBook Pro 写代码,也不可能完全避开 Linux。

1.2 什么是内核补丁,为什么要了解它

内核补丁可以简单理解成一段对 Linux 内核源码的修改说明。改动的内容可能是修复一个安全漏洞、增加一个新的硬件驱动、优化某种调度策略,或者是引入一个新的实验性特性。补丁本身就是一个文本文件,里面记录了“哪个文件、哪一行、从什么内容改成了什么内容”。

普通业务开发者可能不需要每天给内核打补丁,因为发行版会把很多重要修复以二进制更新的方式直接推送。比如你执行apt upgrade,它更新内核镜像时,本质上是发行版维护者把上游补丁移植并重新编译成了内核包。但如果你遇到下面这些情况,就必须理解补丁的基本工作方式:

  • 网卡、显卡等硬件驱动只提供了源码补丁,还没合并到发行版内核。
  • 线上环境出现某个只在特定内核版本出现的 bug,需要临时验证修复补丁。
  • 你在做开源项目或嵌入式产品,需要把不同来源的补丁整合到自己的内核分支。
  • 你要研究内核源码,了解别人提交的代码改了什么。

所以,“MacBook Pro 上装 Linux”和“理解内核补丁”并不是孤立的两件事:前者给你一个能随便折腾的实验环境,后者是你在实验环境里真正能做的事情。

1.3 先厘清 macOS 内核和 Linux 内核的边界

很多新手会有一个误区:既然 macOS 也能打开终端敲lsgrepfind,那 Mac 和 Linux 是不是差不多?

这个问题需要说清楚。macOS 的内核叫 XNU,是苹果 Darwin 项目的一部分,它虽然也属于 Unix 家族,但和 Linux 内核并不是同一个项目。Linux 内核是另一套开源内核,由 Linus Torvalds 和全球开发者共同维护。两者在系统调用、内核模块格式、驱动模型、包管理、默认文件系统上都有明显差异。

所以你在 Mac 的终端里敲命令,和登录一台 Linux 服务器敲命令,只是“用户态工具相似”,并不能说明底层相同。这也是为什么条件允许时,最好单独准备一个 Linux 虚拟机,而不是让 macOS 终端承担所有“假装自己在 Linux”的工作。

2. MacBook Pro 上跑 Linux 的几种主流方式

2.1 先区分 Apple Silicon 和 Intel Mac

MacBook Pro 目前存在两条硬件路线:Apple Silicon(M 系列)和 Intel。不同硬件架构会直接影响镜像选择和虚拟化方式。

  • Apple Silicon 是 ARM64 / AArch64 架构,需要选择对应的arm64aarch64Linux 镜像。
  • Intel Mac 是 x86_64 架构,通常下载amd64镜像即可。
  • QEMU 等模拟器支持跨架构运行,比如在 M 系列上模拟 x86_64 Linux,但性能损耗很大,只适合临时验证,不适合日常开发。

很多资料在介绍 Linux 安装命令时默认你用的是 x86_64 环境,如果你用的是 M 系列 MacBook Pro,一定要留意软件源和文档中的架构参数,否则可能遇到“镜像不兼容”或“软件包安装失败”的问题。

2.2 虚拟机方案:最稳妥的日常选择

虚拟机是 MacBook Pro 上运行 Linux 最常见的方式。常用工具包括:

  • UTM:免费开源,底层基于 QEMU,对 Apple Silicon 支持得比较好,适合学习。
  • VMware Fusion:macOS 平台老牌虚拟机软件,个人用户可以使用免费版。
  • Parallels Desktop:商业软件,安装发行版体验比较自动化,适合希望减少配置成本的人。

虚拟机的优势是隔离性很好。Linux 系统只是 Mac 上的一个应用窗口,你可以在里面随便做内核实验、配置网络、体验不同桌面环境。出了问题直接删除虚拟机或者恢复快照,不会影响 macOS 本身。

2.3 容器方案:适合日常开发和服务部署

如果只是想跑 Nginx、Redis、MySQL、Python 应用等软件,不一定要开一个完整虚拟机。Docker Desktop for Mac 可以让你在 MacBook Pro 上直接运行 Linux 容器。

容器的特点是共享宿主机内核,启动速度快、占用资源少,适合模拟服务端软件运行环境。但它不会给你一个独立内核,因此不能用来做内核补丁实验。如果你自己编译一个内核模块或者替换内核,容器环境是做不到的。

2.4 原生双系统与 Asahi Linux

Intel Mac 上面安装双系统是比较成熟的方案,开机时可以选择进入 macOS 还是 Linux。Apple Silicon 上也有一个叫 Asahi Linux 的项目,目标是让 Linux 原生运行在 M 系列设备上。

需要提醒的是:Asahi Linux 是一个持续演进的项目,对不同型号的 Apple Silicon 支持程度不一样。如果你真的想尝试,必须先到官方渠道确认当前硬件支持情况,并且做好完整备份。原生驱动的成熟度相比 macOS 还有差距,不建议作为普通用户的主力系统。

2.5 不同需求下的方案选择

可以把选择逻辑简化为下面这张表:

你的需求推荐方式理由
练习 Linux 常用命令虚拟机操作简单,隔离性好
部署 Nginx、Redis 等软件Docker 容器启动快,占用资源少
尝试内核补丁或内核模块开发虚拟机可以独立更换内核版本
模拟生产环境的 Linux 服务器虚拟机或云主机网络、进程、服务管理更真实
追求接近物理机的 Linux 性能原生启动/远程服务器避免虚拟化性能损耗

对多数初学者来说,建议从虚拟机开始。这篇文章后面的实战演示,也以虚拟机里的 Ubuntu 为例。

3. 实战:在 MacBook Pro 上用 UTM 安装 Ubuntu

3.1 环境准备

在实际操作前,你需要准备两个东西:

  • 一款虚拟机软件,本文以 UTM 为例。
  • 一个 Ubuntu 镜像,推荐去 Ubuntu 官网下载 Server 或 Desktop 版本。

下载镜像时,Apple Silicon 用户选择 ARM 架构,Intel Mac 用户选择 AMD64 架构。如果你不确定自己的 Mac 是什么架构,可以点击左上角苹果图标,选择“关于本机”,查看处理器信息。

下面以 Ubuntu Server 为例,因为服务端场景更常用,也更贴近后面介绍内核补丁与命令操作。

3.2 新建虚拟机的通用步骤

UTM 不同版本的界面细节会有差异,但大体流程是类似的:

  1. 打开 UTM,点击“新建虚拟机”。
  2. 选择“Virtualize”或者“Emulate”。通常会推荐你直接选择系统支持的虚拟化方式。
  3. 选择操作系统类型为 Linux,然后指定下载好的 Ubuntu ISO 镜像。
  4. 分配 CPU 核心数和内存大小。建议至少分配 2 个 CPU、4GB 内存,如果你需要编译 Linux 内核,最好给 4 个以上 CPU 和 8GB 以上内存。
  5. 创建虚拟磁盘,建议大小 40GB 以上,

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询