大多數內核(ntoskrnl.exe)是用C編程語言編寫的。妳甚至可以在Github上找到壹份泄露的Windows研究內核,自己去看。雖然這些代碼已經過時,不完整,但仍然有很多啟發。
比如見wrk-v 1.2/base/ntos/config實現大家熟悉的註冊表源代碼,內部稱之為配置管理器的內核組件“Cm”。
內核模式下運行的大多數內容也是用C編程語言編寫的(大多數文件系統、網絡、大多數驅動程序...),包括壹些C ++。
等妳上了用戶模式,近期開發,妳會發現C少了,C ++多了。
順便說壹下,大多數人沒有意識到Windows的巨大規模:這是壹個真正史詩般的巨型項目。
完整的源代碼樹包含了所有的代碼、測試代碼以及所有共同構成“Windows源代碼”的內容,文件超過400萬個,大小超過半TB。有超過500,000個文件夾,其中包含構成OS工作站和服務器產品的每個組件的代碼及其所有版本、工具和相關開發工具包。讀完全部(或兩本)要花壹輩子的時間。
下面是壹個截圖,可能描述也可能不描述完整的Windows註冊的統計信息(源代碼、測試文件、構建工具,壹切)。
如果妳看Windows 10“DVD”,考慮用哪種編程語言來創建磁盤上的所有內容,我估計98%會是C和C ++,C得到的份額最多。
NET BCL等托管庫和框架通常都是用C #編寫的,但在C代碼龐大的C代碼中只代表微小的水滴。他們也來自不同的部門(developer department,DevDiv),他們的代碼並不是Windows源代碼樹的壹部分。