看了几天windows核心编程VC++,前几天对进程,作业,线程的关系很迷惑,还有就是内核对象的应用也很迷茫。昨天自己拿着书,又翻过去看看。突然有一点心得,初步对windows下的三种工作单位有了新的理解。
 
   作业是进程的 管理者,不让进程获取系统资源时太嚣张;进程则是线程的运行平台,给线程提供所有线程需要的系统资源;线程才是windows真正的运行程序的单元,这一点和 linux不同。进程运行起来后有一个主线程,如果一个线程不够完成任务的,可以在主线程里开启子线程,协同主线程完成任务。线程的开启关闭必定在其他线程函数里,这一点也和linux不太一样,linux可以fork进程,然后开辟线程来运行,一般也没有在线程里开辟线程的。
   内核对象就是数据结构而已。由于windows内核不公开,但是程序有需要和内核通信,操作内核工作。所以window引出了内核对象,这样我们把要操作的数据放入对象中,然后内核自己会去出来数据。通过这样的方式,程序就可以操作内核程序来工作了。这一点也迎合了内核对象不归程序管而归内核管理,因为内核要了解内核对象,不然内核不知道自己该做什么。所以也就那么几个内核对象,因为程序操作内核做的事情,也就归纳为那几类。这样看来,有一定的 安全性,但是缺给程序员带来了很多不变,自己就好像客户而不是真正的计算机 编程者.