Linux 基金會透露未來 Linux 內核可能會引入形式驗證
本文作者為洪謙和聞其詳
本月19日在北京舉辦的 LC3 大會 (LinuxCon + ContainerCon + CloudOpen)應該是全球最頂級的開源大會了,而這一為期兩天的開源盛會過去幾年在北美、歐洲和日本都舉辦過,而此次是其首次來到中國。就在同一天,Linux 發布了 4.12-rc6 的 release,而Linux 基金會在這次大會上也透露了一些未來 Linux 內核開發的新特性。
Linux 基金會的執行董事 Jim Zemblin 是本次大會的主持人,他同時也出席了本次大會的發布會,接受了中國媒體的專訪,在19日上午 Linux Story 記者的訪問中,Jim 透露,未來 Linux 內核可能會引入形式驗證(維基百科鏈接),以獲得更好的安全性,如果完成形式驗證的話,將大大增加 Linux 在內核安全上的可信賴度,也有利於 Linux 對更多新特性的支持和未來長遠發展。但是形式驗證是一項艱巨的任務,我們估計 Linux 應該首先對某些相對獨立的核心模塊完成形式驗證。
據悉,形式驗證(Formal Verification)含義是根據某個或某些形式規範或屬性,使用數學的方法證明其正確性或非正確性。同時邏輯形式驗證是一個系統性的驗證過程,它使用數學方法來驗證設計在實現中是否得以貫徹。目前主要常用的形式驗證軟體包括 Coq / Isabelle / Metamath / TLA+ 等。
形式驗證過程可以證明一個系統不存在某個 bug 或符合某些規範。而傳統軟體測試方法的局限在於,有限的測試用例無法覆蓋幾乎無限的狀態空間,測試環境沒有考慮到的例外狀況往往會成為隱患,在生產環境中造成損失。測試用例再多,也無法保證系統不出現bug,然而對於一些關鍵應用場景,我們又非常需要一個沒有bug的系統。「沒有bug」是一個很難嚴格定義的概念,更現實的做法是儘力排除「特定類型的bug」。形式驗證方法可以針對業務邏輯或者代碼邏輯進行數學證明,證明一個系統符合特定的設計規範,證明系統不存在任何已知類型的bug,以及證明系統滿足特定的功能屬性。
形式驗證方法有超過30年的歷史。目前形式驗證在晶元設計[1],雲計算[2],操作系統[3],編譯器[4],區塊鏈[5]等領域都有應用。
如果 Jim 透露的計劃能夠順利實施,也許未來可以期待 Docker 之類的輕量級隔離實現跟傳統虛擬化媲美的安全級別,這對 Linux 未來在雲計算和容器方面的發展大有裨益,而 Docker 也將從 Linux 內核安全性的加強中獲益,這也可能是 Linux 未來的發展方向的一部分。不過 Jim 同時也說,這是一個很困難的過程,目前還不能保證形式驗證相關工作的具體時間表。
[1] https://www.cl.cam.ac.uk/~jrh13/slides/nasa-14apr10/slides.pdf
[2] http://lamport.azurewebsites.net/tla/formal-methods-amazon.pdf
[3] https://github.com/seL4/seL4
[4] http://compcert.inria.fr/compcert-C.html
[5] https://github.com/pirapira/eth-isabelle
最後,歡迎所有關注形式驗證的朋友加入微信交流群(6月28日失效)群已滿,可以添加 微信ID: opensourceleslie 方便拉入群中(添加請做簡單自我介紹)
[…] 稿源:Linuxstory […]