手把手帶你玩轉 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]

相關文章
相關標籤/搜索