Upgrade to Pro — share decks privately, control downloads, hide ads and more …

怎麼在 2023 加入 Linux 核心社群

怎麼在 2023 加入 Linux 核心社群

Linux 核心的社群常給人一種遙不可及的感覺,想要參與卻又不得其門而入。究竟在 2023 想參與該社群是可能的嗎?到底需要會什麼?要怎麼交流?很容易被罵嗎?

本次將介紹 Linux 核心的社群,他們的文化、工作模式、使用的工具、交流方式、習慣、以及所需的技能。並且提供一些與社群交流時可以用上的小技巧。觀眾不需要會程式語言,但需要知道 GitHub 上開源協作的大概流程。

shunghsiyu

July 29, 2023
Tweet

More Decks by shunghsiyu

Other Decks in Programming

Transcript

  1. Copyright © SUSE 2023 怎麼在 2023 加入 Linux 核心社群 Joining

    the Linux Kernel Community in 2023 29 JULY 2023 Shung-Hsi Yu COSCUP 2023
  2. Copyright © SUSE 2023 自介 About me 任職於 SUSE Kernel

    Engineer 維護 SLES & openSUSE 作業系統核心裡 BPF 的部分 maintains BPF in SLES & openSUSE kernel Shung-Hsi Yu @shunghsiyu
  3. Copyright © SUSE 2023 自介 About me Linux 核心貢獻 Linux

    Kernel Contributions 6 個貢獻 6 patches merged 80 封電子郵件 80 emails 3.5 年貢獻經驗 3.5 years of contribution Shung-Hsi Yu @shunghsiyu
  4. Copyright © SUSE 2023 11 明天下午 3 點 Hacking Room(TR409-1)一起來聊聊

    Let’s chat tomorrow at 3pm in the Hacking Room TR409-1
  5. Copyright © SUSE 2023 — 作業系統核心 an operating system kernel

    — 廣泛用於各種電子裝置之中 used among a variety of electronic devices – 伺服器 servers – 手機 cell phones – 汽車 cars – 火星探測器 Mars rover 14 What is the Linux Kernel? 什麼是 Linux 核心 Perseverance-Selfie-at-Rochette-Horizontal-V2.gif
  6. Copyright © SUSE 2023 — 2,780 萬行程式碼 27.8 million LOC,5.7

    萬個 C 檔 57k C files — 高速地在更新 changing at a rapid rate,8 個月之間就有 within 8 months there’s – 8.4 萬個更改 84k patches merged – 新增 360 萬行程式碼 added 3.6M LOC – 4914 位貢獻者 4914 contributors 16 About Linux Kernel Development Linux 核心開發 The kernel report by Jonathan Corbet
  7. Copyright © SUSE 2023 — 2,780 萬行程式碼 27.8 million LOC,5.7

    萬個 C 檔 57k C files — 高速地在更新 changing at a rapid rate,8 個月之間就有 within 8 months there’s – 8.4 萬個更改 84k patches merged – 新增 360 萬行程式碼 added 3.6M LOC – 4914 位貢獻者 4914 contributors 17 About Linux Kernel Development Linux 核心開發 The kernel report by Jonathan Corbet
  8. Copyright © SUSE 2023 — 很少會手把手教學 little hand-holding — 對於參與者的要求很高

    high skill bar — 需使用不熟悉工具 unfamiliar tooling 20 Why is Linux Kernel Community hard to Join 爲什麼加入 Linux 核心社群很困難
  9. Copyright © SUSE 2023 — 超過 4 千位貢獻者 more than

    4 thousands contributors — 不屬於同一家公司 employed by different companies — 散佈在世界各地 spreaded all over the world 22 About Linux Kernel Development Linux 核心社群
  10. Copyright © SUSE 2023 — 超過 4 千位貢獻者 more than

    4 thousands contributors — 不屬於同一家公司 employed by different companies — 散佈在世界各地 spreaded all over the world — 透過電子郵件溝通 communicate over email 35 About Linux Kernel Development Linux 核心社群
  11. Copyright © SUSE 2023 — 超過 4 千位貢獻者 more than

    4 thousands contributors — 不屬於同一家公司 employed by different companies — 散佈在世界各地 spreaded all over the world — 透過電子郵件溝通* communicate over email* 36 About Linux Kernel Development Linux 核心社群 * 線下實體活動中其實也有不少討論 * communication actually also happens in in-person events
  12. Copyright © SUSE 2023 — 也有人叫通訊群組/郵件群組/群組信箱/郵件列表 — 有個屬於群組的信箱 associated with

    specific email address — 所有訂閱者都會收到該信箱的信 all subscribers receive emails sent to the address 38 What is a mailing list? 什麼是郵件群組?
  13. Copyright © SUSE 2023 — 論壇/討論版 forum/discussion board – 例如

    Dcard 心情版 – 例如 PTT 八卦版 – e.g. Taiwanese subreddit/community on Reddit 39 What is a mailing list? 什麼是郵件群組?
  14. Copyright © SUSE 2023 — Linux 核心開發之家 home to Linux

    Kernel Development — 電子郵件信箱是 email address is [email protected] — 還有其他相關的郵件群組 other related mailing list exists – 網路 Networking — [email protected] – 無線網路 Wifi — [email protected] – BPF — [email protected] 40 What is the Linux Kernel Mailing List? 什麼是 Linux 核心郵件群組?
  15. Copyright © SUSE 2023 — 開放、公開的論壇 public forum – 任何人都可以發表

    anyone can post – 任何人都可以瀏覽 anyone can read – 不需要被邀請 no invitation required – 不需要審查、身份驗證 no identity check — 但是有些它自己的規則 but there’s some rule regarding posting 41 What is the Linux Kernel Mailing List like? Linux 核心郵件群組是什麼樣子?
  16. Copyright © SUSE 2023 — 寫錯字 typo — 詞彙 vocabulary

    — 文法 grammar — 標點符號 punctuation 45 What I thought receivers cared most 我以爲收件者最在乎的事
  17. Copyright © SUSE 2023 — 寫錯字 typo — 詞彙 vocabulary

    — 文法 grammar — 標點符號 punctuation 46 What I thought receivers cared most 我以爲收件者最在乎的事
  18. Copyright © SUSE 2023 — 純文字信件 plain text email 47

    What receivers cared most 收件者最在乎的事
  19. Copyright © SUSE 2023 — 純文字信件 plain text email —

    引言底下回覆 inline replies / bottom-posting / interleaved style 48 What receivers cared most 收件者最在乎的事
  20. Copyright © SUSE 2023 Shung-Hsi Yu wrote: > I’m planning

    to talk about the Linux Kernel Community at COSCUP this years, > any suggestions? Sure! Here's some ideas: * How to write email (and _not_ using top posting) - Netiquette[1] * What skillsets are needed Cheers, Myself 1: https://people.kernel.org/tglx/notes-about-netiquette-qw89 50
  21. Copyright © SUSE 2023 — *星號*、_底線_劃重點 emphasize with _underscore_, or

    *asterisk* — > 引述的話前加大於符號 > prefix quotes with angle bracket — 連結放註腳[1] links in footnote[1] — 條列式 list 51 Plain text can still be formatted 純文字還是可以有格式 1: 連結網址寫在這 put the link address here
  22. Copyright © SUSE 2023 Shung-Hsi Yu wrote: > I’m planning

    to talk about the Linux Kernel Community at COSCUP this years, > any suggestions? Sure! Here's some ideas: * How to write email (and _not_ using top posting) - Netiquette[1] * What skillsets are needed Cheers, Myself 1: https://people.kernel.org/tglx/notes-about-netiquette-qw89 52
  23. Copyright © SUSE 2023 — 純文字信件 plain text email —

    引言底下回覆 inline replies / bottom-posting / interleaved style — 回覆所有人 reply all — 別私底下寫信 no private email 53 What receivers cared most 收件者最在乎的事
  24. Copyright © SUSE 2023 — 溝通 communication – 英文 English、電子郵件

    email — C 語言 C programming language — 領域知識 domain knowledge – 作業系統 operating system – 網路 computer network、x86 架構 x86 architecture …… 57 Skill Categories 技能的種類
  25. Copyright © SUSE 2023 — BPF Level 1 – C

    Level 3 + BPF assembly Level 1 + … — Documentation Level 1 – English Level 2 + Email Level 2 59 Skill tree 技能樹
  26. Copyright © SUSE 2023 — 溝通 communication — C 語言

    C programming language — 領域知識 domain knowledge – 作業系統 operating system 60 Skill Categories 技能的種類
  27. Copyright © SUSE 2023 — 溝通 communication — C 語言

    C programming language — 領域知識 domain knowledge – 作業系統 operating system 64 Skill Categories 技能的種類
  28. Copyright © SUSE 2023 — Notes about Netiquette — 第一次給Linux

    Kernel發patch — Basic Guide to Linux Mailing Lists — MailingListEtiquette — Submitting patches: the essential guide to getting your code into the kernel — Linux Kernel Patch Submission Tips 65 Communication 溝通
  29. Copyright © SUSE 2023 — 你所不知道的 C 語言 — The

    C Programming Language (?) 66 C programming language C 語言
  30. Copyright © SUSE 2023 — 基礎概念 fundamentals – Operating Systems:

    Three Easy Pieces – Operating System Concept 系列 series — Linux 核心設計 — Linux Kernel Development 67 Operating System 作業系統
  31. Copyright © SUSE 2023 — 核心開發者們的部落格 Linux Kernel Developers’ blog

    – people.kernel.org — CVE 解說 CVE writeups – Kernel Pwning with eBPF - a Love Story – Dirty COW and why lying is bad even if you are the Linux kernel 68 Other Domain Knowledge 其他領域知識
  32. Copyright © SUSE 2023 — 演講 Talks – COSCUP System

    Track – Linux Plumber Conference – Kernel Recipes – SUSE Labs Conference 69 Other Domain Knowledge 其他領域知識
  33. Copyright © SUSE 2023 — C 語言 C programming language

    – 解題 programming challenges: Leetcode、HackerRank — 作業系統 – 系統追蹤 tracing – USENIX/LISA 2016 Linux bcc/BPF Tools – Understanding the Linux Kernel via Ftrace 70 Hands-on 動手做
  34. Copyright © SUSE 2023 — 2023 年系統軟體系列課程討論區 (?) — 相關社群

    relevant communities – Taiwan Linux Kernel Hackers (Facebook、Telegram) – 系統貓 Cat System Workshop (Facebook、Telegram) – 新竹碼農聚會 — ChatGPT (?) 71 Ask for Help 尋求幫助
  35. Copyright © SUSE 2023 — Linux 核心 – 核心工程師 kernel

    engineer – 驅動程式 driver、IO (Net、Block、FS)、Core (MM、IRQ、workqueue、) – QA 工程師 quality assurance engineer – 資訊安全工程師 security engineer — BSP 工程師 board support package engineer — 嵌入式系統軟體工程師 embedded system engineer — 技術支援工程師 support engineer — SRE site reliability engineer 75 Find a job related to Linux Kernel 找跟 Linux 核心有關的工作
  36. Copyright © SUSE 2023 — 官方文件 – 錯字與可讀性 typo and

    readability – 更新 update – 翻譯 translation 79 Write documentation 寫文件
  37. Copyright © SUSE 2023 — Linus 定律 Linus's law –

    臭蟲難逃眾人法眼 given enough eyeballs, all bugs are shallow — 回覆 reply with – Acked-by – Reviewed-by – Signed-off-by 80 Help review code 幫忙審查程式碼
  38. Copyright © SUSE 2023 — Syzkaller (related kernel-debugging discord) –

    蠻多真的很難修的 some are really hard to fix — 開啓除錯模式 enable debug mode – KASAN、UBSAN、Lockdep、Ref-count Tracking…… — 用最新版本的 「stable」核心 use latest stable kernel 81 Fixing bugs 找 Bug 修
  39. Copyright © SUSE 2023 — 沒有貢獻過的話可能會被非常嚴格的檢驗 very heavily scrutinized if

    you haven’t contributed before — 建議按部就班 taking things step-by-step a. 郵件群組討論 mailing list discussion b. 送出概念性驗證 send proof-of-concept(註明爲 present as RFC ) c. 根據別人的建議作修改 made changes based on feedbacks d. 送出完整、會動的程式碼 send complete patch e. 持續修改直到被接受 continue editing until accepted 82 Add new feature or optimization 開發新功能
  40. Copyright © SUSE 2023 © 2022 SUSE LLC. All Rights

    Reserved. SUSE and the SUSE logo are registered trademarks of SUSE LLC in the United States and other countries. All third-party trademarks are the property of their respective owners. For more information, contact SUSE at: +1 800 796 3700 (U.S./Canada) Frankenstrasse 146 90461 Nürnberg www.suse.com 歡迎跟我聊聊 Feel free to reach out to me 感謝聆聽 Thank you Twitter: @shunghsiyu Mastodon: @[email protected]
  41. Copyright © SUSE 2023 1. Fork 2. Clone 3. Change

    4. Commit 5. Push 6. Pull Request 86 Collaborating on GitHub GitHub 上的協作流程
  42. Copyright © SUSE 2023 1. Fork 2. Clone 3. Change

    4. Commit 5. Push 6. Pull Request 87 Collaborating on GitHub GitHub 上的協作流程 1. Download tarball & Extract / Clone 2. Make a copy & Change / Change 3. Generate Patch / Commit & Format-patch 4. Send Patch to LKML Collaborating on LKML LKML 上的協作流程
  43. Copyright © SUSE 2023 A: Because it messes up the

    order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail? A: No. Q: Should I include quotations after my reply? 89 Why inlined replies are better 爲什麼在引言底下回覆比較好 From Notes about Netiquette by Thomas Gleixner