作者:
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
作者:
cphe (魔鬼藏在垃圾筒裡)
2021-09-03 12:15:00有神出沒,快拜
作者:
jserv (松鼠)
2021-09-03 12:15:00作者: GymRat (鼠鼠有練過) 2021-09-03 12:24:00
松鼠大,快拜
作者: iamgp 2021-09-03 12:33: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
推
作者:
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星星
作者:
deflife (無極而生)
2021-09-03 13:40:00竟然出現了XD
作者:
jserv (松鼠)
2021-09-03 13:47:00@pl132, 沒意外的話,今年底我還會發布另一本電子書,也有對應的課程,預祝學習順利
作者: ianwind (流風夜月) 2021-09-03 13:51:00
推
作者: SuperUnison (SuperUnison) 2021-09-03 13:53:00
推推推
ldd 和 lkmpg 分別的定位是什麼啊?我有在看另一本日本人寫的驅動開發,但年代好像有點久,有些 code 在 linux 5.0 以上編譯不過還要自己去改QQ
作者:
jserv (松鼠)
2021-09-03 14:00:00@b0920075, LDD 完整但不能自由修改,且書中範例過時LKMPG 的定位就是一本小書,只給你精簡的材料,可自由修改
作者:
jserv (松鼠)
2021-09-03 14:06:00我對 LKMPG 的另一個期許是,作為學生日後貢獻 Linux 核心的練習環境:學生用 Linux 核心程式碼風格撰寫程式並提交對應的 git commmit (關鍵是訊息描述,英文書寫需要多練習)
作者:
y956403 (尋歡)
2021-09-03 14:16:00推
作者:
hduek153 (專業打醬油)
2021-09-03 14:43:00太神了
作者:
chiel (All 噴 將!!)
2021-09-03 14:53:00有神我就推
作者: bab7171 2021-09-03 14:58:00
推
作者:
loadingN (sarsaparilla)
2021-09-03 15:17:00三月的文也能釣到!?
作者: ericthree (如果 她這樣動人) 2021-09-03 16:19:00
有神快拜
作者:
m490521 (阿青)
2021-09-03 16:27: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
推
作者:
Walkers (walkers)
2021-09-03 18:30:00有神快拜
作者:
wulouise (在線上!=在電腦前)
2021-09-03 18:40:00starred, push
作者:
linnom (繁星)
2021-09-03 18:40:00Jserv先推太喜歡老師的課
作者:
Yunyung (Yunyung)
2021-09-03 19:29:00朝聖
作者:
Burwei (系館守護神)
2021-09-03 19:49:00朝聖推
作者:
TTTTTsai (臺科任逍遙)
2021-09-03 20:08:00朝聖
作者: ice831107 (沁雨) 2021-09-03 20:23:00
跪著看jserv
作者:
pttano (pttano)
2021-09-03 20:53: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未看先推
這過這麼久才釣到他XDldd 作者就不太更新了有這個接上也真的很不錯捏~
作者:
jserv (松鼠)
2021-09-03 23:09:00@askaleroux, 是 "colorful" 人生的「彩色」@loadingN, 是聽到網友的呼喚,我只好犧牲暑假趕工寫書
作者:
zmcx16 (zmcx16)
2021-09-03 23:22:00推jserv
作者:
kkroy (☆㊣↖煞氣ㄟ阿喂↘ξ★)
2021-09-03 23:31:00朝聖
作者:
ejnfu ((-. .-)b)
2021-09-03 23:37: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軟體界的福音戰士阿!
作者:
Gazella (飛雪連天射白鹿)
2021-09-04 03:00:00朝聖 努力學習中
作者:
jserv (松鼠)
2021-09-04 04:57:00@qwefghiop1, LKMPG 裡頭有二個範例就針對 Raspberry Pi
作者:
ID3238 (默默)
2021-09-04 10:55:00來看上帝
作者:
pttrAin (rAin)
2021-09-04 11:47:00朝聖
作者: qwer495 (沒海了) 2021-09-04 12:18:00
猛
感謝老師,一路以來受到很多幫助,現在能夠從事開源貢獻真的超爽的
作者:
tommytyc (75303301)
2021-09-04 14:56:00推
作者: rongyaya (enyazo) 2021-09-04 15:15:00
老師好
作者:
s678131 (Mu)
2021-09-04 19:51: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
已跪
作者:
jserv (松鼠)
2021-09-05 23:18:00@IhateOGC, 你說買什麼?
作者: YYYero (YYYero) 2021-09-06 00:54:00
推
作者:
yoche2000 (Sushi Desu! 在下壽司)
2021-09-06 01:17:00有神快拜
作者: streakray (條紋衣boy) 2021-09-06 06:26:00
推推推推
作者: erolissi (GOGOGO) 2021-09-06 10:06:00
有神快拜
作者:
MDay56 (他媽媽衝擊波)
2021-09-06 10:30:00謝謝
作者:
morek (陸王)
2021-09-07 00:26:00感恩大大無私分享
作者: khalifa16 (卡里發) 2021-09-07 09:54: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
推
作者: dyjo4949 (爌肉王朝) 2021-09-14 19:10:00
遇到神了!!
作者:
Tharp (沙普)
2021-09-16 00:19:00神人快拜!!
作者:
sintsu (Stev)
2021-09-16 00:25:00見過神人 已拜
感謝老師 受惠良多 對台灣Linux Kernel人才培育