自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wenqian 'blog

厚积薄发——Practice makes perfect !

  • 博客(16)
  • 资源 (7)
  • 收藏
  • 关注

原创 【Linux 驱动】Netfilter/iptables (八) Netfilter的NAT机制

NAT是Network Address Translation的缩写,意即“网络地址转换”。从本质上来说,是通过修改IP数据首部中的地址,以实现将一个地址转换成另一个地址的技术。当然在某种情况下,修改的不仅仅是IP首部的来源或目的地址,还包括其它要素。 随着接入Internet的计算机数量不断猛增,IP地址资源也就愈加显得捉襟见肘。这也是Ipv6出现的一大原因。我们现在所有的IP地址是32位,意味

2015-12-27 21:28:08 3295 1

原创 【Linux 驱动】Netfilter/Iptables (七) 内核协议栈skb封装分析(续六)

上文介绍了netfilter机制下,如何重造并发送一个skb,涉及到内核协议栈编程,而不是我们平时所说的用户层socket网络编程。我们先来介绍下上面skb重构程序涉及到的几个函数: 首先,有必要说下,也是后面每段程序中都有说道的,就是开发源码树版本是3.13的,这个版本的skb_buff和我们常见的2.4、2.6有很大的不同。一、主要看一下四个字段://typedef unsigned int

2015-12-25 15:24:57 3411

原创 【Linux 驱动】Netfilter/iptables (六) 内核协议栈编程(发送skb)

内核态基于 Netfilter 构造skb数据包 前面第四篇介绍了 Netfilter Hook 机制,我们知道了数据包在协议栈中传递时会经过不同的HOOK点,而每个HOOK点上又被Netfilter预先注册了一系列hook回调函数,每个数据包经过时都会经过这些hook函数的处理。在hook回调函数中,你可以进行任何操作,这些操作你都可以自定义,然后以模块的形式加载进去。这里我们给出一个实例:每收

2015-12-25 10:33:22 5281

原创 【Linux 驱动】Netfilter/iptables (五) 数据包过滤

通过前面的学习,我们窥探了整个Netfilter框架,下面我们就通过一些编程实例来进一步学习。一. 基于网络设备接口进行数据包过滤 根据hook函数接收的参数中的 struct net_device 结构,net_device 结构体用于描述网络接口设备,其中name这个成员表示对应设备的名字,我们可以通过比对来判断数据包的源接口或目的接口。/*安装一个丢弃所有进入我们指定接口的数据包的 netf

2015-12-22 14:48:45 7523

原创 【Linux 驱动】Netfilter/iptables (四) 窥探 Netfilter Hook 机制

上篇文章介绍了注册和注销Netfilter/iptables,其中对于hook函数,我们没有具体到数据包的规则处理,直接一律来者皆拒(NF_DROP)。ok,我们接着前面,深入探索下hook函数:typedef unsigned int nf_hookfn(const struct nf_hook_ops *ops, struct sk_buff *s

2015-12-22 14:46:00 3705 1

原创 【Linux 驱动】netfilter/iptables (三) 注册和注销Netfilter hook

继前面介绍了 netfilter hook,这里我们开始进行实例讲解: wqlkp.c:#include <linux/module.h>#include <linux/kernel.h>#include <linux/netfilter.h>#include <linux/netfilter_ipv4.h>MODULE_LICENSE("Dual BSD/GPL");static stru

2015-12-22 10:58:37 3387 1

原创 【Linux 驱动】netfilter/iptables (二) Netfilter hook 数据结构

Netfilter是Linux 2.4.x 引入的一个子系统,它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤(filter)、网络地址转换(NAT)和基于协议类型的链接跟踪成为了可能。这些功能仅通过使用内核网络代码提供的各式各样的hook函数完成。对于数据在网络协议栈中的传送过程,前面我们花了较大篇幅,从原理到内核源码剖析了数据包在整个协议栈的传送过程,包括发送

2015-12-22 10:57:22 4442

原创 【Linux 驱动】netfilter/iptables (一) 基础概念

在介绍netfilter/iptables之前,我们先来了解下防火墙: 防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性。它通过访问控制机制,确定哪些内部服务允许外部访问,以及允许哪些外部请求可以访问内部服务。它可以根据网络传输的类型决定IP包是否可以传进或传出内部网。 防火墙通过审查经过的每一个数据包,判断它是否有相匹配的过滤规则,根据规则的先

2015-12-20 13:15:40 3527

原创 【Linux 驱动】中断处理(一)上半部

关于中断大家应该很熟悉,无论是操作系统的学习也好还是微机原理也好都会接触到中断。以前进行单片机单板开发的时候,会有外部中断,定时器中断以及串口中断,就是有一个事件触发(外部中断则是外部有按键触发(边缘触发和水平触发),串口中断则是串口有数据输入,定时器中断则是内部设置一个定时器,时间到了就触发),然后就去调用对应的中断处理函数。在此之前,需要保护现场,保存中断发生时的状态,比如寄存器,堆栈,各种变量

2015-12-20 10:43:00 2010 1

原创 【Linux 驱动】中断处理(二)下半部tasklet

前面我们介绍了Linux驱动的[中断处理程序机制]由于其本身存在一些局限,所以它只能完成整个中断处理流程的上半部分。这里我们则着重介绍下半部。

2015-12-17 16:23:28 1180

原创 【Linux 驱动】异步通知机制

异步通知机制:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,是一种“信号驱动的异步I/O”。信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候会到达。我们试图通过两个方面来分析异步通知机制: 从用户程序的角度考虑

2015-12-16 22:41:26 3440 1

原创 【Linux驱动】内存管理

关于linux内存管理的概念请参考笔者前面的博文: linux内存管理(一)基础篇 linux内存管理(二)伙伴算法 linux内存管理(三)slab分配器下面的驱动程序中的函数的区别,以及对应的函数介绍请参考第一个链接(linux内存管理基础篇)#include <linux/module.h>#include <linux/types.h>#include <linux/init.h>

2015-12-15 20:28:19 1468

原创 【Linux驱动】轮询操作select()和poll()

使用非阻塞I/O的应用程序通常会使用select()和poll()系统调用查询可对设备进行无阻塞的访问。select()和poll()系统调用最终会引发设备驱动中的poll()函数被执行。 select()和poll()系统调用的本质是一样的。本系列只关注设备驱动中的函数层,对于应用层具体请参考《APUE》或《TLPI》(linux/unix系统编程手册),楼主手上就有这两本书,在编写应用态测试

2015-12-12 15:27:40 4060

原创 【Linux驱动】阻塞型I/O(一)

校招结束很久了,回顾校招,除了阿里的笔试没通过以后,其余的均通过了笔试拿到面试机会(海康威视由于进错考场考错了试卷,没有拿到面试资格,不过后面去霸面,最后顺利拿到offer),在拿到几个还算重量级的offer以后,后面就开始休息了,大家都说今年的就业形势很艰难,说实话我没怎么感觉到,九月底底扎堆的公司太多了,曾记得,一天参加六场笔试+面试,不得不放弃一些面试,有舍有得嘛。 闲来无事,学习下linu

2015-12-11 21:19:35 1218

原创 【Linux驱动】阻塞型I/O(二+并发控制)

承接上文,这里继续学习linux内核驱动并发控制阻塞型I/O。 废话不多说,直接看代码,基础接口函数请自行查阅相关资料,比如《LDD》。 另外并发控制信号量和linux应用层的信号量概念和原理是差不多的,在内核态使用有所差别而已。

2015-12-11 20:49:57 1150

原创 【Linux驱动】字符设备驱动

本文假定读者具备一定linux基础以及对linux驱动基础有所了解。➜ ~ cat /proc/versionLinux version 3.13.0-43-generic (buildd@akateko) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #72-Ubuntu SMP Mon Dec 8 19:35:44 UTC 2014globa

2015-12-04 12:41:18 1161

排序二叉树完整代码

本代码涵盖二叉查找树的创建,插入,删除,添加,遍历等操作,结合http://blog.csdn.net/wenqian1991/article/details/18228309 可理解

2014-03-01

proteus8086实验指导书

8086的proteus仿真 实验指导书,比干巴巴的看编译器仿真好多了

2012-05-13

微机原理与接口技术重点难点及典型题精解

西交大出版的,同系列的电气类书籍都不错,市面上关于微机的参考书籍比较少(除教材配套的),

2012-04-04

C++项目实践

如题目所言,不过里面只有一个大型的C++开发项目,工资管理系统开发

2012-02-20

数据结构与算法分析 C++描述

很好的资料,正如题目所描述的那样,非常经典的一本书

2012-02-18

J-Link用户手册(中文)

J-Link用户手册(中文) 笔记本调试arm开发板

2011-05-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除