作者:h4cd
來源:開源中國(ID:oschina2013)
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 之後。
部落格原文:
https://www.quora.com/Which-programming-language-is-used-for-making-Windows-10/answer/Axel-Rietschin
朋友會在“發現-看一看”看到你“在看”的內容