阿里马涛:重新定义云时代的开源操作系统

2023-10-27

 

作者 | Just

出品 | CSDN(ID:CSDNnews)

 

随着云计算的发展,以及Linux平台的不断发展和生态系统的不断完善,越来越多的企业、云服务提供商都将Linux作为其数据中心的首选操作系统。

 

不过,作为云基础设施的底座,针对云上产品和环境进行定制、优化的需求大幅增长。基于此,阿里巴巴操作系统团队开发了 Alibaba Cloud Linux,以连接阿里云各类产品与客户应用,更好发挥云端的能力。

 

 

在近日的“长沙1024程序员节”期间,CSDN 「人物志」栏目采访了阿里云研究员、基础软件部操作系统团队负责人马涛,他介绍了在5G、云计算等技术的冲击下,云操作系统面临的挑战和机遇。

 

马涛也是阿里巴巴集团内核团队创始人之一。他曾先后在ORACLE,阿里巴巴负责Linux以及操作系统内核相关的研发工作,已在Linux内核主线有超过300个提交,同时对分布式文件系统,分布式存储等领域有多年深入研究。

 

以下为采访内容,由CSDN整理:

 

CSDN:随着5G、云计算等新技术的发展,新硬件架构层出不穷,这对底层的操作系统提出了哪些挑战?阿里的开源云操作系统在技术上要如何做出调整以适应这种变化?

 

马涛:确实,云计算及互联网场景对于操作系统的需求和传统时代有了很大的变化,稳定性、性能等方面都有了新的挑战。

 

首先云计算是规模经济,所以云基础设施的固定成本十分庞大。而当这些基础设施建成后,进行进一步扩张所需要的边际成本则相对较小,所以随着云服务提供者规模的扩大,其平均成本将会呈现迅速下降的趋势。

 

在如此大规模部署的情况下,稳定性就显得至关重要,再加上云上业务的复杂性和系统的高负载,这都对操作系统的稳定性提出了更高的要求。在阿里云我们有上百万规模的部署,所有对稳定性的挑战是非常巨大的。

 

另外,随着云计算规模的扩大,每一点的优化和性能的提升都会带来可观的经济收益。但云架构中单单某一层优化很难有可观的性能收益,这需要从硬件平台到系统软件,再到应用层全栈协同。

 

而这里操作系统恰恰处于中间的最为关键的点,它向下抽象物理IT资源,并利用抽象的资源向上支持应用。所以如何优化云计算操作系统提供全栈的集成和优化能力,这就成为了云操作系统的新机会,也是云平台的核心竞争力。

 

CSDN:像华为等巨头也入局并提出了新的操作系统,那么,阿里在开源操作系统上做出的调整与其他巨头有什么不同?

 

马涛:这里就要提到我认为云时代操作系统的第二个挑战,就是异构平台及特性的快速引入需求。

 

随着智能化对云计算能力需求的增长和IT产业的变革,推动了多CPU架构的快速演进,我认为将来任何一朵云都不会运行在单一的计算架构之上。所以这需要操作系统能够发展开放的硬件生态,完善的支持跨平台架构,同时,每一个硬件平台的迭代和能力的演进在不断加速,但传统的一些操作系统发行版的版本升级速度偏慢,没有办法把新硬件平台的能力及时带给云上丰富的应用。

 

大家经常会发现,一个硬件的特性可能已经存在1-2年甚至更长的时间,一些集成了这些特性的操作系统从才会姗姗来迟,这让应用无法及时的利用这些硬件的红利,让云平台的资源被浪费,让新硬件迭代的速度也大大降低。所以我们希望能够通过云平台的操作系统让客户更快的体验到各种各样的新硬件带来的技术红利。

 

从这一点上来说,我们做操作系统和Intel这些硬件厂商做操作系统的诉求是不一样的,他们更看重的是自己的硬件生态,比如CPU。而我们则需要考虑云客户的需求如何得到更好的快速满足。

 

CSDN:你们在开源操作系统上的下一个着力点是什么?

 

马涛:除了前面提到的稳定性、性能、异构性之外,云原生也是我们发力的一个重点。云原生加速了应用和基础设施的解耦,充分释放了云的弹性。云原生让开发者更加关注自身的业务应用,基础设施自身的复杂性则完全下沉到用户不可见的领域。同时对于云原生基础设施而言,它对应用的服务边界在上移,其系统软件栈在不断下移,这对云原生系统层提出的不少新的要求和挑战。

 

