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