快捷搜索: 王者荣耀 脱发

Windows内核--源代码在哪里?(1.1)

大部分人能看到这篇帖子, 想必已经用过Windows系统多年了...

微软官方并不完全公开源代码

想清楚Windows技术内幕,就需要逆向工具。幸运的是:

    WRK源代码(Windows Research Kernel) (XP/Server 2003) (Kernel和用户层) 深入解析Windows操作系统(最新第七版, Windows 10) Windows内核原理与实现 Windows核心编程 Windows内核情景分析 Windows驱动开发技术详解

利用WinDbg调试Kernel, 可以得到内核数据结构,参照WRK源代码和深入解析Windows操作系统可以猜测到内核源码的可能长相,结合IDA等反编译工具可获取内核全貌。

    WRK1.2

更多关于WRK1.2,后面详细介绍。

    官方Kernel改动介绍

Kernel源代码用哪种编程语言? 

大部分都是C语言, 少部分汇编代码。

为什么C语言适合编写内核代码?

Windows是微内核吗?

网络上和学术上对此有些许不同的意见。微内核,一般意义上,符合Mach的做法被称为微内核。微内核是"Micro Kernel", 精简Kernel,把常规意义的内存管理、进程通信等内核完成的功能都移到用户空间完成,内核只有完成最核心的"调度"等功能。从这个意义上,Windows不是微内核,它和Linux一样,都是巨内核。Windows执行体和HAL都同属内核空间。

微内核本意想让内核更不容易崩溃,但组件之间大量模式和环境切换性能很差。事实上,对于大部分PC和移动端来说,没有这个必要。不过,安全等级要求更高的车机,对于微内核的需求在不断增强。

官方对内核的定位:

The term microkernel does not apply to the current kernel used in the Windows operating system. From:

其他操作系统的开源情况如何?

Linux本身开源,Mac系统(OS X)内核采用Free BSD也是开源。

ReactOS

提到Windows Kernel Code,就不得不提当年和Windows对抗的ReactOS. 它致力于实现和Windows相同运行环境的开源系统。对于学习或对比Windows操作系统的内部实现(不论是用户层还是Kernel层),都有极大的价值。

Online Source Code:

本专栏如无特别指出,不会区分Kernel版本。 如XP/Server 2003/Vista/Win7/Win8/Win 10/Win 11. 博客中提到的函数也许只适用于某个 Kernel版本, 具体以实际Kernel版本为准,博客内容展示为了表达Kernel设计思想,而非绝 对的Kernel代码实作。
本专栏力求精简而不失重点,不摘录大量Source Code, 去除无意义的冗余,为了更好地阅读效果。因本人水平有限,有错误或者偏颇的地方,请各位不吝指正。
经验分享 程序员 微信小程序 职场和发展