作者 | h4cd

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

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

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

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

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

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

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

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

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

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

完整的源码树包含所有代码,如上图所示,测试代码与一起构成“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

  • 程序员转行学什么语言?

    https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

【End】

☞曾断崖式跌落的三星,能否在中国东山再起?

☞前端开发这么多年,你真的了解浏览器页面渲染机制吗? | 技术头条

☞fork()成为负担,需要淘汰 | 极客头条

☞程序员 996 再上热搜,黑名单增至 84 家!

☞与云原生及开源大神们的第二次亲密接触 | 全议程重磅发布

☞V神玩起freestyle! 5位以太坊核心大咖在悉尼的演讲精华全在这了!| 直击EDCON

☞“重构”黑洞:26岁MIT研究生的新算法 | 人物志

☞程序员为什么都爱穿冲锋衣?(最全总结)

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

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

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

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

  1. Windows 10源代码泄露风波(上)

    这几天很多人在讨论Windows10源代码泄露的事,也有不少朋友询问老雷:"是真的么?""听说泄露了32T啊?""哪里可以下载?"--难以一 ...

  2. windows服务器版本信息泄露,震惊!微软32TB Windows 10源代码在网上被泄露

    Windows 10 凤凰科技讯 据The Register北京时间6月24日报道,多个微软内部Windows操作系统版本及内核源代码泄露到网上. 这些数据--32TB的非公开官方安装映像和软件蓝图设 ...

  3. 游戏玩家都不爱 Windows 11?网友:没必要,Windows 10 足矣

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 尽管 Windows 11 的问世伴随着一系列质疑,但今年年初微软官方曾声称:"用户升级 Windows 11 的速度是当年升 ...

  4. Windows 10 再香,国内超一半用户「死守」停更的 Windows 7

    作者 | 杨雪梅 来源 | 新浪科技(ID:techsina) 属于Windows 7的时代结束了. 近日,微软正式停止了对Windows 7系统的更新维护服务.服务停止后,微软不会再对Windows ...

  5. Windows 10的TPM模块到底是不是美国全球监控体系的奠基石?

    http://bbs.pediy.com/showthread.php?t=202638 http://www.zhihu.com/topic/19671262/newest 2015年3月18日,微 ...

  6. CSDN开发者周刊第 21期:Wi-Fi 之父辞世,谷歌服务器再次全球宕机;Windows 10 将支持安卓应用

    CSDN开发者周刊:只为传递"有趣/有用"的开发者内容,点击 Star(CodeChina)! 本周热门项目 1.GTK 4.0开源工具包正式发布 赶在周五的发布会之前,GTK 开 ...

  7. 【物联网那些事儿】18 大物联网操作系统,Raspbian Pi、Ubuntu Core、Windows 10 IoT、Micropython、OpenWrt ....你用过哪几个?

    系列文章目录 文章目录 系列文章目录 前言 一.物联网操作系统是什么? 二.18 大物联网操作系统 总结 前言 如果您查看我们周围所有连接的嵌入式系统,您会意识到物联网操作系统是确保安全.连接.互操作 ...

  8. 研扬科技与微软合作开发集成Windows 10 IoT Core和RISC架构的主板

     此次合作将为开发人员提供强大而可靠的平台,帮助将令人兴奋的物联网创意转化为真实世界的应用. 领先的嵌入式计算机主板和物联网网关系统开发商研扬科技正在与微软合作开发一款集成了NXP处理器并支持Wi ...

  9. Windows 10下编译安装Hadoop2.6

    转自:https://www.linuxidc.com/Linux/2016-08/134131.htm Windows 10下安装Hadoop2.6,Windows10下编译64位Hadoop2.x ...

最新文章

  1. 【HDU】3635 Dragon Balls (带权并查集 一)
  2. adb logcat查看手机端日志
  3. C++函数模板(一)
  4. Sklearn:sklearn.preprocessing之StandardScaler 的transform()函数和fit_transform()函数清晰讲解及其案例应用
  5. RabbitMQ入门教程——.NET客户端使用
  6. ABAP中Conversion Routine示例
  7. python父类的类成员怎么定义_python如何找到哪些父类定义子对象的方法
  8. Spark SQL 之SQLContext(二)
  9. php程序设计案例教程 程序题,PHP程序设计案例教程
  10. 复习---使用基础语法实现栈及迭代
  11. php文件读取文件内容,PHP文件系统函数-读取文件内容几种方式
  12. 全球11大免费GIS数据源在此,速速来取!
  13. TensorFlow MNIST 数据集
  14. LaTeX快速入门(超详细~)
  15. linux usb有线网卡驱动_Linux系统下安装USB无线网卡驱动方法
  16. 《嵌入式 – GD32开发实战指南》第15章 低功耗(电源管理)
  17. Cesium 显示三维地球和地图的开源js库
  18. 在线房屋收租app开发优势
  19. python里面的pip是什么意思_“pip install”和“python -m pip install”有什么区别?
  20. 用应用软件UCCW Widget制作出属于你独一无二的梦幻桌面吧!

热门文章

  1. 限时秒杀的整体代码在html中,限时秒杀.html
  2. python一行包含if else需要注意的点
  3. 【C++笔记】字符串、向量和数组
  4. 中国塑料泵行业市场供需与战略研究报告
  5. 中国连续纤维毡行业市场供需与战略研究报告
  6. 2021-2025年中国磁弹性扭矩传感器行业市场供需与战略研究报告
  7. 第6章 见缝插圆(《C和C++游戏趣味编程》配套教学视频)
  8. 《Python游戏趣味编程》 第10章 拼图游戏
  9. 浏览器端的九种缓存机制介绍
  10. 在centos7安装theia