Windows 10是用什么语言写的?有多少行代码?

系统 Windows
Windows 10 的code base 和Windows 8.x , 7 , Vista , XP , 2000 和Windows NT的code base 是相同的,当然是演化过来的,其中的每一代都进行了重大的重构,增加了大量的新功能,提升了性能和对硬件,安全的支持,并且保持了高度的向后兼容性。

 这是微软的内核工程师 Axel Rietschin在Quora的一个回答。

Windows 10 的code base 和Windows 8.x , 7 , Vista , XP , 2000 和Windows NT的code base 是相同的,当然是演化过来的,其中的每一代都进行了重大的重构,增加了大量的新功能,提升了性能和对硬件,安全的支持,并且保持了高度的向后兼容性。

(码农翻身注:考虑到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 Branch , 等我回来的时候,我发现它已经落后60,000次提交了!

你肯定会说一个人不可能阅读完每天的代码提交,更不用说过去三十年积累的代码了。

如果你看到了Windows 10 "DVD” 并且想知道是什么编程语言创造了光盘上的东西,我猜98%是C和C++, C是大头。

.NET BCL(Base Class Library) 和其他库&框架主要是用C#写的,他们仅仅是C语言海洋(有一点C++小岛)小水滴而已。它们来自不同的部门(The developer's division), 代码也不是Windows代码树的一部分。

原文地址:

https://www.quora.com/Which-programming-language-is-used-for-making-Windows-10

【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】

 

戳这里,看该作者更多好文

责任编辑:武晓燕 来源: 51CTO
相关推荐

2020-03-26 12:38:15

代码节点数据

2013-05-07 13:19:07

语言

2009-03-23 09:50:36

Linux内核华人

2018-04-24 10:45:00

Python人工智能图像识别

2019-09-29 10:45:46

C语言CPU编译器

2009-12-15 19:18:39

Ruby源代码

2020-05-26 08:32:56

Python代码开发

2019-12-25 10:33:38

Windows 10Windows微软

2017-03-06 15:01:38

Python代码词云

2014-01-09 09:42:56

Python语言检测器

2018-02-25 09:12:15

PythonC语言代码

2021-10-18 05:42:23

代码编码开发

2022-07-29 08:25:02

volatileC语言原子

2024-01-07 16:56:59

Python人工智能神经网络

2023-11-29 08:10:36

javascriptH5游戏

2021-09-10 07:59:31

中断锁Java多线编程

2017-04-06 15:00:38

编程语言

2024-03-13 15:48:43

2021-02-20 23:33:34

TypeScript代码开发

2020-08-12 14:54:00

Python代码开发
点赞
收藏

51CTO技术栈公众号