这本书从开始看也两年多了,我很难说我看懂了多少,只是最近才开始有点立体的感觉,当然这跟工作上接触到一些相关内容还是有关系的,否则只是硬看应该是看不懂才对。我想目前由于不精通Windows internals对于我的测试工作有以下几个障碍:
- 跟开发人员的沟通存在Gap。
- 不能更好地去设计测试用例,因此不能抓到更深入,复杂的bug。
- 对于一些复杂点的问题很难去debug。
- 对于code review, code coverage, security test等等都受到了很大的限制。
- 职业发展也有了bottleneck。
- Windows internals应该是讲Windows OS实现的一些细节,它并不局限在kernel mode的模块和知识,还涉及到了user mode的一些系统进程。因此,我说学习windows internals就应该包括了所有Windows OS的知识。
- Windows kernel,我主要是按照在kernel mode运行的模块来理解的,因为Kernel mode里还有个kernel,容易造成概念的混淆。
- Win32 API就是windows提供的在user mode的应用程序编程接口,它的工具包叫做SDK。但是涉及到系统服务,也就是内核上的服务的时候,他们是通过ntdll.dll转到kernel mode去实现的。也就是说,实现的细节还是在kernel mode。
- Kernel里提供了一套接口叫DDK,是给driver的开发人员使用的。如果你想在Kernel mode运行你的程序,你应该只能通过编写driver来实现,正常来说。
- 对user mode开放的服务都有哪些,实现细节如何?
- DDK里的函数都有哪些,实现细节如何?
- Executive层的模块都有哪些,实现细节如何?比如,memory manager, IO manager, cache manager等等。
- Windows里的driver都有哪些,实现细节如何?比如我认为最重要核心的ntfs。
《Windows Internals》
《Programming the Microsoft Windows driver model》
最后,HAL不想学,也不知道有没有用,Hardware不想学,WDF暂时不想学。现在是新手,能想到的也就这么多了。
No comments:
Post a Comment