PTT推薦

Re: [請益] Linux device driver好不好自學上手?

看板Soft_Job標題Re: [請益] Linux device driver好不好自學上手?作者
jserv
(松鼠)
時間推噓推:124 噓:0 →:26

※ 引述《pl132 (pl132)》之銘言:
: 最近小弟有考上資工在職專班
: 有問到教授是做無線網路演算法
: 他說要熟linux device driver怎麼寫
: 但是無奈小弟是用python做儀控比較多
: 實在不熟C,大學非本科,程式是上班後自學的
: 想請問各位版友這塊到底好不好做啊?自學上手要多久呢?

同學你好,我最近跟學生一起編撰《The Linux Kernel Module Programming Guide》,這本電子書原本在 2007 年 (相當於 Linux v2.6.20 釋出的年代) 就停止更新,但秉持「路見不平,拿 patch 來填」的精神,我們就接手維護,更新書中描述和對應的範例程式碼到 Linux v5.x (配合 Ubuntu Linux LTS 的發布)。可線上免費存取:
https://sysprog21.github.io/lkmpg/

這本書簡稱為 LKMPG,儘管有很多地方需要改進,但關於 Linux 裝置驅動程式開發的
基本概念應已涵蓋。我知道好幾位讀者都用下班時間自學 [1],只要腳步踏實,仍可累
積些認知和成果。

另外,我也準備 vwifi 這個針對 Linux cfg80211 子系統 [2] 的虛擬無線網路驅動程
式,僅用不到 300 行就可開發,支援無線網路的掃描、連接,和斷線等功能,請見:
https://github.com/sysprog21/vwifi

Linux 核心裝置驅動程式和內部實作需要對 C 語言有更入的掌握,歡迎利用線上免費
講座「你所不知道的 C 語言」來學習:
https://hackmd.io/@sysprog/c-prog

以及「Linux 核心設計」系列講座:
https://hackmd.io/@sysprog/linux-kernel-internal

關於「自學上手要多久」這樣的問題,我沒有資格回覆,畢竟我從 1997 年學習 Linux
以來,一直認為自己不理解 Linux 核心,一如蘇格拉底所說:「我唯一知道的,就是我一無所知」。

[1] 暑期 Linux 核心課程大約六成的學員是上班族:
https://hackmd.io/@sysprog/linux2021-summer
[2] cfg80211 子系統:
https://www.kernel.org/doc/html/latest/driver-api/80211/cfg80211.html

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.246.163 (臺灣)
PTT 網址

LinuxKernel09/03 12:14可惡想學

cphe09/03 12:15有神出沒,快拜

jserv09/03 12:15@LinuxKernel, 請收下我的膝蓋

jserv09/03 12:18https://github.com/sysprog21/lkmpg #請善心網友幫忙打星

lturtsamuel09/03 12:21大師

GymRat09/03 12:24松鼠大,快拜

iamgp09/03 12:33快跪著看....

nicehorse0609/03 12:36朝聖

j095832208009/03 12:46前十推

lolmap09/03 12:47jserv必須推

jserv09/03 12:47@lolmap, 那 GitHub 的星星就麻煩你了

yusheng8899209/03 12:52先跪了

neo527709/03 12:53先拜

matthewka09/03 12:55有神快推

bill199209/03 13:02好想上大師的課

kenshih120309/03 13:03跪著看神

jkkert09/03 13:07朝聖

Yan556609/03 13:10老師好

NciscalA09/03 13:11

hans146109/03 13:12

shooter55509/03 13:15還是免費的 快拜

Lhmstu09/03 13:15

pl13209/03 13:19感謝大神回答~

f9g8h7j65409/03 13:21朝聖

pl13209/03 13:22可惜相見恨晚~沒能報名今年課程

lolmap09/03 13:28已按github星星

DCTmaybe09/03 13:35已打星

james73209/03 13:39

deflife09/03 13:40竟然出現了XD

jserv09/03 13:47@pl132, 沒意外的話,今年底我還會發布另一本電子書,也有

jserv09/03 13:48對應的課程,預祝學習順利

ianwind09/03 13:51

lemontea032809/03 13:52感謝分享

SuperUnison09/03 13:53推推推

b092007509/03 13:55ldd 和 lkmpg 分別的定位是什麼啊?我有在看另一本日本

b092007509/03 13:55人寫的驅動開發,但年代好像有點久,有些 code 在 linu

b092007509/03 13:55x 5.0 以上編譯不過還要自己去改QQ

jserv09/03 14:00@b0920075, LDD 完整但不能自由修改,且書中範例過時

jserv09/03 14:01LKMPG 的定位就是一本小書,只給你精簡的材料,可自由修改

b092007509/03 14:04了解,感謝解惑

jserv09/03 14:06我對 LKMPG 的另一個期許是,作為學生日後貢獻 Linux 核心

jserv09/03 14:06的練習環境:學生用 Linux 核心程式碼風格撰寫程式並提交

jserv09/03 14:07對應的 git commmit (關鍵是訊息描述,英文書寫需要多練習)

y95640309/03 14:16

acoupleof12309/03 14:25

