016
LINUX系统中sock.c模块的分析样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
本设计包含内容:源代码+毕业论文
论文大概:
目
录
1引言………………………………………………………….……………………3
2
sock.c模块部分代码分析……….……………………………………………..3
2.1分析内容及工具……………………………………………….………...….3
2.2与上一层的调用关系………………………………………………………..3
2.3程序流程、功能、实现以及与下层调用关系……………………………………………………………………………………4
2.3.1
int sock_setsockopt(struct socket *sock, int level, int
optname,
char__user*optval, int optlen)……………………………....4
2.3.2
static int sock_set_timeout(long *timeo_p, char __user *optval,
int optlen)………………………………………………….….13
2.3.3 static void
sock_warn_obsolete_bsdism(const char *name)…………..15
2.3.4 static
void sock_disable_timestamp(struct sock *sk)…………….…....15
2.3.5
int sock_getsockopt(struct socket *sock, int level, int
optname,
char __user *optval, int __user
*optlen)………………..…….16
2.3.6 struct sock *sk_alloc(int family, int
priority,
int zero_it, kmem_cache_t
*slab)………………………..……22
2.3.7 void sk_free(struct sock
*sk)…………………………………………...24
2.3.8 void __init
sk_init(void)…………………………………………...…...25
2.4主要数据结构关系图………………………………………………….…....26
3
结束语……………………………………………………………………….…...27
参考文献……………………………………………………………………..…….27
附
录1….……………………………………………………………………….…28
附
录2……………………………………………………………………….…….40
LINUX系统中sock.c模块的分析
作者:许慧 指导老师:陈国顺
摘
要:Lninux是一款公开源代码的操作系统,经过多年来众多程序员对它的使用及完善,使得Linux的功能也日趋完善。目前越来越多的人投身于Linux的源代码分析,人们希望通过分析其源代码去了解操作系统的运作,或者提高自己的编程水平.本文主要介绍了Linux内核中的sock.c模块中的部分代码的流程、功能、上下层调用关系,以及与这些函数相关的数据结构之间的关系,差错处理等。
关键字:LINUX内核 ;scoket 分析;流程图;数据结构
The Analysis Of Sock.c In Linux
Abstract:Linux is a source-open operating system,used and
perfected by a lot of programmers in many years,it becomes more and
more perfect. now more an more academician throw themself into the
analyse in Linux source files,they hope to comprehend how the
operating system running,or they want to heighten their program
level.This text introduce some of the flow, function, transfer and
struct relation an error manage of the sock.c in Linux.
Key Words:Linux kernel;socket analyse; flow
chart;struct
1、引 言
在计算机技术的发展史上,UNIX操作系统的出现是一个非常重要的里程碑。而Linux是一个兼容了各种UNIX标准的多用户、多任务的具有复杂内核的操作系统。LINUX的一大优点就在于它的核心源代码的公开性,在安装好的系统中,LINUX的内核源代码在/usr/scr/linux下。早期的源代码并不是很多,但是随着LINUX的越来越完善,功能越来越强大,LINUX的源代码已经是非常庞大了,但是并不是杂乱无章的,通过进一步观察你可以发现源码目录中包含有
Kernel,mm 以及 net
等的目录,其中包含了许多的源文件,但是包含在其中的.c和.h文件并不是每个都会用到的,而是在编译时根据系统的配置有选择的使用。
目前越来越多的人投身于LINUX的核心源代码分析,在对LINUX源代码的分析者中,以对内存管理,中断,进程调度,文件系统,磁盘管理,网络等模块的分析的人居多,而在网络系统模块中,有分析数据报的,分析协议的等方面。在分析socket方面,研究内容多以分析net/socket.c及其涉及到的头文件为主。就sock.c来说,可以说它是比socket.c更为底层的,因为socket.c中所调用的函数很多就是调用这个文件里的。我们所要分析的而涉及到的文件就是基本包含在net下的。
2、sock.c模块部分代码分析
2.1分析内容及工具
本次分析的LINUX内核的版本是2.6.10,具体的内容则是是net\core\sock.c模块中的sock_set_timeout,sock_warn_obsolete_bsdism,sock_disable_timestamp,sock_setsockopt,sock_getsockopt,sk_alloc,sk_free,sk_init这几个函数。而所使用的工具主要是Source
Insight。