{eval=Array;=+count(Array);}

成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

問答專欄Q & A COLUMN

Linux內(nèi)核開發(fā)與Linux驅(qū)動(dòng)開發(fā)有什么關(guān)系?

AndrmanAndrman 回答0 收藏1
收藏問題

5條回答

LucasTwilight

LucasTwilight

回答于2022-06-27 16:51

還沒學(xué)到驅(qū)動(dòng),大致的說一下吧,驅(qū)動(dòng)是建立在內(nèi)核之上來開發(fā)的,比如你寫了一個(gè)驅(qū)動(dòng)的代碼,那就要把驅(qū)動(dòng)加載到內(nèi)核中去,然后內(nèi)核去執(zhí)行,為什么需要內(nèi)核,我個(gè)人的理解就是,內(nèi)核是來管理硬件資源的,你寫的驅(qū)動(dòng)代碼是來驅(qū)動(dòng)硬件的,內(nèi)核不可能去驅(qū)動(dòng)硬件的,當(dāng)然包括管理進(jìn)程,這部分的事情由驅(qū)動(dòng)去做,驅(qū)動(dòng)可以理解為一個(gè)進(jìn)程,內(nèi)核負(fù)責(zé)來管理,結(jié)構(gòu)就是:應(yīng)用程序->內(nèi)核(比如系統(tǒng)調(diào)用write,read等等)->驅(qū)動(dòng)程序(比如write來驅(qū)動(dòng)磁盤來寫)。

換句話說就是對(duì)于驅(qū)動(dòng)開發(fā),不知道樓主是否學(xué)過單片機(jī),可以理解驅(qū)動(dòng)就是一個(gè)驅(qū)動(dòng)硬件的過程,就像單片機(jī)一樣,當(dāng)然再發(fā)過程中還是有很大的區(qū)別的。

內(nèi)核開發(fā),這個(gè)工作還真不是一般的人能開發(fā)的,不然linux內(nèi)核的維護(hù)就不會(huì)給linux之父了,內(nèi)核的開發(fā)就是用一種方法來合理的管理并分配硬件資源,比如內(nèi)存的管理就用到分頁的方法,還有一些磁盤的管理,進(jìn)程的管理,cpu的調(diào)度算法(比如簡(jiǎn)單的FIFO,時(shí)間片)等等,在學(xué)習(xí)內(nèi)核前做好把操作系統(tǒng)原理看一下,這本書還可以:

我學(xué)習(xí)的時(shí)候結(jié)合了國外的操作系統(tǒng)原理第七版,因?yàn)檫@兩本書介紹的側(cè)重點(diǎn)有所不同,上圖的書注重實(shí)踐性(相比后一本),后一本注重算法方面。

額。。說偏了哈,反正總有一天樓主估計(jì)是想開發(fā)內(nèi)核的,所以建議先把原理學(xué)會(huì),還有最基本的計(jì)算機(jī)科學(xué)基礎(chǔ)知識(shí)最好學(xué)的扎實(shí)點(diǎn),到時(shí)學(xué)習(xí)內(nèi)核就不是特別吃力,當(dāng)然是相比什么都不懂的情況下。

評(píng)論0 贊同0
  •  加載中...
everfly

everfly

回答于2022-06-27 16:51

Linux設(shè)備驅(qū)動(dòng)需要使用內(nèi)核API來實(shí)現(xiàn),一般被包含在Linux內(nèi)核源碼樹中。驅(qū)動(dòng)可以編譯到內(nèi)核,隨著內(nèi)核一起在系統(tǒng)啟動(dòng)的時(shí)候被加載。也可以編譯成內(nèi)核模塊,在系統(tǒng)運(yùn)行起來之后動(dòng)態(tài)地加載到內(nèi)核中,使得調(diào)試的時(shí)候無需重新編譯內(nèi)核,也無需重啟系統(tǒng),很大程度上方便了驅(qū)動(dòng)代碼的調(diào)試。但并不是只有設(shè)備驅(qū)動(dòng)才能編譯成模塊,有些內(nèi)核功能的實(shí)現(xiàn)也可以,以便在需要的時(shí)候再加載,比如內(nèi)核中文件系統(tǒng)的實(shí)現(xiàn)、加密及校驗(yàn)的實(shí)現(xiàn)、網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)等等。

平時(shí)你聽到的驅(qū)動(dòng)開發(fā)一般指的是開發(fā)系統(tǒng)外圍設(shè)備的驅(qū)動(dòng),使得設(shè)備能被內(nèi)核操控,如USB主從設(shè)備、Flash設(shè)備驅(qū)動(dòng)、I2C設(shè)備驅(qū)動(dòng)、LCD設(shè)備驅(qū)動(dòng)、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。平時(shí)你聽到的內(nèi)核開發(fā)一般就指除了設(shè)備驅(qū)動(dòng)之外的開發(fā)了,比如Linux系統(tǒng)啟動(dòng)流程、進(jìn)程管理、內(nèi)存管理、時(shí)間管理、系統(tǒng)調(diào)用、文件系統(tǒng)等,但這些部分也在很大程度上被所謂的“驅(qū)動(dòng)開發(fā)”所用。

所以,實(shí)際上驅(qū)動(dòng)開發(fā)只是內(nèi)核開發(fā)的一部分。


