進程隔離是為保護操作系統中進程互不干擾而設計的一組不同硬件和軟件的技術。
簡介
這個技術是為了避免進程A寫入進程B的情況發生。進程的隔離實現,使用了虛擬地址空間。進程A的虛擬地址和進程B的虛擬地址不同,這樣就防止進程A將數據信息寫入進程B。
進程隔離的安全性通過禁止進程間內存的訪問可以方便實現。相比之下,一些不安全的操作系統(例如dos)能夠允許任何進程對其他進程的內存進行寫操作。
受限的進程間通信
在一個有進程隔離的操作系統中,進程之間允許受限的進程間交互,如果他們相互都接受進程間通信(IPC)的協作,例如共享內存,或套接字技術。在這樣的方案下,幾乎所有的進程間的內存都和其他進程的相互隔離了,除了某些進程指定允許其他進程訪問用以協同工作的變量和內存塊。
某些環境下,系統安全策略可能不允許進程間通信(IPC)。比如在強制訪問控制系統(Mandatory access controlsystems)中,不同安全等級的進程是不允許相互通信的。
進程間通信
進程間通信( IPC,Inter-Process Communication),指至少兩個進程或線程間傳送數據或信號的一些技術或方法。
進程是計算機系統分配資源的最小單位(嚴格說來是線程)。每個進程都有自己的一部分獨立的系統資源,彼此是隔離的。為了能使不同的進程互相訪問資源并進行協調工作,才有了進程間通信。通常,使用進程間通信的兩個應用可以被分為客戶端和服務器(見主從式架構),客戶端進程請求數據,服務端響應客戶端的數據請求。有一些應用本身既是服務器又是客戶端,這在分布式計算中,時常可以見到。這些進程可以運行在同一計算機上或網絡連接的不同計算機上。
IPC對微內核和nano內核的設計過程非常重要。微內核減少了內核提供的功能數量。然后通過IPC與服務器通信獲得這些功能,與普通的單片內核相比,IPC的數量大幅增加。
參考資料 >