﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-猫头上的鹰－猫头鹰-随笔分类-源码分析</title><link>http://www.cnitblog.com/tinnal/category/7778.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 15:53:12 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 15:53:12 GMT</pubDate><ttl>60</ttl><item><title>Code::Blocks 编译内核插件 失败</title><link>http://www.cnitblog.com/tinnal/archive/2008/12/02/52151.html</link><dc:creator>猫头鹰</dc:creator><author>猫头鹰</author><pubDate>Tue, 02 Dec 2008 07:57:00 GMT</pubDate><guid>http://www.cnitblog.com/tinnal/archive/2008/12/02/52151.html</guid><wfw:comment>http://www.cnitblog.com/tinnal/comments/52151.html</wfw:comment><comments>http://www.cnitblog.com/tinnal/archive/2008/12/02/52151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tinnal/comments/commentRss/52151.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tinnal/services/trackbacks/52151.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp; 这段时间一直研究源码分析系统，后来发现了Code::Blocks这个编译器原码，就有了开发一个编译和调试内核IDE的想法。在为Code::Blocks是基于WxWidget编写的一个原码开放的IDE，可以在Windows和Linux下运行，而且是高度的插件化，一找到它我就爱上它了。和它相类似的还有codelite，不过这个程序结构考虑得不够Code::Blocks深入，所以最终，我选择了Code::Blocks开刀，它本来只是一个编译普通程序的编译器，和其它Linux下的编译器大相径庭的是，它采用了类似VC那种内部的项目文件管理而没有采用Makefile。所以最先需要的改动，就是增加支持Makefile工程的插件。</p> <p>&nbsp;&nbsp;&nbsp; 由于Code::Blocks是基于WxWidget的，所以也花了很长的时间在它在面，然后是就Code::Blocks的内部结构。今天终于把Makefile工程的插件弄出来了，Code::Blocks太慢了（一是由于插件的方式比编一编译运行效率低，二是由于Code::Blocks内部的项目管理我们是不能绕过的，虽然我们不用，三是内核文件实在太多了，快2万个文件了）。真的有点灰心了。因为当时还考虑过用eclipse来开发的。</p><img src ="http://www.cnitblog.com/tinnal/aggbug/52151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tinnal/" target="_blank">猫头鹰</a> 2008-12-02 15:57 <a href="http://www.cnitblog.com/tinnal/archive/2008/12/02/52151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux源代码分析和阅读工具比较</title><link>http://www.cnitblog.com/tinnal/archive/2008/11/07/51202.html</link><dc:creator>猫头鹰</dc:creator><author>猫头鹰</author><pubDate>Fri, 07 Nov 2008 04:56:00 GMT</pubDate><guid>http://www.cnitblog.com/tinnal/archive/2008/11/07/51202.html</guid><wfw:comment>http://www.cnitblog.com/tinnal/comments/51202.html</wfw:comment><comments>http://www.cnitblog.com/tinnal/archive/2008/11/07/51202.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.cnitblog.com/tinnal/comments/commentRss/51202.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tinnal/services/trackbacks/51202.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:      Windows下的源码阅读工具Souce Insight凭借着其易用性和多种编程语言的支持，无疑是这个领域的“带头大哥”。Linux/UNIX环境下呢？似乎仍然是处于百花齐放，各有千秋的春秋战国时代，实际上，似乎其环境下的任何软件都是处于一种逐鹿中原的态势，也许这就是“集市”之于“大教堂”的优势所在吧！主要的交叉索引工具有：ctags、cscope、global、lxr、KScope、sourcenav、calltree、CodeViz、ncc、gprof等。下面将就各软件的优劣作一简单介绍。这里面当中，我当前分析过他们的源码的有lxr、sourcenav、calltree、ncc。现在正在sourcenav的基础上进行我需要的改造以更合适分析内核需要。KScope需要进一部考察和分析，如果KScope的代码分析能力（也就是scope的能力）跟得上sourcenav可能到时会放弃sourcenav转到KScope开发，因为sourcenav的界面和交互性都不怎么好。&nbsp;&nbsp;<a href='http://www.cnitblog.com/tinnal/archive/2008/11/07/51202.html'>阅读全文</a><img src ="http://www.cnitblog.com/tinnal/aggbug/51202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tinnal/" target="_blank">猫头鹰</a> 2008-11-07 12:56 <a href="http://www.cnitblog.com/tinnal/archive/2008/11/07/51202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>源码分析开篇</title><link>http://www.cnitblog.com/tinnal/archive/2008/11/07/51170.html</link><dc:creator>猫头鹰</dc:creator><author>猫头鹰</author><pubDate>Fri, 07 Nov 2008 02:29:00 GMT</pubDate><guid>http://www.cnitblog.com/tinnal/archive/2008/11/07/51170.html</guid><wfw:comment>http://www.cnitblog.com/tinnal/comments/51170.html</wfw:comment><comments>http://www.cnitblog.com/tinnal/archive/2008/11/07/51170.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/tinnal/comments/commentRss/51170.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tinnal/services/trackbacks/51170.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:      自从写了一些视频的东西后就很久没有写东西了，视频的实例打算有时间的话和我培训班的学生弄出来以后再接着写。<br><br>     这段时间的前半部份重新看了一下2.4内核的原码，对于网上很多人说2.4内核过时，要读就读2.6的，要写就写2.6的内核的说话，我其实挺有意见的。我认为经典的原码没有过时这一说法，嵌入式不是PC，本来就是本着够用的前提下越低成本越好的。谁敢说八几年代产的8051过时。相对于动咋几M的2.6内核，才几百K的2.4真的是娇小玲珑。<br><br>     因为前几次都是以学习的方式去读，这一次也不例外（第一点的记性差，读完就忘，第二点是因为第一次读都有新感受），但这一次目和性有点变了，就是不单想把每一个局部原源读懂，而且想进一步的弄明百函数之间、文件之间、硬件相关代码和硬件完关代码之间的关联。特别的，是硬件相关代码和硬件完关代码的API。包括如下：<br>    1：新加一个体系结构，我们应该实现那些接口<br>    2：在一种体系结构如ARM中，新加一个支持平台，我们应实现那些接口<br>&nbsp;&nbsp;<a href='http://www.cnitblog.com/tinnal/archive/2008/11/07/51170.html'>阅读全文</a><img src ="http://www.cnitblog.com/tinnal/aggbug/51170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tinnal/" target="_blank">猫头鹰</a> 2008-11-07 10:29 <a href="http://www.cnitblog.com/tinnal/archive/2008/11/07/51170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>