admin 管理员组

文章数量: 887007

   

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

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

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

  • WRK源代码(Windows Research Kernel) (XP/Server 2003)

  • Windows 2000源代码(Kernel和用户层) 

  • 深入解析Windows操作系统(最新第七版, Windows 10)

  • Windows内核原理与实现

  • Windows核心编程

  • Windows内核情景分析

  • Windows驱动开发技术详解

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

  •     WRK1.2    

GitHub - HighSchoolSoftwareClub/Windows-Research-Kernel-WRK-: Windows Research Kernel Source Codehttps://github/HighSchoolSoftwareClub/Windows-Research-Kernel-WRK-

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

  •     官方Kernel改动介绍

Windows Administration: Inside the Windows Vista Kernel: Part 1 | Microsoft Learnhttps://learn.microsoft/zh-cn/previous-versions/technet-magazine/cc162494(v=msdn.10)?redirectedfrom=MSDN

Overview of Windows Server 2008 Kernel Changes - Mark Russinovich | Microsoft Learnhttps://learn.microsoft/en-us/previous-versions/technet-magazine/cc194386(v=msdn.10)?redirectedfrom=MSDN

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

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

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

        Windows内核--为什么C语言适合编写内核?(1.2)

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: Windows Kernel-Mode Kernel Library - Windows drivers | Microsoft Learn

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

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

Apple Mac darwin-xnuhttps://github/apple/darwin-xnu

ReactOS

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

ReactOS官方网址https://reactos/

       Online Source Code: ReactOS: Main Page

本专栏如无特别指出,不会区分Kernel版本。

  如XP/Server 2003/Vista/Win7/Win8/Win 10/Win 11. 博客中提到的函数也许只适用于某个

  Kernel版本, 具体以实际Kernel版本为准,博客内容展示为了表达Kernel设计思想,而非绝

  对的Kernel代码实作。 

本专栏力求精简而不失重点,不摘录大量Source Code, 去除无意义的冗余,为了更好地阅读效果。因本人水平有限,有错误或者偏颇的地方,请各位不吝指正。


若文章对您有帮助,欢迎关注。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

本文标签: 内核 源代码 Windows