第一,资源粒度会更加细致。相较于传统的虚拟机时代的业务类型,云原生应用对于资源的需求类型有了变化,从传统机器虚拟化的资源即虚拟机形态,到虚拟OS的资源(即容器形态),再到虚拟运行时的资源(比如类似于函数计算形态的FaaS),应用对于资源的抽象层级要求更高以及粒度要求更细。

 

第二,弹性速度需要更快。云原生业务天然伴随着对快速弹性的需求以及短时运行等特征,要求云基础设施能够在短时间内,快速地提供资源,并且能够承受资源频繁的创建、销毁所带来的压力。

 

第三,性能要求更高。在云原生场景中,用户更专注于应用逻辑,更多的系统技术栈则下沉到基础设施,同时系统服务边界在上移。这样就给底层系统更多的施展空间,因为原有一些分层边界可以被打破,可以融合和垂直优化。

 

第四,安全隔离更强。随着云原生加速朝着Serverless计算架构演进,应用与基础设施彻底解耦合,用户只需关心自己的应用,而云原生系统不断下移。容器作为云原生的支撑技术,区别于之前的虚拟机计算架构,Serverless计算架构中云上的多租户安全成了一个全新的挑战。

 

针对这些云原生系统的新要求和新挑战,我们的操作系统也要做相应的变化,并做大幅度的革新才能满足快速增长的云原生应用需求。

 

CSDN:生态也是构建开源操作系统的非常重要的部分,阿里是怎么搭建相应的生态和社区的?

 

马涛:操作系统处于一个至关重要的中间层,它向上对接业务,向下对接硬件,所以我们希望围绕Alibaba Cloud Linux开源操作系统来构建一个支持多架构的、开放的操作系统生态。

 

我们希望和IHV合作伙伴一起,把新硬件平台能力带给应用,充分挖掘平台性能,推动硬件平台的快速演进和迭代;希望和OSV一起提供更优质的,适用于云计算的操作系统服务;希望和ISV让一起让应用更好的长在云上,提升端到端的性能,推动业务的敏捷性;希望和开发者和用户一起,打造更适合云计算的开源操作系统,构建云原生系统底座,推动云原生的发展。

 

CSDN:从阿里做开源操作系统的经验出发,阿里在做这些开源基础软件时踩过的坑有哪些?

 

马涛:开源基础软件面临的最大问题主要是两个,一个是生态建设。从2010年开始,阿里集团淘宝部门的内核团队就开始做操作系统内核的开源工作,之前我们的工作虽然在国内外取得了很大的成绩, 但是由于其他厂商无法深度参与,所以发展的一直不温不火。痛定思痛,我们觉得一定要做好生态,才能保证基础软件社区的健康发展。

 

CSDN:你也曾在Oracle工作过,相比国内外做开源操作系统,目前国内操作系统的发展又哪些优点和不足?

 

马涛:我在Oracle工作过4年多,从事操作系统相关的研发工作。相比而言,国内在操作系统领域的人才储备相对薄弱,无论是从业人员的数量还是职业技能方面都还处于劣势。当然我也非常欣喜的看到最近这些年包括阿里、腾讯等在内的很多国内企业都开始加大了在操作系统领域的投入,我们正在迎头赶上。 

 

CSDN:有哪些建议提供给国内做开源基础软件的公司?

 

马涛:基础软件相对而言是入门是比较困难的,如何吸引更多的开发者参与开发是非常重要的。如果没有大量的开发者,我们就无法聚集群体智慧,没有办法做到长期稳定的发展。这里Linux Kernel通过一些非常简单的入门级别的修复来吸引新开发者的加入,非常值得国内开源基础软件的学习。

 

CSDN:从开发者的角度,操作系统作为三大基础软件之一,想要入局必须具备深厚的基本功,你对操作系统之路上的开发者们的技术成长上,是否可以分享一些经验?

 

马涛:这个话题很有意思。我以前是从Oracle开始做操作系统的,当时主要是给Linux内核贡献一些OCFS2(Oracle Cluster File System V2)的代码。我的第一个内核patch发生在2007年,当时我发现了内核代码的一段函数有一个变量是没用的,所以就写了个移除这个变量的patch发送到内核社区,并很快就被接受了。这件事情让我意识到Linux操作系统社区对于新人是非常友好的,而我也有能力去为操作系统做一些事情,也促成了我后面在操作系统十几年的持续耕耘。

 

