内核对象一般来说,是因为多模块交互而引入的概念。人们对交互的必然要求是:安全,正确和秩序。于是必须有一些新的对象站出现承担这些责任。于是这些对象就有了产生的必要性。又由于安全是操作系统必须关心的内容,所以这些对象被设计成了内核的。但是我们要在程序中用,所以操作系统的设计 者就给我们提供了一组接口来进行内核对象的操作。这些接口是受限的,因此程序员不能对内核对象为所欲为,但是它仍然能使程序的交互正确并有秩序地执行。同时,操作系统所需要的安全性也得到了满足。
内核对象和线程(进程)的关系,我认为看成“被拥有”关系是不对的。内核对象应该被看成是“治安管理员”,负责处理各个交互之间可能出现的冲突。
---------------------------------------------------------------------------------------------------------------
线程交互,这里面涉及到了事件对象,互斥对象,线程对象和信号量对象。
程序与文件的交互所产生的是文件对象,文件映射对象。
程序与其它程序甚至网络交互,产生了访问令牌对象,邮槽对象,管道对象,进程对象。