Hand in hand to play with openeuler

Time:2020-10-22

In order to let more people have a deeper understanding of openeuler and actively participate in it, the community will come up with a series of courses to get close contact with you, and invite important open source participants of openeuler, senior experts such as maintainer of SIG group to share continuously. This course is divided into three parts, mainly to let you know what openeuler is, how to play and how to participate.

  • Part 1: learn about openeuler. Learn what kind of platform openeuler is and what it contains.
  • Part 2: openeuler community operation. Through this lecture, you can learn about the governance and operation of the openeuler community.
  • Part 3: introduction to openeuler version. Through this section, you can learn about openeuler’s software construction and some future plans.

1. Know openeuler**

1.1 community website: openEuler.org[1]

Through the community website, you can learn more about the relevant content of openeuler, and through the document to view the use of openeuler.

Openeuler is an open source, free Linux distribution platform, through the form of an open community with global developers to build an open, diverse and architecture inclusive software ecosystem. At the same time, openeuler is also an innovative platform to encourage anyone to put forward new ideas, develop new ideas and practice new solutions on this platform.

1.2 download and experience openeuler**

We have learned that openeuler is an open source and free platform. For engineers, downloading and using is the first step. So how do we download openeuler?

The openeuler community providesOpeneuler download address[2]

You can download it through the [Download] button on the openeuler community navigationopenEuler 20.03 LTSISO installation package. Openeuler 20.03 LTS is a standard release for open scenarios with a four-year life cycle.

If you encounter problems or want to put forward opinions in the process of using openeuler, you can put forward feedback in the [Download] and document under the community navigation, so that the relevant technical personnel can solve the problems in time.

Hand in hand to play with openeuler

Hand in hand to play with openeuler

1.3 participate in the openeuler community**

You can participate in the openeuler community through the [community] under the openeuler navigation. There are many community related submenu, and you can have an in-depth understanding in the official community. The contribution strategy in community can guide developers to participate in openeuler community step by step, sig (project team) can find their interested project groups, and mailing list can listen to and participate in some related discussions.

Hand in hand to play with openeuler

  • Developer: to participate in community contribution, you need to sign a “contributor license agreement (CLA)” and understand the community code of conduct.
  • Sig (project group): sigs are interest groups in various fields divided by the community according to their fields. Each group will maintain one or more projects of the community according to the situation. visithere[3]Learn how to apply for a new sig.
  • Mailing list: mailing list is a very important way of community communication.

    • You can subscribe to the mailing list: it is recommended that you open the relevant settings of “use English for the header on the reply email” in your mailbox before subscribing: 1) open the options interface of the mailbox. 2) Click [advanced] – and find [International options] – check ‘reply or forward email header and forwarding notice in English’.
    • Send mail to mailing list: to send a message to the specified mailing list, send your email to the email address listed in the above table. This will allow all community members on this mailing list to receive your email.
    • View previous mailing lists: to view previously published e-mail messages in your mailing list, visit the following archive address(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])

What can we do through the community:

Before we do something, let’s talk about where openeuler itself is? Openeuler itself is placed in the gitee.com If you want to join openeuler, you need to have a gitee account.

Here’s what we’re going to do in the community.

1) Request / bug:For some problems encountered in the use / development process, if you find that it is inconvenient to use, you can ask questions through issue or email column.

The simplest and basic way to participate in the community: of course, we should first point out the contents of the community, see what needs to be optimized and improved, and put forward some valuable and meaningful suggestions. This is the easiest way.

In the community, the problem is submitted through the issue mechanism. In the process of submitting a problem, the author needs to specify who the submitted object is, that is, who you want to submit the problem to.

Let’s take a look at the interface of issue?

Take a chestnut: if you want to submit a community governance issue, you can submit it in the issue of the community code repository

Hand in hand to play with openeuler

The issue in the box is the entry we use to submit a bug / problem. To enter the issue, we can click [new issue], and then we can submit the issue.

Hand in hand to play with openeuler

Of course, you can set the level of the submitted issue.

Hand in hand to play with openeuler

How can we follow the division of issue when submitting a question?

Generally speaking, it can be divided into the following categories:

If you want to know more about the process of issue submission, the following links can help you:https://gitee.com/openeuler/c…[24]

2) Fix the bug and solve the problemThis requires high-level community personnel to participate in the community as a developer. In the community, they can identify some bugs on their own initiative to solve related problems.

In the community, we usually want to raise problems and solve them at the same time. If there is a problem, of course, the best situation is to provide patch patches for problem solving at the same time. Let’s take isulad, the community’s lightweight container engine,https://gitee.com/openeuler/i…[25]Suppose we need to submit a patch patch for isulad. The basic process is as follows:

Step 1: first of all, set up a branch of your own

Hand in hand to play with openeuler

Branches are created through fork. If you don’t know about fork, you’d better learn the following git first. For developers, GIT’s development mode is the most common and the most basic, and it is necessary to use GIT.