有意思的是,由于是第一次写patch,所以我还把自己的名字写错了,在committer一栏写成了Tao Mao。所以如果你想进入操作系统研发,第一步并不是那么难,只要你有意愿,也一定能从一些一些小事做起并最终成就自己。

 

有了一个好的开始之后,第二个非常重要的是兴趣。我始终觉得兴趣是驱动我们不断学习,不断进步的基础。我非常清楚的记得,自从进入Linux操作系统的内核研发之后,基本上每个春节我都是在写代码中渡过的,因为那段时间自由度比较高,另一方面可以和国外工作的同事更好的交流。

 

回想起来,从代码中体会到参与感和幸福感是我能持续坚持做操作系统研发非常大的驱动力。

 

CSDN:你怎么看近年来“国产”基础软件的开源热度?国内开发者面临的挑战和机遇有哪些?

 

马涛:随着云计算的发展,IT基础设施在面临一场新的变革。在这场变革的浪潮中,无论是公共云还是混合云,以阿里为代表的新兴云计算厂商,在全球云计算的激烈竞争中表现亮眼。云计算带来了业务场景的新变化,带来了底层硬件的新需求,云原生意味着编程模型的革命,这些都对于我们基础软件是新机遇、新挑战,目前我们和国际顶尖厂商正在同台竞技,力争定义出适应下一代云计算发展的基础软件。 

 

CSDN:如果要推动中国开源操作系统或者开源生态发展的话,你最希望与国内开发者一起推动什么样的共识和行动?与CSDN这样的开发者社区合作的话,你希望双方为开发者做些什么?

 

马涛:操作系统是基础软件的核心之一,也是核心竞争力之一。过去由于国内在底层硬件技术方面长期和国际顶尖水平有一定的差距,导致我们的操作系统研发一直有些落后。但是随着云计算最近几年的蓬勃发展,我们正处在一个快速变革的时代,云上操作系统应该长成什么样其实是一个非常崭新的话题,对我们是一个巨大的机会。

 

我期待能够和国内开发者一起定义出云时代的操作系统标准,也希望能够和CSDN一起培养出云时代的操作系统研发人员,并通过云时代的操作系统影响云时代上层应用软件生态的发展。

 

相关连接:

韩辉:“国产操作系统最大难题在于解决「生产关系」” | 人物志

独家对话谢宝友:做一款类似于 Linux 的国产操作系统  | 人物志

“我们的目标是取代物联网中的安卓” | 人物志

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿里马涛:重新定义云时代的开源操作系统 的相关文章

