百度空间 | 百度首页 
 
文章列表
 
您正在查看 "默认分类" 分类下的文章

2007年06月11日 星期一 上午 09:10

     自今年年初起,由于一些个人原因,本博客暂停更新,目前还有UDP版、TCP版未发布,在一段时间后,会补充完整。具体时间未定。
     如果现有的内容能够对你的工作,学习有所帮助,我会感到非常高兴。但由于技术的东西本身具有特殊性,我目前在暂时不关注这一块的情况下,很难一下子跟您进行深入的探讨,所以,所有关于技术咨询的来信,恕不回复,还望谅解。

类别:默认分类 | 评论(5) | 浏览()
 
2006年12月31日 星期日 下午 06:10
      跌跌撞撞把TCP/IP协议栈的实现搞了一年,其间得到了很多朋友的帮助和支持,在这里衷心地感谢大家。12月由于家里有些事情,以至于未能在月底如期完成IP完整版,目前还差IGMP有部分未完成,看来只能等2007年了。
      希望在新的一年里,我们能一如既往的互相帮助,互相支持,共同提高,谢谢大家。
类别:默认分类 | 评论(3) | 浏览()
 
2006年08月31日 星期四 下午 07:21
    我们以gettimeofday系统调用为例,来讲述系统调用实现的原理与流程。在用户空间,是这样调用该系统调用的:
        #include <sys/time.h>
        int gettimeofday(struct timeval *tv, struct timezone *tz);
    而真正调用的内核函数的定义是这样的:
        asmlinkage long sys_gettimeofday(struct timeval __user *tv, struct timezone __user *tz);
    它们之间的联系是通过封装例程来实现的,Linux定义了从_syscall0到_syscall5共6个宏。数字0到5对应着系统调用所用的参数数量,所以,任何一个系统调用,其参数的数量是不能超过5个的。gettimeofday的参数有两个,所以它使用宏_syscall2封装,在用户空间,宏_syscall2这样定义(linux/unistd.h文件中):
    #define _syscall2(type,name,type1,arg1,type2,arg2) \
    type name(type1 arg1,type2 arg2) \
    {\
    
类别:默认分类 | 评论(8) | 浏览()
 
2006年08月31日 星期四 上午 07:04
    接下来介绍struct module结构体的成员struct module_kobject mkobj,该成员是一个结构体类型,结构体的定义如下:
        struct module_kobject{
            struct kobject kobj;
            struct module *mod;
        };
    mod指向包容它的struct module成员,kobj是一个struct kobjecy结构体,kobject是组成设备模型的基本结构。设备模型是在2.6内核中出现的新的概念,因为随着拓扑结构越来越复杂,以及要支持诸如电源管理等新特性的要求,向新版本的内核明确提出了这样的要求:需要有一个对系统的一般性抽象描述。设备模型提供了这样的抽象。
    设备模型是一个较为复杂的概念,首先来理解kobject。kobject最初只是被理解为一个简单的引用计数,但现在也有了很多成员,它所能处理的任务以及它所支持的代码包括:对象的引用计数;sysfs表述;结构关联;热插拔事件处理。下面是kobjec
类别:默认分类 | 评论(2) | 浏览()
 
2006年08月29日 星期二 下午 08:55
    结构体struct module在内核中代表一个内核模块,通过insmod(实际执行init_module系统调用)把自己编写的内核模块插入内核时,模块便与一个struct module结构体相关联,并成为内核的一部分。下面是结构体struct module的完整定义,接下来会逐个解释:
    struct module
    {
        enum module_state state;
        struct list_head list;
        char name[MODULE_NAME_LEN];
        struct module_kobject mkobj;
        struct module_param_attrs *param_attrs;
        const char *version;
        const char *srcversion;
        const struct kernel_symbol *syms;
        unsigned int num_syms;
类别:默认分类 | 评论(0) | 浏览()
 
     
 
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   
 
 

我想请问:最大报文段长度(MSS)是最大的数据发送长度还是最大的数据接收长度?在书...
 

非常感谢!
 

不错不错,牛人啊
 
     


©2009 Baidu