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

作者: jserv (松鼠)   2021-09-03 12:09:29
※ 引述《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
作者: LinuxKernel (Linus Torvalds)   2021-09-03 12:14:00
可惡想學
作者: cphe (魔鬼藏在垃圾筒裡)   2021-09-03 12:15:00
有神出沒,快拜
作者: jserv (松鼠)   2021-09-03 12:15:00
@LinuxKernel, 請收下我的膝蓋https://github.com/sysprog21/lkmpg #請善心網友幫忙打星
作者: lturtsamuel (港都都教授)   2021-09-03 12:21:00
大師
作者: GymRat (鼠鼠有練過)   2021-09-03 12:24:00
松鼠大,快拜
作者: iamgp   2021-09-03 12:33:00
快跪著看....
作者: nicehorse06 (嘿嘿馬)   2021-09-03 12:36:00
朝聖
作者: j0958322080 (Tidus)   2021-09-03 12:46:00
前十推
作者: lolmap (休伊yo)   2021-09-03 12:47:00
jserv必須推
作者: jserv (松鼠)   2021-09-03 12:47:00
@lolmap, 那 GitHub 的星星就麻煩你了
作者: yusheng88992 (搭小黃囉)   2021-09-03 12:52:00
先跪了
作者: neo5277 (I am an agent of chaos)   2021-09-03 12:53:00
先拜
作者: matthewka   2021-09-03 12:55:00
有神快推
作者: bill1992 (我是魔法的蹤跡)   2021-09-03 13:02:00
好想上大師的課
作者: kenshih1203 (阿萊)   2021-09-03 13:03:00
跪著看神
作者: jkkert   2021-09-03 13:07:00
朝聖
作者: Yan5566   2021-09-03 13:10:00
老師好
作者: NciscalA   2021-09-03 13:11:00
作者: hans1461 (小憨吉)   2021-09-03 13:12:00
作者: shooter555 (shooter)   2021-09-03 13:15:00
還是免費的 快拜
作者: Lhmstu (lhmstu)   2021-09-03 13:15:00
作者: pl132 (pl132)   2021-09-03 13:19:00
感謝大神回答~
作者: f9g8h7j654 (whoIswho)   2021-09-03 13:21:00
朝聖
作者: pl132 (pl132)   2021-09-03 13:22:00
可惜相見恨晚~沒能報名今年課程
作者: lolmap (休伊yo)   2021-09-03 13:28:00
已按github星星
作者: DCTmaybe (竹竹人)   2021-09-03 13:35:00
已打星
作者: james732 (好人超)   2021-09-03 13:39:00
作者: deflife (無極而生)   2021-09-03 13:40:00
竟然出現了XD
作者: jserv (松鼠)   2021-09-03 13:47:00
@pl132, 沒意外的話,今年底我還會發布另一本電子書,也有對應的課程,預祝學習順利
作者: ianwind (流風夜月)   2021-09-03 13:51:00
作者: lemontea0328 (魔幻檸檬)   2021-09-03 13:52:00
感謝分享
作者: SuperUnison (SuperUnison)   2021-09-03 13:53:00
推推推
作者: b0920075 (Void)   2021-09-03 13:55:00
ldd 和 lkmpg 分別的定位是什麼啊?我有在看另一本日本人寫的驅動開發,但年代好像有點久,有些 code 在 linux 5.0 以上編譯不過還要自己去改QQ
作者: jserv (松鼠)   2021-09-03 14:00:00
@b0920075, LDD 完整但不能自由修改,且書中範例過時LKMPG 的定位就是一本小書,只給你精簡的材料,可自由修改
作者: b0920075 (Void)   2021-09-03 14:04:00
了解,感謝解惑
作者: jserv (松鼠)   2021-09-03 14:06:00
我對 LKMPG 的另一個期許是,作為學生日後貢獻 Linux 核心的練習環境:學生用 Linux 核心程式碼風格撰寫程式並提交對應的 git commmit (關鍵是訊息描述,英文書寫需要多練習)
作者: y956403 (尋歡)   2021-09-03 14:16:00
作者: acoupleof123 (physitist)   2021-09-03 14:25:00
作者: hduek153 (專業打醬油)   2021-09-03 14:43:00
太神了
作者: chiel (All 噴 將!!)   2021-09-03 14:53:00
有神我就推
作者: bab7171   2021-09-03 14:58:00
作者: kiki86151 (魯飯)   2021-09-03 15:02:00
先拜
作者: loadingN (sarsaparilla)   2021-09-03 15:17:00
三月的文也能釣到!?
作者: benjamin1023 (酷斃了)   2021-09-03 15:18:00
跪…
作者: devilkool (對貓毛過敏的貓控)   2021-09-03 15:19:00
拜見大神
作者: duck10704 (duck)   2021-09-03 16:09:00
朝聖
作者: ericthree (如果 她這樣動人)   2021-09-03 16:19:00
有神快拜
作者: m490521 (阿青)   2021-09-03 16:27:00
大神!請收下膝蓋
作者: h3882249 (ㄧ可蓮霧)   2021-09-03 16:40:00
朝聖
作者: whatabiggun (奶奶早安)   2021-09-03 16:46:00
推爆
作者: Eric0605 (我還有點餓)   2021-09-03 17:02:00
大師...
作者: xoy232 (鬼島希特勒)   2021-09-03 17:18:00
大神 感謝你 請收下我的膝蓋
作者: GTX9080 (你有Bootloader嗎)   2021-09-03 17:29:00
媽我在這
作者: smily134 (father134)   2021-09-03 17:52:00
作者: sniper2824 (月夜)   2021-09-03 18:16:00
大神
作者: Walkers (walkers)   2021-09-03 18:30:00
有神快拜
作者: aaa1234136 (淡水活魚)   2021-09-03 18:36:00
在成大的時候一直想修大大的課QQ
作者: wulouise (在線上!=在電腦前)   2021-09-03 18:40:00
starred, push
作者: linnom (繁星)   2021-09-03 18:40:00
Jserv先推太喜歡老師的課
作者: askaleroux (FalconTW)   2021-09-03 18:53:00
好色喔 色夫
作者: poneponecar   2021-09-03 18:55:00
朝聖推
作者: kangan987 (Jon.Snow)   2021-09-03 19:22:00
推!
作者: Yunyung (Yunyung)   2021-09-03 19:29:00
朝聖
作者: Burwei (系館守護神)   2021-09-03 19:49:00
朝聖推
作者: tw00084811 (Fixie萬歲!!)   2021-09-03 19:51:00
有神快推
作者: TTTTTsai (臺科任逍遙)   2021-09-03 20:08:00
朝聖
作者: cococing (大肥)   2021-09-03 20:20:00
朝聖
作者: ice831107 (沁雨)   2021-09-03 20:23:00
跪著看jserv
作者: pttano (pttano)   2021-09-03 20:53:00
作者: richer6605 (Rhapsody)   2021-09-03 21:01:00
非常感謝分享
作者: laughingman (笑面男)   2021-09-03 21:09:00
有神快拜
作者: Rayishere (Rayishere)   2021-09-03 21:13:00
推推
作者: ptta (ptta)   2021-09-03 21:14:00
作者: unmolk (UJ)   2021-09-03 21:48:00
神…
作者: chuegou (chuegou)   2021-09-03 21:48:00
未看先推
作者: shorty696820 (虹彩弟弟)   2021-09-03 22:09:00
看到這個文章標題 我就知道一定會釣到了
作者: mmonkeyboyy (great)   2021-09-03 22:25:00
這過這麼久才釣到他XDldd 作者就不太更新了有這個接上也真的很不錯捏~
作者: jserv (松鼠)   2021-09-03 23:09:00
@askaleroux, 是 "colorful" 人生的「彩色」@loadingN, 是聽到網友的呼喚,我只好犧牲暑假趕工寫書
作者: steven8411 (唬爛獸)   2021-09-03 23:17:00
有神先推
作者: zmcx16 (zmcx16)   2021-09-03 23:22:00
推jserv
作者: kkroy (☆㊣↖煞氣ㄟ阿喂↘ξ★)   2021-09-03 23:31:00
朝聖
作者: ejnfu ((-. .-)b)   2021-09-03 23:37:00
作者: pearlsally (yllaslraep)   2021-09-03 23:44:00
好猛
作者: knme (knem)   2021-09-03 23:51:00
推推
作者: babymomo0101 (babymomo19)   2021-09-04 00:47:00
推推
作者: ChoDino (Dino)   2021-09-04 00:55:00
軟體界的福音戰士阿!
作者: qwefghiop1 (只有肥宅知道的世界2)   2021-09-04 01:48:00
若能搭配開發版像是樹莓派邊做邊學就更好了。
作者: Gazella (飛雪連天射白鹿)   2021-09-04 03:00:00
朝聖 努力學習中
作者: jserv (松鼠)   2021-09-04 04:57:00
@qwefghiop1, LKMPG 裡頭有二個範例就針對 Raspberry Pi
作者: yupog2003 (屁股)   2021-09-04 09:07:00
朝聖
作者: bewitchsky (Shopping)   2021-09-04 10:51:00
作者: ID3238 (默默)   2021-09-04 10:55:00
來看上帝
作者: mickey94378 (Holy)   2021-09-04 11:40:00
推爆 jserv
作者: pttrAin (rAin)   2021-09-04 11:47:00
朝聖
作者: qwer495 (沒海了)   2021-09-04 12:18:00
作者: qwe04687 (國一臭宅)   2021-09-04 12:23:00
推 早上才看到另一篇
作者: abcdtony2 (肥肉在顫抖)   2021-09-04 12:46:00
感謝老師
作者: jimjim951357 (v54dt)   2021-09-04 13:12:00
朝聖推
作者: e12518166339 (耐綸)   2021-09-04 13:32:00
感謝老師,一路以來受到很多幫助,現在能夠從事開源貢獻真的超爽的
作者: tommytyc (75303301)   2021-09-04 14:56:00
作者: rongyaya (enyazo)   2021-09-04 15:15:00
老師好
作者: PompelmousJ (PompelmousJ)   2021-09-04 17:33:00
太神啦
作者: s678131 (Mu)   2021-09-04 19:51:00
感謝
作者: JavaScript (JavaScript)   2021-09-04 21:42:00
祝福老師身體健康,可以繼續造福更多學子們
作者: bcew (bcew)   2021-09-04 23:46:00
朝聖
作者: wheels   2021-09-05 00:52:00
大神推推
作者: chaos1993 (棧前小二)   2021-09-05 02:21:00
有大神快拜
作者: goldie (阿良)   2021-09-05 11:19:00
朝聖推
作者: loveu8 (RA1-推廣)   2021-09-05 13:18:00
先拜XD
作者: AAAWhoAmI   2021-09-05 14:56:00
已跪
作者: IhateOGC (我討厭)   2021-09-05 18:57:00
我有買@@
作者: Phenomenon (Kuma)   2021-09-05 23:03:00
作者: SmallpTsai (Smallp Tsai)   2021-09-05 23:10:00
有神快拜
作者: jserv (松鼠)   2021-09-05 23:18:00
@IhateOGC, 你說買什麼?
作者: WaterLengend (Leeeeeeeeooooooo)   2021-09-06 00:31:00
作者: YYYero (YYYero)   2021-09-06 00:54:00
作者: yoche2000 (Sushi Desu! 在下壽司)   2021-09-06 01:17:00
有神快拜
作者: yuankwei ( )   2021-09-06 02:02:00
是大神!!!
作者: streakray (條紋衣boy)   2021-09-06 06:26:00
推推推推
作者: godsparticle (阿粒)   2021-09-06 08:07:00
有神快拜
作者: erolissi (GOGOGO)   2021-09-06 10:06:00
有神快拜
作者: MDay56 (他媽媽衝擊波)   2021-09-06 10:30:00
謝謝
作者: sa074463 (壘包)   2021-09-06 12:34:00
感謝老師
作者: mrnegativetw (每天來點負能量)   2021-09-06 19:52:00
有神快拜
作者: becca945 (頻果芽子)   2021-09-06 20:47:00
先給星星
作者: tom758258 (大笨豬)   2021-09-06 22:09:00
已給星星
作者: a8989332 (天創)   2021-09-06 23:04:00
老師帥
作者: morek (陸王)   2021-09-07 00:26:00
感恩大大無私分享
作者: khalifa16 (卡里發)   2021-09-07 09:54:00
作者: fg008kimo (大安海瑟威)   2021-09-07 14:02:00
居然是大神
作者: tumaz (台灣黑熊)   2021-09-08 14:08:00
祝老師身體健康萬事如意
作者: william0512 (Go go life.)   2021-09-08 21:04:00
寫超好 摸一陣driver才看到這篇 相見恨晚
作者: mikeqoo1 (海葵)   2021-09-09 15:49:00
大神給推!
作者: Jeniberg (與世界接軌)   2021-09-12 00:48:00
作者: cookiej4u (考焦餅乾)   2021-09-12 12:25:00
作者: dyjo4949 (爌肉王朝)   2021-09-14 19:10:00
遇到神了!!
作者: Tharp (沙普)   2021-09-16 00:19:00
神人快拜!!
作者: sintsu (Stev)   2021-09-16 00:25:00
見過神人 已拜
作者: charliejack (charliejack)   2021-09-16 10:21:00
感謝老師 受惠良多 對台灣Linux Kernel人才培育

Links booklink

Contact Us: admin [ a t ] ucptt.com