ifconfig源码分析之与内核交互数据

本文详细分析了ifconfig工具的源码,特别是它如何与内核交互获取网络接口信息。通过讲解获取ifconfig源码、输出结果解释、应用层与内核层的交互、ioctl使用以及/proc/net/dev文件,揭示了ifconfig工作的核心过程。通过对ifconfig与内核交互的源码剖析,加深了对网络接口管理和应用层与内核通信的理解。
摘要由CSDN通过智能技术生成
《ifconfig源码分析之与内核交互数据》
本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性。
参考资料:《Linux设备驱动程序 第三版》,scull源码,Linux内核源码
来源:http://blog.csdn.net/rosetta/article/details/7563615

    ifconifg是Linux提供的一个操作网络接口的应用层程序,虽然和设备驱动编写没什么联系,但分析它的部分核心代码有助于理解应用层和内核层交互过程。
    这也是对《字符设备驱动程序编写基础》最后提出的问题的一个解答。
    ifconifg.c文件一千多行再加上相关公共文件大概会达到二千行,只分析其与内核交互过程,其它部分有兴趣的朋友可以自行分析。

知识点:
* 获取ifconfig源码方法。
* ifconfig 输出结果解释。
* 应用层和内核层交互过程。
* ioctl的使用。
* 认识/proc/net/dev。

一、获取ifconifg源码包并编译。
  [root@xxx net-tools-1.60]# type ifconfig          
  ifconfig is hashed (/sbin/ifconfig)
  [root@xxx net-tools-1.60]# rpm -qf /sbin/ifconfig
  net-tools-1.60-78.el5
  可知ifconfig属于net-tools源码包,下载之。net-tools源码包不仅包含ifconifg,还包含常用的arp、route、netstat等工具源码。
 
  直接make,应该会有错误,按着错误提示修改下源码即可。

二、ifconifg eth0执行结果解释
  [root@ xxx]# ./ifconfig eth0
  eth0      Link encap:Ethernet  HWaddr 00:0C:29:9a:26:37  
            inet addr:192.168.95.162  Bcast:192.168.95.255  Mask:255.255.255.0
            inet6 addr: fe80::21c:29ff:fe9b:2637/64 Scope:Link
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:2495308 errors:0 dropped:0 overruns:0 frame:0
            TX packets:2215616 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:998016881 (951.7 MiB)  TX bytes:886972155 (845.8 MiB)
          
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值