COSCUP
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Help
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
Select, Manage, and Backport the Long-Term Stable Kernels - 林上智 (SZ Lin), 蔡鎮宇 (Tsai, Chen-Yu) === ###### tags: `COSCUP2021` `Beginner` `zh-tw` `COSCUP2021` `System Software` `TR309` {%hackmd kra72OaxRTiBzdV8Y4GMKA %} :::info Slido: https://app.sli.do/event/ofothc1a ::: Q&A === 想請問RT-Linux (PREEMPT_RT)有在CIP的支援範圍嗎? ------------------------------------------ **SZ Lin** (直播最後): 有。CIP會員西門子等大公司對 Real time Linux 有需求[1]。 [1] https://wiki.linuxfoundation.org/civilinfrastructureplatform/start#kernel_maintainership 為 automotive 市場選擇 linux kernel 版本有額外的點需要考慮嗎? ------------------------------------------------------ **SZ Lin**: 可以參考 Linux Foundation Project - Automotive Grade Linux[2], 另外也要將產業標準 ISO 26262 跟 ISO 21434 納入考量. 有興趣深聊可以寄信至 szlin AT debian.org [2] https://www.automotivelinux.org/ 想請問CIP未來rootfs的搭配有沒有可能有musl libc based的呢?XD ----------------------------------------------------- **SZ Lin**: 裡面的元件組成由 CIP 成員們來決定, 所以如果有成員提出 musl libc, 且或其他成員支持, 就會被加入至清單中. 請問kernel 那麼多商業公司再貢獻,公司利益跟開放(open source)會不會常常有衝突?? kernel社群有沒有什麼原則?? -------- wens: 1. 公司利益 (如出貨時程、工程成本、商業機密) 難免和開源有些衝突。但同時,公司的名聲 (公司利益) 也是要考量的一個因素。貢獻時,應該考慮原始碼的可重複使用性、可維護性、延續性、通用性,而不只是貢獻後就當作沒事,甚至隨意的扔出一包東西。kernel社群不會照單全收。 2. kernel社群是以kernel的發展與維護為主軸,接受貢獻時也以符合現有架構為主。若是新的功能或驅動程式無法套用現有架構,則會討論是否應該創立新的子系統或介面。新東西設計上應該以通用性為主,因此也會開放討論。 一些例子: * Android 有些東西沒有 upstream ,因為設計架構上與一般 Linux 差異過大,且其他用途上無法受惠。 * Stateless codec 使用的 Request API 從開始討論到完全 upstream,以及後續各個 codec 使用的 userspace API 的制定,是進行了好幾年的計畫。 Request API (在我印象中) 一開始由 ChromeOS 提出,經過了很多版本的變革,主推手也換了人。H.264 stateless codec API 似乎也是由 ChromeOS 應用而來,在制定 API 的過程中,維護者希望在定案前納入不同家硬體支援,藉此了解 API 是否能滿足不同硬體設計的需求。目前仍開發中的 VP9 及 HEVC stateless codec 也這樣進行。 **SZ Lin**: 對公司來說, 開源的策略很重要, 商業公司進行開源貢獻的第一步就是區分出來核心技術跟非核心技術. 通常送進 kernel 的 patch 都不太會是核心技術 (譬如說 device driver), 又或者是要綁定特定硬體才能運行. 如果要送核心技術進去, 那背後的戰略目的也要很明確. 總結而言, 商業公司跟 kernel 社群能找到共同目標非常重要. 至於 kernel 社群的原則都寫在 "Working with the kernel development community" 文件中 [3], 不過社群運作的一些潛規則就不會明文列在上面了. [3] https://www.kernel.org/doc/html/latest/process/ Backport 時,若 base 變化太大該怎麼處理? ---- wens: 這部分應該分兩種情形討論: 1. 對上游 stable kernel 做 backport 這種時候通常會需要作者去針對 stable kernel 改寫或重新撰寫出符合舊版 API 或架構的 patch。 此 patch 的功用應該和 mainline 的 patch 相等。如果去看 4.4.x 或 4.19.x 一些 backport,不時會看到這類的情形。這也是主講內容中 stable kernel patch 提到的 option 3。 2. 對下游或內部使用的 kernel 做 backport 這時可以考慮是否要把 API 變動相關的 patch 也一併 backport。相信這在硬體廠很常見,有些東西 upstream 了,然後再整包 backport 回到內部使用的舊版本上。如果修改幅度真的太大,導致需要 backport 的修改量過大,則可能也要考慮針對舊版去做修改了。若同時有很多這類的需求,或許也可以把進版列入考量。 **SZ Lin**: 這個處理需根據不同的情況來決定, 如 wens 所提. 隨著時間的演進, stable kernel 的 data strcuture, API, variable naming 等等內容都會跟 mainline 有越來越大的差異. 所以在 backport 時, 我以往都是緊抓著 backport 的目標, 從中找出最小修改路徑, 以滿足目標. 好奇SZ Lin您有沒有什麼「向上管理」的妙招,可以讓上司接受去contribute/upstream是為了公司好(苦笑) ---- wens: 我覺得這取決於組織本身的資源多寡以及商業模式。如果出產的都是生命週期很短的 Android 裝置,那麼可能很難推行。如果出產的是生命週期長的裝置,如網路設備,那麼 upstream 共同維護對公司產生的價值就會相對高。 以 Design House 來說,晶片設計多但生命週期短 upstream 對雙方可能都是一大疑慮。晶片廠方面在晶片產品出貨後,多數開發人力便可能轉往更新的產品線做開發;upstream 會對晶片商是否有人力繼續維護有疑慮。 不過就 SoC 來講,很多 IP Block 都有其延續性,邏輯是共通的,只是一些參數的變動。因此建議可以把共通邏輯打包成類似函式庫,再加上一兩個基準平台 (reference platform) 的特異化參數,去做 upstream 。 以網通晶片作為基準平台或許是個不錯的選擇,因為網通產品價格相對低,取得容易,且想要或願意去做修改的人也較多 (如 OpenWRT)。相較之下願意花時間去惡搞 Android 或 ChromeOS 設備的就比較少。網通晶片通常也不太會包含專利涵蓋量大的 GPU 或 Video Codec,公司方面的阻力可能也會較低。 以上是不負責任揣摩。 **SZ Lin**: 一般常見的思維不外乎 1. "RD 資源跟時間應該去做產品, 為什麼 RD 要浪費時間把修好的東西往外送" 2. "不對外揭露就是我的核心技術" 長久下來, 難免就會累積所謂的 "技術債", 這是隱藏的研發成本. 要解這個問題, 首先要先了解公司目前的氛圍, 文化, 以及管理者在意的事情. 如果沒辦法找出共同目標, 相對上的就會難以推動. 以我的過往經驗, 這一題不是技術問題, 是溝通議題, 通常也可能參雜一些政治問題.有興趣深聊可以寄信至 szlin AT debian.org

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully