Linux网卡驱动开发总结
1. 网络子系统
* 系统调用接口
* 协议无关层
* 协议实现层
* 驱动无关层
* 驱动程序层
注:调用接口<->协议层<->驱动程序
2. 网卡驱动程序
* 位于数据链路层
3. 关键数据结构
* struct net_device
* struct sk_buffer
4. 初始化
* 生成net_device,并初始化其成员
* 根据需要,对网卡自身寄存器进行设置,如端口类型选择、双工选择等等
5. 接收
* 通过中断
* 主要流程
分配skb
读数据
netif_rx(skb)
6. 发送
* hard_start_transmit
相关文档:
总览
用iptables -ADC 来指定链的规
则
,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......
2009 年 4 月 23 日
本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。
背景
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微 ......
vi 中关闭出错 bell 声音
http://blog.csdn.net/coolrocky/archive/2001/06/05/8080.aspx
去除虚拟机Linux的报警声
http://hi.baidu.com/zjd168/blog/item/c8300846b5a6ec0e6a63e5d8.html
关闭主板报警音
http://linux.chinaunix.net/techdoc/install/2009/05/16/1112897.shtml
linux中关闭报警音和修改分辨率
http ......
LINUX中时间有两种:
1)日历时间
2)进程时间
日历时间顾名思义即用来获取日历;
主要涉及到的函数有:
time(time_t*);
stime(time_t*);
tm* gmtime(time_t*);
tm* localtime(time_t*);
char *strftime(tm*);
char *asctime(tm*);
time_t* mktime(tm*);
数据结构如下:
time_t
struct tm{
int tm_se ......
1. #vi /etc/profile,增加ulimit -HSn 65536
2. #vi /etc/security/limits.conf,为你的用户增加
user soft nofile 38192
user hard nofile 65536
3. 重启Shell即可
4. ulimit -a 查看设置是否成功。
5. 查看系统总限制的命令:
#cat /proc/sys/fs/file-max
6 ......