Skip to content
目录

05 — Mojo 与服务化

Mojo 是 Chromium 里的 IPC 基础设施。里可以把它理解成:用 IDL 定义接口,再通过消息管道做跨进程调用

Mojo 解决什么

早期手写 IPC 容易出错,接口演进困难。Mojo 的价值是:

  • .mojom 定义强类型接口。
  • 自动生成绑定代码。
  • 支持跨进程、跨线程通信。
  • 让 Network、GPU、Storage 等服务边界更清晰。

核心概念

  • mojom interface:接口定义,描述可以调用哪些方法。
  • Message pipe:双端消息管道。
  • Remote:调用方,用来发消息。
  • Receiver:接收方,绑定到具体 C++ 实现。
  • PendingReceiver:可以被传递、稍后绑定的接收端。

服务化

Chromium 把一些能力拆成服务,例如 Network Service、GPU Service。这些服务可以在独立进程中运行,通过 Mojo 和 Browser / Renderer 通信。

服务化的好处:

  • 隔离崩溃和安全风险。
  • 边界清晰,依赖更可控。
  • 便于把高权限能力从 Renderer 中移走。

常见误区

Mojo 不是业务服务本身,也不是“网络服务”或“GPU 服务”。它是定义和连接这些服务的通信基础设施。

总结

Mojo 是 Chromium 的现代 IPC 体系:mojom 定义接口,Remote 发起调用,Receiver 接收实现。它支撑了 Chromium 的服务化和多进程架构。

MIT License.