uclinux內(nèi)核配置與裁減
如果要進(jìn)一步裁減根文件系統(tǒng),可以修改和刪除vender/HHTech/BF533-HHBF/目錄下的相關(guān)文件,具體操作不再詳述。
uClinux的多進(jìn)程處理
uClinux沒(méi)有mmu管理存儲(chǔ)器,在實(shí)現(xiàn)多個(gè)進(jìn)程時(shí)(fork調(diào)用生成子進(jìn)程)需要實(shí)現(xiàn)數(shù)據(jù)保護(hù)。 uClinux的fork和vfork:uClinux的fork等于vfork。實(shí)際上uClinux的多進(jìn)程管理通過(guò)vfork來(lái)實(shí)現(xiàn)。這意味著 uClinux系統(tǒng)fork調(diào)用完程后,要么子進(jìn)程代替父進(jìn)程執(zhí)行(此時(shí)父進(jìn)程已經(jīng)sleep)直到子進(jìn)程調(diào)用exit退出,要么調(diào)用exec執(zhí)行一個(gè)新的進(jìn)程,這個(gè)時(shí)候?qū)a(chǎn)生可執(zhí)行文件的加載,即使這個(gè)進(jìn)程只是父進(jìn)程的拷貝,這個(gè)過(guò)程也不能避免。當(dāng)子進(jìn)程執(zhí)行exit或exec后,子進(jìn)程使用 wakeup把父進(jìn)程喚醒,父進(jìn)程繼續(xù)往下執(zhí)行。 uClinux的這種多進(jìn)程實(shí)現(xiàn)機(jī)制同它的內(nèi)存管理緊密相關(guān)。 uClinux針對(duì)nommu處理器開(kāi)發(fā),所以被迫使用一種flat方式的內(nèi)存管理模式,啟動(dòng)新的應(yīng)用程序時(shí)系統(tǒng)必須為應(yīng)用程序分配存儲(chǔ)空間,并立即把應(yīng)用程序加載到內(nèi)存。缺少了MMU的內(nèi)存重映射機(jī)制,uClinux必須在可執(zhí)行文件加載階段對(duì)可執(zhí)行文件reloc處理,使得程序執(zhí)行時(shí)能夠直接使用物理內(nèi)存。
評(píng)論