手把手带你玩转 openEuler | 初识 openEuler

为了让更多人更深刻认识 openEuler 并积极参与进来,社区将出一些列课程和你们近距离接触,邀请 openEuler 开源的重要参与者、SIG 组 maintainer 等资深专家来进行持续分享。本课程分为三部分,主要是让你们了解 openEuler 是什么、怎么玩、如何参与。html

  • 第 1 部分:认识 openEuler。了解 openEuler 是一个怎样的平台,包含哪些内容。
  • 第 2 部分:openEuler 社区运做。经过本讲您能够了解到 openEuler 社区的治理及运做方式。
  • 第 3 部分:openEuler 版本介绍。经过该部分您能够了解到 openEuler 的软件构建和将来的一些规划。

1. 认识 openEuler**

1.1 社区网站:openEuler.org[1]

经过社区网站你们能够了解到更多关于 openEuler 的相关内容,并经过文档查看 openEuler 的使用方法。git

openEuler 是一个开源、免费的 Linux 发行版平台,经过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。同时,openEuler 也是一个创新的平台,鼓励任何人在该平台上提出新想法、开拓新思路、实践新方案。github

1.2 下载体验 openEuler**

上面了解了 openEuler 是一个开源免费的平台,对于工程师来讲,下载使用才是第一步,那么咱们怎么去下载 openEuler 呢?安全

openEuler 社区提供了openEuler 下载地址[2]架构

能够经过 openEuler 社区导航上的【下载】按钮,下载 openEuler 20.03 LTS 的 ISO 安装包。openEuler 20.03 LTS 版本是面向开放场景的标准发行版,生命周期四年。工具

在 openEuler 使用过程当中遇到问题或想提出意见,在社区导航下的【下载】里和文档里能够提出意见反馈,供相关技术人员及时解决问题。gitlab

1.3 参与 openEuler 社区**

能够经过 openEuler 导航下的【社区】来参与 openEuler 社区,里面有不少社区相关的子菜单你们能够在官方社区里进行深刻的了解。【社区】里的【贡献攻略】能够指导开发者一步一步参于 openEuler 社区、【SIG(项目组)】能够找到本身感兴趣的项目组、【邮件列表】能够收听参与相关的一些讨论。布局

  • 开发者:参与社区贡献须要签署”贡献者许可协议(CLA)“,要了解社区行为守则。
  • SIG(项目组):SIGs 是社区根据领域划分的各个领域的兴趣小组,每个小组会根据状况维护社区一个或者多个项目。访问此处[3]了解如何申请一个新 SIG。
  • 邮件列表:邮件列表是社区交流的很重要的一种方式。性能

    • 你能够订阅邮件列表:建议您在订阅前把邮箱的‘答复邮件上的邮件头使用英语’的相关设置打开:1)打开邮箱的选项界面。2)点击【高级】——并找到【国际选项】——勾选‘答复或转发邮件上的邮件头和转发通知使用英语’。
    • 发送邮件到邮件列表:要将邮件发送到指定的邮件列表,请向上表中列出的邮件地址发送您的电子邮件。这样全部在这个邮件列表中的社区成员都能收到您的电子邮件。
    • 查看之前的邮件列表:要查看邮件列表中之前发布的电子邮件,请访问如下存档地址(Community[4]Dev[5]、Announce[6]Council[7]、Infra[8]Marketing[9]、User-committee[10]Build-team[11]、TC[12]Kernel[13]、A-Tune[14]iSulad[15]、QA[16]Sig-ai-bigdata[17]、Crystal-ci[18]Virt[19])

经过社区咱们能够作些什么:学习

在咱们要作一些事情以前,先说一下 openEuler 自己是在什么地方的?openEuler 自己是放在 gitee.com 上的,而且是开源的,若是你们想要加入使用 openEuler 须要有一个 gitee 帐号。

下面就是咱们要在社区里作些事情了。

1)提需求/bug: 在使用/开发过程当中遇到的一些问题,发现哪些地方使用不方便,你们均可以能够经过 issue 或者邮件列别提出问题。

