《windows核心编程》之精华

 

http://www.cppblog.com/mzty/archive/2006/09/25/12952.html 

 

学习《 windows 核心编程》

   

 

u       字符集,一切软件的基础,单字集(用 1 个字节表示一个字符),双字节字符集( DBCS, 并不是用 2 个字节表示一个字符哦,而是用 1 个, 2 个,或多个字节的混合来表示字符),宽字节字符集( unicode 用 2 个字节来表示一个字符)。对 windows 操作系统来说, windows 98 内核用 ANSI , windows ME 用 unicode , windows 2000 以后的版本也用 unicode ,对于我们在 windows 上开发, windows2000 以后的版本,我们即可以开发 ANSI 版本,也可以开发 unicode 版本,他们都能够很好的运行,但是重效率和软件的国际化来看的化,最后使用 unicode 进行编码。
u       内核对象,被系统和应用程序用来管理各种资源,我们可以使用 API 来管理和使用内核对象,但是不能直接修改内核对象的数据结构,内核对象由内核所拥有,内核知道某个内核对象有没有被使用等,内核对象被广泛的使用在进程,线程。。。中用来管理。(内核即操作系统的本质,核心所在,进行系统的管理)
u       进程,包含用来管理进程的内核对象和用来加载 exe 和数据等的地址空间。当一个 exe 开始运行时,它即对应一个进程, exe 的 main ()也即是进程入口函数,但是在进入 main ()之前还有 c , c ++运行库的初始化。当创建一个进程时,就产生了一个唯一的实例句柄,它就是 winmain ()函数中要传入的实例句柄,另外在主进程(可没有非主进程的啊,但也可以认为主进程的子进程是非主进程,因为系统不保存父子进程的关系,他们可以看作是相互独立的)中可以创建它的子进程,用来对多个需要共同管理的线程进行管理。
u       作业,作业是进程的容器,可以统一地对一组进程增加一些额外的限制。有时候建立单个进程的作业也是有意义的,因为可以对单一进程施加一些进程本身所没有的属性。
u       线程,线程在进程中被创建,在创建进程时,默认的主线程即被创建。操作系统是用线程来完成任务的,因为进程不直接获得操作系统的时间,线程可以认为是操作系统的最小的处理单位。在多线程编程中,首先要注意的就是线程的同步问题,还有线程池的使用。且最好不要使用全局或静态变量。
u       纤程,比线程更小的单位,纤程是用户对线程进行分割,然后自定义算法实行对纤程的调用,系统的内核并不知道线程。
u       Windows 内存结构,每个进程都有它自己的虚拟内存, 32 位机,虚拟内存位 4G ,但是这 4G 并不都可以被用户使用,它包含 NULL 指针, dos 兼容区,文件映射区,系统核心区,能被用户使用的只有 2G 。当然现在 64 位的机子可不是 2G 哦。
u       虚拟内存, windows 进行内存管理的方法之一,最适合用来管理大型对象和结构数组,也即相当于 RAM (即物理内存)的二级缓存,系统先到 RAM 找,如找不到就到虚拟内存(页文件)找,找到了就加载到 RAM 中,然后执行。
u       内存映射文件, windows 的第二中内存管理方法,最适合用来管理大型数据流和单机上的数据共享。 与虚拟内存一样,内存映射文件可以用来保留一个地址空间的区域,并将物理存储器提交给该区域。它们之间的差别是,物理存储器来自一个已经位于磁盘上的文件,而不是系统的页文件。一旦该文件被映射,就可以访问它,就像整个文件已经加载内存一样。系统还使用内存映射文件,以便加载和执行 . e x e D L L 文件。
u       堆栈, windows 的第三中内存管理方法,最适合管理大量的小对象,例如链表等,线程,进程都有自己的堆栈,默认的大小位 1M ,也可以修改。


最后是DLL高级和SEH的使用。

 
主要参考:
       《 windows 核心编程》       机械工业出版社  jeffrey richter 著
       《 windows 系统编程》        人民邮电出版社  求是科技
       《 windows2000 编程技术内幕》    机械工业出版社
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值