<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/blueboy2000" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/blueboy2000" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 14 Oct 2009 09:35:00 GMT</lastBuildDate><title>分享建筑软件的乐趣</title><description>CSDN博客聚合服务</description><link>http://blog.csdn.net/blogrss.aspx?username=blueboy2000</link><item><title>Linux下eSata热插拔的设置</title><link>http://blog.csdn.net/blueboy2000/archive/2009/10/14/4670681.aspx</link><description>&lt;br /&gt;FC11下可以热插拔eSata设备。当然这和内核没有什么关系，只要能识别，应该都可以热插拔。关键是主板BIOS设置，要把Sata设置成AHCI设备，而不是IDE设备。&lt;img src=&quot;http://www1.feedsky.com/t1/282615587/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/10/14/4670681.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615587/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615587/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 14 Oct 2009 17:35:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/10/14/4670681.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/10/14/4670681.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615587/1141481</fs:itemid></item><item><title>linux环境下搭建CVS服务器</title><link>http://blog.csdn.net/blueboy2000/archive/2009/10/09/4645716.aspx</link><description>1、下载源码    通过搜索引擎找到CVS的源代码包，也可以从CVS的官方网站CVShome.org上寻找，由于CVS历史上也出现过一些安全漏洞，所以建议要定期去其官方网站上看看有没有最新版本推出。   2、编译安装    [root@terry src]# tar -xjpvf CVS-1.12.5.tar.bz2    [root@terry src]# cd CVS-1.12.5    [root@terry CVS-1.12.5]# ./configure --prefix=/usr/local/terry_yu/CVS   --disable-server-flow-control    [root@terry CVS-1.12.5]# make    [root@terry CVS-1.12.5]# make install    以上指令将CVS安装到/usr/local/terry_yu/CVS这个目录上。    注：除了使用源码包进行安装之外，还可以使用RPM包来安装。   3、设置启动CVS服务    在Linux上CVS服务可以通过inetd、xinetd或tcp&lt;img src=&quot;http://www1.feedsky.com/t1/282615589/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/10/09/4645716.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615589/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615589/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 09 Oct 2009 14:23:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/10/09/4645716.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/10/09/4645716.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615589/1141481</fs:itemid></item><item><title>mutagen编辑mp3 id3的信息</title><link>http://blog.csdn.net/blueboy2000/archive/2009/10/04/4631140.aspx</link><description>from mutagen.easyid3 import EasyID3   audio = EasyID3(&quot;example.mp3&quot;)    audio[&quot;title&quot;] = u&quot;An example&quot;    audio.save()&lt;img src=&quot;http://www1.feedsky.com/t1/282615592/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/10/04/4631140.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615592/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615592/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 04 Oct 2009 00:46:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/10/04/4631140.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/10/04/4631140.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615592/1141481</fs:itemid></item><item><title>MP3信息格式 ID3v1和ID3v2</title><link>http://blog.csdn.net/blueboy2000/archive/2009/09/20/4574028.aspx</link><description>mp3歌曲的信息所存放的位置：   Mp3文件包含一个叫做ID3的标签。其实有两个标签，一个叫做ID3v1，另外一个叫做ID3v2。   ID3V1结构比较简单，存放在MP3文件的末尾的128个字节，数据结构定义如下：  名称              位置              长度              内容  Header           1-3                3               标签头  Title            4-33               30              标题  Artist           34-63              30              艺术家  Album            64-93              30              专辑  Year             94-97              4               出品年代  Comment          98-127             30              备&lt;img src=&quot;http://www1.feedsky.com/t1/282615595/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/09/20/4574028.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615595/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615595/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 20 Sep 2009 22:43:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/09/20/4574028.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/09/20/4574028.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615595/1141481</fs:itemid></item><item><title>Linux 初始 RAM 磁盘（initrd）概述</title><link>http://blog.csdn.net/blueboy2000/archive/2009/08/28/4491990.aspx</link><description>Linux® 初始 RAM 磁盘（initrd）是在系统引导过程中挂载的一个临时根文件系统，用来支持两阶段的引导过程。initrd 文件中包含了各种可执行程序和驱动程序，它们可以用来挂载实际的根文件系统，然后再将这个 initrd RAM 磁盘卸载，并释放内存。在很多嵌入式 Linux 系统中，initrd 就是最终的根文件系统。本文将探索 Linux 2.6 的初始 RAM 磁盘，包括如何创建以及如何在 Linux 内核中使用。     什么是初始 RAM 磁盘？  初始 RAM 磁盘（initrd）是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd 与内核绑定在一起，并作为内核引导过程的一部分进行加载。内核然后会将这个 initrd 文件作为其两阶段引导过程的一部分来加载模块，这样才能稍后使用真正的文件系统，并挂载实际的根文件系统。  initrd 中包含了实现这个目标所需要的目录和可执行程序的最小集合，例如将内核模块加载到内核中所使用的 insmod 工具。  在桌面或服务器 Linux 系统中，initrd 是一个临时的文件系统。其生存周期很短，只会用作到&lt;img src=&quot;http://www1.feedsky.com/t1/282615597/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/08/28/4491990.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615597/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615597/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 28 Aug 2009 09:22:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/08/28/4491990.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/08/28/4491990.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615597/1141481</fs:itemid></item><item><title>Linux2.6 内核的 Initrd 机制解析</title><link>http://blog.csdn.net/blueboy2000/archive/2009/08/28/4491976.aspx</link><description>Linux 的 initrd 技术是一个非常普遍使用的机制，linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式，变化不仅反映在文件格式上， linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术，然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Linux2.6 内核的 initrd 处理部分代码的分析，使读者可以对 initrd 技术有一个全面的认识。为了更好的阅读本文，要求读者对 Linux 的 VFS 以及 initrd 有一个初步的了解。  1．什么是 Initrd  initrd 的英文含义是 boot loader initialized RAM disk，就是由 boot loader 初始化的内存盘。在 linux内核启动前， boot loader 会将存储介质中的 initrd 文件加载到内存，内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader 配置了 initrd&lt;img src=&quot;http://www1.feedsky.com/t1/282615599/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/08/28/4491976.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615599/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615599/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 28 Aug 2009 09:20:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/08/28/4491976.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/08/28/4491976.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615599/1141481</fs:itemid></item><item><title>各种IO模型的讨论总结</title><link>http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485922.aspx</link><description>知道Boost中的AIO模型库是使用Epoll实现的，请看下面的讨论！应该很有帮助的，文章概论了几乎所有开发模型的效率！  1:   EPOLL!=AIO    我只是说Boost的网络库在linux下是用linux的epoll实现的   ACE中有ACE_POSIX_AIOCB_Proactor和ACE_Dev_Poll_Reactor，分别用aio和epoll实现，这是2个不同的东西   2:   AIO = Asynchronous I/O，指的是一种I/O处理模式，在不同的系统中有不同的实现方式，Win2k的IOCP、Linux的EPOLL等都是实现AIO的一种编程模型，也有的库­直接就用AIO作为名字，需要加以区别，否则各人所说的AIO如果是指不同的东东，那就没法沟通了   3:   ACE_POSIX_AIOCB_Proactor使用的是linux下一种类似完成端口的实现     ACE_Dev_Poll_Reactor用的是EPOLL，他是类似select的模式但是返回的都是激发句柄   我想问的是这2种东西在linux下哪种效率更高？   以下是网上搜索到的资料，是不是&lt;img src=&quot;http://www1.feedsky.com/t1/282615600/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485922.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615600/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615600/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 26 Aug 2009 11:08:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485922.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485922.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615600/1141481</fs:itemid></item><item><title>Windows的6种IO模型</title><link>http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485914.aspx</link><description>Windows的IO模型比较特殊，有6种：  一：select模型  二：WSAAsyncSelect模型  三：WSAEventSelect模型  四：Overlapped I/O 事件通知模型  五：Overlapped I/O 完成例程模型  六：IOCP模型&lt;img src=&quot;http://www1.feedsky.com/t1/282615602/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485914.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615602/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615602/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 26 Aug 2009 11:05:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485914.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485914.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615602/1141481</fs:itemid></item><item><title>Unix5中IO模型的图解分析和比较</title><link>http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485874.aspx</link><description>Unix下共有五种I/O模型  阻塞I/O  非阻塞I/O  I/O复用（select和poll）  信号驱动I/O（SIGIO）  异步I/O（Posix.1的aio_系列函数）  b.阻塞I/O模型   应用程序调用一个IO函数，导致应用程序阻塞，等待数据准备好。    如果数据没有准备好，一直等待。。。。    数据准备好了，从内核拷贝到用户空间    IO函数返回成功指示         c.非阻塞I/O模型   我们把一个套接口设置为非阻塞就是告诉内核，当所请求的I/O操作无法完成时，不要将进程睡眠，而是返回一个错误。这样我们的I/O操作函数将不断的测试数据是否已经准备好，如果没有准备好，继续测试，直到数据准备好为止。在这个不断测试的过程中，会大量的占用CPU的时间。         d. I/O复用模型   I/O复用模型会用到select或者poll函数，这两个函数也会使进程阻塞，但是和阻塞I/O所不同的的，这两个函数可以同时阻塞多个I/O操作。而且可以同时对多个读操作，多个写操作的I/O函数进行检测，直到有数据可读或可写时，才真正调用I/O操作函数。         e&lt;img src=&quot;http://www1.feedsky.com/t1/282615604/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485874.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615604/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615604/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 26 Aug 2009 10:57:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485874.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485874.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615604/1141481</fs:itemid></item><item><title>Unix的5种I/O模型和Java NIO</title><link>http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485704.aspx</link><description>1、阻塞I/O     2、非阻塞I/O     3、I/O复用（select、poll、linux 2.6种改进的epoll）     4、信号驱动IO（SIGIO）     5、异步I/O（POSIX的aio_系列函数）     同步I/O和异步IO     POSIX把这两个术语定义如下：     同步I/O操作导致请求进程阻塞，直至操作完成     异步I/O操作不导致请求阻塞。     根据上述定义，前四种I/O模型都是同步I/O，第5种才是异步I/O。     select不允许多于一个的线程在同一个描述符集上等待。这使得反应式模型不适用于高性能应用，因为它没有有效地利用硬件的并行性。     异步I/O通常能够提高更好的性能，windows的iocp通过内核线程调度，也能提供很好的并发性能，但不是真正的异步。     Java nio和多路复用     java 1.4 nio提供的select，这是一种多路复用I/O（multiplexed non-blocking I/O）模型，底层是使用select或者poll。I/O复用就是，阻塞在select或者poll系&lt;img src=&quot;http://www1.feedsky.com/t1/282615605/blueboy2000/csdn.net/s.gif?r=http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485704.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/blueboy2000/282615605/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/blueboy2000/282615605/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 26 Aug 2009 10:33:00 +0800</pubDate><author>blueboy2000</author><guid isPermaLink="false">http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485704.aspx</guid><dc:creator>blueboy2000</dc:creator><fs:srclink>http://blog.csdn.net/blueboy2000/archive/2009/08/26/4485704.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/blueboy2000/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/blueboy2000/~1141493/282615605/1141481</fs:itemid></item></channel></rss>