內(nèi)存管理MMU的作用匙睹?
- 內(nèi)存分配和回收
- 內(nèi)存保護(hù)
- 內(nèi)存擴(kuò)充
- 地址映射
異步IO和同步IO的區(qū)別?
如果是同步IO灵临,當(dāng)一個(gè)IO操作執(zhí)行時(shí)坐求,應(yīng)用程序必須等待潮瓶,直到此IO執(zhí)行完陶冷,相反,異步IO操作在后臺(tái)運(yùn)行毯辅,
IO操作和應(yīng)用程序可以同時(shí)運(yùn)行埂伦,提高系統(tǒng)性能,提高IO流量思恐; 在同步文件IO中沾谜,線程啟動(dòng)一個(gè)IO操作然后就立即進(jìn)入等待狀態(tài)膊毁,直到IO操作完成后才醒來繼續(xù)執(zhí)行,而異步文件IO中类早,
線程發(fā)送一個(gè)IO請(qǐng)求到內(nèi)核媚媒,然后繼續(xù)處理其他事情,內(nèi)核完成IO請(qǐng)求后涩僻,將會(huì)通知線程IO操作完成了缭召。
編譯和鏈接有什么不同?(如外部符號(hào)的處理)
- 編譯生成的是目標(biāo)文件(object *.o);
- 編譯過程中對(duì)于外部符號(hào)不做任何解釋和處理逆日。外部符號(hào)對(duì)應(yīng)的就是“符號(hào)”
- 鏈接生成的是可執(zhí)行程序
- 鏈接將會(huì)解釋和處理外部符號(hào)嵌巷。外部符號(hào)對(duì)應(yīng)的是地址
驅(qū)動(dòng)中操作物理絕對(duì)地址為什么要先ioremap?
因?yàn)閮?nèi)核沒有辦法直接訪問物理內(nèi)存地址,必須先通過ioremap獲得對(duì)應(yīng)的虛擬地址室抽。內(nèi)核空間和用戶空間一般通過系統(tǒng)調(diào)用進(jìn)行通信搪哪。
嵌入式設(shè)備,為加快啟動(dòng)速度坪圾,可以做哪些方面的優(yōu)化晓折?
linux默認(rèn)的安裝內(nèi)核相當(dāng)龐大,為了保證系統(tǒng)的兼容性和靈活性兽泄,支持熱插拔操作漓概,內(nèi)核啟動(dòng)時(shí)要進(jìn)行大量的硬件檢測(cè)和初始化工作,而嵌入式的硬件都是固定的病梢,只需要選擇需要的硬件驅(qū)動(dòng)就可以胃珍,不需要全部的硬件驅(qū)動(dòng)都檢測(cè);因此可以進(jìn)行適當(dāng)?shù)牟眉魞?nèi)核達(dá)到縮小啟動(dòng)linux系統(tǒng)的目的蜓陌;同時(shí)可以統(tǒng)計(jì)驅(qū)動(dòng)模塊的耗時(shí)時(shí)間觅彰,對(duì)耗時(shí)較長(zhǎng)的模塊驅(qū)動(dòng)加以分析,優(yōu)化钮热;
嵌入式linux中tty設(shè)備驅(qū)動(dòng)的體系結(jié)構(gòu)填抬?
Linux內(nèi)核中tty的層次結(jié)構(gòu)包含tty核心、tty線路規(guī)程和tty驅(qū)動(dòng)隧期;
tty設(shè)備發(fā)送數(shù)據(jù)的流程為:tty核心從一個(gè)用戶獲取將要發(fā)送給一個(gè)tty設(shè)備的數(shù)據(jù)痴奏,tty核心將數(shù)據(jù)傳遞給tty線路規(guī)程驅(qū)動(dòng),接著數(shù)據(jù)被傳遞到tty驅(qū)動(dòng)厌秒,tty驅(qū)動(dòng)將數(shù)據(jù)轉(zhuǎn)換為可以發(fā)送給硬件的格式。
接收數(shù)據(jù)的流程為: 從tty硬件接收到的數(shù)據(jù)向上交給tty驅(qū)動(dòng)擅憔,進(jìn)入tty線路規(guī)程驅(qū)動(dòng)鸵闪,再進(jìn)入 tty 核心,在這里它被一個(gè)用戶獲取暑诸。盡管大多數(shù)時(shí)候tty核心和tty之間的數(shù)據(jù)傳輸會(huì)經(jīng)歷tty線路規(guī)程的轉(zhuǎn)換蚌讼,但是tty驅(qū)動(dòng)與tty核心之間也可以直接傳輸數(shù)據(jù)辟灰。