接下来将大量的时间用于从潘大神的著作<Windows内核原理与实现>中学习知识,并且省吃俭用来购买潘神牛的另外一译作<Windows Internals>
写下一切内容仅代表个人观点
1.M$的路
很多人都觉得M$(Microsoft,微软)最近在走下坡路,确实M$近几年不是很景气,但下坡,那是一个在重力加速度下,速度会不断不快的过程,显然M$不是.也许你会不信,但我给你举个例子,如果没有M$.这个例子够了么,你要钻牛角尖,你要去用Linux,MacOS,你真觉得这么可行,我不会拦你,但是你不觉得这么钻牛角尖真的很2么,你敢对着你电脑上所有的M$产品发誓你再也不要和M$有任何关系了么.显然,M$只要在认真地走,这条路会很长很长,长到有一天我可能实现自己的梦想,我想站在MSRA(Microsoft Research Asia,微软亚洲研究院)的门前
2.Windows
猜猜Windows历史有多久了?Windows有两个分支,一是MS-DOS开始的Windows(9x/Me),一个是Windows NT内核的OS(Operating System,操作系统),比如我们NT 3.1/3.51/4.0/2k/XP(eXPerience,体验)/server 2k3/Vista/7/8等...说起来Windows NT是在1988.秋开始设计,比我还大了好几岁,哈哈,这里不得不提一个人David Cutler(又有称其Dave Cutler),他是NT内核设计团队的领头,后来他也设计了现在的MinWin.他设计了好多OS,详情Wiki.结果20+年的发展,NT系列已经越来越成熟,Win7,Win8...接下来一系列的NT产品,也会越来越健壮,这毫无疑问是我学习NT的原因之一.
吼吼,今天和老师扯了一下关于Windows.老师说的很对,以后会转向移动平台...Teacher~Windows不能装在Pad上么?只有iPad和Android能装Pad?呐~今天我不和你争,只是我嗓子哑了
3.神奇的Windows结构
Windows利用Intel体系中的一些技术,设计了一种优秀的执行环境结构(当然,这并不是Windows独有的),这种结构就是所谓的用户模式(User-Mode),和内核模式(Kernel-Mode)结构,对应的CPU执行等级是Ring3和Ring0(实际上CPU可以有4个等级).所有用户应用程序,服务等,都运行在用户模式下,在该模式下,不能执行一些贴近硬件的指令,比如in/out,lgdt,lldt,或者部分int等等,也不能访问超过用户模式限制的空间(Windows 32bit将用户模式空间限制在0~0x7fffffff范围.2GB的内存空间,如果是一些需要大内存支持的情况,可以在内核命令行中开启3GB内存空间.),如果你超过了用户空间的限制,就会引发一个异常,你会想到try,but不会那么简单的哦~用户模式的设计还存在一个神奇的地方就是,每一个用户模式进程所享用如此内存空间,却不会重叠,因为Windows拥有强大的力量,就像上帝说,要有光!于是楼道里的声控灯都亮了...内核模式不需要考虑很多,但所有的内核程序都会运行在同一环境里,享受完全4GB的内存(32bit),所以大家盯着这仅有的内存,虎视眈眈?内核下的限制很小,当然,内核可不是一个为所欲为的地方哦~其实内核还分为三层,分别是HAL(
Hardware Abstraction Layer,硬件抽象层),直接和硬件打交道,并且为上层提供接口,内核/微内核层,这东西,我先不详细介绍,悬念留给历史~执行体层(executive),这层主要负责提供给用户模式以及内核程序使用接口,向下调用内核...so.Windows中一个用户模式调用API时,可能是这样的:Windows用户模式程序->调用某API[->核心API]->调用ntdll.dll提供的系统routine API,ntdll.dll负责向下调用执行体(我会在以后详细描述这个过程),然后参数被传入到内核...执行后又一层层返回给用户.再详细的,以后再介绍吧,不过NT内核的设计者真是碉堡了,这样一个强大的OS内核,兼容性,拓展性...完美!好吧,我承认带了太多个人情感,但是,这样的一个系统又如何让我不去心动呢!