易截截图软件、单文件、免安装、纯绿色、仅160KB

【转帖LINUX】netfilter中的conntrack内核阅读笔记(2)


2008-07-07 22:05
初始化
1,ip_conntrack_standalone_init是contrack模块的初始化函数。它主要完成以下内容:
   /*1, 初始化conntrack相关的数据结构,如hash表,ip_conntrack_protocol以及内存管理等*/
ret = ip_conntrack_init();
if (ret < 0)
     return ret;
#ifdef CONFIG_PROC_FS
/* 在/proc目录下创建"ip_conntrack","ip_conntrack_expect"记录连接跟踪信息*/
……
#endif
/*2,为conntrack注册hook点*/
ret = nf_register_hooks(ip_conntrack_ops, ARRAY_SIZE(ip_conntrack_ops));
if (ret < 0) {
     printk("ip_conntrack: can't register hooks.\n");
     goto cleanup_proc_stat;
}
#ifdef CONFIG_SYSCTL
/*3,注册sysctrl的操作函数集*/
ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table, 0);
if (ip_ct_sysctl_header == NULL) {
     printk("ip_conntrack: can't register to sysctl.\n");
     ret = -ENOMEM;
     goto cleanup_hooks;
}
#endif
2,ip_conntrack_init:
   /*1,完成hash的初始化,hash桶的大小为内存大小的1/16384 ,在i386中,若内存小于32M,hash桶为256个,若大于1G,桶为8196个。Hash表的大小为桶个数的8倍,用ip_conntrack_hash 指针表示*/
    if (!ip_conntrack_htable_size) {
         ip_conntrack_htable_size
              = (((num_physpages << PAGE_SHIFT) / 16384)
                 / sizeof(struct list_head));
         if (num_physpages > (1024 * 1024 * 1024 / PAGE_SIZE))
              ip_conntrack_htable_size = 8192;
         if (ip_conntrack_htable_size < 16)
              ip_conntrack_h


相关文档:

linux—select详解

linux—select详解
select系统调用时用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。
关于文件句柄,其实就是一个整数,通过socket函数的声明就明白了:
int socket(int domain, int type, int protocol);
我们最熟悉的句柄是0、1、2 ......

linux文件的权限修改chmod用法

指令名称 : chmod
使用权限 : 所有使用者
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
参数 :
mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
......

读后感2 linux学习

果然是过了好久,这次又准备开始学习linux了。系统的学习和在网上找点只言片语的了解果然是不一样的。看完这点章节,自己就再做做总结吧。
我大概了解下来是这样的。对于linux的文件系统来说,下面有很多“文件”,这些“文件”包括了设备、磁盘驱动器等等。比如"\"表示根目录,而\user是用来装整个操 ......

建立ARM+Linux应用程序调试环境

http://blog.csdn.net/dinitial/archive/2009/02/22/3923559.aspx
Gdb+gdbserver+insight环境的搭建
1.    下载gdb源代码    http://ftp.gnu.org/gnu/gdb/
2.    配置安装gdb+gdbser
$ tar jxvf gdb-6.6.tar.bz2
$ cd x/gdb
$ ./configure --target=arm-linux --prefix ......

Notes for Advanced Linux Programming 4. Threads

4.  Threads
To use the POSIX standard thread API (pthreads), link libpthread.so
to your program.
4.1. Thread Creation
Each thread in a process is identified by a thread ID,
pthread_t.
The pthread_self function returns the thread ID of the current
thread.
This thread IDs can be compared ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号