2010年5月3日

《深入理解Linux内核3rd》学习笔记——初始化临时页表

摘要: Linux内核初始化临时页表由startup_32函数完成,内核源码中有两个startup_32函数,本文讨论arch/i386/kernel/head.S文件中的startup_32函数,该函数为Linux的第一个进程(进程0)建立执行环境,主要工作是:将内核BSS清零、建立临时内核页表、启动分页功能、为进程0建立内核堆栈、填充中断描述附表、处理CPU型号、初始化gdtr和ldtr寄存器,最后调用start_kernel函数。 阅读全文

posted @ 2010-05-03 18:43 小虎无忧 阅读(2351) 评论(0) 推荐(0)

2010年4月29日

《深入理解Linux内核3rd》学习笔记——第2章:内存寻址

摘要: 内存寻址,是OS运行中最基础也是必不可少的功能,实现内存寻址涉及很多问题,比如虚拟存储技术、扩展存储技术、进程隔离和保护、平台兼容问题。 本文简述了80x86体系的寻址机制及Linux2.6.11对其的支撑。 阅读全文

posted @ 2010-04-29 15:10 小虎无忧 阅读(2177) 评论(0) 推荐(0)

[转]利用Winsock实现HTTP的GET请求

摘要: 网络爬虫等软件都需要爬取HTML页面并对其进行分析,在Windows中,常常使用WinInet接口对其进行操作,本文介绍了如何使用Winsock来实现HTTP的GET功能。 阅读全文

posted @ 2010-04-29 10:27 小虎无忧 阅读(1741) 评论(0) 推荐(0)

CRC校验算法

摘要: CRC校验作为一种常用的校验方式,其计算方法是通过模二运算实现,本文介绍按位的CRC循环冗余校验算法的实现。 阅读全文

posted @ 2010-04-29 10:24 小虎无忧 阅读(898) 评论(0) 推荐(0)

Hook导入表 —— 实现挂钩FreeLibaray和HOOK延迟加载模块的API

摘要: Windows上Ring3的HOOK导入表所用的类大同小异,本文改进了一个HOOK导入表的类,实现了HOOK延迟加载模块的API和FreeLibaray的HOOK的实现。欢迎大家批评指正! 阅读全文

posted @ 2010-04-29 10:22 小虎无忧 阅读(2281) 评论(1) 推荐(1)

2009年5月21日

关于DLL中遇到的一个问题

摘要: DLL中的DllMain调用是线程序列化的,一个线程在执行DllMain中的代码时,在它执行完毕返回之前,任何其它线程无法执行DllMain的代码。 阅读全文

posted @ 2009-05-21 14:50 小虎无忧 阅读(661) 评论(0) 推荐(0)

2008年8月26日

《Windows via C/C++》学习笔记 —— 纤程(Fiber)

摘要: Windows中纤程(Fiber)的作用是为了让UNIX中的程序更好地移植到Windows。纤程是比线程更小的一个单位,可以把一个线程拆分为多个纤程,这些纤程的工作由用户指定,需要用户手工进行切换,从而让各个纤程交替完成它们的工作。 阅读全文

posted @ 2008-08-26 18:24 小虎无忧 阅读(8274) 评论(0) 推荐(0)

2008年8月25日

《Windows via C/C++》学习笔记 —— Windows 线程池

摘要: 线程池,指很多个的线程同时存在,并发执行,并且受到统一的管理。Windows Vista 提供了新的线程池工作机制。一般这些线程池的创建的销毁是由操作系统自动完成的。让线程池与上一篇所讨论的“I/O完成端口”一起工作是十分高效的。 阅读全文

posted @ 2008-08-25 22:47 小虎无忧 阅读(12390) 评论(9) 推荐(0)

2008年8月21日

《Windows via C/C++》学习笔记 —— 设备I/O之“I/O完成端口”

摘要: I/O完成端口是性能最高、扩充性最好的一种用来接受异步I/O请求完成通知的方法。上一篇中介绍的3个方法:通知一个设备内核对象、通知一个事件内核对象、告警I/O,在一些方面总是有缺点。如果需要更高性能和更高的可扩充性的方法的话,可以考虑“I/P完成端口”。 阅读全文

posted @ 2008-08-21 18:03 小虎无忧 阅读(2815) 评论(0) 推荐(0)

2008年8月20日

《Windows via C/C++》学习笔记 —— 设备I/O之“接收I/O请求完成通知”

摘要: 异步I/O请求的方法,必须要考虑的就是当I/O请求完成之后,如何来接收通知。Windows提供了多种方法来实现——通知设备内核对象、通知事件内核对象、告警I/O、I/O完成端口。其中,I/O完成端口是性能最高的方法,但是实现却比较复杂。本篇首先讨论前3种接受通知的方式。 阅读全文

posted @ 2008-08-20 22:28 小虎无忧 阅读(1581) 评论(0) 推荐(0)

导航