Linux 驅動開發需要掌握哪些編程語言和技術?
在開始前我有一些資料,是我根據自己從業十年經驗,熬夜搞了幾個通宵,精心整理了一份「Linux從專業入門到高級教程+工具包」,點個關注,全部無償共享給大家!!!
在評論區回復“888”,關注我之后私信回復“888”,即可拿走。
如果是個存新手,就先安裝 Linux 用著。
支持的語言
2023年底了,這個時間點,除了匯編(匯編也是不推薦的,因為是架構相關的)以外,可以用 c 和 rust兩門語言編寫 Linux 驅動。
這里聲明,目前 Rust For Linux 還是早期階段, Linus 在最近的活動中也明確表示, Rust 支持最終會成為內核一部分,但是這個時間可能還需要幾年時間,但是目前也是可以嘗試用 Rust 去寫 Linux 內核模塊的,當然包含驅動,這個僅僅對于 Geek 玩家推薦!
所需的知識
這個太廣了,我僅僅羅列可能的一個技術依賴,歡迎交流。
首先:你得有一個能編譯 Linux 內核的環境,最高效的就是在你自己筆記本或者臺式機上安裝一個 Linux 系統, 次之可以選擇在虛擬機中安裝一個 Linux 環境
第二:熟悉,Linux 的使用,并且逐漸了解 Linux 的內部的各個東西
第三:你得是個程序員吧? 掌握 C 語言或者 Rust
第四:從 kernel.org 下載一個內核版本
第五: 確定驅動的類型,是文件系統驅動?USB設備(不同類別的)?PCI設備?等等
如果驅動是和硬件打交道的,還需要了解對應硬件類型的工作機制以及相關技術。