linux內(nèi)核源碼研習(xí)與項(xiàng)目實(shí)戰(zhàn)學(xué)習(xí)地址:https://ke.qq.com/course/431590?flowToken=1013767

評(píng)論0 贊同0
  •  加載中...
laoLiueizo

laoLiueizo

回答于2022-06-27 16:51

我做過驅(qū)動(dòng)開發(fā),說說我的看法。本質(zhì)上說Linux內(nèi)核開發(fā)和Linux驅(qū)動(dòng)開發(fā)是不一樣的,或者說驅(qū)動(dòng)開發(fā)是內(nèi)核開發(fā)的一部分,因?yàn)?/span>驅(qū)動(dòng)屬于內(nèi)核。目前國內(nèi)驅(qū)動(dòng)開發(fā)和內(nèi)核開發(fā)一般是一樣的。有對(duì)應(yīng)linux內(nèi)核開發(fā)工程師和linux驅(qū)動(dòng)開發(fā)工程師職位。

內(nèi)核開發(fā)指的是形成linux操作系統(tǒng)的過程,也就是內(nèi)核開發(fā)者向內(nèi)核中添加信息使得linux從無到有的過程或者添加新的功能,比如Linux內(nèi)核在2.6版本內(nèi)核之前是沒有設(shè)備驅(qū)動(dòng)模型,內(nèi)核開發(fā)者在2.6版本中增加了設(shè)備驅(qū)動(dòng)模型,這屬于linux內(nèi)核開發(fā)。而linux驅(qū)動(dòng)開發(fā)指的是使用Linux內(nèi)核提供的接口,驅(qū)動(dòng)開發(fā)者根據(jù)實(shí)際情況按照內(nèi)核提供驅(qū)動(dòng)的框架寫相應(yīng)的驅(qū)動(dòng)并注冊(cè)到相應(yīng)的總線上,進(jìn)而驅(qū)使硬件設(shè)備工作,比如I2C設(shè)備就注冊(cè)到i2c總線上,這個(gè)i2c總線是內(nèi)核開發(fā)者為我們提供的接口,我們只需要調(diào)用相應(yīng)接口即可。整個(gè)工作流程是:linux應(yīng)用程序->內(nèi)核->驅(qū)動(dòng)->硬件。如下圖所示:

多說一點(diǎn),要進(jìn)行l(wèi)inux驅(qū)動(dòng)開發(fā),必須學(xué)好C語言、能夠看懂電路圖(因?yàn)轵?qū)動(dòng)開發(fā)需要根據(jù)相應(yīng)的引腳來編寫驅(qū)動(dòng))需要模電和數(shù)電知識(shí),linux操作系統(tǒng)知識(shí),linux應(yīng)用編程知識(shí)(多進(jìn)程、多線程、文件io操作)因?yàn)槲覀円獪y(cè)試寫的驅(qū)動(dòng)能否正常工作需要linux應(yīng)用編程知識(shí)。最好對(duì)數(shù)據(jù)結(jié)構(gòu)中的鏈表有所了解,內(nèi)核中有大量的內(nèi)核鏈表。


感謝評(píng)論,交流,轉(zhuǎn)發(fā)。更多精彩內(nèi)容可關(guān)注本我們:嵌入式軟硬件開發(fā)。感謝大家。相互交流,共同進(jìn)步。

評(píng)論0 贊同0
  •  加載中...
MadPecker

MadPecker

回答于2022-06-27 16:51

Linux內(nèi)核包括系統(tǒng)調(diào)用接口、進(jìn)程管理、內(nèi)存管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)堆棧、設(shè)備驅(qū)動(dòng),Linux內(nèi)核開發(fā)就包括上面的每一個(gè)模塊了。

Linux還分為用戶空間和內(nèi)核空間,2者基本關(guān)系如下圖所示:

Linux驅(qū)動(dòng)開發(fā)屬于Linux內(nèi)核開發(fā)的一部分,手機(jī)、平板底層LCD、Camera、G-sensor等硬件驅(qū)動(dòng)都需要Linux驅(qū)動(dòng)開發(fā)來完成。作為驅(qū)動(dòng)工程師需要掌握如下Linxu驅(qū)動(dòng)開發(fā):

1.Linux系統(tǒng)下的Uboot移植

2.Linux系統(tǒng)下的kernel移植

3.Linux

系統(tǒng)下的各外設(shè)驅(qū)動(dòng)開發(fā)

字符設(shè)備驅(qū)動(dòng)

lcd設(shè)備驅(qū)動(dòng)程序

觸摸屏設(shè)備驅(qū)動(dòng)程序

input輸入子系統(tǒng)驅(qū)動(dòng)

Camear驅(qū)動(dòng)開發(fā)

塊設(shè)備驅(qū)動(dòng)、Audio驅(qū)動(dòng)、USB驅(qū)動(dòng)開發(fā)等


以上就是Linux內(nèi)核開發(fā)與Linux驅(qū)動(dòng)開發(fā)的說明,希望對(duì)你理解有幫助!

評(píng)論0 贊同0
  •  加載中...
luodongseu

luodongseu

回答于2022-06-27 16:51

驅(qū)動(dòng)開發(fā)是內(nèi)核開發(fā)的一種,內(nèi)核開發(fā)是指內(nèi)核層應(yīng)用開發(fā),比如常見的硬件驅(qū)動(dòng)、netfilter等等。

評(píng)論0 贊同0
  •  加載中...

相關(guān)問題

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<