最简单基本的参与社区的方式:固然是先点一点社区里的内容了,看看有哪些须要优化改进的地方,提出一些有价值有意义的建议。这也是最简单的方式了。

在社区中提交问题都是经过 issue 机制来进行的,在提交问题的过程当中须要提交人指定提交的对象是谁,也就是你要提交问题给谁。

让咱们看下 issue 的界面长什么样子?

举个栗子:若是你想提交一个社区治理的一个问题,那么你能够在 Community 代码仓库的 issue 中提交问题

方框里的 issue 就是咱们用来提交 bug/问题的入口,进入到 issue 里咱们能够点击【新建 Issue】,进去以后就能够提交 issue 了。

固然你能够设置提交的 issue 是什么级别的。

咱们在提交问题时怎么来接行 issue 的划分呢?

总的来讲分为如下几类:

若是你想要更详细的了解 issue 提交的流程,下面的连接能够帮助到你:https://gitee.com/openeuler/c...[24]

2)修 bug 解决问题: 这个就须要高层次的社区人员,以一个开发者的身份参与到社区中,在社区里能够本身主动认定一些 bug,来解决相关的问题。

在社区里,一般咱们但愿提出问题并同时解决问题,若是有一个问题,固然最好的状况是同时提供问题解决的 patch 补丁。咱们以社区的轻量化容器引擎 iSulad 为例,https://gitee.com/openeuler/i...[25],假定咱们须要为 iSulad 提交一个 patch 补丁,基本流程以下:

第一步:首先要先创建一个本身的分支

分支是经过 Fork 建立的,若是你们不了解 Fork,仍是先去学习如下 git 吧,对于开发者来讲,git 的开发模式是最经常使用的,也是最基本的,使用 git 是必须的。

第二步:修改代码并生成 Pull Request

点击 fork 完毕后,目录已经从 openEuler 切换成了本身的帐户了,你本身的分支就建立好了。接下来就能够在本身的分支上进行代码的修改了。

修改完代码后,点击 Pull Request,就会生成一个 patch 提交代码到原始社区里了,到这里就完成了 patch 的提交了,接下来的时间就是等待 maintainer 审核你的代码了。

3)贡献软件包: 能够在 openEuler 代码仓库中的 openeuler 或者 src-openeuler 贡献本身的软件包,固然里面有不少软件包供开发者使用。这样日积月累,openEuler 就可以提供更多更丰富的软件包功能,越多人参与进来,openEuler 就可以成为万能的软件生态系统。

4)开发新软件: 你们根据本身爱好和想法,能够开发一些新的软件,贡献到 openeler 下面,通过必定时间的孵化能够进驻到 src-openeuler 里,供你们使用。

有两种方式能够将本身的做品发布到 openEuler 社区:

  • 在其余社区开发,集成到 openEuler 中:假如咱们常使用的 github、gitlab、gitee,在上面有一些咱们的项目,咱们能够经过将软件放到 src-openEuler 的 repo 仓就能够了。这样就能够把咱们在其余管理平台里的软件集成到 openEuler 里。
  • 在 openEuler 社区中开发,在 openEuler 中集成:咱们能够直接在 openEuler 的代码仓库https://gitee.com/openeuler中...,至关于将代码托管到openEuler社区。就像社区里的iSula和A-Tune就是这样的模式。

1.4 《社区参与之旅》**

若是你们想更加详细的了解社区,能够经过两篇比较好的博客去进一步了解。能够介绍如何参与社区的博客地址以下:个人社区参与之旅[26]openEuler 社区参与之旅[27]

1.5 openEuler 代码仓库**

openEuler 的愿景是:经过社区合做,打造创新平台,构建支持多处理器架构、统一和开放的操做系统 openEuler,推进软硬件生态繁荣发展。

openEuler 代码是放在 gitee 上的,你们能够尽情的去下载使用。

openEuler 主要包括两个代码仓库:

src-openEuler 软件包仓库地址:https://gitee.com/src-openeuler[28]

src-openEuler 主要用于存放制做发布件所需的软件包。为 openEuler 的 release 发行版提供生成 rpm 包等构建信息等的地方。

