开发四年只会写业务代码,分布式高并发都不会还做程序员?  

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

Win 10 源码一览:0.5T 代码、400 万文件、50 万文件夹相关推荐

  1. Win 10 源码一览:0.5 T 代码、400 万文件、50 万文件夹

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

  2. win 10 源码安装 Davinci

    win 10 源码安装 Davinci Davinci 源码大概分为三部分: 采用 React 的前端工程 采用 Spring Boot 的后端工程 采用 Jekyll + Minmal Mistak ...

  3. Windows 10源码一览!

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

  4. 【Android 10 源码】healthd 模块 HAL 2.0 分析

    Android 9 引入了从 health@1.0 HAL 升级的主要版本 android.hardware.health HAL 2.0.这一新 HAL 具有以下优势: 框架代码和供应商代码之间的区 ...

  5. 课表网页完整的php代码,练手Lab课程表小程序源码v1.0.0 Thinkphp 前后端分离

    练手Lab课程表小程序源码是一个基于Thinkphp系统进行开发的前后端分离系统. 源码功能介绍 1.情侣功能 2.情侣间留言 3.情侣间互相设置课程表背景 4.自己日.周课程表背景设置 5.教务系统 ...

  6. Windows 10 使用WSL2下载和编译安卓10源码

    一.背景介绍   对于想要在Windows OS上学习和使用Android源码的同学来说,视乎这不太友好,因为Android基于Linux内核,需要在Linux环境下编译. 对于只需要查阅源码同学来说 ...

  7. Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南

    Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南 实验环境 下载Android源码树 在pixel3上安装手机驱动版本 编译Android源码 Android ...

  8. 编译Android源码(9.0)

    参考了官方文档和前辈们的编译经验,但还是遇到了不少坑,在这里记录一下过程. 官方文档地址:https://source.android.google.cn/source/downloading 下面写 ...

  9. 【Android 10 源码】深入理解 Omx 初始化

    MediaCodec 系列文章: [Android 10 源码]深入理解 MediaCodec 硬解码初始化 [Android 10 源码]深入理解 Omx 初始化 [Android 10 源码]深入 ...

最新文章

  1. 异步复位,同步释放的理解
  2. LightOJ - 1179 Josephus Problem(约瑟夫环)
  3. redis的事务总结
  4. Message和handler传递对象
  5. POJ 3666 Making the Grade (DP滚动数组)
  6. 修改文字处理布局及文字绘制,一个字的感受:太糙
  7. ckpt下载 deeplabv3_Ubantu下 用deeplabV3+训练自己的数据集 你可能遇到的所有坑都在这了...
  8. PHP带头大哥的百宝囊!
  9. SPC控制图的样品子组大小为什么建议为5
  10. ACM题目推荐(刘汝佳书上出现的一些题目)
  11. 96PIN直插DIP千兆四口网络变压器 千兆交换机路由器网络滤波器
  12. 使用OpenOffic在线转换文档错误
  13. 淘宝下架苹果iOS充值业务,马云或在为支付宝扫除障碍
  14. 某网站提供的免费香港虚拟主机测试
  15. 实现炫酷的卡片式动画!
  16. 为什么我们求职 找工作 一定要写好简历?
  17. Scratch之小猫酷跑我设计
  18. 关于ROS功能包里package.xml和CMakeList.txt的源码分析
  19. 音乐专业又和计算机有关的吗,计算机音乐专业介绍
  20. PHP实现微信公众号H5支付

热门文章

  1. 田志刚:写文章的两个好处
  2. ArcGIS Server 9.3 beta 体验一 -- 安装
  3. document对象详解
  4. html照片4张 9张布局,css实现朋友圈照片排列布局
  5. html.partial mvc,MVC Html.Partial or Html.Action
  6. 超融合服务器虚拟化优缺点,超融合是什么 意思?为什么必须是软硬件一体?...
  7. python not函数_python 函数
  8. linux查看文件隐藏字符,Linux使用cat命令显示隐藏字符的方法
  9. mysql init file_关于MySQL的init-file选项的用法实例
  10. MATLAB中深度学习的数据集合