<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tomorrowsprogress的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tomorrowsprogress</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tomorrowsprogress]]></copyright><item><title><![CDATA[kgdb内核调试freebsd8.3]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/8213279</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/8213279</guid><author>tomorrowsprogress</author><pubDate>Thu, 22 Nov 2012 17:02:34 +0800</pubDate><description><![CDATA[编译内核并用KGDB调试
1. 配置vmware调试机与目标机的串口
[虚拟机上添加串口]
"power off"关闭虚拟机
右击虚拟机
-->选择"settings..."
-->hardware-->Add...
-->Serial Port
-->output to named pipe-->两虚拟机都使用名称"\\.\pipe\com_1",
对调试机使用"This en]]></description><category></category></item><item><title><![CDATA[单vmware虚拟机中的FreeBSD调试内核]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/8205672</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/8205672</guid><author>tomorrowsprogress</author><pubDate>Tue, 20 Nov 2012 21:49:30 +0800</pubDate><description><![CDATA[STEP
1 编译不含sio的kernel(注释掉device.hints和device
 sio), 并以附件中的sio.c编译sio.ko
2 备份当前系统的kernel和sio.ko，并更新kernel,
并重启
3 加载虚拟串口驱动
#kldload /path/to/sio.ko
4 测试串口
#ll /dev/cuad* （可以看到2个串口，如cuad2,cuad3）]]></description><category></category></item><item><title><![CDATA[Pacemaker入门手册]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/7672779</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/7672779</guid><author>tomorrowsprogress</author><pubDate>Mon, 18 Jun 2012 11:36:00 +0800</pubDate><description><![CDATA[http://wenku.baidu.com/view/b7073bdb50e2524de5187e1e.html]]></description><category></category></item><item><title><![CDATA[服务器系统 选择Windows和Linux的理由]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5805902</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5805902</guid><author>tomorrowsprogress</author><pubDate>Thu, 12 Aug 2010 09:01:00 +0800</pubDate><description><![CDATA[<br />　　你觉得哪个服务器操作系统更好，是微软的Windows还是开源的Linux？关于这个问题曾经引起无数的争论，但一位长时间使用过Windows和Linux的IT顾问讲，要说哪一个服务器操作系统最适合工作需要很难回答，因为在选择服务器操作系统时，我们需要结合成本，性能，安全和应用程序综合考虑。在讨论之前我们先做一下回顾，就在昨天51CTO为大家报道了TechEd 2010大会精要微软服务器路线图的五大亮点，可见微软企图继续称霸服务器行业。但是他的死对头Linux一直在为市场份额努力着。要想了解一个]]></description><category></category></item><item><title><![CDATA[端口复用]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5798603</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5798603</guid><author>tomorrowsprogress</author><pubDate>Mon, 09 Aug 2010 13:16:00 +0800</pubDate><description><![CDATA[<br />因为在winsock的实现中，对于服务器的绑定是可以多重绑定的，在确定多重绑定使用谁的时候，根据一条原则是谁的指定最明确则将包递交给谁，而且没有权限之分，也就是说低级权限的用户是可以重绑定在高级权限的用户使用端口。例如绑定某个服务的端口上。<br />这意味着什么呢？意味着可以进行如下的攻击：<br />1. 一个木马绑定到一个已经合法存在的端口上进行端口的隐藏，他通过自己特定的包格式判断是不是自己的包。如果是自己的数据包则自己进行处理，如果不是通过127.0.0.1的地址交给真正的服务器应用进]]></description><category></category></item><item><title><![CDATA[特权级在保护模式下的应用]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5782755</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5782755</guid><author>tomorrowsprogress</author><pubDate>Mon, 02 Aug 2010 14:52:00 +0800</pubDate><description><![CDATA[<br />在保护模式下提供4级特权级PL（Privilege Level），呈现环形保护（ring-protection）结构。最内的环具有PL=0的最高特权级，依内向外逐层PL值增加，特权级降低。最外的环PL=3，特权级最低。<br />特权级有以下几种形式表述：DPL(Descriptor Privilege Level):描述符的特权级，CPL(Current Privilege Level):当前任务的特权级，RPL(Requestor Privilege Level):请求特权级(选择符的特权级]]></description><category></category></item><item><title><![CDATA[特权级在保护模式下的应用]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5782751</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5782751</guid><author>tomorrowsprogress</author><pubDate>Mon, 02 Aug 2010 14:51:00 +0800</pubDate><description><![CDATA[<br />在保护模式下提供4级特权级PL（Privilege Level），呈现环形保护（ring-protection）结构。最内的环具有PL=0的最高特权级，依内向外逐层PL值增加，特权级降低。最外的环PL=3，特权级最低。<br />特权级有以下几种形式表述：DPL(Descriptor Privilege Level):描述符的特权级，CPL(Current Privilege Level):当前任务的特权级，RPL(Requestor Privilege Level):请求特权级(选择符的特权级]]></description><category></category></item><item><title><![CDATA[特权级在保护模式下的应用]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5782748</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5782748</guid><author>tomorrowsprogress</author><pubDate>Mon, 02 Aug 2010 14:50:00 +0800</pubDate><description><![CDATA[<br />在保护模式下提供4级特权级PL（Privilege Level），呈现环形保护（ring-protection）结构。最内的环具有PL=0的最高特权级，依内向外逐层PL值增加，特权级降低。最外的环PL=3，特权级最低。<br />特权级有以下几种形式表述：DPL(Descriptor Privilege Level):描述符的特权级，CPL(Current Privilege Level):当前任务的特权级，RPL(Requestor Privilege Level):请求特权级(选择符的特权级]]></description><category></category></item><item><title><![CDATA[ 重叠I/O的概念及使用]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5772921</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5772921</guid><author>tomorrowsprogress</author><pubDate>Thu, 29 Jul 2010 09:17:00 +0800</pubDate><description><![CDATA[一．   重叠I/O的概念及使用 --   重叠可以理解为并行<br />当调用ReadFile和WriteFile时，如果最后一个参数lpOverlapped设置为NULL，那么线程就阻塞在这里，直到读写完指定的数据后，它们才返回。这样在读写大文件的时候，很多时间都浪费在等待ReadFile和WriteFile的返回上面。如果ReadFile和WriteFile是往管道里读写数据，那么有可能阻塞得更久，导致程序性能下降。<br />为了解决这个问题，windows引进了重叠I/O的概念，它能够同时以多个线]]></description><category></category></item><item><title><![CDATA[关于windows服务的编程方法]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5753120</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5753120</guid><author>tomorrowsprogress</author><pubDate>Wed, 21 Jul 2010 16:50:00 +0800</pubDate><description><![CDATA[windows服务有两种，一种是驱动服务程序，另外一种是win32服务程序，我们这里只谈win32服务程序，查看win32服务程序，可以这样：开始－>运行－>services.msc可以打开windows自带的服务程序控制程序。这个大家都应该很熟悉了吧。下面来讲讲利用vc编程来对win32服务程序进行管理，包括创建、删除已经对win32服务程序的运行状态进行管理。在进入编程之前先要理解几样东西：第一：服务控制管理器 service control manager（SCM），SCM在系统启动的时候就会启动，其]]></description><category></category></item><item><title><![CDATA[MFC的架构方法]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5751529</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5751529</guid><author>tomorrowsprogress</author><pubDate>Wed, 21 Jul 2010 09:51:00 +0800</pubDate><description><![CDATA[一、WinMain()函数在哪儿<br />因为看不到WinMain()函数，许多初学者不知道程序究竟从哪儿开始，编程从哪儿下手，编写的代码何时运行等等，另外，还有很多看不懂的语句，最大的困难恐怕还是MFC的编程思想不太理解。各位既然选择小雅的教程来学习MFC，小雅就有责任将每一个你不明白的地方剖析清楚，因为小雅自己也曾为此而烦恼了几年。不过，饭还得一口一口地吃，最好的办法是先照葫芦画瓢，从容易的入手，再一步一步地深入。 <br />MFC把千篇一律的WinMain()函数写在①crtexec.c中，在编译]]></description><category></category></item><item><title><![CDATA[指令使用规则]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5706232</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5706232</guid><author>tomorrowsprogress</author><pubDate>Thu, 01 Jul 2010 10:20:00 +0800</pubDate><description><![CDATA[<br />http://www.ymzz.net/jycg/Print.asp?ArticleID=416]]></description><category></category></item><item><title><![CDATA[C++类和接口的设计原则探讨]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5704400</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5704400</guid><author>tomorrowsprogress</author><pubDate>Wed, 30 Jun 2010 13:50:00 +0800</pubDate><description><![CDATA[<br />　我这篇文章的主旨是介绍一部分类和接口的高质量设计的准则。这些准则不但应该保证设计并且实现的类或者接口本身有高质量代码，而且更重要的是在工业领域应该尽可能的使代码的更新和维护不影响客户的活动，主要也就是保持二进制代码兼容(binary compatibility)和源代码兼容(source compatibility)。我希望这些准则能帮助刚从学校进入工业领域的朋友尽快适应更高标准的编程要求，尽快提升自己的设计能力。 <br /><br />　　文中以C++类的设计为讨论范围。<br /><br]]></description><category></category></item><item><title><![CDATA[MTD和MDd导致的问题]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5704233</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5704233</guid><author>tomorrowsprogress</author><pubDate>Wed, 30 Jun 2010 12:30:00 +0800</pubDate><description><![CDATA[<br />MTD指的是使用的运行时库为静态库LIBCRTD.LIB，MDD则使用动态库MSVCRTD.DLL运行时库作为链接版本；<br /> <br />静态库LIBCRTD.LIB在引用它的工程里自定义了该静态库需要创建的全局变量；<br />动态库MSVCRTD.DLL已经在DLL模块内部定义了全局变量；<br /> <br />对MALLOC和FREE函数的调用问题：<br />    工程A(EXE或LIB或DLL)使用MTD， A引用模块B.DLL， B.DLL使用MDD；此时A使用mallo]]></description><category></category></item><item><title><![CDATA[程序员需要知道的97件事]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5577226</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5577226</guid><author>tomorrowsprogress</author><pubDate>Tue, 11 May 2010 09:23:00 +0800</pubDate><description><![CDATA[http://programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book Dont Touch that Code!From Programmer 97-thingsJump to: navigation, searchIt has happened to eve]]></description><category></category></item><item><title><![CDATA[WAV文件创建]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5572267</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5572267</guid><author>tomorrowsprogress</author><pubDate>Sun, 09 May 2010 17:05:00 +0800</pubDate><description><![CDATA[typedef struct WAVE{  short wFormatTag; //编码格式，包括WAVE_FORMAT_PCM，WAVEFORMAT_ADPCM等 short nChannels; //声道数，单声道为1，双声道为2 int nSamplesPerSec; //采样频率 int nAvgBytesPerSec; //每秒的数据量 short nBlockAlign; //块对齐 ]]></description><category></category></item><item><title><![CDATA[什么是实模式、保护模式和虚拟8086方式]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5545174</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5545174</guid><author>tomorrowsprogress</author><pubDate>Fri, 30 Apr 2010 10:11:00 +0800</pubDate><description><![CDATA[1:实模式：寻址采用和8086相同的16位段和偏移量，最大寻址空间1MB，最大分段64KB。可以使用32位指令。32位的x86 CPU用做高速的8086。2:保护模式：寻址采用32位段和偏移量，最大寻址空间4GB，最大分段4GB (Pentium Pre及以后为64GB)。在保护模式下CPU可以进入虚拟8086方式，这是在保护模式下的实模式程序运行环境。 第]]></description><category></category></item><item><title><![CDATA[“进程后2G的空间是在什么时候映射的??? ”。]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5442181</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5442181</guid><author>tomorrowsprogress</author><pubDate>Thu, 01 Apr 2010 16:57:00 +0800</pubDate><description><![CDATA[“进程后2G的空间是在什么时候映射的??? ”。应该是在Windows启动的时候，就创建好了一张所有进程共享的系统的页表，每当进程调用系统API陷入内核模式后，访问高端2GB地址时，会去查找系统的那张共享页表，得到实际物理内存地址。 如果用户程序自己去访问高端2GB地址，因其特权级是Ring3，而高2GB地址需要Ring0特权，因此会报错，访问违例。]]></description><category></category></item><item><title><![CDATA[关于进程间的访问权限等进程间控制资料收集]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5137817</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5137817</guid><author>tomorrowsprogress</author><pubDate>Tue, 05 Jan 2010 19:27:00 +0800</pubDate><description><![CDATA[http://www.vckbase.com/DUPLICATEHANDLE函数可以实现将同步内核对象被拷贝并且将原内核对象关闭， 从而达到可以自由控制内核对象的目的， 这可以实现使得只能单一启用的进程成为多启用的进程的目的。实现方法：只要用钩子WH_GETMESSAGE挂钩并实现如下代码即可LRESULT HookProc(int code, WPARAM wParam, LPA]]></description><category></category></item><item><title><![CDATA[Detection of the hidden processes ]]></title><link>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5133409</link><guid>https://blog.youkuaiyun.com/tomorrowsprogress/article/details/5133409</guid><author>tomorrowsprogress</author><pubDate>Tue, 05 Jan 2010 09:31:00 +0800</pubDate><description><![CDATA[找到线程链表地址之后我们就可以非常简单地枚举出那些进程了，代码如下：Code:void ProcessListHead(PLIST_ENTRY ListHead){  PLIST_ENTRY Item;  if (ListHead)  {     Item = ListHead->Flink;     while (Item != ListHead)     {        Co]]></description><category></category></item></channel></rss>