Windows 10 源碼一覽:0.5T 代碼、400 萬文件、50 萬文件夾
Windows操作系統本身是不開源的,但是近日微軟內核工程師Axel Rietschin發表了一篇博客,帶大家一窺了Windows 10內核的魅力。Axel介紹,Windows 10與Windows 8.x、7、Vista、XP、2000和NT的代碼庫是相同的,其中每一代都在之前的基礎上進行重大的重構,並增加大量新功能,改進性能和硬件支持,此外還有安全性的提升,同時保持非常高的前向兼容性。
目前在GitHub上其實可以找到Windows內核研究的洩露副本,雖然這些代碼已經過時且很不完整,但它們還是具有很高的研究價值。比如wrk-v1.2/base/ntos/config源碼實現了一個大名鼎鼎的內核組件配置管理器Registry,也就是註冊表,它在內部稱被為Cm。
其實Axel 這個博客是在回答一個問題:“Windows 10 是由什麼語言寫就的?”
他介紹,ntoskrnl.exe 內核大部分是使用C 編寫的,在內核模式下運行的大多數內容也是用C 編定的,包括文件系統、網絡與驅動程序等。其中也包含一些C++ 代碼,而越靠近用戶模式、越接近新的源碼時,C 的使用變得越來越少,反之C++ 變多。
具體看一下Windows 10“DVD”的源碼,作者猜測其中98% 由 C 和C++ 寫就,而C 佔據大比例。
此外,.NET BCL 與一些相關庫和框架通常都是用C# 編寫的,“但它們也只不過是帶有幾座C++ 小島的C 汪洋大海的一栗”,它們自不同的部門,代碼並不屬於Windows 源碼樹。
作者驚呼:Windows源碼的規模巨大,這是一個真正史詩般的巨型項目。
完整的源碼樹包含所有代碼,如上圖所示,測試代碼與一起構成“Windows源碼”的所有內容加起來有超過400萬個文件、50萬個文件夾、大小超過0.5 TB,其中包含了構成OS工作站、服務器和所有版本的工具、相關開發工具包的每個組件的代碼。
源碼的規模有多恐怖呢?作者估計完全查看這些源碼的文件名,並試圖理解源碼具體是用來幹什麼的,需要花上一生的時間。他還舉了一個例子:有一次,我離開了一個Git 分支幾個星期,當我回來時,已經落在了將近60 000 次commit 之後。
博客原文: