C 主导C++与 C# 为辅,揭秘 Windows 10 源代码!

Posted CSDN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 主导C++与 C# 为辅,揭秘 Windows 10 源代码!相关的知识,希望对你有一定的参考价值。


C 主导、C++与 C# 为辅,揭秘 Windows 10 源代码!

作者 | h4cd

本文经授权转载自开源中国(ID:oschina2013)

Windows 操作系统本身是不开源的,但是近日微软内核工程师 Axel Rietschin 发表了一篇博客,带大家一窥了 Windows 10 内核的魅力。

C 主导、C++与 C# 为辅,揭秘 Windows 10 源代码!

Axel 介绍,Windows 10 与 Windows 8.x、7、Vista、XP、2000 和 NT 的代码库是相同的,其中每一代都在之前的基础上进行重大的重构,并增加大量新功能,改进性能和硬件支持,此外还有安全性的提升,同时保持非常高的前向兼容性。

目前在 GitHub 上其实可以找到 Windows 内核研究的泄露副本,虽然这些代码已经过时且很不完整,但它们还是具有很高的研究价值。

比如 wrk-v1.2/base/ntos/config 源码实现了一个大名鼎鼎的内核组件配置管理器 Registry,也就是注册表,它在内部称被为 Cm。

C 主导、C++与 C# 为辅,揭秘 Windows 10 源代码!

其实 Axel 这个博客是在回答一个问题:“Windows 10 是由什么语言写就的?”

他介绍,ntoskrnl.exe 内核大部分是使用 C 编写的,在内核模式下运行的大多数内容也是用 C 编定的,包括文件系统、网络与驱动程序等。其中也包含一些 C++ 代码,而越靠近用户模式、越接近新的源码时,C 的使用变得越来越少,反之 C++ 变多。

具体看一下 Windows 10 “DVD” 的源码,作者猜测其中 98% 由 C 和 C++ 编写,而 C 占据大比例。

此外,.NET BCL 与一些相关库和框架通常都是用 C# 编写的,“但它们也只不过是带有几座 C++ 小岛的 C 汪洋大海的一栗”,它们自不同的部门,代码并不属于 Windows 源码树。

作者惊呼:Windows 源码的规模巨大,这是一个真正史诗般的巨型项目。

C 主导、C++与 C# 为辅,揭秘 Windows 10 源代码!

完整的源码树包含所有代码,如上图所示,测试代码与一起构成“Windows 源码”的所有内容加起来有超过 400 万个文件、50 万个文件夹、大小超过 0.5 TB,其中包含了构成 OS 工作站、服务器和所有版本的工具、相关开发工具包的每个组件的代码。

源码的规模有多恐怖呢?作者估计完全查看这些源码的文件名,并试图理解源码具体是用来干什么的,需要花上一生的时间。

他还举了一个例子:有一次,我离开了一个 Git 分支几个星期,当我回来时,已经落在了将近 60 000 次 commit 之后。

博客原文:

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

【End】

C 主导、C++与 C# 为辅,揭秘 Windows 10 源代码!






System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧! ");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢


以上是关于C 主导C++与 C# 为辅,揭秘 Windows 10 源代码!的主要内容,如果未能解决你的问题,请参考以下文章

C++特殊定制:揭秘cpo与tag_invoke!

2016世界最热门的编程语言与薪资揭秘

为啥微软用c、c++而不是c#来开发windows? [关闭]

Windows 下 C++ 和 C# 中的套接字无法正常工作

在 windows mobile 上使用 C# 和 C 或 C++ 之间的区别

Visual C++/C# 中的 WinForms 编程与 Visual C++(MFC) 中的 Windows 编程有何不同