想像一下你去7-11繳費。
你和店員說我要繳費,店員給你一個表格要你填,你填好後交給店員,店員幫你收款。
完成。
簡單。
想像一下7-11現在沒有店員。
你必須自己知道要填哪個表格,找到表格放在哪裡。
填好之後要輸入給收銀機,要自己刷條碼然後付錢,在收款,確認金額等等。
阿等等,你填錯了,那張是店家自爆申請表,這家7-11等一下就要爆炸了!
在電腦科學上,這就是使用者層面和Kernel的差別。
普通的程式只能在使用者層面執行(他們只能和店員互動)
只會發生給錯錢,忘記帶卡這類小型BUG。
不會發生咖啡機沒關,整個櫃臺被咖啡淹沒這種致命的BUG,因為普通的程式沒有權限去碰後臺的東西,所以不會發生。
特殊的程式,例如作業系統,就必須在Kernel層執行。
它們就能碰觸到所有的東西,可以開收銀機,可以關電燈,可以標價格,可以訂購飯糰要幾個。
店員就是作業系統,他有7-11的Kernel權限。
現在想像一下,7-11為了要促進工作環境的安全和提升生產力,在每間店裡面安排了一位保鑣。
他會幫助店員趕走惡意人士,阻止詐騙集團,觀察店員有沒有偷懶之類的。
很明顯的,如果保鑣想要正確執行他的工作,他也會需要Kernel權限。
這就是發生在之前的微軟全球大當機的情況,CrowdStrike這家防毒軟體公司有微軟的Kernel權限。
這樣他才能看到後臺的詳細情況,才能偵測到病毒(比較厲害的病毒都是在Kernel層執行的)。
結果CrowdStrike更新出包,如果只是普通的程式還沒關係,問題在CrowdStrike有Kernel權限,他把後臺整個搞爛了,用普通方法沒辦法恢復。
結果呢???
現在微軟在重新考慮他們對於Kernel權限的政策了,
雖然說是業務工作必須,但是就這樣把Kernel權限給出去也不太妥。
之前也許有人會說利大於弊。
現在出過一次這麼大的包後就不能再這樣講了,微軟肯定會檢討他們的Kernel政策。
也許以後微軟會乾脆禁止任何軟體取用Kernel權限?
這樣就會影響到防外掛偵測了,因為防外掛系統幾乎都會需要Kernel權限。
如果微軟真的改變了Kernel權限的政策,也會對遊戲界產生衝擊。
目前看來比較有可能的做法是微軟自己做幾個觀察端口,讓外部程式能看到Kernel內部。
但無法操作Kernel裡面的東西。
總之就是要對Kernel做出更多限制,不會再向之前那樣只要和微軟申請就能讓你進去Kernel裡面了。