Alpine Linux简介

Alpine Linux是针对安全目标的轻量级Linux发行版,基于musl libc和Busybox。

最初 Alpine Linux 起源于 LEAF (Linux Embedded Applicance Framework)项目,而 LEAF 项目则又是从一个非常小巧的 Linux Router Project(LRP)项目fork出来的。由此可见,Alpine从一开始其核心理念就是创建一个轻量级、精简的并且运行在内存中的防火墙/代理服务器/VPN专用发行版。

备注

Alpine Linux的创始人Natanael Copa在接受采访时解释Alpine Linux的构思:Alpine Linux想要实现的是从一个只读介质上启动并安装到内存中,并且一旦启动你就可以移除启动介质。你看,这是多么轻量级的适合部署在云计算的计算节点上的发行版,难怪Docker会选择Alpine作为运行Docker的基础操作系统。

2016年当Docker把官方Docker镜像库从Ubuntu切换到Alpine,Alpine的创始人Copa加入了Docker公司。

Alpine是一个技术人为技术人创造的Linux,其目的是技术人能够自己修复问题并将技能反馈给社区。除了Docker,Alpine也被用于很多安全相关的项目。

Alpine的一大特点是非常小巧,没有包含过多的内容。这种较小的发行版也更为安全和高效。

特性

  • 轻量级: alpine linux主要用于嵌入式系统和服务器应用程序,所以采用了 busybox(替代大量的GNU程序) 、OpenRC(代替 Systemd进程管理器 ) 以及musl 库(用于替代glibc),通过这种简化使得操作系统非常小巧,避免浪费宝贵的系统资源。不过,这也带来了兼容性不足和功能缺乏。如果你的系统是自己完全掌控,只运行特定目标的应用,这种精简环境会带来性能提升和安全性加强。

  • 稳定性和滚动升级: Alpine Linux使用2种发布模式:

    • edge 是滚动模式,相对稳定(可能一个周期中有些小问题)

    • stable 是每6个月一个发布周期,发布周期内保持稳定修复

    • edgestable 都会得到安全升级,并且 stable 有2年的支持

  • 独特的打包方式: Alpine包管理器是 Alpine Linux包管理apk ,执行效率很高的软件包管理器,有点类似 Arch LinuxPacman ,使用 APKBUILD 打包脚本完成(类似Arch Linux的 PKGBUILD )

  • 社区驱动: Alpine社区相对其他发行版较小,主要的核心开发者沟通在 #alpine-linux#alpine-devel IRC

  • 安全: Alpine的主要特点之一就是安全,通过精简系统使得受攻击面减小,特别适合嵌入系统和特定服务器领域。 ( 树莓派环境安装Alpine Linux )

参考