看板 Soft_Job 關於我們 聯絡資訊
※ 引述《ggg12345 (ggg)》之銘言: :   Android開源真相 :    :   所有的硬體在Linux kernel下運作,必須要有驅動程式,如果把驅動程式的程式 : 碼公開也等於把硬體規格也公開的差不多了,這是所有硬體廠家不願意做的事,只提 : 供驅動程式不提供源代碼。Android是商用要吸引更多的廠商,Google玩了一個花招, : 在Kernel和應用程式之間,自己做了一個中間層,這樣既不違背 GPL許可,也不能讓 : 外界看到廠商的硬體驅動和應用程式的源碼。他修改了Kernel卻又不提供修改的細節 : ,系統仍是封閉的,Google利用了開源社區為他做貢獻,卻不願意提供回報。 :    隨便寫一下好了, 根本就不是這樣, 老實說開源社群有時候機車過了頭, 像那個 Richard Stallman 大鬍子根本就是狂熱過了頭, 什麼東西都要加上 GNU. 像是 GNU/Linux 也是, 雖然大部份(99.99999%) 都是用你家的 GCC, 但是 intel 的也可以編呀. Greg KH 根本想策動要將 binary module 趕出 Kernel 記得有一次己經 commit patch, 但是被 Linus 擋住, 沒有 approve. 而 binary module 這個爭議性很大, 到底 include GPLv2 的 header 之後的 module 要不要 GPL. (請 GPL 達人出來說明一下比較好, 這不是我熟的那一塊) 也有人提議 kernel binary module interface, 但是被否決掉了, (大概就是相容性, blah blah) 所以現在大部份的狀況大概像是 Kernel <-> w/ GPL header module(Open Source <-> w/o GPL header module. 某些廠商的 driver 一定要改成 GPL 宣告才能 load 進 kernel. 但是 driver source code 卻沒有 release 的怪現像. Business is Business, 至少目前大家在這一塊相安無事 看起來社群並沒有要告大公司, 但是大公司也是芒剌在背, 深怕自己 release 了 binary module, 但是還是被告. Linux community 也不是不知道這樣的狀況, 要不然也不會有 user space module -- CONFIG_UIO: │ Enable this to allow the userspace driver core code to be │ │ built. This code allows userspace programs easy access to │ │ kernel interrupts and memory locations, allowing some drivers │ │ to be written in userspace. Note that a small kernel driver │ │ is also required for interrupt handling to work properly. │ -- Google 幫大家砍斷後路, 要不然誰願意放心進來玩這一塊呢? 至少這樣一刀切下去, license 的問題乾淨多了. kernel 用 GPL, 其他用 apache license 誰說只有 GPL 是自由的呢? 雖然不滿意, 開源社區不一定能接受. Google 利用了開源社區, 但是大家別忘了, Linux 最初的初衷是什麼 "儘量用, 隨便用, 不要求回報" (設計對白) 即使如此, 每天都有大量世界各地各種公司 commit 各種 code (peformance enhance, driver, bug fix) 很多公司也是因為 Android project 參與其中 這篇文章連最簡單的事情都沒有分析出來, 讓我懷疑是 SEO 文章(笑). 很多人應該知道. Android 己經躍升最大的 Linux GUI 系統了吧. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.22.92
ggg12345:除了頭尾外,這篇說明是比 userspace driver 談的多些,這 02/15 20:14
ggg12345:不就是如何可利用Linux kernel藉外夾層隔離轉送就可不發 02/15 20:17
ggg12345:布userspace driver源碼的辦法?只是中斷處理逃避不了夾層 02/15 20:19
ggg12345:的轉接處理.但只要中斷請求與後續處理不被延誤就是好招式 02/15 20:26