1. 什么是驅(qū)動模塊?
官方定義: 可在運行時添加到內(nèi)核中的代碼被稱為“模塊”。
Linux設(shè)備驅(qū)動只有在Linux內(nèi)核中才能工作,內(nèi)核是驅(qū)動運行所依賴的環(huán)境(Linux內(nèi)核中有驅(qū)動運行所需要的庫等)。
所以驅(qū)動編譯、運行有兩種方式:
一種方式是直接將驅(qū)動代碼放入內(nèi)核中,作為內(nèi)核的一部分進行編譯,然后Linux內(nèi)核啟動的時候,驅(qū)動也即運行。
另一種方式是將驅(qū)動單獨編譯成一個模塊,當(dāng)Linux內(nèi)核運行起來后,需要某個驅(qū)動的時候,再將對應(yīng)的驅(qū)動模塊添加到當(dāng)前的Linux內(nèi)核中,當(dāng)不需要某個驅(qū)動的時候,可以從內(nèi)核中將對應(yīng)的驅(qū)動模塊卸載掉
2. 模塊化編程有什么好處?
1)可以減小內(nèi)核鏡像的體積,因為模塊本身不被編譯到內(nèi)核鏡像里面。
2)可以在內(nèi)核中添加或刪除功能(模塊化的形式)而不用重新編譯內(nèi)核(每一次從新編譯內(nèi)核很耗時):
非模塊化驅(qū)動編程過程: 編寫驅(qū)動->編譯內(nèi)核(驅(qū)動放入內(nèi)核代碼中一起編譯)->生成鏡像燒寫到硬件->如果驅(qū)動出現(xiàn)問題則從新回到步修改然后開始直到成功。
模塊化驅(qū)動編程過程: 編寫驅(qū)動->單獨將驅(qū)動編譯成一個模塊->將模塊下載到正在運行的硬件上并插入到內(nèi)核中->如果有問題則回到步驟一從新開始,整個過程無需重新編譯和燒寫內(nèi)核。
一直以來達內(nèi)科技都是以嵌入式培訓(xùn)作為我們公司發(fā)展的主要核心,每年為企業(yè)培養(yǎng)了上萬的嵌入式人才,給市場輸送了一部分的嵌入式人才。如果說你是想要學(xué)習(xí)嵌入式linux技術(shù)的話,那么可以來我們達內(nèi)科技實地考察,也可以點擊我們文章下面的獲取試聽資格按鈕來獲取我們的嵌入式linux培訓(xùn)免費課程試聽資格,來和我們的講師進行面對面的交流和溝通,并更加深入的了解我們達內(nèi)科技。