网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

  作者 |h4cd

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

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

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

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

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

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

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

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

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

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

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

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

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

  博客原文:

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

  【End】

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

CSDN incentive-icons
CSDN
成就一亿技术人
26887文章数 242320关注度
往期回顾 全部

专题推荐

乌蒙深处 清凉毕节

无障碍浏览 进入关怀版