Step 2: modify the code and generate a pull request

After you click fork, the directory has been switched from openeuler to your own account, and your own branch is created. Next, you can modify the code on your own branch.

Hand in hand to play with openeuler

After modifying the code, click pull request to generate a patch submission code to the original community. The patch submission is completed here. The next time is to wait for maintainer to review your code.

3) Contribution package:You can contribute your own software package from openeuler or SRC openeuler in the openeuler code repository. Of course, there are many packages for developers to use. In this way, over time, openeuler can provide more and more abundant software package functions, and the more people participate in it, openeuler can become a universal software ecosystem.

4) Developing new software:According to your hobbies and ideas, you can develop some new software and contribute to openeler. After a certain period of incubation, you can enter SRC openeuler for you to use.

There are two ways to publish your work to the openeuler community:

  • Develop in other communities and integrate into openeuler: if there are some projects on GitHub, gitlab and gitee that we often use, we can put the software into the repo repository of SRC openeuler. In this way, we can integrate our software from other management platforms into openeuler.
  • Development in the openeuler community, integration in openeuler: we can directly in the openeuler code repositoryhttps://gitee.com/openeuler In, which is equivalent to hosting the code to the openeuler community. Like isula and a-tune in the community.

1.4 “community participation Tour”**

If you want to know more about the community, you can learn more about it through two better blogs. Blog addresses that can describe how to participate in the community are as follows:My community engagement Tour[26]Openeuler community participation Tour[27]

1.5 openeuler code repository**

Openeuler’s vision is to create an innovative platform through community cooperation, build a unified and open operating system supporting multiprocessor architecture, and promote the prosperity and development of software and hardware ecology.

Openeuler code is put on gitee, you can download and use.

Openeuler mainly includes two code repositories

SRC openeuler software package warehouse address:https://gitee.com/src-openeuler[28]

SRC openeuler is mainly used to store software packages needed for publishing. It provides a place to generate RPM packages and other build information for the release release release of openeuler.

Hand in hand to play with openeuler

Openeuler code repository address:https://gitee.com/openeuler[29]

Openeuler is mainly used to store source code projects. Openeuler is a storehouse that stores all the “original” software, that is to provide a stage for the original software to display, or an incubator platform.

Hand in hand to play with openeuler

2. Openeuler community operation**

2.1 Community Governance: open and transparent**

Openeuler community code cloud address: https://gitee.com/openeuler/c…[30]

The code warehouse community stores all the information about the openeuler community, including community governance, community activities, developer contribution guide, communication guide, etc. It includes: introduction to the openeuler community, community governance organization structure, community activities, and developer contribution guide.

Organizational structure of community governance

Hand in hand to play with openeuler

We mainly introduce the Secretariat, safety committee, technical committee and sig. Through the introduction of each, we are very clear about the role of these architecture organizations.

secretariat:Responsible for the community preparation, operation planning, etc. to support the community standardized operation mature.

At this stage, the main responsibilities of the openeuler community Secretariat are as follows:

  • Formulate community operation plan
  • Make a budget and get approval from the community founder
  • Carry out the work of the community founder to prepare the community
  • Other work of the openeuler community not explicitly assigned to the responsible person

Safety Committee:Responsible for receiving and responding openeuler security problem reports and providing community safety guidance.

At this stage, the responsibilities of the openeuler community safety committee are as follows:

  • Assist in vulnerability repair: ensure that known vulnerabilities are fixed in a timely manner. By providing patch help for software package maintainers, it helps users to repair vulnerabilities before they become victims of attacks, including providing relevant vulnerability detection and repair tools.
  • Response to security issues: respond to reported security issues, track the progress of security issues, and follow the disclosure strategy of security issues to disclose and announce security issues in the community.
  • Security coding rules: popularizing security coding knowledge is the goal of the security team. Security teams strive to create documentation or development tools to help development teams avoid common pitfalls in the software development process. The security team will also try to answer any questions encountered during development and use.
  • Participate in code audit: the security team hopes to help the team discover vulnerabilities in code in advance through code audit.

Technical Committee:Responsible for technical decision-making and coordination of technical resources in the community.

The main responsibilities of the technical committee are as follows:

  • Responsible for answering the technical questions raised by the Council and supporting the Council to make judgment on the technical development direction of the strategic blueprint;
  • It operates in the mode of remote cooperation, and holds a formal meeting of face-to-face communication every half a year, and holds regular online public meetings between formal meetings;
  • Guide the community technical route, interface definition, architecture design, build release, and gradually build community rules;
  • Coordinate cross project cooperation, guide cross project technical issues of community, and gradually build community rules;
  • Formulate and guide the process of project incubation, development and exit, and support the healthy development of community technology ecology;
  • Develop and guide the process of software package acceptance and exit from openeuler, and support the trustworthiness and reliability of openeuler open source version;
  • Accept the feedback (needs and problems) from the user committee, and lead the community resources to the project;
  • Establish community certification standards and platforms to provide technical support for community certification (OS commercial release certification, hardware compatibility certification, etc.);

