回覆列表
  • 1 # 掉眼淚的冠軍

    由於Linux和UNIX相似,是多使用者、多工的作業系統,核心必須採取特殊的防範措施,以保證同一系統內來自不同使用者的上千個操作正確安全地執行。UNIX的安全模型(即Linux之前的設計)能夠保護每個使用者操作的自身環境和地址空間。每個使用者操作都受到保護,防止被其它使用者喚醒,而且,虛擬記憶體(VM)系統對現代CPU還有另外的要求,比如在個人處理記憶體中實現動態記憶體分配和隨機記憶體區域規劃。有一些裝置,如Blackfin 處理器,沒有提供全功能的MMU記憶體管理單元,因為開發者的應用程式並不使用作業系統,通常也不需要MMU,而且,Blackfin的弱MMU的處理器往往具有更高的效率,其價格也明顯低於其它產品。   為使Linux與這些裝置相適應,必須進行一些改動:   1. 沒有實際的儲存器保護(一個錯誤的環節可以讓整個系統停機)   2. 沒有交叉(fork)系統呼叫   3. 只有簡單的記憶體分配   4. 其它一些較小的區別   儲存器保護對大多數嵌入式系統來說不是很大的問題。Linux是一個很穩定的平臺,尤其是在嵌入式系統中,軟體崩潰的情況很少發生。  第二點的問題要大一些。在為UNIX和Linux編寫的軟體中,開發者常常使用fork系統呼叫來實現並行處理,fork呼叫可以準確複製原始程式並同時予以執行。為了提高效率,它使用MMU將父程式對映到子程式,並只複製寫入子程式的記憶體區。因此uClinux不能提供fork系統呼叫。它提供vfork,一種特殊版本的fork,在vfork程式中當子程式執行時父程式即會終止。因此,使用fork系統的軟體在使用uClinux支援的vfork或執行緒時必須重寫,因為他們使用相同的記憶體空間,包括堆疊。   就第三點來說,一般情況下支援uClinux的malloc系統不會有問題,但是,有些時候必須進行小的調整。大部分適用於UNIX和uClinux的軟體能夠直接在uClinux上編譯,其它的則可使用微小的移植或調整(tweaking)。只有很少的應用軟體不能在uClinux上執行,其中大部分不能作為嵌入式應用軟體。

  • 中秋節和大豐收的關聯?
  • 中班,彎彎柳(繞口令)教案?