微軟內(nèi)核工程師阿列克斯:用什么編程語(yǔ)言來(lái)寫的呢?
2021-08-21
操作系統(tǒng)是我們電腦必須安裝的軟件,其他軟件都可以用它,所以很多好奇的朋友會(huì)想知道這個(gè)系統(tǒng)是用什么編程語(yǔ)言編寫的?工程量有多大?現(xiàn)在微軟內(nèi)核工程師Alex日前在回答網(wǎng)友提問(wèn)時(shí)透露了這些問(wèn)題。
大多數(shù)內(nèi)核都是用 C 語(yǔ)言編寫的:
微軟工程師表示大部分內(nèi)核都是用C語(yǔ)言編寫的,你甚至可以找到過(guò)去泄露的部分內(nèi)核源代碼數(shù)據(jù)。
雖然泄露的源代碼是多年前的,已經(jīng)過(guò)時(shí),但是通過(guò)研究這些代碼,你會(huì)知道內(nèi)核和語(yǔ)言組成的發(fā)展。而且內(nèi)核模式下運(yùn)行的大部分內(nèi)容也是C語(yǔ)言的使用,比如大部分文件系統(tǒng)、網(wǎng)絡(luò)模塊、大部分驅(qū)動(dòng)等等。但是有些內(nèi)容是用C++寫的,但是從內(nèi)核到用戶前臺(tái),你會(huì)發(fā)現(xiàn)用C/C++寫的內(nèi)容越來(lái)越少了。
這是一個(gè)史詩(shī)般的巨型編程項(xiàng)目:
完整的源代碼樹(shù)包括所有代碼、測(cè)試代碼和相關(guān)源代碼。這些源代碼文件超出了大多數(shù)用戶的想象。
比如整個(gè)數(shù)據(jù)包含多達(dá)50萬(wàn)個(gè)文件夾和超過(guò)400萬(wàn)個(gè)文件,這些文件占用了大量的存儲(chǔ)空間。 Alex 說(shuō)他離開(kāi)了 Git 分支幾個(gè)星期,當(dāng)他回來(lái)時(shí)windows網(wǎng)絡(luò)編程技術(shù)源代碼,他發(fā)現(xiàn)的不僅僅是新的代碼更改和提交。
回到正題:想知道10是用什么語(yǔ)言寫的,98%都是C/C++,C占大多數(shù)。
可以說(shuō)是一個(gè)非常大的操作系統(tǒng)項(xiàng)目,需要多少人來(lái)編寫?
事實(shí)上windows網(wǎng)絡(luò)編程技術(shù)源代碼,沒(méi)有可靠的數(shù)字。據(jù)說(shuō)1000多人,3年就寫完了。后者和操作系統(tǒng)基本都是WIN NT的后續(xù),所以人會(huì)很多,錢也會(huì)投入巨資,幸好不是。從頭開(kāi)始。
然后“10 是用什么語(yǔ)言寫的?”
.exe 內(nèi)核大部分是用 C 編寫的,在內(nèi)核模式下運(yùn)行的大部分內(nèi)容也是用 C 編寫的,包括文件系統(tǒng)、網(wǎng)絡(luò)和驅(qū)動(dòng)程序。里面也包含了一些C++代碼,越接近用戶態(tài),越接近新的源代碼,C的使用越來(lái)越少,反之亦然。
具體看10張“DVD”的源代碼,作者猜測(cè)其中98%是用C和C++編寫的,其中C占很大比例。
另外,.NET BCL和一些相關(guān)的庫(kù)和框架通常都是用C#編寫的,“但它們只是C的海洋中的栗子,有幾個(gè)C++孤島”,它們來(lái)自不同的部門,代碼沒(méi)有屬于源樹(shù)。
學(xué)習(xí)從來(lái)不是一個(gè)人的事情。必須有一個(gè)互相監(jiān)督的小伙伴,工作需要學(xué)習(xí)C/C++,或者學(xué)習(xí)C/C++才能進(jìn)入或轉(zhuǎn)行的小伙伴可以給編輯發(fā)私信“學(xué)習(xí)”領(lǐng)取一份全套免費(fèi)C/C++學(xué)習(xí)資料、視頻