随机推荐

  • 十大经典排序算法(动态演示+代码)-桶排序

    桶排序 桶排序 Bucket sort 或所谓的箱排序 是一个排序算法 工作的原理是将数组分到有限数量的桶里 每个桶再个别排序 有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序 最后依次把各个桶中的记录列出来记得到有序序列 桶排
  • Qt中解除按键在聚焦时键盘空格键可以控制

    Qt中解除按键在聚焦时键盘空格键可以控制 只允许鼠标左键可以点击按键 首先需要知道原因 为什么键盘上的空格键也可以点击按键 根据Qt官网说明 A push button emits the signal clicked when it is
  • vue 前端导出excel xlsx插件 修改表格行高列宽度

    cnpm install xlsx save import XLSX from xlsx 列表页引入 表格导出 handleExport if this tableData total 0 this message error 暂无数据 t
  • SpringBoot 对接微信公众号模板消息通知

    效果图见测试结果 有问题评论 模板消息 开通模板消息功能 登录微信公众平台开通模板消息功能 未开通时 添加模板消息 审核通过后 登录微信公众平台 点击 广告与服务 gt 模板消息 公众号如果未设置服务类目 则需要先设置服务类目 然后在模板库
  • html通过id设置css样式,使用ID值如何应用CSS样式?

    假设你一个ID为 mytext 的HTML段落标记 如下面的代码片段所示 This is HTML interview questions 你可以使用有着 id 名称的 选择器创建一个样式 并应用CSS值到段落标记 为了应用样式到 myte
  • [spring] 注解@Autowired是如何实现的

    Table of Contents 前言 Autowired注解用法 Autowired注解的作用到底是什么 Autowired注解是如何实现的 例子注解 Override 自己实现一个注解 Autowired注解实现逻辑分析 问题 注解的
  • LaTeX学习笔记(数学公式编辑:公式与矩阵中符号的设置)

    1 使用 left与 right指令对公式中括号的长度进行调整 方法 将 left与 right命令分别放到公式左右括号前 这是调整括号长度前 这是调成括号长度后 2 使用 left与 right指令对公式中竖线的长度进行调整 方法 在数学
  • python怎么做多个矩阵,在python中添加两个矩阵

    I m trying to write a function that adds two matrices to pass the following doctests gt gt gt a 1 2 3 4 gt gt gt b 2 2 2
  • Java GUI,mybatis实现资产管理系统

    Java GUI 资产管理系统 前言 为了做java课设 学了一手Java GUI 感觉蛮有意思的 写写文章 做个视频记录一下 欢迎大家友善指出我的不足 资产管理系统录制视频 从头敲到尾 模块划分 资产信息管理 资产信息查询 各种条件查询
  • 实现一个完整的前后端交互

    题目一 计算器 1 构建项目 前端代码
  • C/C++中float和double的存储结构(转)

    在C C 中float是32位的 double是64位的 两者在内存中的存储方式和能够表示的精度均不同 目前C C 编译器标准都遵照IEEE制定的浮点数表示法来进行float double运算 无论是float还是double 在内存中的存
  • 软件测试需要学什么?软件测试技能图谱

    很多新手 不知道软件测试学习该如何开始 软件测试需要掌握哪些知识 下面是根据本人的理解 粗略整理的一个学习大纲 基本上涵盖了软件测试工程师需要掌握的全部技能 希望对刚入行或者准备学习测试的朋友提供一点指引 1 测试基础理论 不管有没有计算机
  • docker 搭建 Jenkins 容器 ,拉取git代码

    Docker 搭建 Jenkins 容器 拉取git代码 一 安装jenkins 前提条件 宿主机安装docker 1 拉取镜像 docker pull jenkins jenkins 2 查看镜像 docker images 列表中有je
  • C++ 引用作为函数返回值

    1 以引用返回函数值 定义函数时需要在函数名前加 2 用引用返回一个函数值的最大好处是 在内存中不产生被返回值的副本 引用作为返回值 必须遵守以下规则 1 不能返回局部变量的引用 主要原因是局部变量会在函数返回后被销毁 因此被返回的引用就成
  • unity音效添加

    音频资源AudioClip 播放的音频通过摄像头上的Audio Listener监听 Audio Listener有且只有一个 否则会报警告 创建一个空对象 重命名为Music Player 音频源 为其添加上Audio Souce组件 将
  • Mysql - 直接查询存储的Json字符串中的数据

    我们平时使用mysql 出于项目需求 可能需要直接将Java对象或者一个大json 直接存到表中的某个字段中 使用的时候再查出来 反序列化到对象或者一个Map中 方便我们操作 大多时候 我们可能并不需要所有的数据 只想使用这个对象或者jso
  • 详解synchronized与Lock的区别与使用

    引言 昨天在学习别人分享的面试经验时 看到Lock的使用 想起自己在上次面试也遇到了synchronized与Lock的区别与使用 于是 我整理了两者的区别和使用情况 同时 对synchronized的使用过程一些常见问题的总结 最后是参照
  • 关于easyExcel实体字段对应日期类型格式化问题

    可以写一个实体转换器来实现easyExcl中的Converter接口 可参考easyExcel官方文档中的 Alibaba Easy Excel 简单 省内存的Java解析Excel工具 读Excel
  • MATLAB实现传递函数

    1 简单的传递函数模型 num 1 10 den 1 5 4 3 2 G tf num den 2 零极点模型 KGain K 系统增益K Z 1 2 3 零点 P 4 5 6 极点 G zpk Z P KGain 3 反馈系统 G1 tf
  • 阿里马涛:重新定义云时代的开源操作系统

    作者 Just 出品 CSDN ID CSDNnews 随着云计算的发展 以及Linux平台的不断发展和生态系统的不断完善 越来越多的企业 云服务提供商都将Linux作为其数据中心的首选操作系统 不过 作为云基础设施的底座 针对云上产品和环