整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

与早期相比,近几年微软对开源的态度可谓是“天差地别”。

曾经的微软,几乎视开源为“仇敌”:

  • 微软前 CEO 史蒂夫·鲍尔默在采访时表示,开源是微软的头号劲敌;

  • 微软前首席软件设计师雷·奥兹也曾说,开源对微软公的商业模式具有潜在的杀伤力;

  • 发布过 Windows 和 Linux 之间的对比广告,夸自家 Windows 省时省心的同时,拉踩 Linux 的维护需要巨大成本。

如今,微软拥抱开源的举措却比比皆是:

  • 推出 WSL 并升级至 WSL 2(Windows Subsyste for Linux),使用户能在 Windows 10 上运行原生 Linux 二进制可执行文件;

  • 发布了面向 Linux 版的 Edge Chromium 浏览器;

  • 发布了开源的 Visual Studio Code 编辑器。

这还不止,微软甚至连自己的 Linux 发行版都有了:近日,微软发布了其内部 Linux 发行版 CBL-Mariner 1.0(Common Base Linux),并已开源至 GitHub(https://github.com/microsoft/CBL-Mariner)

WSL 2 团队创建,用于微软内部工作

微软 Azure 团队成员 Juan Manuel Rey 在博客上分享了 CBL-Mariner 的细节概要。

首先需要明确的一点是,CBL-Mariner 与 Ubuntu 或 Fedora 那样的通用 Linux 发行版不同,它仅是一款微软用于云基础架构和边缘产品和服务的内部 Linux 发行版。虽已开源,但并没有提供 CBL-Mariner 的 ISO 镜像。

据介绍,CBL-Mariner 由 WSL 2 的同一团队创建,旨在为微软的云基础架构和边缘产品和服务提供统一的平台,简化 Linux 系统维护,增强与 Linux 保持同步更新的能力,同时也是微软对 SONiC、Azure Sphere OS 和 WSL 等各种有关 Linux 技术不断增加投资的一种方式。

CBL-Mariner 的设计理念是,用一组小型通用核心包就可以满足第一方云和边缘服务的普遍需求,同时允许各个团队在通用核心上分层附加包,为他们的工作负载生成图像。

关于将 CBL-Mariner 这个内部 Linux 发行版开源的举动,微软表示这是“对开源和回馈 Linux 社区承诺的一部分”,因而开发者可前往其 GitHub 地址 https://github.com/microsoft/CBL-Mariner 自行安装体验。

如何安装 CBL-Mariner ?

Juan Manuel Rey 在其博客上展示了 CBL-Mariner 的安装过程。不过正如上文所说,微软并没有提供 CBL-Mariner 的 ISO 镜像,因此在安装 CBL-Mariner 时,开发者可通过 Ubuntu 或其他 Linux 发行版构建自己的镜像,以下是通过  Ubuntu 的方式:

首先,确保构建 ISO 镜像所需的先决条件:

sudo apt install make tar wget curl rpm qemu-utils golang-go genisoimage python2-minimal bison gawk

然后,从 CBL-Mariner GitHub 存储库获取代码:

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 文件,名称为 full-1.0.20210712.2155.iso。

创建好系统镜像后,开发者可在 VirtualBox、VMWare、Boxes 等虚拟机上安装测试。以下举例在 VirtualBox 虚拟机中的安装步骤(最低硬件配置为 1 个 CPU、2GB RAM 和 16GB 存储空间):

安装前会提供文本或图形模式的选择,由于 Juan Manuel Rey 好奇 CBL-Mariner 是否真的基于 Fedora 的 Anaconda ,因此他选择了图形模式。

安装方式也有两种,仅下载单个软件包的 Core和下载整个系统镜像的 Full。据 Juan Manuel Rey 表示,这两种安装方式都很快,Core 大约需要 29 秒,Full 大约需要 76 秒。在此过程中,它会询问用户、分区等典型参数。

分区配置如下:

最后,输入主机名、用户名和密码,点击“安装”按钮即可。需要注意的是,此用户将具有 root/sudo 权限。

参考了 Fedora 或 Photon-OS

虽然 CBL-Mariner 是作为微软内部 Linux 发行版诞生的,但不可否认,它的确较为出色。CBL-Mariner 会提供一组典型的基本软件包,以充当创建容器填充、主机环境和在云基础设施和边缘设备上运行服务的通用基础。而在 CBL-Mariner 基础之上还可以添加额外的包,用来创建更复杂和专业的解决方案,同时系统的基础保持不变,即简化了维护和升级过程,而 CBL-Mariner 的软件包系统也是基于 RPM 的。

此外,据 Juan Manuel Rey 体验下来,CBL-Mariner 与 Fedora 和 Photon-OS 等其他 Linux 发行版很相似,这一点在 CBL-Mariner 的 GitHub 存储库的致谢部分上就有体现,团队应该使用了 Photon OS 和 Fedora 的 SPEC 文件作为参考。

安全方面,考虑到大多数操作系统都以安全为重点,CBL-Mariner 遵循默认安全原则。CBL-Mariner 带有强化内核、签名更新、ASLR、基于编译器的强化和防篡改日志等众多功能。当出现安全漏洞时,利用通用的 RPM 包管理器系统,CBL-Mariner 会提供最新的安全补丁和修复程序,以实现快速周转时间的目的。

感兴趣的开发者可前往 CBL-Mariner  GitHub 地址:https://github.com/microsoft/CBL-Mariner 体验尝试。

参考链接:

  • https://blog.jreypo.io/2021/07/09/a-look-into-cbl-mariner-microsoft-internal-linux-distribution/

  • https://github.com/microsoft/CBL-Mariner

  • https://www.linuxadictos.com/en/cbl-mariner-the-linux-distribution-behind-wsl-azure-and-other-microsoft-products.html

开发者必备的知识图谱来啦!60+专家,13个技术领域,CSDN 《IT 人才成长路线图》重磅来袭!直接扫码或微信搜索「CSDN」公众号,后台回复关键词「路线图」,即可获取完整路线图!

真与开源“化敌为友”:微软连自己的 Linux 发行版都有了!相关推荐

  1. 微软发布自己的Linux发行版

    出品 | OSC开源社区(ID:oschina2013) 在内部使用两年并自 2022 年 10 月起以公共预览版运行后,微软终于在日前正式公开发布了其 Azure Linux 的发行版. 微软 Az ...

  2. 微软开源自有云服务器专属 Linux 发行版 CBL-Mariner,可在 GitHub 免费下载!

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 近年来,微软对 Linux 的爱越来越多,这已经不是什么秘密了--看看 Windows Subsystem for ...

  3. 微软自家的Linux发行版开源了!

    点击上方"码农突围",马上关注这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看 文 | ...

  4. 微软Azure 虚拟机支持多种 Linux 发行版!

    导读 一年前,微软官方表示,Azure 上的所有虚拟机近三分之一都在运行着 Linux 发行版.现在这一个数据达到了 40%.微软 Azure 云中的所有虚拟机近 40% 现在都运行着 Linux 发 ...

  5. 如何安装微软的Linux发行版CBL-Mariner 1.0

    CBL-Mariner 1.0 是微软为内部使用而开发的这个新 Linux 发行版的第一个稳定版本. 了解如何在 VirtualBox 上安装它. 毫无疑问,微软近年来对 Linux 表现出了更多的真 ...

  6. linux下代码写错了怎么更改_AWS全面上市开源Linux发行版,专为容器操作系统设计...

    AWS宣布其容器操作系统Bottlerocket全面上市,Bottlerocket是它专为运行软件容器而开发的开源Linux发行版. 该Linux发行版不仅设计为运行容器,使应用可以在多个计算环境中运 ...

  7. 开源社区慌不慌?又一个 Linux 发行版宣告死亡

    开源社区慌不慌?又一个 Linux 发行版宣告死亡 现在越来越多的人都在使用基于Linux的操作系统,Win 10的用户反馈一直不好,所以这种现象就见怪不怪了.按理来说,在这种情况下,Linux应该能 ...

  8. 请列举你所知道的Linux发行版与开源软件

    请列举你所知道的Linux发行版与开源软件 常见的Linux发行版: Red Hat Enterprise Linux 5/6 CentOS 5/6 Suse Linux Enterprise 11 ...

  9. 华为OD机试真题 C++ 实现【Linux发行版的数量】【2022.11 Q4 新题】

     所有题目均有三种语言实现.C++ 实现目录.Python实现目录.Java实现目录 题目 题目描述: Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料.这些发行版 ...

最新文章

  1. 六边形块级元素的绘制
  2. 请列举你了解的分布式锁_面试官想要你回答的分布式锁实现原理
  3. Devexpress GridControl 设置combobox下拉框
  4. python中的单引号双引号和三引号
  5. 【PySpark入门】手把手实现PySpark机器学习项目-回归算法
  6. EMNLP 2021 | 正则表达式与神经网络的深度融合(续)
  7. chrome应用程序无法启动因为并行配置不正确的处理办法(亲测版本不一样也是类似的操作)
  8. 如何隐藏 video 元素的下载按钮
  9. Java笔记-使用RabbitMQ的Java接口实现Fair dispatch(公平分发)
  10. 高频交易主要模式解析
  11. HDU 1312 Red and Black(最简单也是最经典的搜索)
  12. app一键签名工具 --- Android Sign Kit v1.0免费版
  13. Python 实现控制一阶惯性系统
  14. 荐书 | 心理学如何编程,看看这9本书
  15. 如何区分光纤跳线的颜色?
  16. UG二次开发GRIP显示图层
  17. “苹果”在中国的血汗工厂
  18. vxe-table 如何用回车键替换 Tab 键功能,回车切换到右侧单元格,回车切换下一个单元格
  19. 全国计算机一级ms考试内容,2020年全国计算机等级考试一级MSOFFICE考试内容
  20. 深度学习,如何选择GPU服务器?

热门文章

  1. 常用类 (七) ----- 包装类
  2. leetcode18.4Sum
  3. Mysql通过存储过程批量插入数据
  4. J.U.C - 其它组件
  5. 从优先级排序看敏捷开发的自相似性
  6. 题目1168:字符串的查找删除(字符串操作)
  7. centos6.5 安装mono
  8. 多线程设计模式(二):Future模式
  9. 视图引擎smarty 一
  10. WINDOWS之入侵痕迹清理总结