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