<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[技术爬虫(tech-reptile)]]></title><description><![CDATA[一步一步爬向技术的顶端  ]]></description><link>https://blog.youkuaiyun.com/mythfish</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mythfish]]></copyright><item><title><![CDATA[Linux内核分析之内存管理]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5767636</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5767636</guid><author>mythfish</author><pubDate>Mon, 26 Jul 2010 23:49:00 +0800</pubDate><description><![CDATA[1、内存管理涉及的知识 （1）计算机内存访问机制 （2）linux内存访问机制 （3）linux内存管理源码]]></description><category></category></item><item><title><![CDATA[《架构之美》语录]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5765245</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5765245</guid><author>mythfish</author><pubDate>Sun, 25 Jul 2010 23:05:00 +0800</pubDate><description><![CDATA[1、架构是一种折中。  ]]></description><category></category></item><item><title><![CDATA[Linux内核源码分析（3）——compiler-gcc[x].h分析]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5754140</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5754140</guid><author>mythfish</author><pubDate>Thu, 22 Jul 2010 01:18:00 +0800</pubDate><description><![CDATA[    这部分简要介绍一下不同版本gcc编译器特有的头文件。这里只介绍gcc3和gcc4的头文件。 1、GCC3  #if __GNUC_MINOR__ = 3 # define __used   __attribute__((__used__)) #else # define __used   __attribute__((__unused__)) #endif #if __GNUC_MINOR__ >= 4 #define __must_check  __attribute__((warn_unused]]></description><category></category></item><item><title><![CDATA[Linux内核源码分析（2）——compiler-gcc.h分析]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5754123</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5754123</guid><author>mythfish</author><pubDate>Thu, 22 Jul 2010 00:58:00 +0800</pubDate><description><![CDATA[    在第一节分析了compiler.h文件，定义了当编译器为GCC时包含文件compiler-gcc.h。该文件是gcc编译器通用的定义。现在开始解析该文件的compiler-gcc.h。      /* Optimization barrier */ /* The "volatile" is due to gcc bugs */ #define barrier() __asm__ __volatile__("": : :"memory")      barrier函数在之前介绍过了，就是做内存栅栏，它]]></description><category></category></item><item><title><![CDATA[Linux内核源码分析（1）——compiler.h分析（3）]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5745145</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5745145</guid><author>mythfish</author><pubDate>Mon, 19 Jul 2010 00:22:00 +0800</pubDate><description><![CDATA[2 内核代码有效的定义     第一个部分介绍了汇编代码不使用的定义。下面开始介绍一下对内核代码有效的定义。      /*  * Allow us to mark functions as 'deprecated' and have gcc emit a nice  * warning for each use, in hopes of speeding the functions removal.  * Usage is:  *   int __deprecated foo(void)  */ #ifn]]></description><category></category></item><item><title><![CDATA[Eclipse CDT + QEMU 调试linux内核]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5744945</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5744945</guid><author>mythfish</author><pubDate>Sun, 18 Jul 2010 22:22:00 +0800</pubDate><description><![CDATA[注：本文为转贴，并非原创。 感谢作者：YangNas 以下为原文，原封未动。   本文参考自: http://issaris.blogspot.com/2007/12/download-linux-kernel-sourcecode-from.html (由于blogspot目前被和谐，所以大家需要翻墙才能查看原文。) 有关调试的好处我想大家都不言自明了。本文章摘自原文，但加入了原文中没有说明的一些细节内容。 我的系统环境是：Ubuntu 9.10 + eclipse-cpp-galileo-SR1-lin]]></description><category></category></item><item><title><![CDATA[Linux内核源码分析（1）——compiler.h分析（2）]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5738561</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5738561</guid><author>mythfish</author><pubDate>Fri, 16 Jul 2010 01:04:00 +0800</pubDate><description><![CDATA[1.2 内核模块的宏定义 接下来是宏__KERNEL__的判断，后续部分的内容是内核模块相关的宏定义，不用于用户进程的代码。  #ifdef __GNUC__ #include  #endif      这个部分说明，如果采用的是GNU C的编译器，包含gcc相关的头文件compiler-gcc.h。这个文件的分析在后续的文章中详细描述。  #define notrace __attribute__((no_instrument_function))      宏notrace的定义，这个宏用于修饰函数，说]]></description><category></category></item><item><title><![CDATA[Linux内核源码分析（1）——compiler.h分析（1）]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5717093</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5717093</guid><author>mythfish</author><pubDate>Tue, 06 Jul 2010 22:05:00 +0800</pubDate><description><![CDATA[        Linux的内核源码都会包含文件linux/compile.h，所以先分析该文件内的内容，作为开篇。          1 汇编编译时不定义的内容          该文件的第一个内容是对宏__ASSEMBLY__的判断，这个宏的作用是避免在进行汇编编译的时候，不定义后续相关内容。这个宏通过在编译器中用-D选项中加入，参数AFLAGS也包含该宏定义。在汇编时编译器会定义__ASSEMBLY__为1。  #ifndef __ASSEMBLY__   1.1 Sparse工具检测使用的属性定义 ]]></description><category></category></item><item><title><![CDATA[Linux initial RAM disk（initrd）介绍]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5700518</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5700518</guid><author>mythfish</author><pubDate>Mon, 28 Jun 2010 22:45:00 +0800</pubDate><description><![CDATA[     initrd是为了支持linux启动的两个阶段，而设计的临时根文件系统。通常，initrd内包含多种可执行文件和驱动库，用于实现最后挂载真实的根文件系统，并在之后卸载临时的initrd根文件系统并释放相应的内存。在很多嵌入式的Linux系统中，没有使用其他真实的根文件系统，而采用initrd做为最后使用的根文件系统。     initrd被绑定到内核，并伴随内核启动过程被加载。initrd内部包含了必要的可执行文件和系统文件以支持Linux第二阶段的启动过程。 创建initial RAM disk]]></description><category></category></item><item><title><![CDATA[『研发小作坊的正规之路系列』之软件开发规范之道——序]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/5695031</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/5695031</guid><author>mythfish</author><pubDate>Fri, 25 Jun 2010 22:12:00 +0800</pubDate><description><![CDATA[再好的语言特性和蹩脚的花俏技巧，都远不如严格的软件开发规范来的有效。 为什么想起来写些关于软件开发规范的内容呢。由于这些年所在的公司规模比较小，平时软件开发的过程中很少注重一些方法论，这样那样的开发规范往往都被迫切的市场需求打的支离破碎。并且团队里面都是些年轻人，经验都不丰富，一般都只关注近期的交付物，是否能及时的完成任务，比较少关注后续的延续性。那为什么要在这个时候提起软件规范方面的东西呢？随着公司的发展，产品数量的 增加，维护的工作也在成指数级别的增加，新产品的开发总是从头再来，不关注任何的复用，导致每]]></description><category></category></item><item><title><![CDATA[研发小作坊的正规之路（序）]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/4074428</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/4074428</guid><author>mythfish</author><pubDate>Wed, 15 Apr 2009 00:06:00 +0800</pubDate><description><![CDATA[　　(该博客文章在个人主页同步上线，评论请前到http://www.mythfish.com)　　最近一直希望工作能有所突破，一直在寻找一个突破点，也顺便总结过去的经验，继续前行。最近也对软件工程比较感兴趣，想结合所学的知道到实际工作中。　　由于一毕业就到了小公司呆着，对小公司的做事方法和方式都有些了解。希望从我个人的角度观察和思考作坊式的研发模式，以及如何改进研发方法对作坊的研发效率]]></description><category></category></item><item><title><![CDATA[大公司和小公司在员工的责任心上的不同]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/4034966</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/4034966</guid><author>mythfish</author><pubDate>Mon, 30 Mar 2009 00:15:00 +0800</pubDate><description><![CDATA[(该博客文章在个人主页同步上线，评论请到http://www.mythfish.com)最近和一旧同事聊天，提到关于员工的责任心问题。我们探讨了一下大公司和小公司对员工责任心要求上的不同。一般而言在大公司，制度流程都比较明确，员工的工作范畴也很明确。大公司的员工只要在规定的时间内保质保量的完成领导安排的任务指标，就算很有责任心了，可以说是履行了员工的职责。但在小公司就有所区别了，小公司]]></description><category></category></item><item><title><![CDATA[ATL对窗口的封装]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/3957851</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/3957851</guid><author>mythfish</author><pubDate>Wed, 04 Mar 2009 22:01:00 +0800</pubDate><description><![CDATA[ATL包装了Win32 API中与创建和操作“窗口、对话框以及windows控制”有关的部分。ATL窗口类还包含了诸如子类化和超类化这样的高级特性。一、Windows应用程序的结构入口点——_tWinMain，它提供应用程序的HINSTANCE、命令行参数和指示如何显示主窗口的标志。调用RegisterClass注册主窗口类。调用CreateWindow创建主窗口。调用ShowWindow和Upd]]></description><category></category></item><item><title><![CDATA[CString ,BSTR ,LPCTSTR之间关系和区别]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/3864891</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/3864891</guid><author>mythfish</author><pubDate>Thu, 05 Feb 2009 18:31:00 +0800</pubDate><description><![CDATA[本文转自(http://www.cnblogs.com/goldenocean/archive/2007/01/14/620104.html) CString是一个动态TCHAR数组，BSTR是一种专有格式的字符串（需要用系统提供的函数来操纵，LPCTSTR只是一个常量的TCHAR指针。CString 是一个完全独立的类，动态的TCHAR数组，封装了 + 等操作符和字符串操作方法。type]]></description><category></category></item><item><title><![CDATA[BSD net源码分析（4）──环回接口]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/3357666</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/3357666</guid><author>mythfish</author><pubDate>Sun, 23 Nov 2008 22:42:00 +0800</pubDate><description><![CDATA[这节介绍一下环回接口一、接口的初始化环回接口的作用是直接把输出队列的分组直接发送到输入队列。没用硬件设备，环回伪设备在main函数中通过环回接口的pdevinit结构中的pdev_attach指针直接调用loopatttach时初始化。voidloopattach(n)    int n;{    register struct ifnet *ifp = &loif;#ifdef lint    ]]></description><category></category></item><item><title><![CDATA[BSD net源码分析（3）──SLIP接口]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/3356799</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/3356799</guid><author>mythfish</author><pubDate>Sun, 23 Nov 2008 18:19:00 +0800</pubDate><description><![CDATA[本节将介绍SLIP接口一、SLIP接口概述SLIP接口通过一个标准的异步串行线与一个远程系统通信。通过SLIP帧为上层承载IP分组。每个分组使用0xc0来隔开，如果分组中出现该字符，需要该字符前填充字符0xdb，并将该字符转换为0xdc。如果字符中出现0xdb，在字符前填充0xdb，并替换字符为0xdd。SLIP接口依靠一个异步串行设备驱动器来发送和接收数据，驱动器称为tty。tty子系统包括一个]]></description><category></category></item><item><title><![CDATA[多clinet的C/S程序设计──样列代码]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/3321789</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/3321789</guid><author>mythfish</author><pubDate>Mon, 17 Nov 2008 22:19:00 +0800</pubDate><description><![CDATA[/* tcp_server.c*/#include #include #include #include #include #include #include #define MAXPENDING 5 /* max client requests */#define BUFFSIZE 32int die(char *mess) {fprintf(stdout, mess); return 1;}i]]></description><category></category></item><item><title><![CDATA[BSD net源码分析（2-4）]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/3161588</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/3161588</guid><author>mythfish</author><pubDate>Mon, 27 Oct 2008 22:49:00 +0800</pubDate><description><![CDATA[四、以太网接口的配置系统提供了系统调用ioctl函数为一个进程访问一个设备的标准系统所不支持的特性。int ioctl(int fd, unsigned long com,...);fd 是一个描述符，通常是一个设备和网络连接，com 指示ioctl函数所要执行的命令类型，第三个参数是可变的，由第二个参数决定他的内容。进程通过指定接口的fd，访问接口的特性。以下是网络接口所使用的几个命令以及对应的]]></description><category></category></item><item><title><![CDATA[BSD net源码分析（2-3）]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/3152370</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/3152370</guid><author>mythfish</author><pubDate>Sun, 26 Oct 2008 21:35:00 +0800</pubDate><description><![CDATA[三、以太网接口数据输出当网络层协议调用接口ifnet结构体中的if_output时，开始输出。所有以太网设备的if_output都指向ether_output函数，该函数封装以太网的头部，并将数据输入到接口的发送队列。（1）验证接口状态：主要是接口状态的校验，判断接口是否启用。/******************************************************/    i]]></description><category></category></item><item><title><![CDATA[MGCP协议分析——媒体能力协商]]></title><link>https://blog.youkuaiyun.com/mythfish/article/details/3137382</link><guid>https://blog.youkuaiyun.com/mythfish/article/details/3137382</guid><author>mythfish</author><pubDate>Fri, 24 Oct 2008 17:43:00 +0800</pubDate><description><![CDATA[   Normal  0        7.8 磅  0  2    false  false  false    EN-US  ZH-CN  X-NONE                                                    ]]></description><category></category></item></channel></rss>