Linux, 工作, 生活, 家人

Hardware, Linux

[Linux Kernel] 2.6.23 提供 User Space API

Linux Kernel 界這幾天最大的新聞莫過於 Linus Maintain 的 2.6.23 將正式納入了 User Space Driver API 了吧.

主要的重點在於
This interface allows the ability to write the majority of a driver in userspace with only a very small shell of a driver in the kernel itself. It uses a char device and sysfs to interact with a userspace process to process interrupts and control memory accesses.

可以用 sysfs 和 char device 去填寫記憶體和處理 Interrupt.
還沒有處理 DMA, 所以像是 Network Driver 或是 Disk Controller 之類的 Driver 如果要在上面執行會有效能上的問題.

大部份的 Close Source Driver 都是提供某些特定的版本的 Linux 使用, 一但使用者升級 Linux, 那 Driver 就失效了.
以後若是 Driver 使用User Space API, 那些 Closed Source Driver 也可以一起升級(當然, gcc toolchain 也是另一個問題就是了)
而 Embedded System 內很多都是這樣的 Closed Source (我自己也是在做類似的事情呀)

不管是 Kernel Binary API or User Space API, 這些爭議也是吵了好久,
論點也很多, 本來 User Space API 啟動以後, Kernel Developers 想要將 Non-GPL module 趕出核心, (請見:Linus 不贊成移掉對 non-GPL module 的 support)
不過最後還是被 Linus 擋下來了.

至於長期的影響力, 我認為對 Linux 社群是正向的力量, 雖然短期來看是 Closed Source
但是若是能夠增加 Linux 的使用者人數, 接下來會做的事情就是, 使用者
1. 逼迫 Hardware 公司 Open Source
2. 逼迫 Hardware 公司提供更好的服務, 否則就轉向其他家公司購買 Service.
這個最明白的例子就是 ATinVidia. 由於之前 ATi 一直對 Linux Driver 不太友善, 所以大家轉向 nVidia 的懷抱. 因為 nVidia 對 Linux 的 Support 比 ATi 好
如果你是想要組一台新電腦, 希望玩一下 Linux, 你顯示卡會不會優先選擇 nVidia?
3. 成立 Open Source Hardware Company.. 老實說我想成立耶, 意著內洽 🙂

Ref.
Linux kernel 2.6.23 to have stable userspace driver API(原始出處)
Kernel Summit 2006: The user-space API

[Tags] Linux , Kernel, User Space API [/Tags]

發佈留言