Window核心技术入门(一)

 研究操作系统是很有意思的事情,了解的越多,就会发现自己会的越少。

很久以前我曾认为整个Windows是由面向对象的c++写成的,这种想法一直持续了好几年。现在看来,这种看法显然是由于对系统了解的不够深入,且对C++有一种敬而远之的畏惧感,从而形成的。

window操作系统的运行模式大致可以分为两级,核心模式和用户模式。我们通常使用的程序都是运行在用户模式下的,而核心模式,才是整个操作系统的关键所在,它管理着内存、IO、调度等事项。一般很难从用户模式跨越到核心模式,因为那样容易对系统的稳定性造成影响。任何对核心模式下的东西进行操作,都有可能造成经典的蓝屏死机。

如果有Delphi或者VC++用过WINDOW API经验的都会知道,在API里有个类型,叫做 Handle。你可以认为这个Handle就是一个指针,事实上它确实也是指针,只不过它指向的,是核心模式里的东西。你不能摧毁这个Handle指向的东西,你只能使用 CloseHandle() 这样的方法来关闭对它的引用。而释放,交给操作系统来完成吧。

以下这些返回Handle的方法都是从用户模式来创建核心模式里的东西的方法,如:CreateProcess、CreateThread、CreateEvent、等等。在《深入浅出MFC》这本书里,就介绍了这些东西。如果你想向C++进军(仅仅是向windows系统下的c++进军),推荐你看看这本书,看完以后,会对整个操作系统的运作了解的更深入一些。台湾人对技术的理解,确实是要临架与我们之上的。

顺便说一句,虽然现在已经是.NET时代了,但是MFC绝对没有过时,相反的,深入了解MFC,对比CLR里的机制,会了解的更多一些。

还有一本书不错,《Windows核心编程》,Jeffrey写的,我的偶像。详细介绍了用户模式下的对核心模式里的进程、线程的操作。另外这本书还介绍了Dll、钩子、消息机制等技术,这些都是用户模式下比较高级的东西。看完这些,起码能对操作系统的用户模式下的东西,能有个大概的了解。当然,要了解的更深,还要去看看DDK的东西,也就是驱动程序的编写,那个才是和核心模式打交道的东西。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值