操作系統是我們電腦必須要安裝的軟件,有了它其它軟件才能工作,那么很多好奇的小伙伴會想知道這個Win10系統是用什么編程語言來寫的呢?工程量有多大?現在微軟內核工程師阿列克斯日前在回答網友提問中透露了這些問題。
Win10多數內核都是使用C語言編寫的:
微軟工程師稱多數內核都是使用C語言編寫的,你甚至可以在Github上找到以往泄露的部分內核源代碼數據。
雖然泄露的源代碼已經是很多年前并且是過時的,但是通過研究這些代碼你就知道內核的開發(fā)和語言構成等。而在內核模式下運行的多數內容也是使用的C 語言例如大多數的文件系統、網絡模塊、大多數的驅動程序等。但是也有部分內容使用的是C++進行編寫的,不過從內核往用戶前臺你會發(fā)現 C/C++ 編寫的內容越來越少。
Win10是史詩般的巨型編程項目:
完整的源代碼樹包括所有代碼以及測試代碼和相關的源代碼組成,這些源代碼文件超乎絕大多數用戶的想象。
例如整個數據包含高達50萬個文件夾、400 多萬個文件,這些文件們整個占用的存儲空間就有 581GB 之多。阿列克斯表示自己某次離開Git分支幾個星期 , 等回來的時候已經發(fā)現有超過 60000 次新的代碼變更和提交。
回到主題:如果你想知道Windows 10是什么語言編寫的,那么其中98%都是C/C++并且C占據了絕大部分。
可以說Windows10是非常龐大的一個操作系統項目,那么需要多少人來編寫Windows10呢?
其實還沒有可靠的數字,當年WIN2000據說是1000多人,編寫3年完成的,后面和操作系統基本上都是WIN NT的后續(xù),所以人會很多,錢會投資極大,但幸好不是從零開始。
那么“Windows 10 是由什么語言寫就的?”
ntoskrnl.exe 內核大部分是使用 C 編寫的,在內核模式下運行的大多數內容也是用 C 編定的,包括文件系統、網絡與驅動程序等。其中也包含一些 C++ 代碼,而越靠近用戶模式、越接近新的源碼時,C 的使用變得越來越少,反之 C++ 變多。
具體看一下 Windows 10 “DVD” 的源碼,作者猜測其中 98% 由 C 和 C++ 編寫,而 C 占據大比例。
此外,.NET BCL 與一些相關庫和框架通常都是用 C# 編寫的,“但它們也只不過是帶有幾座 C++ 小島的 C 汪洋大海的一栗”,它們自不同的部門,代碼并不屬于 Windows 源碼樹。
學習從來不是一個人的事情,要有個相互監(jiān)督的伙伴,工作需要學習C/C++或者為了入行、轉行學習C/C++的伙伴可以私信回復小編“學習”領取全套免費C/C++學習資料、視頻
最近碰到一臺電腦老是沒有規(guī)律的藍屏,用360修復藍屏后還是沒解決,開始懷疑驅動問題,官方下載重裝了各種驅動,問題依舊。甚至懷疑是win10版本問題,與硬件不兼容,重裝了多個win10版本,問題還是沒有解決。有點讓人奔潰。后來網上查到饑餓鯊固態(tài)硬盤的固件bug會導致藍屏,因此特意換了個其他牌子的固態(tài)硬盤,還是問題依舊。實在是一籌莫展。甚至連主板也換了一塊,真的是有點背,最后用MemTest64跑了一下內存,這次確定了問題的根源,原來是內存問題,一趟跑下來,好多個錯誤。換了條內存,不再藍屏,問題解決。
經過這個藍屏事件后,我總結了一下分析藍屏的經驗。
ntoskrnl.exe導致的藍屏
圖中可以看到ntoskrnl.exe導致的藍屏,但是要注意,雖然是這個程序導致的藍屏,但根源不一定是這個程序,也有可能是內存錯誤才導致這個程序藍屏的。
驅動可以使用驅動人生或者驅動精靈下載安裝驅動,也可以到硬件官網下載對應型號的驅動。
如果是軟件導致的藍屏,一般重裝系統都能解決,但是Win10個別版本存在硬件兼容性藍屏,可能重裝后還是會遇到藍屏問題,這時候就要嘗試一下不同版本的Win10系統。
主要測試內存和顯卡,我們可以先用MemTest64跑一下內存,用FurMarkchs(甜甜圈)跑一下顯卡和CPU,看能不能順利通過。
軟件問題都無法解決后,再來排除硬件問題,用最小系統法,比如內存只插一條,集成顯卡能用的先拔掉獨立顯卡,有多余的硬件可以替換原來的硬件嘗試,逐個排查,相信一定會找到藍屏問題的根源。
注意:是私信,不是留言,私信系統會自動回復下載地址。