琉璃
首页
构建
chroot
rootfs
  • English
  • 简体中文
首页
构建
chroot
rootfs
  • English
  • 简体中文
  • 内核空间和用户空间

内核空间和用户空间

在 Linux 系统中,内核直接操作硬件,而用户空间程序则在内核之上运行。为了执行文件 I/O、进程管理和内存分配等操作,用户空间程序依赖于系统调用——内核提供的接口,用于访问硬件和低级功能。这些操作通常会在系统中产生副作用。

当用户运行程序时,内核会在用户空间中创建一个相应的进程。CPU 负责处理计算,而内核则协调系统调用和资源管理。

从本质上讲,容器提供了一个在主机内核之上运行的隔离用户空间环境。

rootfs

撇开硬件和 UEFI 等较低级的组件不谈,一个正在运行的 Linux 系统可以大致分为两个主要部分:

  1. 内核空间:包括核心内核映像 (vmlinux)、内核模块 (*.ko) 和设备驱动程序。

  2. 用户空间:包括用户和服务与之交互的程序和库。

容器的 rootfs(根文件系统)本质上是这个用户空间的完整快照。理论上,只要有适当的权限和兼容的内核,容器几乎可以像主机本身一样完全访问硬件和系统功能。

容器技术概述

然而,在实际情况中,这种理想情况常常受到硬件、内核兼容性和系统设计的限制。例如,Android 设备——尽管使用 Linux 内核——但通常包含与标准 GNU/Linux 容器不兼容的专有驱动程序和自定义内核配置。因此,在 Android 上运行通用容器是出了名的具有挑战性。

话虽如此,容器最初并非主要为这些平台设计的。在 GNU/Linux 系统上,我们已经有了一个成熟且标准化的用户空间环境。现代容器技术较少关注模拟一个完整的系统,而更多地关注隔离、安全性和可观察性。Seccomp 和 eBPF 等技术允许容器作为安全且受控的沙箱运行。

如今,容器不仅仅是虚拟机的轻量级替代品。它们被设计为安全、可审计和可扩展的——为云原生和生产环境中的现代部署工作流而优化。


注意:本文档尚未完全翻译。欢迎贡献翻译!
提示:本翻译由 Grok(xAI)大模型提供。

最近更新:: 2025/11/8 17:25
Contributors: Aqnya