架构
本页简要介绍了构成 Alpine Linux 的组件。有关更多详细信息,请参阅 wiki 概览页面。
支持的架构
Alpine Linux 硬件支持矩阵 | |||
架构 | 架构 | 描述 | 起始版本 |
---|---|---|---|
x86 | x86 | 32 位 i686 兼容(或更高版本)的 CPU,至少具有 CMOV 和 SSE2 | 全部 |
x86_64 | AMD64 兼容的 64 位 x86 指令集 | 全部 | |
ARM | armhf | 32 位 ARM,带有硬浮点 ABI - 适用于 ARMv6 设备 - Raspberry Pi 1, Zero, ZeroW, cm1 (defconfig bcmrpi) | v3.0 |
armv7 | 32 位 ARM - 适用于 ARMv7 设备 - Raspberry Pi 2, 3, 3+, Zero2W, cm3, cm3+ (defconfig bcm2709) | v3.9 | |
aarch64 | 64 位 ARM - 适用于 ARMv8+ 设备 - Raspberry Pi 3, 3+, 4, 400, Zero2W, cm3, cm3+, cm4, 5 (defconfig bcm2711) | v3.5 | |
PowerPC | ppc64le | 64 位 PowerPC (小端序),主要用于 POWER8 和 POWER9 | v3.6 |
IBM System Z | s390x | IBM Z 大型机,特别是 IBM Z 和 IBM LinuxONE (z196 最低配置) | v3.6 |
RISC V | riscv64 | 64 位 RISC V | v3.20 |
LoongArch | loongarch64 | 64 位 LoongArch | v3.21 |
Alpine 软件包
软件包构建
Alpine 软件包构建端口
软件包构建工具
软件包格式
Alpine 使用 .apk 文件格式的软件包。
软件包管理工具
启动过程

引导加载程序
引导加载程序负责查找 initfs、cmdline 和内核,并将执行权移交给内核。
一些引导加载程序允许用户交互式选择要使用的操作系统或内核(如果存在多个)。
EFI
- 默认设置使用 GRUB2。
- 另请参阅 UEFI 安全启动
BIOS
- 默认设置使用 GRUB2。
其他
内核
版本控制
版本
- lts - 长期支持内核,通用
- virt - 用于在虚拟机下运行
- edge - 最新稳定内核
- rpi - Raspberry Pi
- rpi2 - Raspberry Pi 2 (仅 Alpine ≤v3.18,在当前版本中已合并到 rpi)
- rpi4 - Raspberry Pi 4 (仅 Alpine ≤v3.18,在当前版本中已合并到 rpi)
- ashai - Apple M1
签名
命令行选项
- modules="<模块列表>" - 指定 initramfs /init 需要加载的模块列表,以挂载真正的根文件系统。
Initfs
内核将解压缩通过 'append' 引导加载程序选项传递给它的压缩 cpio 归档流,到 'rootfs' 的根目录,这是一个在启动时由内核自动挂载到 '/' 的 tmpfs。
'/init' 脚本
不要与 /sbin/init
(见下文) 混淆
此脚本位于 initfs 文件系统的根目录中,并在内核完成其启动过程后被内核调用。它负责执行必要的步骤来将真正的根文件系统挂载到 /
,并将控制权移交给 /sbin/init
。
- 解析内核命令行选项。
- 使用 nlplug-findfs 发现设备。
- [可选] 提示输入磁盘加密密钥和解锁加密分区。
Initfs 模块处理
挂载根文件系统和启动所需的模块必须内置于内核中,或者通过 引导加载程序提供的附加 initrd cpio.gz 文件在 initramfs 文件系统中可用。
/init
脚本将首先 modprobe 由 modules=
内核命令行选项和指定的 rootfs 类型名称指定的模块。然后,它将加载 /etc/modules
的内容,其中可能包括模块选项。可以使用 blacklist=
内核命令行选项将模块列入自动探测的黑名单(但不是显式插入!),该选项将黑名单条目附加到 '/etc/modprobe.d/boot-opt-blacklist.conf'
。
最小必需集合

目录结构
- / /bin /boot /dev /etc /lib /lib/modules /media /media/cdrom /media/usb /mnt /proc /sbin /sys /usr /usr/bin /usr/sbin
设备
- /dev/null
- /dev/console
- /dev/kmsg
挂载点
- /proc
- /sys
- /dev (可以禁用吗?)
配置
- /etc/passwd
- /etc/group
- /etc/fstab
二进制文件
功能集
功能集由模块和文件列表组成,这些模块和文件需要包含在最终的 initramfs 中,以支持指示的功能。
Init
/sbin/init
是在 initramfs 完成其工作后,在运行系统(live system)中启动的第一个进程。它是 Busybox 软件包的一部分,不应与上面提到的 /init
脚本 混淆。
加载内核模块
/etc/init.d/modules
加载 /etc/modules
和 /(etc|run|usr/lib|lib)/modules-load.d/*.conf
中指定的所有模块