Chinaunix首页 | 论坛 | 博客
  • 博客访问: 698927
  • 博文数量: 193
  • 博客积分: 1875
  • 博客等级: 上尉
  • 技术积分: 2187
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 23:21
个人简介

有时候,就是想窥视一下不知道的东东,因为好奇!

文章分类

全部博文(193)

文章存档

2024年(9)

2023年(3)

2020年(1)

2019年(1)

2018年(1)

2017年(2)

2016年(69)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2015-07-23 22:17:35

第一章
1.1基本路线和要求
    1.本书主要特点
    2.socket的概念与意义
    3.分析路线
        服务器: socket() -->bind()-->listen()-->accept()-->read()-->write()-->close();
        客户端: socket()->connect()-->write()-->read()-->close()
    4.阅读要求
1.2TCP/IP协议层的划分与基本知识
    1.TCP/IP协议层的划分
        链路层-->网络层-->传输层-->应用层
    2.TCP/UDP协议的基本知识
1.3函数到系统调用的过程
    归纳为以下几点:
    1. glibc库将socket()函数用weak_alias()定义一个别名__socket(). 在其它地方定义真实的的__socket()函数
        如: 在glibc中定义socket()的别名为__socket(), 在glibc-2.14/sysdeps/unix/sysv/linux/i386/socket.S中定义真实的__socket()函数.
   2. 
函数__socket()的真实版本中, 将__NR_socketcall传递给eax寄存器, SOCKOP_socket传递给ebx寄存器, esp的内容传递给ecx寄存器. 然后进入系统调用int $0x80
   3. 进入系统调用用, 以eax为索引执行系统调用表中相应的函数sys_socketcall(). 在此函数中, 以ebx作为转换值跳转到sys_socket()函数中执行执行.
1.4网络文件系统
    1. 网络文件系统结构static struct file_system_type sock_fs_type = {...};
    2. 初始化过程中会注册register_filesystem(&sock_fs_type)
    3. 并安装网络文件系统kern_mount(&sock_fs_type)
    4. 安装过程中用到sock_fs_type结构中的get_sb()钩子函数(挂入的是sockfs_get_sb), 其中get_sb_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC, mnt)完成.
    
阅读(655) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~