微软内核工程师阿列克斯:用什么编程语言来写的呢?
2021-08-21
操作系统是我们电脑必须安装的软件,其他软件都可以用它,所以很多好奇的朋友会想知道这个系统是用什么编程语言编写的?工程量有多大?现在微软内核工程师Alex日前在回答网友提问时透露了这些问题。
大多数内核都是用 C 语言编写的:
微软工程师表示大部分内核都是用C语言编写的,你甚至可以找到过去泄露的部分内核源代码数据。
虽然泄露的源代码是多年前的,已经过时,但是通过研究这些代码,你会知道内核和语言组成的发展。而且内核模式下运行的大部分内容也是C语言的使用,比如大部分文件系统、网络模块、大部分驱动等等。但是有些内容是用C++写的,但是从内核到用户前台,你会发现用C/C++写的内容越来越少了。
这是一个史诗般的巨型编程项目:
完整的源代码树包括所有代码、测试代码和相关源代码。这些源代码文件超出了大多数用户的想象。
比如整个数据包含多达50万个文件夹和超过400万个文件,这些文件占用了大量的存储空间。 Alex 说他离开了 Git 分支几个星期,当他回来时windows网络编程技术源代码,他发现的不仅仅是新的代码更改和提交。
回到正题:想知道10是用什么语言写的,98%都是C/C++,C占大多数。
可以说是一个非常大的操作系统项目,需要多少人来编写?
事实上windows网络编程技术源代码,没有可靠的数字。据说1000多人,3年就写完了。后者和操作系统基本都是WIN NT的后续,所以人会很多,钱也会投入巨资,幸好不是。从头开始。
然后“10 是用什么语言写的?”
.exe 内核大部分是用 C 编写的,在内核模式下运行的大部分内容也是用 C 编写的,包括文件系统、网络和驱动程序。里面也包含了一些C++代码,越接近用户态,越接近新的源代码,C的使用越来越少,反之亦然。
具体看10张“DVD”的源代码,作者猜测其中98%是用C和C++编写的,其中C占很大比例。
另外,.NET BCL和一些相关的库和框架通常都是用C#编写的,“但它们只是C的海洋中的栗子,有几个C++孤岛”,它们来自不同的部门,代码没有属于源树。
学习从来不是一个人的事情。必须有一个互相监督的小伙伴,工作需要学习C/C++,或者学习C/C++才能进入或转行的小伙伴可以给编辑发私信“学习”领取一份全套免费C/C++学习资料、视频