這是微軟的內核工程師 Axel Rietschin在Quora的一個回答。git
Windows 10 的code base 和Windows 8.x , 7 , Vista , XP , 2000 和Windows NT的code base 是相同的,固然是演化過來的,其中的每一代都進行了重大的重構,增長了大量的新功能,提高了性能和對硬件,安全的支持,而且保持了高度的向後兼容性。github
(注:考慮到Windows的衆多版本和海量應用,這是一個很了不得的成就, 也是一個很大的包袱。)編程
Windows 的大部份內核(ntoskrnl.exe)是用C語言寫的,你能夠在Github上看到泄露的Windows Research Kernel 代碼,本身研究一下,雖然它已經至關過期,很是不完整,但依然能看出一些重要的東西。安全
代碼庫在這裏:服務器
https://github.com/markjandrews/wrk-v1.2微信
好比說,咱們熟悉的註冊表(Registry),在內核中被稱爲配置管理(configuration manager,簡稱cm),就在這個目錄下:wrk-v1.2/base/ntos/config網絡
(注:Windows Research Kernel是微軟爲教育目的提供的源代碼。高校師生能夠修改,編譯,以此來學習OS的原理。在Linux大行其道的時候, 不知道有多少高校在用?)框架
大部分運行在內核態的代碼都是用C語言寫的,包括大部分的文件系統, 網絡,大部分的驅動, 其中也有一些C++。編程語言
若是往上走進入到用戶態,C語言就會變少,C++會逐漸增多。工具
大多數人都沒有意識到Windows的龐大規模:這是一個真正的史詩般的巨型項目。
在Windows的代碼樹中,有源代碼,測試代碼,還有其餘東西(碼農翻身注:多是圖標,聲音,圖片?),文件數超過400萬,500多G。
僅僅是把這個代碼樹的目錄和文件名都瀏覽一遍,就要花費你一年的時間。這裏有50多萬個文件夾,其中的代碼組成了操做系統工做站和服務器的全部版本,相關工具,開發工具包。
若是你想把源代碼都讀一遍,可能要窮盡一輩子。
下面是一個截圖,描述了Windows源碼的統計信息:
有一次,我有幾周的時間沒有更新個人Git, 等我回來的時候,我發現它已經落後60,000次提交了!
你確定會說一我的不可能閱讀完天天的代碼提交,更不用說過去三十年積累的代碼了。
若是你看到了Windows 10 「DVD」 而且想知道是什麼編程語言創造了光盤上的東西,我猜98%是C和C++, C是大頭。
.NET BCL(Base Class Library) 和其餘庫&框架主要是用C#寫的,他們僅僅是C語言海洋(有一點C++小島)小水滴而已。它們來自不一樣的部門(The developer’s division), 代碼也不是Windows代碼樹的一部分。
其實作爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這裏我推薦一個C語言C++交流Q羣951726787,無論你是小白仍是轉行人士歡迎入駐,你們一塊兒交流成長。
微信公衆號:C語言編程學習基地