<b>文件系统驱动编程底子篇之1——我们的预备</b>[VC/C++编程]
本文“<b>文件系统驱动编程底子篇之1——我们的预备</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、导言
在四个月冗长的征战后,终于在国庆节的本日完成了底子篇系列.本文写作的初衷很简单,就是给安静的池水中加入一点波澜,假如大家在阅读后感遭到一点气愤,激起摸索未知的热忱,笔者也会感到由衷的喜悦.
本系列文章为业余编程爱好者而写,仅仅作为初学者的一个鉴戒,真正的精华存在于参考资料*中.知识的堆集将阅历从薄到厚,再从厚到薄的反复历程,为了打下巩固的底子,请读者务必在阅读本文的底子上耗费必要的时间完成参考资料.
2、基本架构
为了保证性能,汇编与c成为操作系统编写的首选语言,Windows家族的前辈都不例外,唯独Vista那宏大的身躯,让人不由迷惑微软毕竟若何才能诞下比恐龙还大的怪物.与此相反,WinPE作为保护型操作系统可以被一个32M的U盘所包容.不管外观上的诸多差别,功效上的强弱辨别,我们所关心的是它们的共性——即操作系统的内核.与操作系统密不可分的文件系统,就成为我们研究内核的一条途径.
Windows采取了基于对象模子(object-based model)的计划方法,各功效划分为差别的组件,两幅常见的架构图以下:
我们把进口选定为Win32子系统(Win32 Subsystem),它是我们接触最多,也最熟习的一个子系统.硬件抽象层(HAL)及其以下部份目前不在我们关注的核心内,我们将精神集合在系统履行层和核心层,它们具体的功效请参看资料2的第一章.
内核情势下除了屈指可数的几个函数,一切都将是全新的——全新的思惟、概念、模子、构造、函数,超越的幅度不亚于从c语言编程迁移到c++语言,用c语言的思维来学习c++必定会产生阻碍.令人欣喜的是,这里没有特点之流的术语,绝大部份内容都符合人的记忆规律.你将很快掌握设备对象、IRP、IO仓库等底子构造,同时你还发现从前很难记忆的PEB、TEB、_ETHREAD等一系列无具体文档乃至无文档构造都已有迹可寻,假如你充足勤奋,乃至会在一年左右的时间后便可以阅读天书般的防火墙源码.
让我们先来完成必要的预备工作吧.
3、调试环境的构建
在用户情势下编程,除了编译器几近可以不需求其他帮助工具.想查看输出?直接ShowMessage便可,内核情势下,假如不但愿摔得筋折骨断后才有所觉悟,你该在入门前就选好几件宝贝——注意它既不是闻西同志的西瓜刀,更不是单车链.
Microsoft Visual Studio 200x + Windows IFS Kit and DDK xxx + Compuware DriverStudio 3.x + VAssistX xxx + VMware
假如记忆力超强的读者,也可以挑选C++Builder、Delphi + 插件的情势,有些站点正在努力于奉行这方面的技术,关于新手而言,还是用原装货为上策.Windows IFS Kit and DDK是收费软件,电驴上有试用版,按照资料6的阐明完成安装,注意选上xp和2000部份;Compuware公司已经转业不做DriverStudio,好在出家前支持了vs2005,安装完成后,按照资料5打上VisualStudio 2005 Integration fix补钉;VAssistX有试用限制,不巧有人发现不改正代码而利用trial-reset_32清Armadillo壳,可以恢复试用时间,安全而坚固.VassistX加强了编译器的语法提醒、代码搜索功效,大大提高了千行规模子程序的阅读与书写效率.VMware虚拟机用于削减重启的懊恼,提高调试的效率.
经过一阵繁忙后,一个已经设置好的编译器呈现了:
以上是“<b>文件系统驱动编程底子篇之1——我们的预备</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |