发布时间:2013-08-21 17:19:33
首先以socket和send两个系统调用为例,来回顾一下协议栈是如何工作的,在这过程中可以找到如何在协议栈中增加对UDP协议的支持。socket系统调用的原型是int socket(int domain, int type, int protocol);domain是协议域,对于ipv4协议来说,其值是PF_INET(ipv4因特网协议),对于我们自己实现的ipv4协议模块,我们为其新增MY_PF_INET。所有的协议域在include/linux/socket.h被定义,如下:#define AF_UNSPEC 0#define AF_UNIX 1 // Unix域的socket......【阅读全文】
发布时间:2013-08-21 17:19:26
操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。 Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心。 Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于/usr/src/Linux-2.4.23目录):arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录......【阅读全文】