hduek15309/03 14:43太神了

chiel09/03 14:53有神我就推

bab717109/03 14:58

kiki8615109/03 15:02先拜

loadingN09/03 15:17三月的文也能釣到!?

benjamin102309/03 15:18跪…

devilkool09/03 15:19拜見大神

duck1070409/03 16:09朝聖

ericthree09/03 16:19有神快拜

m49052109/03 16:27大神!請收下膝蓋

h388224909/03 16:40朝聖

whatabiggun09/03 16:46推爆

Eric060509/03 17:02大師...

xoy23209/03 17:18大神 感謝你 請收下我的膝蓋

GTX908009/03 17:29媽我在這

smily13409/03 17:52

sniper282409/03 18:16大神

Walkers09/03 18:30有神快拜

aaa123413609/03 18:36在成大的時候一直想修大大的課QQ

wulouise09/03 18:40starred, push

linnom09/03 18:40Jserv先推太喜歡老師的課

askaleroux09/03 18:53好色喔 色夫

poneponecar09/03 18:55朝聖推

kangan98709/03 19:22推!

Yunyung09/03 19:29朝聖

Burwei09/03 19:49朝聖推

tw0008481109/03 19:51有神快推

TTTTTsai09/03 20:08朝聖

cococing09/03 20:20朝聖

ice83110709/03 20:23跪著看jserv

pttano09/03 20:53

richer660509/03 21:01非常感謝分享

laughingman09/03 21:09有神快拜

Rayishere09/03 21:13推推

ptta09/03 21:14

unmolk09/03 21:48神…

chuegou09/03 21:48未看先推

shorty69682009/03 22:09看到這個文章標題 我就知道一定會釣到了

mmonkeyboyy09/03 22:25這過這麼久才釣到他XD

mmonkeyboyy09/03 22:26ldd 作者就不太更新了

mmonkeyboyy09/03 22:26有這個接上也真的很不錯捏~

jserv09/03 23:09@askaleroux, 是 "colorful" 人生的「彩色」

jserv09/03 23:10@loadingN, 是聽到網友的呼喚,我只好犧牲暑假趕工寫書

steven841109/03 23:17有神先推

zmcx1609/03 23:22推jserv

kkroy09/03 23:31朝聖

ejnfu09/03 23:37

pearlsally09/03 23:44好猛

knme09/03 23:51推推

babymomo010109/04 00:47推推

ChoDino09/04 00:55軟體界的福音戰士阿!

qwefghiop109/04 01:48若能搭配開發版像是樹莓派邊做邊學就更好了。

Gazella09/04 03:00朝聖 努力學習中

jserv09/04 04:57@qwefghiop1, LKMPG 裡頭有二個範例就針對 Raspberry Pi

yupog200309/04 09:07朝聖

bewitchsky09/04 10:51

ID323809/04 10:55來看上帝

mickey9437809/04 11:40推爆 jserv

pttrAin09/04 11:47朝聖

qwer49509/04 12:18

qwe0468709/04 12:23推 早上才看到另一篇

abcdtony209/04 12:46感謝老師

jimjim95135709/04 13:12朝聖推

e1251816633909/04 13:32感謝老師,一路以來受到很多幫助,現在能夠從事開

e1251816633909/04 13:32源貢獻真的超爽的

tommytyc09/04 14:56

rongyaya09/04 15:15老師好

PompelmousJ09/04 17:33太神啦

s67813109/04 19:51感謝

JavaScript09/04 21:42祝福老師身體健康,可以繼續造福更多學子們

bcew09/04 23:46朝聖

wheels09/05 00:52大神推推

chaos199309/05 02:21有大神快拜

goldie09/05 11:19朝聖推

loveu809/05 13:18先拜XD

AAAWhoAmI09/05 14:56已跪

IhateOGC09/05 18:57我有買@@

Phenomenon09/05 23:03

SmallpTsai09/05 23:10有神快拜

jserv09/05 23:18@IhateOGC, 你說買什麼?

WaterLengend09/06 00:31

YYYero09/06 00:54

yoche200009/06 01:17有神快拜

yuankwei09/06 02:02是大神!!!

streakray09/06 06:26推推推推

godsparticle09/06 08:07有神快拜

erolissi09/06 10:06有神快拜

MDay5609/06 10:30謝謝

sa07446309/06 12:34感謝老師

mrnegativetw09/06 19:52有神快拜

becca94509/06 20:47先給星星

tom75825809/06 22:09已給星星

a898933209/06 23:04老師帥

morek09/07 00:26感恩大大無私分享

khalifa1609/07 09:54

fg008kimo09/07 14:02居然是大神

tumaz09/08 14:08祝老師身體健康萬事如意

william051209/08 21:04寫超好 摸一陣driver才看到這篇 相見恨晚

mikeqoo109/09 15:49大神給推!

Jeniberg09/12 00:48

cookiej4u09/12 12:25

dyjo494909/14 19:10遇到神了!!

Tharp09/16 00:19神人快拜!!

sintsu09/16 00:25見過神人 已拜

charliejack09/16 10:21感謝老師 受惠良多 對台灣Linux Kernel人才培育