openEuler 代码仓库地址:https://gitee.com/openeuler[29]

openEuler 主要用于存放源码类项目。openeuler 这个仓是存储全部“原生态”的软件,也就是为原创性的软件提供一个展现的舞台,或者是一个孵化器平台。

2. openEuler 社区运做**

2.1 社区治理:开放、透明**

openEuler 社区码云地址: https://gitee.com/openeuler/c...[30]

代码仓 Community 保存了关于 openEuler 社区的全部信息,包括社区治理、社区活动、开发者贡献指南、沟通交流指南等内容。这里包括:openEuler 社区介绍、社区治理组织架构、社区活动、开发者贡献指南。

社区治理组织结构

咱们主要介绍 秘书处、安全委员会、技术委员会、SIG。经过对各自的介绍,你们很明白的知道这些架构组织的做用了。

秘书处: 负责社区的筹备、运营规划等支撑社区规范化运做成熟。

现阶段,openEuler 社区秘书处的主要职责以下:

  • 制定社区运营规划
  • 制定费用预算,请得到社区创始人批准
  • 执行社区创始人筹备社区的工做
  • openEuler 社区其余未明确分配到责任人的工做

安全委员会: 负责接收和响应 openEuler 安全问题报告、提供社区安全指导。

现阶段,openEuler 社区安全委员会的工做职责以下:

  • 协助漏洞修复:确保及时修复已知漏洞。经过为软件包 Maintainer 们提供补丁帮助,帮助用户系统在成为攻击受害者以前进行漏洞修复,包括提供相关漏洞检测和修复工具。
  • 响应安全问题:响应上报的安全问题,跟踪安全问题的处理进展,并遵循安全问题披露策略对安全问题在社区内进行披露和公告。
  • 安全编码规则:普及安全编码知识是安全团队的目标。安全团队会努力建立文档或开发工具来帮助开发团队避免软件开发过程当中的常见陷阱。安全团队还会尝试回答在开发和使用过程当中遇到的任何问题。
  • 参与代码审核:安全团队但愿可以经过代码审核帮助团队提早发现代码中的漏洞。

技术委员会: 负责社区技术决策和技术资源的协调。

技术委员会的主要职责以下:

  • 负责回答理事会提出的技术问题,支撑理事会对战略蓝图的技术发展方向作出判断;
  • 以远程协做的方式运行,每半年召开一次面对面沟通的正式会议,正式会议间按期召开例行线上公开会议;
  • 对社区技术路线、接口定义、架构设计、构建发布等进行指导,并逐步构建社区规则;
  • 协调跨项目合做,对社区跨项目技术问题进行指导,并逐步构建社区规则;
  • 制定、指导项目孵化、开发、退出流程,支撑社区技术生态健康发展;
  • 制定、指导软件包接纳、退出 openEuler 的流程,支撑 openEuler 开源版本的可信和可靠;
  • 接受用户委员会的反馈(需求和问题),牵引社区资源将其落地至项目;
  • 创建社区认证标准和平台,为社区认证(OS 商业发行版认证、硬件兼容性认证等)提供技术支撑;

SIG: 社区兴趣小组,每一个小组维护一个或多个项目(对应多个 gitee 仓)

2.2 参与社区治理和运做**

在您遇到任何问题、想参与各委员会/各 SIG 的运做、找到感兴趣的 SIG 均可以经过一下方式进行了解和提问。

若是您对社区治理有任何问题或建议,能够发邮件到 maillist:community@openeuler.org

提 issue:https://gitee.com/openeuler/c...

若是您想参与各委员会、各 SIG 的运做,能够经过邮件列表交流及获取信息邮件列表:https://openeuler.org/zh/comm...

SIGs:https://openeuler.org/zh/sig....

若是您没找到感兴趣或者合适的 SIG,能够申请建立 1 个新 SIGhttps://gitee.com/openeuler/c...

若是您对社区版本发布有任何建议或者需求、想法,能够发邮件到 maillist:dev@openeuler.org

