随笔分类 - Windows核心编程学习笔记
作为Windows平台下的程序员,Windows核心中的一些知识属于是必备的基础。
这里记录学习Windows核心编程一书过程中的一些笔记
摘要:其实在一个进程中真正做事情是线程,因此每个进程至少有一个线程。(其实操作系统会为每个进程自动创建一个主线程,这个主线程的执行函数但是我们的Main函数)操作系统创建线程的时候和创建进程的行为差不多:1.创建一个线程内核对象,这个内核对象为记录关于线程的一些基本信息。2.为线程在进程的地址空间中分配一个栈用来保存在线程中所产生的资源。线程的创建创建线程的时候可以设置如下信息:1. 线程栈的大小(一般默认是1MB)2. 线程执行函数的地址3. 线程启动参数线程创建成功能,操作系统会为线程配一个唯一标示的线程ID。线程的终止1. 正常的线程终止当线程的执行函数正常返回后,线程也就算完成了他的使命。.
阅读全文
摘要:1. 什么是内核对象内核对象是操作系统为一些系统级的对象(像进程,线程,信号量)维护的一些数据结构。这些数据构保存了与系统级对象相关的系统级信息。例如:所有内核对象都会保存该对象的引用计数。进程对象会保存进程ID。文件对象会保存当前字节偏移量,共享模式,打开模式等。操作系统中所有内核对象对是保存在一块内存空间中,系统上所有的进程都共享这一块内存空间。2.内核对象的访问方式这些内核对象不能被应用程序直接访问,应用程序只能通过操作系统提供的API对他们进行操作。而对操作系统API的访问过程中,操作系统会对访问的安全性进行保证。这样避免应用程序对内核对象进行操作而导致系统出现错误。多个进程可以共享.
阅读全文
摘要:已经做了几年的软件开发了,对于什么是进程,却没有一个系统的认识。只知道双击一个exe文件,任务管理器中就会多出一个进程。然后知道每个进程会有一个地址空间,在进程中的内存访问其实都是相对于该地址空间的地址表示。其实也算是知道个大概了,只是没有系统的总结出来而已,通过阅读《Windows核心编程》,重新对进程有了一个系统的认识。进程是程序的一个实例,它由以下两部分构成:1. 一个内核对象,操作系统通过他来管理进程。内核对象也是系统保存进程统计信息的地方。(其实还不是很清楚具体会有哪些统计信息,难道是任务管理器里显示的那些信息?有待进一步研究)2. 一个地址空间(通俗点讲应该就是为进程在内存条上分.
阅读全文