1、驅(qū)動(dòng)程序分為幾類?
字符設(shè)備驅(qū)動(dòng)
塊設(shè)備驅(qū)動(dòng)
網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)
2、字符設(shè)備驅(qū)動(dòng)需要實(shí)現(xiàn)的接口通常有哪些
open、close、read、write、ioctl等接口。
3、主設(shè)備號(hào)與次設(shè)備號(hào)的作用
主設(shè)備號(hào)和次設(shè)備號(hào)是用來標(biāo)識(shí)系統(tǒng)中的設(shè)備的,主設(shè)備號(hào)用來標(biāo)識(shí)設(shè)備的類型,次設(shè)備號(hào)用來標(biāo)識(shí)具體的設(shè)備,以便系統(tǒng)能夠識(shí)別出具體的設(shè)備。
4、交叉編譯器的作用
在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)的可執(zhí)行程序。例如,x86平臺(tái)上生成arm平臺(tái)的可執(zhí)行程序。通常嵌入式系統(tǒng)是基于arm平臺(tái),由于arm平臺(tái)的算力相對(duì)不高,編譯大型程序慢,所以使用交叉編譯器在x86平臺(tái)進(jìn)行編譯,大大減少了編譯時(shí)間。
5、硬鏈接和軟鏈接的區(qū)別
軟鏈接相當(dāng)與window系統(tǒng)的快捷方式,軟鏈接文件存放的內(nèi)容是源文件的絕對(duì)路徑。刪除源文件會(huì)使軟鏈接失效。
硬鏈接是指向文件或目錄的另一個(gè)名稱,它們與源文件或目錄共享相同的inode,但具有不同的名稱。刪除源文件不會(huì)影響到硬鏈接文件。
6、Linux內(nèi)核的組成部分?
進(jìn)程調(diào)度(SCHED)、進(jìn)程間通信(IPC)、內(nèi)存管理(MM)、虛擬文件系統(tǒng)(VFS)、網(wǎng)絡(luò)接口(NET)
7、Linux內(nèi)核有哪些同步方式?
原子操作、信號(hào)量、自旋鎖、讀寫鎖、順序鎖等。
8、用戶空間和內(nèi)核空間的通信方式有哪些?
系統(tǒng)調(diào)用、信號(hào)、procfs、mmap、netlink等
9、BootLoader、Linux內(nèi)核、根文件系統(tǒng)的關(guān)系?
系統(tǒng)一上電,就執(zhí)行BootLoader來初始化處理器及外設(shè),將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài)。
然后將Linux內(nèi)核、根文件系統(tǒng)從非易失性存儲(chǔ)器讀取到內(nèi)存中并執(zhí)行Linux內(nèi)核。
Linux內(nèi)核完成初始化之后就掛載某個(gè)文件系統(tǒng)作為根文件系統(tǒng)。
10、linux內(nèi)核中EXPORT_SYMBOL宏和EXPORT_SYMBOL_GPL宏的作用
EXPORT_SYMBOL宏用于導(dǎo)出內(nèi)核模塊中的全局變量和函數(shù),使其可以被其他模塊調(diào)用。
EXPORT_SYMBOL_GPL宏用于導(dǎo)出內(nèi)核模塊中的全局變量和函數(shù),但只能被GPL授權(quán)的模塊調(diào)用。
11、container_of(ptr, type, member)的作用
已知結(jié)構(gòu)體type的成員member的地址ptr,求解結(jié)構(gòu)體type的起始地址
12、kmalloc與vmalloc區(qū)別
都是用于內(nèi)核空間申請(qǐng)內(nèi)存
kmalloc能申請(qǐng)較小的內(nèi)存;vmalloc能申請(qǐng)較大的內(nèi)存
kmalloc保證申請(qǐng)的內(nèi)存在物理上是連續(xù)的;vmalloc保證申請(qǐng)的內(nèi)存在虛擬地址空間上的連續(xù),在物理上可能不連續(xù)
13、內(nèi)存管理單元MMU的作用?
地址映射。
內(nèi)存分配和回收。
內(nèi)存保護(hù)。
內(nèi)存擴(kuò)充。
14、簡述MMU將VA轉(zhuǎn)為PA的過程
以三級(jí)頁表為例,MMU通過訪問頁表基址寄存器,得到一級(jí)頁表PGD的基地址,再結(jié)合虛擬地址中的PGD index找到了下一級(jí)頁表PTE的基地址;得到了PTE的基址,再結(jié)合虛擬地址中的PTE index找到PFN,然后再和VA相加得到物理地址。
15、操作系統(tǒng)的內(nèi)存分配一般有哪幾種方式,各有什么優(yōu)缺點(diǎn)?
分頁存儲(chǔ)管理:優(yōu)點(diǎn)是不需要連續(xù)的內(nèi)存空間,且內(nèi)存利用率高(只有很小的頁內(nèi)碎片);缺點(diǎn)是不易于實(shí)現(xiàn)內(nèi)存共享與保護(hù)。
分段存儲(chǔ)管理:優(yōu)點(diǎn)是易于實(shí)現(xiàn)段內(nèi)存共享和保護(hù);缺點(diǎn)是每段都需要連續(xù)的內(nèi)存空間,且內(nèi)存利用率較低(會(huì)產(chǎn)生外部碎片)。
段頁式存儲(chǔ)管理:優(yōu)點(diǎn)是不需要連續(xù)的內(nèi)存空間,內(nèi)存利用率高(只有很小的頁內(nèi)碎片),且易于實(shí)現(xiàn)段內(nèi)存共享和保護(hù);缺點(diǎn)是管理軟件復(fù)雜性較高,需要的硬件以及占用的內(nèi)存也有所增加,使得執(zhí)行速度下降。
-
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1852瀏覽量
85685 -
Linux
+關(guān)注
關(guān)注
87文章
11351瀏覽量
210497 -
開發(fā)
+關(guān)注
關(guān)注
0文章
370瀏覽量
40937
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Linux文件系統(tǒng)知識(shí)點(diǎn)詳解
![<b class='flag-5'>Linux</b>文件系統(tǒng)<b class='flag-5'>知識(shí)點(diǎn)</b>詳解](https://file1.elecfans.com/web2/M00/AB/FC/wKgaomVC_BCAXNS9AAAzJavAvp4886.png)
【信盈達(dá)】C語言知識(shí)點(diǎn)的總結(jié)
嵌入式Linux內(nèi)存管理知識(shí)點(diǎn)
萌新求助,求大佬分享ARM的嵌入式Linux開發(fā)的知識(shí)點(diǎn)
嵌入式Linux驅(qū)動(dòng)基礎(chǔ)知識(shí)點(diǎn)匯總,錯(cuò)過絕對(duì)后悔
Linux平臺(tái)手冊(cè)的知識(shí)點(diǎn)匯總,絕對(duì)實(shí)用
Linux 源代碼閱讀知識(shí)點(diǎn)及要求
Linux教程之Linux的網(wǎng)絡(luò)應(yīng)用詳細(xì)知識(shí)點(diǎn)資料免費(fèi)下載
![<b class='flag-5'>Linux</b>教程之<b class='flag-5'>Linux</b>的網(wǎng)絡(luò)應(yīng)用詳細(xì)<b class='flag-5'>知識(shí)點(diǎn)</b>資料免費(fèi)下載](https://file.elecfans.com/web1/M00/72/27/o4YBAFv2dOiAMfJKAAFH3teWbbM644.png)
linux開發(fā)需要學(xué)習(xí)哪些知識(shí)
嵌入式知識(shí)點(diǎn)總結(jié)
![嵌入式<b class='flag-5'>知識(shí)點(diǎn)</b>總結(jié)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【嵌入式】基于ARM的嵌入式Linux開發(fā)總結(jié)
![【嵌入式】基于ARM的嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>開發(fā)</b>總結(jié)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Linux中多線程編程的知識(shí)點(diǎn)
![<b class='flag-5'>Linux</b>中多線程編程的<b class='flag-5'>知識(shí)點(diǎn)</b>](https://file1.elecfans.com/web2/M00/82/50/wKgZomRI7hKAUonUAAD2ERK4HW0091.png)
數(shù)字電路知識(shí)點(diǎn)總結(jié)
![數(shù)字電路<b class='flag-5'>知識(shí)點(diǎn)</b>總結(jié)](https://file1.elecfans.com/web2/M00/88/DF/wKgZomR1oB2ATkOzAABYL6bXL8c171.jpg)
評(píng)論