概述
虚拟设备是建立在一个或者多个真实设备上的抽象。虚拟设备和真实设备的对应关系时多对多的,但是并不是所有的组合都能被定义,或者被内核所支持。
初始化:
与真实设备一样,虚拟设备初始化时,被分配了net_device结构(注:别名设备是不需要分配net_device的)。通常,虚拟设备的net_device所包含的函数指针都是指向包裹函数,这些包裹函数都包含了相关的真实设备所使用的函数指针。...
分类:
系统相关 时间:
2015-02-11 10:53:22
阅读次数:
188
因工作需要,接触到了一台OpenSuSE系统的服务器,开始以为和CentOS一样只需要配置一个ifcfg-ethx文件即可,但是配置后却发现根本没有网络,遂去查询相关资料,OpenSuSE系统的网络设置如下:...
分类:
系统相关 时间:
2015-02-09 23:12:51
阅读次数:
216
可以说sk_buff结构体是Linux网络协议栈的核心中的核心,几乎所有的操作都是围绕sk_buff这个结构体进行的,它的重要性和BSD的mbuf类似(看过《TCP/IP详解 卷2》的都知道),那么sk_buff是什么呢? sk_buff就是网络数据包本身以及针对它的操作元数据。 想要理解sk_buff,最简单的方式就是凭着自己对网络协议栈的理解封装一个直到以太层的数据帧并...
分类:
其他好文 时间:
2015-02-08 15:31:04
阅读次数:
250
设备注册于设备除名
设备注册与设备除名一般有 register_netdev和unregister_netdev完成。这两个是包裹函数,负责上锁,真正起作用的是其调用的register_netdevice和unregister_netdevice。参见:net/core/dev.c。
下图描述了设备注册过程中的一些状态变化
状态的改变会用到...
分类:
系统相关 时间:
2015-02-08 11:36:59
阅读次数:
578
副标题:设备注册相关的基本结构的原理框架
设备注册与删除时间
设备在下列两种情况下进行注册:
1)加载NIC驱动时
2)插入热插拔设备时
这里NIC与热插拔设备有些不同。a.对于非热插拔NIC来说,NIC的注册是伴随着其驱动的发生的,而NIC可以内建到内核,也可以作为模块载入,如果内建入内核,则NIC设备和初始化均发生在引导时,如果NIC作为模块加载,则NIC的注册和...
分类:
系统相关 时间:
2015-02-06 13:20:15
阅读次数:
298
1:linux网络API分为:socker地址API,socker基础API,网络信息API 1,socker地址API:包含IP地址和端口(ip, port)。表示TCP通信的一端。 2,socker基础API:创建/命名/监听socker,接收/发起链接,读写数据,获取地址信息,检测带外标记.....
分类:
系统相关 时间:
2015-02-05 18:06:34
阅读次数:
153
引导期间的内核选项
Linux允许用户把内核配置选项传给引导记录,再有引导记录传给内核,以便对内核进行调整。
start_kernel中调用两次parse_args,用于引导期间配置用户输入数据。
parse_param是一个函数,用于解析输入的内核配置选项的参数字符串。字符串的格式为:name_variable=value。寻址特定关键字,并调用对应的函数。...
分类:
系统相关 时间:
2015-02-05 16:23:26
阅读次数:
273
概述
内核的PCI子系统(即PCI层)提供了不同设备一些通用的功能,以便简化各种设备驱动程序。
PCI层重要结构体如下:
pci_device_id
设备标识,根据PCI标志定义的ID,而不是Linux本地的。
pci_dev
类似于网络设备的net_device。每个PCI会被分配一个net_dev实例。
pci_driv...
分类:
系统相关 时间:
2015-02-05 15:04:25
阅读次数:
298
1、netstat -tuln(TCP udp lister ,n显示地址和端口号)查询当前计算机开了哪些端口0代表很通畅tcp才有监听的状态 udp没有监听------------------listen 的 EN换行了,修改 secureCRT的逻辑行,逻辑列大一点点即可2、netstat -a...
分类:
系统相关 时间:
2015-02-04 00:19:04
阅读次数:
266
概述
内核的初始化过程过程中,与网络相关的工作如下所示:
内核引导时执行start_kernel,start_kernel结束之前会调用rest_init,rest_init初始化内核线程init(在Linux3-12中为kernel_init)。
asmlinkage void __init start_kernel(void)
{
...
parse...
分类:
系统相关 时间:
2015-02-03 15:05:14
阅读次数:
264