1、驅動程序分為幾類?
字符設備驅動
塊設備驅動
網絡設備驅動
2、字符設備驅動需要實現的接口通常有哪些
open、close、read、write、ioctl等接口。
3、主設備號與次設備號的作用
主設備號和次設備號是用來標識系統中的設備的,主設備號用來標識設備的類型,次設備號用來標識具體的設備,以便系統能夠識別出具體的設備。
4、交叉編譯器的作用
在一個平臺上生成另一個平臺的可執行程序。例如,x86平臺上生成arm平臺的可執行程序。通常嵌入式系統是基于arm平臺,由于arm平臺的算力相對不高,編譯大型程序慢,所以使用交叉編譯器在x86平臺進行編譯,大大減少了編譯時間。
5、硬鏈接和軟鏈接的區別
軟鏈接相當與window系統的快捷方式,軟鏈接文件存放的內容是源文件的絕對路徑。刪除源文件會使軟鏈接失效。
硬鏈接是指向文件或目錄的另一個名稱,它們與源文件或目錄共享相同的inode,但具有不同的名稱。刪除源文件不會影響到硬鏈接文件。
6、Linux內核的組成部分?
進程調度(SCHED)、進程間通信(IPC)、內存管理(MM)、虛擬文件系統(VFS)、網絡接口(NET)
7、Linux內核有哪些同步方式?
原子操作、信號量、自旋鎖、讀寫鎖、順序鎖等。
8、用戶空間和內核空間的通信方式有哪些?
系統調用、信號、procfs、mmap、netlink等
9、BootLoader、Linux內核、根文件系統的關系?
系統一上電,就執行BootLoader來初始化處理器及外設,將系統的軟硬件環境帶到一個合適的狀態。
然后將Linux內核、根文件系統從非易失性存儲器讀取到內存中并執行Linux內核。
Linux內核完成初始化之后就掛載某個文件系統作為根文件系統。
10、linux內核中EXPORT_SYMBOL宏和EXPORT_SYMBOL_GPL宏的作用
EXPORT_SYMBOL宏用于導出內核模塊中的全局變量和函數,使其可以被其他模塊調用。
EXPORT_SYMBOL_GPL宏用于導出內核模塊中的全局變量和函數,但只能被GPL授權的模塊調用。
11、container_of(ptr, type, member)的作用
已知結構體type的成員member的地址ptr,求解結構體type的起始地址
12、kmalloc與vmalloc區別
都是用于內核空間申請內存
kmalloc能申請較小的內存;vmalloc能申請較大的內存
kmalloc保證申請的內存在物理上是連續的;vmalloc保證申請的內存在虛擬地址空間上的連續,在物理上可能不連續
13、內存管理單元MMU的作用?
地址映射。
內存分配和回收。
內存保護。
內存擴充。
14、簡述MMU將VA轉為PA的過程
以三級頁表為例,MMU通過訪問頁表基址寄存器,得到一級頁表PGD的基地址,再結合虛擬地址中的PGD index找到了下一級頁表PTE的基地址;得到了PTE的基址,再結合虛擬地址中的PTE index找到PFN,然后再和VA相加得到物理地址。
15、操作系統的內存分配一般有哪幾種方式,各有什么優缺點?
分頁存儲管理:優點是不需要連續的內存空間,且內存利用率高(只有很小的頁內碎片);缺點是不易于實現內存共享與保護。
分段存儲管理:優點是易于實現段內存共享和保護;缺點是每段都需要連續的內存空間,且內存利用率較低(會產生外部碎片)。
段頁式存儲管理:優點是不需要連續的內存空間,內存利用率高(只有很小的頁內碎片),且易于實現段內存共享和保護;缺點是管理軟件復雜性較高,需要的硬件以及占用的內存也有所增加,使得執行速度下降。
-
驅動
+關注
關注
12文章
1844瀏覽量
85367 -
Linux
+關注
關注
87文章
11322瀏覽量
209864 -
開發
+關注
關注
0文章
370瀏覽量
40872
發布評論請先 登錄
相關推薦
評論