摘要: 这几天学习关于GCC在进行编译链接的时候到底进行了什么样的工作。我就感觉这些东西要是不明白的话就总是感觉写程序的时候不安心,总感觉不能透彻的了解这个问题,所以找了一些资料来看,来争取解决这个困扰的问题。参考资料:程序员的自我修养。强烈推荐,这是本好书同时推荐一个系列博文,编程修养,写的很好。平台:linux编译器:GCC源文件:hello.c到底GCC在将源文件编程可执行文件的时候做了什么工作呢,首先你得指导GCC的常用命令吧,GCC在工作的步骤为:1. 预编译 命令: gcc -E hello.c -o hello.i或者 cpp hello.c > hello.i然后你就可以gedi 阅读全文
posted @ 2012-07-04 13:50 熊猫基地 阅读(232) 评论(0) 推荐(0)
摘要: 先贴出关于linux内核数据结构之链表部分。list.h完全注释。先复习下:上次说了net_device这一个结构相当于是说了物理设备层,这里有必要说明一下net_device和驱动程序的关系。net_device中包含了各种用于发送接收设备的函数指针,这些函数指针指向驱动程序中那些你自己设计编写的发送和接收的函数,驱动程序就是直接来对物理设备寄存器进行操作的,所以这里理清这个思路,上层的N个协议将数据包好之后,通过网络设备来调用驱动程序的发送函数,将数据包发送出去,那应该是你现在脑海中对协议栈的理解了。至于以后的工作就是慢慢深入协议内部进行了。下面我们说说接口层,按照的是从底向上的方式来说的 阅读全文
posted @ 2012-07-04 13:48 熊猫基地 阅读(196) 评论(0) 推荐(0)
摘要: 开始看协议栈了,采用从底向下的结构来介绍网络协议栈中涉及到的数据结构。我一般采用在线的读源码。地址:http://lxr.linux.no在这里没有原创,只是学习心得。1. net_device 结构 , 是网络设备的一个抽象,里面的属性很多,不需要全看明白,也蛮难看懂的。尝试着看,看不明白的时候就记着属性名字,到后面看到用这个属性的时候一定要回想起来,这样就行了。net_device结构的设计有点问题,它将函数接口和数据属性设计到了一起,导致这个结构十分的庞杂。一个结构出来了,之后就是关于这个结构如何组织,如何分配,如何释放,以及对这个结构可以进行的操作了,net_device在内核中的组织 阅读全文
posted @ 2012-07-04 13:47 熊猫基地 阅读(432) 评论(0) 推荐(0)