linux学习中
发布时间:2013-11-05 15:46:42
Linux网络协议栈(二)——套接字缓存(socket buffer)Linux网络核心数据结构是套接字缓存(socket buffer),简称skb。它代表一个要发送或处理的报文,并贯穿于整个协议栈。1、 套接字缓存skb由两部分组成:(1) 报文数据:它保存了实际在网络中传输的数据;(2) 管.........【阅读全文】
发布时间:2013-11-05 15:45:10
Linux网络协议栈(三)——网络设备(2)2.1、网络设备的注册与注销注册网络设备发生在下列情形: (1)加载网卡驱动程序 网卡驱动程序如果被编译进内核,则它在启动时被初始化,在运行时被作为模块加载。无论初始化是否发生,所以由驱动程序控制的网卡都被注册。 (2)插入可热拔插网络设备 &.........【阅读全文】
发布时间:2013-11-05 15:44:16
Linux网络协议栈(四)——链路层(1)1、接收帧当网络适配器接收到数据帧时,就会触发一个中断,中断处理程序执行一些需要及时处理的任务,然后在下半部进行其它可以延迟的处理。中断处理程序主要进行以下一些操作:(1) 分配sk_buff数据结构,并将接收到的数据帧从网络适配器I/O端口拷贝到sk_buff缓冲区.........【阅读全文】
发布时间:2013-11-05 15:41:14
关键代码段(Critical Sections) 和自旋锁(Spinlocks)写在前面:今天一哥们问我,windows的临界代码是自旋还是等待,当时想了想应该是等待,后来翻了一下《Windows via C/C++》,发现还有点小意思。总结一下先。关键代码段是指一个小代码段,在代码能够执行前,它必须独占对某些共享资源的访问权。这是让若干行代码能够.........【阅读全文】
发布时间:2013-11-05 15:39:38
内核随记(四)--文件系统(1)任务管理、内存管理和文件系统是内核最为核心的部分。其中内存管理最为复杂,文件系统最为庞大。内核通过引入虚拟文件系统,从而支持数十种不同的文件系统,不得不让人感叹Linux以及它显示出的开源的力量的强大。虚拟文件系统(Virtual Filesystem),也可以称为虚拟文件系统转换(Virual F.........【阅读全文】