标题行首带上[release management] 提 issue:https://gitee.com/openeuler/r...

3. openEuler 版本介绍**

3.1 Linux Kernel 等上游社区**

openEuler 跟其余你们比较熟悉的操做系统是同样的,主要是从上游社区来取相关的软件进行一些加强开发、集成和质量保障,而后构建出来的一个社区免费版本。基于上游社区开源软件构建的免费、开源的 Linux 社区发行版,与国内主流 OS 厂商共建共享,造成协力繁荣国内 Linux 操做系统生态

下图是 openEuler 与 Linux 发行版的对比,你们能够了解一下。

  • openEuler 与 SUSE、Debian、 RedHat 同样基于上游社区开源软件 构建
  • openEuler 社区发行 LTS 免费版本, 使能 OSV 发展商业发行版,如麒麟软件、普华、中科软、万里开源等
  • openEuler 当前基于内核 4.19 版本

3.2 openEuler 基于上游开源软件构建,回馈上游开源社区**

openEuler 大部分软件来自于上游开源社区,基于上游开源社区咱们也作了大量的贡献来回馈上游开源社区。(好比:在 Linux Kernel 社区里,华为的贡献排到了 Top5;在 GCC 社区里华为有 Maintainer 在社区里进行贡献,等等。)推送到上游社区比较困难的代码,通过 openEuler maintainer 的评审,若是确实有价值,也能够将代码先合入到openEuler社区里。但仍是鼓励尽量推送到上游社区,坚持upstream first的原则。

3.3 openEuler 版本路标规划**

openEuler 社区版本命名,发布时间与生命周期管理[31]

LTS 版本:2 年发布 1 个,维护 4 年,OSV 厂商能够基于 LTS 版本构建商用发行版;下一个 LTS 版本 22.03

创新版本:6 个月发布 1 个,维护 6 个月

  • 社区版本按按照交付年份和月份进行版本号命名。例如,openEuler 20.09 于 2020 年 09 月发布
  • 社区版本分为长期支持版本和创新版本。
  • 长期支持版本:发布间隔周期定为 2 年,提供 4 年社区支持。社区首个 LTS 版本 openEuler 20.03 已于 20 年 3 月正式发布。
  • 社区创新版本:LTS 版本之间每隔 6 个月 openEuler 会发布一个社区创新版本,提供 6 个月社区支持。

欢迎社区开发者和用户提出宝贵建议,以上规则将根据反馈意见以及社区实施状况不断完善。

3.4 openEuler 20.03LTS 版本基本信息**

20.03LTS 版本基本信息表[32]

LTS 版本架构环境支持 ARM 和 X86 版本。若是对 ARM 感兴趣的人员能够经过 openEuler 的【首页】—【鹏城实验室】能够去申请 ARM 的虚拟机资源进行体验。详细的版本信息可查看下表。

3.5 openEuler 软件全堆栈的技术优化,充分释放多样化计算平台算力**

openEuler 关键特性文档说明[33]

  1. 多核调度技术:关键路径 Fs pagecache 免锁重构,极致发挥算力,Nginx HTTP 性能提高 15%
  2. 集成 KAE 插件:软硬协同,助力鲲鹏加速库实现 10%-100%性能提高
  3. iSula 轻量级容器:具有轻、快、易、灵特色启动时间缩短 35%,内存资源消耗下降 68%,经过 Smart-loading 智能镜像下载技术,显著提高镜像下载速度
  4. openEuler Community build of OpenJDK:经过 GC 优化,冗余 DMB 指令消除等技术提高性能 20%
  5. A-Tune 场景自优化:典型场景智能自优化,推理出业务特征,配置最佳的系统参数合,使业务处于最优运行状态,提高系统调优效率 30%

4. To Do More**

经过社区合做,打造创新平台,构建支持多处理器架构、统一和开放的操做系统 openEuler,推进软硬件生态繁荣发展。后面会有更多有意义有挑战性的一些特性在后续的开发维护中会陆陆续续的发布出来,你们尽请关注。

社区地址:https://gitee.com/openeuler[34]

相关文章
相关标签/搜索