SIG:Community interest groups, each group maintains one or more projects (corresponding to multiple gitee repositories)

2.2 participation in community governance and operation**

When you encounter any problems, want to participate in the operation of each committee / SIG, and find interested sigs, you can understand and ask questions in the following ways.

If you have any questions or suggestions on community governance, you canEmail maillist: [email protected]

Issue:https://gitee.com/openeuler/c…

If you want to participate in the operation of various committees and sigs, you can exchange and obtain information through the mailing listMailing list:https://openeuler.org/zh/comm…

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

If you don’t find an interesting or suitable SIG, you can apply to create a new sighttps://gitee.com/openeuler/c…

If you have any suggestions, requirements or ideas for the community version release, you canEmail maillist: [email protected]

The first line is “release”https://gitee.com/openeuler/r…

3. Introduction of openeuler version**

3.1 Linux kernel and other upstream communities**

Openeuler is the same as other familiar operating systems. It is mainly a community free version built from the upstream community by taking relevant software for enhanced development, integration and quality assurance. The free and open-source Linux community distribution based on the upstream community open-source software is jointly built and shared with domestic mainstream OS manufacturers to form a joint effort to prosper the domestic Linux operating system ecosystem

The figure below shows the comparison between openeuler and Linux distribution.

Hand in hand to play with openeuler

  • Like SUSE, Debian and RedHat, openeuler is built on the upstream community open source software
  • Openeuler community releases free version of LTS, enabling OSV to develop commercial distribution, such as Kirin software, Puhua, Zhongke software, Wanli open source, etc
  • Openeuler is currently based on kernel version 4.19

3.2 openeuler is built on the basis of upstream open source software and feeds back to the upstream open source community**

Most of the openeuler software comes from the upstream open source community. Based on the upstream open source community, we have also made a lot of contributions to the upstream open source community. (for example, in the Linux kernel community, Huawei’s contribution ranks top 5; in GCC community, Huawei has maintainer to contribute to the community, etc.) If the code is difficult to push to the upstream community, after the evaluation of openeler maintainer, if it is really valuable, the code can also be integrated into the openeuler community first. However, it is still encouraged to push it to upstream communities as far as possible and adhere to the principle of upstream first.

Hand in hand to play with openeuler

3.3 roadmap planning for openeuler version**

Openeuler community version naming, release time and lifecycle management[31]

LTS versionOne is released in 2 years and maintained for 4 years. OSV manufacturers can build commercial distribution based on lts version; the next lts version is 22.03

Innovative version: 6 months for release and 6 months for maintenance

  • The community version is named according to the year and month of delivery. For example, openeuler 20.09 was released in September 2020
  • Community version is divided into long-term support version and innovative version.
  • Long term support version: the release interval is set at 2 years, providing 4 years of community support. The community’s first lts version, openeuler 20.03, was officially released in March 20.
  • Community Innovation version: openeuler will release a community innovation version every 6 months between lts versions, providing 6-month community support.

Community developers and users are welcome to put forward valuable suggestions. The above rules will be continuously improved according to feedback and community implementation.

3.4 openeuler 20.03lts basic information**

Basic information table of 20.03lts version[32]

Hand in hand to play with openeuler

The LTS version architecture environment supports arm and x86 versions. If you are interested in arm, you can apply for the virtual machine resources of arm through the [home page] of openeuler – [Pengcheng laboratory]. Detailed version information can be found in the table below.

Hand in hand to play with openeuler

Hand in hand to play with openeuler

3.5 the technology optimization of openeuler software stack fully releases the computing power of various computing platforms**

Document description of key features of openeuler[33]

Hand in hand to play with openeuler

  1. Multi core scheduling technology: key path FS pagecache lock free reconfiguration, maximum computing power, nginx HTTP performance improved by 15%
  2. Integrated KAE plug-in: software and hardware cooperation, help Kunpeng accelerate library to achieve 10% – 100% performance improvement
  3. Isula lightweight container: it is light, fast, easy and flexible. The startup time is shortened by 35%, and the memory resource consumption is reduced by 68%. Through the smart loading intelligent image download technology, the image download speed is significantly improved
  4. Openeuler community build of openjdk: improve performance by 20% through GC optimization, elimination of redundant DMB instructions, etc
  5. A-tune scenario self optimization: intelligent self optimization of typical scenarios, reasoning out business characteristics, configuring the best system parameters, making the business in the optimal running state, and improving the system tuning efficiency by 30%

4. To Do More**

Through community cooperation, we will create an innovative platform, build a unified and open operating system openeuler, which supports multiprocessor architecture, and promote the prosperity and development of software and hardware ecology. In the future, there will be more meaningful and challenging features, which will be released in the follow-up development and maintenance. Please pay attention.

Community address:https://gitee.com/openeuler[34]

Hand in hand to play with openeuler