進程和線程windows
可執行文件:就是一個文件,若是沒有執行,和普通的文件同樣安全
進程:可執行文件的動態活動的表現,一次生命歷練,資源最基本的單位多線程
線程:cpu最小的調度單位,多核以後纔是真正意義上是的併發併發
andriod是多進程多線程函數
進程邊界的安全圍欄:Crash的不可擴展性spa
當一個進程出現問題的時候,系統不會由於當前的進程出現問題而致使整個系統的崩潰,這就是他的安全圍欄。線程
例如windows:對象
例如Android的:進程
這些都是Crash,可是他不會由於某個文件出錯而致使整個系統崩潰。可是若是kernel Crash的話,整個系統就掛掉了。只須要保證kernel的健壯性就ok了。內存
全局數據和服務的不可訪問性
每一個應用都有一個本身獨立的運行空間。如上圖,個人銀行密碼存在A,取錢函數在B,若是另外一個惡意應用經過讀取我b裏面對應的數據,那個人銀行密碼就會被泄露了,可是在安卓裏面是不可訪問的。即便另外一個應用也讀取B的數據,可是他讀取的是另外一段物理內存的地址,不可能訪問到我A裏面的物理內存,這就是 Android裏面的全局數據和服務的安全機制。
多用戶和多用戶邊界
一個系統裏面運行的時候,其實是多個進程在運行。
特性標識實際上是進程的UID/GID
查看某個用戶正在執行的進程:ps aux | grep dailei
每一個用戶都有本身獨立的工做空間。
手機用戶root了怎麼辦?
一旦應用攛掇獲得了root權限就能夠作任何事情,可是就算被root,也不能讓他隨心所欲。
DAC(自主訪問控制):傳統的UNIX和Linux安全管理模型,主體對它所屬的對象和運行程序有所有的控制權。
MAC(強制訪問控制):管理員訪問控制,管理員制定策略,用戶不能改變。
SEAndroid