微软正式宣布开源自家使用的Linux发行版——CBL-Mariner(CBL 即 Common Base Linux),和任何Linux发行版一样,你可以下载它并自己运行它。
因此,CBL-Mariner不像我们想到的任何其他发行版(例如 Ubuntu 或 Fedora)那样是通用发行版,CBL-Mariner 不是桌面 Linux 而是服务器端 Linux,它被用于微软的云基础设施以及边缘产品和服务。CBL-Mariner 旨在为这些设备和服务提供一个一致的平台,并增强微软在 Linux 更新方面与时俱进的能力。这是微软对各种 Linux 技术不断增加投资的一部分,例如SONiC、Azure Sphere OS和Windows Subsystem for Linux (WSL)。
CBL-Mariner 的设计理念是,一组小的通用核心包可以满足第一方云和边缘服务的普遍需求,同时允许各个团队在通用核心之上分层附加包,为他们的工作负载生成图像。这是通过一个简单的构建系统实现的,该系统支持:
- 包生成:这会从 SPEC 文件和源文件中生成所需的一组 RPM 包。
- 图像生成:这会从给定的一组包中生成所需的图像工件,如 ISO 或 VHD。
无论是部署为容器还是容器主机,CBL-Mariner 都消耗有限的磁盘和内存资源,CBL-Mariner 的轻量级特性还提供更快的启动时间通过将核心映像中的功能集中在微软内部云客户需要的功能上,可以加载更少的服务和更少的攻击媒介。
当出现安全漏洞时,CBL-Mariner 支持基于包的更新模型和基于图像的更新模型。利用通用的RPM 包管理器系统,CBL-Mariner 提供最新的安全补丁和修复程序。
如何安装 Microsoft CBL-Mariner?
对于那些有兴趣了解更多关于 CBL-Mariner 的人,他们应该知道他们可以从 Ubuntu 或任何 Linux 发行版构建自己的镜像,首先你需要构建ISO镜像所需的先决条件:
- sudo apt install make tar wget curl rpm qemu-utils golang-go genisoimage python2-minimal bison gawk
现在就可以从CBL-Mariner 获取代码:
- git clone https://github.com/microsoft/CBL-Mariner.git
接着,进入CBL-Mariner/toolkit 目录并创建安装 ISO 映像:
- cd CBL-Mariner/toolkit
- sudo make iso REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/full.json
最后,你就可以在../out/images/full/ 目录中找到 ISO 文件。创建系统镜像之后,可以在虚拟机上测试系统,可以选择使用VirtualBox、VMWare、Boxes等工具。
目前,CBL-Mariner已经在Github上标星1.5K,累计分支 128 个(Github地址:https://github.com/microsoft/CBL-Mariner)