奔跑的路

要么行走在路上,要么静思于眼下。
私信 关注
奔跑的路
码龄10年
  • 1,372,747
    被访问量
  • 137
    原创文章
  • 2,261
    作者排名
  • 1,168
    粉丝数量
  • 毕业院校 南邮
  • 于 2011-05-24 加入CSDN
获得成就
  • 获得351次点赞
  • 内容获得116次评论
  • 获得1,226次收藏
荣誉勋章
TA的专栏
  • 无线局域网开发
    21篇
  • bootload详细分析——废铁是怎么产生价值的
    12篇
  • 路由器相关
    8篇
  • linux相关
    22篇
  • 网络基础
    26篇
  • Delta
  • ubuntu小问题
    6篇
  • 生活常态
    2篇
  • Linux C编程
    32篇
  • 网络编程
    25篇
  • shell
    60篇
  • linux驱动
    10篇
  • c语言
    9篇
  • git
    17篇
  • bootload
    22篇
  • wireless
    44篇
  • linux网络内核
    37篇
  • 数据结构
    4篇
  • 文件系统
    1篇
  • 网络协议
    5篇
  • 调试
    8篇
  • 编译
    1篇
  • 编译错误收集
    1篇
  • 深入理解linux内核
    1篇
  • http
    9篇
  • iptables和ebtables
    14篇
  • 源代码分析
    1篇
  • 函数收集
  • 工具使用
    6篇
  • 内核
    1篇
  • web前端
  • Windows
    2篇
  • 网络安全
    5篇
  • openwrt
    6篇
  • python
    3篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Linux内核驱动——并发和竞争的处理

加锁和互斥的目的是为了保护共享资源(数据或外设地址)不被多个线程同时访问,而不是保护代码被同时执行 一、信号量信号量为1表示资源可用,为0表示资源不可用,对信号量的加减主要涉及PV操作,进入临界区调用P操作(down)将信号量减1,推出临界区调用V操作(up)将信号量加1.1. 信号量的实现struct semaphore *sem;void semaphore_init(...
原创
1402阅读
1评论
2点赞
发布博客于 3 年前

802.11kvr协议汇总.zip

802.11kvr.zip802.11kvr.zip802.11kvr.zip802.11kvr.zip802.11kvr.zip
zip
发布资源于 3 年前

80211r原理明细

80211r原理明细80211r原理明细80211r原理明细80211r原理明细80211r原理明细
pdf
发布资源于 3 年前

80211r的无线局域网漫游技术的研究与实现

80211r的无线局域网漫游技术的研究与实现80211r的无线局域网漫游技术的研究与实现80211r的无线局域网漫游技术的研究与实现80211r的无线局域网漫游技术的研究与实现
pdf
发布资源于 3 年前

Linux内核学习笔记——中断,tasklet和工作队列

对于操作系统来说,中断的实现和裸机代码是不一样的,对于裸机代码来说,它的处理过程更符合下面这个流程,我们在编写裸板驱动代码的时候,一般处理的是硬件中断,而且中断号也是硬件中断号,这个中断号是和CPU寄存器的连线方式直接相关的,只要连线方式一确定,那么外设对应的中断号就确定了。比如在下面这个图中,中断源可以是TIMER或者BUTTON,对应的中断号是6和16,当这些外设产生中断信号的时候,它首先通过...
原创
6161阅读
0评论
3点赞
发布博客于 3 年前

ARM驱动开发

LASO嵌入式培训相关资料 驱动开发相关 LASO嵌入式培训相关资料 驱动开发相关
pdf
发布资源于 3 年前

vmware ubuntu搭建samba用于和windows共享

        实现过程:                1.sudo apt-get samba                2.ps -aux 查看服务是否开启    smbd -F nmbd -D(若未开启  执行sudo /etc/init.d/smbd start )                3.在home下创建share文件夹   mkdir   /home/share  (注...
原创
1569阅读
1评论
1点赞
发布博客于 3 年前

嵌入式开发相关书籍

嵌入式开发相关书pdf 嵌入式开发相关书pdf 嵌入式开发相关书pdf
zip
发布资源于 3 年前

Linux 内核网络协议栈 ------sk_buff 结构体 以及 完全解释 (2.6.16)

在2.6.24之后这个结构体有了较大的变化,此处先说一说2.6.16版本的sk_buff,以及解释一些问题。一、先直观的看一下这个结构体~~~~~~~~~~~~~~~~~~~~~~在下面解释每个字段的意义~~~~~~~~~~~[cpp] view plain copy struct sk_buff {           /* These two members must be first. */...
转载
789阅读
1评论
0点赞
发布博客于 3 年前

selenium-python官方文档

selenium-python官方文档 selenium-python官方文档 selenium-python官方文档 selenium-python官方文档 selenium-python官方文档
pdf
发布资源于 3 年前

selenium webdriver 页面css和xpath定位

对于html来说,不管用什么浏览器打开,他的架构是不变的,所以对于编写自动化测试程序来说,基于什么浏览器开发,差异不大,所以这里推荐使用chrome 65或以后版本浏览器,之所以推荐这个浏览器,是因为它可以不用安装任何插件,就可以很方便的提供定位相关的功能。chrome浏览器可以用F12调出调试窗口,用ctrl + F可以调出选择器和xpath搜索输入框,在搜索时可以显示搜索到结果的个数,如果搜索...
原创
1152阅读
0评论
0点赞
发布博客于 3 年前

【Python】 Selenium常见元素定位方法和操作的学习介绍

这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法、鼠标操作、键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~        前文目录:        [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)        [Python爬虫] 在Windows下安装PIP+Phantomjs+Seleni...
转载
898阅读
0评论
0点赞
发布博客于 3 年前

【Python】selenium webdriver 启动三大浏览器Firefox,Chrome,IE

一. 安装Python3     1. 进入Python官方网站:https://www.python.org/downloads/  下载并安装最新版本的Python(建议安装Python3) 。  下面是Python官网上几个版本的区别:                     (1).web-based installer 是需要通过联网完成安装的                     (...
转载
2763阅读
0评论
0点赞
发布博客于 3 年前

学习Linux-4.12内核网路协议栈(3.2)——网路层的发包处理

上篇文章介绍了接口层将IP包传给网络层以后的处理过程,主要是包括传给上层,转发和丢包处理。这篇文章将介绍传输层怎么将包传递给网络层,以及传给网络层以后的处理过程。这里主要分两部分:TCP包的发送和UDP包的发送。在TCP中,将TCP段打包成IP数据报的方法根据TCP段类型的不同而有多种接口,最常用的就是ip_queue_xmit,而ip_build_and_send_pkt和ip_send
原创
1611阅读
1评论
1点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(3.1)——网路层的收包处理

现在我们将进入传输层的分析:在前面我们知道,数据包到达接口层的时候,它会根据ptype_base来查询包的类型,并根据包的类型交给不同的网络层函数处理,比如ip_recv,icmp_recv等,现在我们就来看看网络层是怎么处理不同类型的包的:1. IP私有信息控制块 40 struct inet_skb_parm { 41 int iif;
原创
1550阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(2.4)——接口层数据包的发送

这篇文章主要介绍网络层的数据是怎么通过接口层将数据发送出去的,在开始之前我们还是再来看一下softnet_data这个很重要的结构体:struct softnet_data { struct list_head poll_list; struct sk_buff_head process_queue; /* stats */ unsigned int
原创
1704阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(2.3)——接口层数据包的接收(下半部)

我们来继续分析net_rx_action:static __latent_entropy void net_rx_action(struct softirq_action *h){ struct softnet_data *sd = this_cpu_ptr(&softnet_data); unsigned long time_limit = jiffies +
原创
1206阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(2.2)——接口层数据包的接收(上半部)

前面写了这么多,终于可以开始分析数据报的传输过程了,那我们就愉快的开始吧!我们知道,一个中断处理函数主要分两个部分,上半部和下半部,这篇文章主要介绍上半部分。当一个数据包到达的时候,网卡驱动会完成接收并且触发中断,我们就从这个中断处理函数开始:当一个中断产生并发送给CPU的时候,对于NAPI和不支持NAPI的设备来说处理结果是不一样的,NAPI调用的函数是napi_schedule
原创
1406阅读
0评论
1点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(2.1)——接口层加快传输速率的特性

前面花了好多篇幅,终于将网络协议栈的初始化相关的内容介绍完了,也就是说完成前面的那些步骤以后,网络协议栈具备了数据包的收发功能。在网络接口层,它只负责数据包的接收与发送,而不关注数据包在网络层的类型是什么,所以传输速率的快慢往往与接口层的处理有着密切的关系,下面我们来了解一下在提供传输速率上面,现在的内核都引进了哪些新的特性。数据包的接收: NAPI, RPS,RFS数据包的发送: TSO
原创
785阅读
0评论
0点赞
发布博客于 4 年前

udhcp源码详解

udhcp源码详解(五)udhcp源码详解(四)udhcp源码详解(三) 下udhcp源码详解(三) 上udhcp源码详解(二)udhcp源码详解(一)udhcp详解源码(序)
转载
775阅读
0评论
0点赞
发布博客于 4 年前

linux设备模型——总线,驱动,设备间的关系

设备模型之kobject,kset及其关系关于linux设备模型kobject,kset,ktype设备驱动基础0:设备模型之kobject,kset及其关系 设备模型之总线,驱动,设备Linux驱动之bus_register分析Linux设备管理(一)_kobject, kset,ktype分析
原创
885阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(1.8)——网络设备驱动模块的加载

1.了解PCI总线说到网络设备驱动,就不得不说PCI总线,但是这个话题可深可浅,而且网上的资料也是一大堆(比如),但是对于我们来说,目前并不需要掌握很深,下面是网上找的两张最基本的PCI工作结构图,虽然PCI总线上可以挂接不同种类的设备,但我们这里只要了解网络设备就够了,所以我更偏好第二张图,它够简单,也够直观。      关于PCI总线,这里主要介绍两个结构体,一个是
原创
1826阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(1.7)——网络设备的初始化(struct net_device)

在linux的网络设备里,其中一个最关键的结构体应该要算net_device了,它由对应的网络设备驱动进行创建和初始化,服务于内核网络子系统。struct net_device这个结构体比较大,在了解它之前,我们先看一下它的注释:1433 /**1434  *  struct net_device - The DEVICE structure.1435  *      Actu
原创
6085阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(1.6)——协议栈的初始化(inet_init实现过程)

这篇文章主要分析inet_init()函数的实现过程:1796 static int __init inet_init(void)1797 {1798 struct inet_protosw *q;1799 struct list_head *r;1800 int rc = -EINVAL;18011802 sock_skb_cb_check_siz
原创
716阅读
0评论
1点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(1.5)——协议栈的初始化(inet_init主要数据结构)

前面了解到网络初始化申请了两块skb高速缓存和创建了一个/proc/net/protocols文件,现在开始重头戏,网络协议栈的初始化。这篇文章主要介绍网络栈中使用到的主要数据结构。网络协议栈的内核实现和理论上的分层有些不一样,在代码里面的分层如下图:开始前,先回顾一下应用层socket函数的调用,它会创建一个socket并返回对应的描述符:int sock
原创
1143阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(1.4)——协议栈的初始化(proto_init)

这篇文章主要分析proto_init过程,它完成协议相关proc文件的创建3241 static __net_initdata struct pernet_operations proto_net_ops = {3242 .init = proto_init_net,3243 .exit = proto_exit_net,3244 };324
原创
943阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(1.3)——协议栈的初始化(sock_init)

static int __init sock_init(void){ int err; /* * Initialize the network sysctl infrastructure. */ err = net_sysctl_init(); if (err) goto out; /* *
原创
1105阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(1.2)——协议栈的初始化(sk_buff)

sk_buff 是网络数据包的承载,是最关键的结构体之一/** * struct sk_buff - socket buffer * @next: Next buffer in list * @prev: Previous buffer in list * @tstamp: Time we arrived/left * @rb
原创
1677阅读
0评论
0点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(0)——前言

当决定开始写这个系列文章的时候,就意识到这可能会是个漫长的过程,也可能是个短暂的过程(如果自己中途放弃的话)。最近一段时间零零散散在了解内核网路协议栈相关的东西,有时候觉得好难,有时候觉得也就那么回事,这种感觉反反复复持续了一段时间,直到现在可以较为平静的面对这些问题的时候,决定对网络协议栈的学习做个梳理和记录,下面是阅读到的一些书籍:TCP IP详解卷1:协议 原书第2版
原创
2644阅读
0评论
2点赞
发布博客于 4 年前

学习Linux-4.12内核网路协议栈(1.1)——系统的初始化(do_initcalls)

我们知道,不管在什么样的平台上启动linux,它的开始都是以start_kernel()进行系统的初始化,当然网络协议栈的初始化也是在这个过程中完成,下面从start_kernel()开始跟踪:start_kernel() --> rest_kernel() --> kernel_thread(kernel_init, NULL, CLONE_FS) --> kernel_init_freea
原创
1600阅读
0评论
0点赞
发布博客于 4 年前

了解linux网络协议栈(五)——协议栈实现

linux网络报文接收发送浅析作者: 七伤 对于linux内核来说,网络报文由网络设备来进行接收。设备驱动程序从网络设备中读取报文,通过内核提供的网络接口函数,将报文传递到内核中的网络协议栈。报文经过协议栈的处理,或转发、或丢弃、或被传送给某个进程。 网络报文的发送与之相反,进程通过系统调用将数据送入网络协议栈,或者由网络协议栈自己发起报文的发送,然后协议栈通过调用网络接口函数
转载
465阅读
0评论
0点赞
发布博客于 4 年前

了解linux网络协议栈(四)——协议栈实现

Linux内核分析 - 网络[十七]:NetFilter之连接跟踪Linux内核分析 - 网络[十六]:TCP三次握手Linux内核分析 - 网络[十五]:陆由表[再议]Linux内核分析 - 网络[十四]:IP选项Linux内核分析 - 网络[八补]:IP协议补充
转载
719阅读
0评论
0点赞
发布博客于 4 年前

了解linux网络协议栈(三)——协议栈实现

【Linux4.1.12源码分析】virtio_net之NAPI机制【Linux4.1.12源码分析】virtio_net之中断注册【Linux4.1.12源码分析】收包软中断和NAPI【Linux4.1.12源码分析】VXLAN之remcsum实现分析【Linux4.1
转载
841阅读
0评论
0点赞
发布博客于 4 年前

了解linux网络协议栈(二)——协议栈实现

第十六章PHY -基于Linux3.10第十五章 提升网络性能技术--基于Linux3.10第十四章 netlink机制--基于Linux3.10第十三章 网络命名空间(内核源码实现)--基于Linux3.10第十二章 trie路由--基于Linux3.10
转载
664阅读
0评论
0点赞
发布博客于 4 年前

了解linux网络协议栈(一)——内核模块初始化

linux驱动 之 module_init解析 (上)Linux内核很吊之 module_init解析 (下)linux驱动篇之 driver_register 过程分析(一)linux驱动篇之 driver_register 过程分析(二)bus_add_driverlist_for_each_entry宏函数解析
原创
2024阅读
0评论
0点赞
发布博客于 4 年前

linux内核模块初始化

内核启动过程中需要完成各个部分的初始化,比如中端、页面管理、slab分配器、任务调度器、网络、PCI设备等等的初始化,这些初始化大概可以分为两种:一种是关键的,必须完成的而且必须以特定的顺序来完成的初始化,这部分的代码往往是直接便如内核的而且是直接调用的另一种是非关键的的子系统(或者说模块、功能)的初始化,这部分根据配置可以不加载,可以以built-in的方式编到内核的可执行文件中,也可以
转载
1672阅读
0评论
1点赞
发布博客于 4 年前

知识的管理会比知识的存储更重要

《失控》       藏品多没什么意义,关键是索引,你能用最快的速度找到你想找的那件,这才是有意义的。在一个博尔赫斯的那种包含所有图书的图书馆,找到一本书和写出那本书同样困难,找书的过程其实就是写书的过程。狄德罗,百科全书派人物,畅想了人类知识的汇总,汇总于一个博尔赫斯的图书馆中,但是他假设任何知识都是不可压缩的,即你不能用一个更短的短语来描述一个稍长的短语,在这种情况下,索引就是知识
转载
389阅读
0评论
0点赞
发布博客于 4 年前

内核中_init,_exit中的作用

__init, __initdata等属性标志,是要把这种属性的代码放入目标文件的.init.text节,数据放入.init.data节──这一过程是通过编译内核时为相关目标平台提供了xxx.lds链接脚本来指导ld完成的。    对编译成module的代码和数据来说,当模块加载时,__init属性的函数就被执行;   对静态编入内核的代码和数据来说,当内核引导时,do_basic_s
转载
332阅读
0评论
0点赞
发布博客于 4 年前

hostapd wpa_supplicant madwifi详细分析(十五)——supplicant扫描结果排序规则

int (*compar)(const void *, const void *) = wpa_scan_result_compar;qsort(scan_res->res, scan_res->num, sizeof(struct wpa_scan_res *),compar); // qsort函数介绍static int wpa_scan_result_compar(con
原创
1213阅读
0评论
0点赞
发布博客于 4 年前

qsort用法--完整版(解释了cmp)【转】

qsort用法--完整版(解释了cmp)【转】用qsort快两年的时候了,却一直没有真正弄懂cmp函数的返回值1,-1,0的函数. 今天在做凸包时,郁闷了....所以请教了snoopy,终于弄懂了cmp返回值的意识:int cmp(const void *a, const void *b)返回正数就是说 cmp 传入参数第一个要放在第二个后面, 负数就是传入参数第一个要
转载
2423阅读
0评论
0点赞
发布博客于 4 年前

TCP IP详解卷1:协议 英文版

TCP IP详解卷1:协议
pdf
发布资源于 4 年前

Linux内核精髓-精通Linux内核必会的75个绝技 完整版

这本书是我少数几个设置了分数限制的书,它是完整版,现在网上的大多数都是mini版本,知道这本书价值的人自然不会因为任何限制而阻碍求知的欲望,因为它物有所值。
pdf
发布资源于 4 年前

TCP IP详解卷1:协议 原书第2版 压缩二

TCP IP详解卷1:协议 原书第2版 压缩二TCP IP详解卷1:协议 原书第2版 压缩二TCP IP详解卷1:协议 原书第2版 压缩二TCP IP详解卷1:协议 原书第2版 压缩二
z01
发布资源于 4 年前

TCP IP详解卷1:协议 原书第2版 压缩一

文件太大,分成两个部分压缩,都要下载下来才能解压
zip
发布资源于 4 年前

Linux下查看支持的信号列表

Linux下查看支持的信号列表我们运行如下命令,可看到Linux支持的信号列表:~$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKI
转载
1777阅读
0评论
1点赞
发布博客于 4 年前

Linux设备驱动开发详解:基于最新的Linux 4.0内核 高清完整.pdf版下载

Linux设备驱动开发详解:基于最新的Linux 4.0内核.pdf Linux设备驱动开发详解:基于最新的Linux 4.0内核.pdf Linux设备驱动开发详解:基于最新的Linux 4.0内核.pdf
pdf
发布资源于 4 年前

Openwrt学习笔记(四)——系统开机启动 (续)

下面是英文原版,如果访问慢,也可以直接查看这里https://wiki.openwrt.org/doc/techref/init.detail.ccInit (User space boot) reference for Chaos Calmer: procdAnalysis of how the user space part of the boot sequ
转载
3615阅读
0评论
0点赞
发布博客于 4 年前

Openwrt学习笔记(四)——系统开机启动

1. 内核启动bootloader将kernel从flash中拷贝到RAM以后,bootloader将退出舞台,并将这个舞台交给了kernel。中间有些交接的细节过程,这里不赘述,我们直接从kernel的启动开始分析。不同平台的kernel启动时,最开始部分的汇编脚本会有些不一样,但是从汇编跳转到C语言的代码过程中的第一条命令大多数都是start_kernel函数,比如arm平台,
原创
17358阅读
2评论
4点赞
发布博客于 4 年前

Openwrt学习笔记(三)——内核启动

本来想整理一下linux内核启动的大致过程,后来网上找到了朱老师的关于这方面的付费视频课程,讲的挺好,所以这里就自己偷偷懒,直接将笔记贴上来了,希望没影响到人家的知识产权http://edu.51cto.com/lesson/id-87648.html第一部分、章节目录2.16.1.做好内核分析的准备工作2.16.2.head.S文件分析12.16.3.内核启动的汇
转载
3450阅读
1评论
0点赞
发布博客于 4 年前

Openwrt学习笔记(二)——Flash Layout and file system

在大多数系统中,闪存不像RAM一样可以直接执行指令,所以闪存中的数据和指令需要拷贝到RAM中执行,比如存放在flash中的kernel需要bootload的帮忙,将kernel拷贝到RAM里面才能运行。大多数router都是没有硬盘的,它使用闪存来完成相应的存储功能(包括存储固件以及系统数据),这种非易失性的闪存可以避免掉电丢失的问题。我们常接触的闪存主要有两种:NOR flash 和
原创
13236阅读
1评论
6点赞
发布博客于 4 年前

Openwrt学习笔记(一)——系统架构

下表是OpenWrt系统架构和其他系统架构的对比: Desktop DistributionsOpenWrtAndroidReplicantmer-basedTypical main memory size128 MiB to 16 GiB (or more)32 MiB to 512 MiB1
原创
9318阅读
1评论
3点赞
发布博客于 5 年前

802.11协议笔记(二)——PHY物理层的帧格式(802.11b)

这篇文章主要介绍下图中layer1物理层的内容前面有介绍,MPDU进入PLCP层以后,它的名字就换成了PSDU,PSDU加上前导码和PLCP头部以后,就形成了PPDU。在传输的过程中,发送端通过向接收端发送PLCP前导码来提醒对方。前导码是一序列0/1比特串,用于同步即将发生的传输。在802.11-2007 协议中有定义三种类型的前导码格式:the Long PPDU format,
原创
29481阅读
1评论
15点赞
发布博客于 5 年前

802.11协议笔记(一)——基本概念

首先简单回顾一下IOS模型的7层结构:Layer 7: ApplicationLayer 6: PresentationLayer 5: SessionLayer 4: TransportLayer 3: NetworkLayer 2: Data-Link            LLC sublayer            MAC sublayerLayer
原创
17428阅读
7评论
12点赞
发布博客于 5 年前

Vim 复制粘贴探秘

Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几十年,还没有完全掌握vim的功能,这也说明了vim的强大。而这样何尝不是一件好事呢,只要有的学习,就有的提高。最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置: 
转载
353阅读
0评论
0点赞
发布博客于 5 年前

在windows下使用Cygwin模拟unix环境,并安装apt-cyg,repo等工具

前面有一篇文章整理在windows下使用vim+git+ctags等工具查看代码,感觉挺方便的,但是在模拟unix开发环境的时候局限很大,特别是在涉及到编译以及调试的时候很难开展,所以找到了Cygwin这个比较综合的模拟软件,  cygwin是windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作
原创
21609阅读
0评论
4点赞
发布博客于 5 年前

无线局域网安全(四)————身份认证之4路握手

前面我们了解了三种加密方式,WEP、TKIP和CCMP,他们分别使用不同的算法给需要传送的MSDU进行加密以后,封装在MPDU中进行传送,然后在接收端对数据进行解密,以达到安全完整传送数据的目的。不管使用哪种加密方式,这都是在STA完成了身份认证以后进行的动作,也就是说在确认了STA获得足够的权限以及拥有正确的密钥以后才能进行安全的、完整的、受保护的的通信。那么对于一个新接入的STA,我们怎么知道
原创
11862阅读
4评论
15点赞
发布博客于 5 年前

无线局域网安全(三)————CCMP加密

Counter Mode with Cipher-Block Chaining Message Authentication Code Protocol(CCMP)CCMP加密在802.11i修正案中定义,用于取代TKIP和WEP加密。CCMP使用AES快加密算法取代WEP和TKIP的RC4流算法,它也是WAP2指定的加密方式,因为AES加密算法是和处理器相联系的,所以旧的设备中可以支持WEP
原创
15088阅读
0评论
7点赞
发布博客于 5 年前

FIPS PUB 197-2001

FIPS PUB 197-2001是AES加密算法详细介绍,也是官方指定CCMP的加密算法
pdf
发布资源于 5 年前

无线局域网安全(二)————TKIP加密

Temporal Key Integrity Protocol (TKIP) 临时秘钥完整性协议TKIP是用来解决WEP容易被破解而提出的临时性加密协议,它并不是802.11推荐的强制加密协议, 简单来说,TKIP主要是用来加强WEP加密,这个升级主要体现在算法上,这一点很重要,为什么这么说呢?因为使用TKIP加密,并不需要进行硬件的升级,也就是说只要你的硬件支持WEP加密,那么同时也能够支持
原创
12272阅读
6评论
6点赞
发布博客于 5 年前

无线局域网安全(一)———WEP加密

这篇文章是关于无线局域网加密的第一篇文章,所以先对无线局域网的加密做一个简单的概述。其实我们平常在使用wifi的时候,往往会用到的加密方式主要有WEP(pre-RSNA), WPA(TKIP), WPA2(CCMP-AES), 如果有个别对安全要求比较高的也会使用企业级加密(802.1x). 在最新的802.11-2010标准中,有明确的支持新的无线设备应该抛弃WEP和WPA加密方式,而且必须
原创
10810阅读
0评论
19点赞
发布博客于 5 年前

怎么使用macbook抓取无线报文

怎么使用macbook抓取无线报文1.     打开终端2.     找到airport的路径 #:cd / ; find . –name airport –print3.     为了方便,创建一个软链接#: ln –s  /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resou
原创
4689阅读
0评论
0点赞
发布博客于 5 年前

怎么在windows下使用vim + git 查看管理代码?

怎么在windows环境下使用vim查看代码 ? 怎么在windows下使用git版本管理工具 ?在网上搜索会搜出个种各样的推荐,有人推荐直接下载一个windows下的vim安装包,或者有人推荐使用source insight,notpad++, sublime, ultraedit 或其他IDE工具等等,但是我尝试了使用这些工具查看代码以后,感觉都不顺手,后来才发现自己习惯了linux环境,用L
原创
2131阅读
0评论
0点赞
发布博客于 5 年前

windows-use-vim-ctags-and-git

怎么在windows环境下使用vim查看代码 ? 怎么在windows下使用git版本管理工具 ?在网上搜索会搜出个种各样的推荐,有人推荐直接下载一个windows下的vim安装包,或者有人推荐使用source insight,notpad++, sublime, ultraedit 或其他IDE工具等等,但是我尝试了使用这些工具查看代码以后,感觉都不习惯,后来才发现自己是个linux中毒患者,用Linux那一套才比较得心应手。但是有时候又需要使用到windows下面的一些应用,所以开始折腾怎么在windows下使用vim+ctags+git,下面是我整理的记录。 windows使用vim
zip
发布资源于 5 年前

ctags可执行文件

想在windows使用ctags工具的同学可以直接下载下来,按照解压步骤里面的方法使用就可以了
zip
发布资源于 5 年前

hostapd wpa_supplicant madwifi详细分析(十四)——完结篇

注:这篇文章不谈技术查看了一下《hostapd wpa_supplicant madwifi详细分析》系列文章,断断续续更新到现在,发现中间的持续时间都快要两年了。记得那时候刚毕业到公司,组长叫我看项目的无线部分代码,自己稀里糊涂的看了一个月,组长问我:vap是怎么创建的?sta和AP是怎么建立连接的?wds是怎么工作的?WPS中PIN和PUSHBUTTON的区别是什么?我们DUT中几
原创
3098阅读
3评论
1点赞
发布博客于 5 年前

hostapd wpa_supplicant madwifi详细分析(十三)——EAPOL(802.1X-2004/IEEE Std 802.1X-2010)

这篇文章主要介绍EAPOL,关于它的详细定义可以到802.1X-2004/IEEE Std 802.1X-2010两个文档里面查询。如果有阅读前面一篇文章,应该会了解EAPOL在局域网中是用来为EAP服务的,它主要用来装载EAP数据包,完成802.1x的认证过程。EAPOL也工作在LLC层,现在我们来了解一下。一、总概1.使用范围为了让无线局域网中的设备能够安全的连接通信,802.
原创
3907阅读
0评论
1点赞
发布博客于 5 年前

怎么使用CSDN的git仓库(code.csdn.net)

今天使用了一下CSDN的git仓库,做个简单的记录,虽然和githup有一定的差距,但是用来存放一些个人的东西还是够用了。但是CSDN的git仓库有几个地方我还是很喜欢的:1.国内服务器,访问起来会比较快2.可以使用QQ邮箱,这一点github是办不到的,这个邮箱用习惯了3.虽然没有github那样有各种丰富的资源,但是该有的管理功能都有了,而且提供了2G的个人空间,也是极好的
原创
2796阅读
0评论
2点赞
发布博客于 5 年前

hostapd wpa_supplicant madwifi详细分析(十二)——EAP(RFC3748)及EAP状态机分析(RFC4137)

wpa_supplicant/hostapd程序里面的核心部分,应该要算它的状态机了,前面分析了WPS的实现过程,但是在看代码的时候,不管是加密部分还是WSC部分,都绕不过它的状态机,它就像路上的一块石头,如果不搬开它,很难继续往下走。下面是wpa_supplicant 模块结构图,红线部分是状态机模块,它就像一个桥架在那里,如果左边进来的的数据想要到右边去实现加密或者解密,就必须经过这座桥,而且
原创
4218阅读
0评论
0点赞
发布博客于 5 年前

linux shell vim

自己写的一个简单的ppt介绍shell和vim里面的一些东西
pptx
发布资源于 5 年前

shell和vim

shell 和 vim的一些介绍,主要包括PPT和平常的一些东西
zip
发布资源于 5 年前

eap peer state machine

eap peer state machine是我自己画的一个状态机图
rar
发布资源于 5 年前

802.1x std 2004+2010

IEEE官方发布的802.1X标准,英文版,未翻译
zip
发布资源于 5 年前

hostapd wpa_supplicant madwifi详细分析(十一)——wps原理及实现 三

这篇文章主要整理一下关于WSC的边边角角,对一些比较重要且前面没有解释清楚的一些概念做一些补充,如果对前面两篇文章理解比较清楚,可以略过。
原创
8619阅读
0评论
3点赞
发布博客于 5 年前

802.11n能够提供600M最大速率的由来

802.11n能够提供600M最大速率的由来无线WiFi技术能够达到的最大速率主要受到编码方式、调制方式、无线频宽等关键指标的影响,作为当前主流的无线WiFi技术,802.11n的最大理论速率能够达到600M,和传统的802.11a/g相比提升了10倍以上。那么哪些关键技术的运用对802.11n的速率提升起到了作用,而这些技术又分别提升了多大量级的速率呢?要搞清楚这个问题,首先还是以802.11g的
转载
13423阅读
0评论
3点赞
发布博客于 5 年前

hostapd wpa_supplicant madwifi详细分析(十)——wps原理及实现 二

前面对WPS交互过程有了大概的了解,现在了解一下WPS交互时帧的格式以及每个帧所携带的信息。 WPS使用802.1x和EAP传输in-band注册协议的交互信息,这些信息里面都会携带大端排序的attributes字段。这个协议都会和一个自定义的EAP method相对应。WPS不需要AP支持RADIUS,也不要求网络内包含一个认证服务器,事实上,很多具有WPS功能的AP只支持802.1x使用WPS
原创
10400阅读
1评论
8点赞
发布博客于 5 年前

基于SHA-256的HMAC文件校验器

HMAC即带密钥的HASH函数,用它产生的报文鉴别码(MAC)可以实现报文鉴别。这里我将其做成一个软件,用于对文件的合法性进行校验。以下我先简单介绍软件相关背景知识再介绍其代码实现。             一、背景知识简介  有时候进行通信的双方基于安全的考虑需要对对方发过来的消息进行校验,以确定消息是未经第三方修改过的。这种校验可以这样进行:双方共同约定一个密钥(即
转载
2107阅读
0评论
0点赞
发布博客于 5 年前

HMAC算法安全性浅析

HMAC算法安全性浅析         1 引言        2004年8月17日在美国加州圣巴巴拉召开的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告。报告结束时,与会者长时间起立鼓掌致敬,这在密码学会议上是少见的盛况。        然而,更让密码学界震惊的是,2005年2月15日,在美
转载
9089阅读
0评论
3点赞
发布博客于 5 年前

Diffie-Hellman(迪菲-赫尔曼)秘钥交换

https://www.captainbed.net/lee244868149/Diffie-Hellman算法是Whitefield Diffie和Martin Hellman在1976年公布的一种秘钥交换算法,它是一种建立秘钥的方法,而不是加密方法,所以秘钥必须和其他一种加密算法结合使用。这种秘钥交换技术的目的在于使两个用户安全的交换一个秘钥一遍后面的报文加密。Diff...
原创
38421阅读
1评论
23点赞
发布博客于 5 年前

十大注定要被淘汰的安全技术

你是否曾有过这样的经历:启动软盘上的写入保护开关,以防止启动病毒和恶意覆写;关闭调制解调器,以防止黑客在晚上打来电话;卸载ansi.sys驱动,以防止恶意文本文件重新排布键盘,让下一次敲击直接格式化你的硬盘;检查autoexec.bat和config.sys文件,以确认没有恶意条目通过插入它们进行自启动。   时过境迁,上述情况如今很难见到了。黑客们取得了进步,技术替代了过时的方式。有的时
转载
2017阅读
0评论
0点赞
发布博客于 5 年前

openwrt minidlna config

MiniDLNAMiniDLNA is a lightweight DLNA/UPnP media server. The MiniDNLA daemon serves media files (music, pictures, and video) to clients on a network.Installationroot@OpenWrt:~# opkg u
转载
3595阅读
0评论
0点赞
发布博客于 5 年前

hostapd wpa_supplicant madwifi详细分析(九)——wps原理及实现 一

这篇文章基于《Wi-Fi Simple Configuration Technical Specification Version 2.0.5》文档, 更详细的内容请直接参考文档,这里只将自己的想法做一些简单的记录。一、WSC的三种实现    WSC(wifi simple configuration),一看这名字就知道这个协议是用来偷懒用的,所以我将它翻译为“快速接入无线网”协议,这
原创
18635阅读
15评论
8点赞
发布博客于 5 年前

wps packages

wps 抓包以及分析, 包括多种设备之间的wps 连接
zip
发布资源于 5 年前

深入理解Android:WiFi模块 NFC和GPS卷 - 邓凡平

本书是经典畅销书“深入理解Android”系列的新作,由资深Android系统专家邓凡平先生撰写。从通信专业知识和Android系统代码实现的角度,对Netd、Wi-Fi、NFC和GPS等模块的代码进行深入的剖析,旨在深刻揭示其实现原理和工作流程。其中涉及大量通信相关的专业知识,因此特意邀请全志和高通等著名芯片公司的资深专家担任技术审校。本书从实际应用的需求出发,适合所有Android系统工程师、Android应用开发工程师和BSP开发工程师阅读。全书共9章。第1章介绍本书的内容组成、工具使用以及参考源码的下载方法。第2章介绍Netd及相关的背景知识。第3~5章介绍Wi-Fi基础知识,重点分析了wpa_supplicant的实现,以及Android平台中特有的Wi-Fi服务模块WifiService。第6~7章讲解了Wi-Fi联盟推出的两项重要技术Wi-FiSimpleConfiguration和Wi-FiP2P,以及它们在Android平台中的代码实现。第8章详细介绍了NFC基础知识,以及NFC在Android平台中的代码实现。第9章讲解了GPS原理及Android平台中的位置管理服务架构。
pdf
发布资源于 5 年前

Wi-Fi Simple Configuration Technical Specification Version 2.0.5

pdf
发布资源于 5 年前

hostapd wpa_supplicant madwifi详细分析(八)——wpa_supplicant的配置文件

距离上一篇文章的更新已经将近半年了,这半年忙项目忙得几乎没有什么时间给自己积累一些东西,也没什么心思转到这边来写点东西,当一个项目放到自己身上的时候,发现并不像开发一个模块或一个功能那么简单,涉及方方面面,各种琐碎的的事情会占据大量的时间,各个功能之间的交互等等。   前面写的关于hostapd的文章都太浅显了,一般都没怎么涉及到具体的功能,只是简单的分析了一下代码的流程,然而对于实际的功能开
原创
6830阅读
0评论
0点赞
发布博客于 5 年前

windows bat脚本编写

Windows .bat 脚本简单用法介绍:一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 语法: echo [{on│off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号
转载
769阅读
0评论
0点赞
发布博客于 5 年前

CSS reset的重新审视 – 避免样式重置

CSS reset的重新审视 – 避免样式重置一、CSS reset(CSS重置)的历史根据淘宝射雕的叙述,最早的一份CSS reset来自Tantek 的undohtml.css,很简单的代码,Tantek 根据自己的需要,对浏览器的默认样式进行了一些重置。其余一些有名的CSS reset如业界领袖Eric Meyer的reset,或是Tripoli Reset。CSS
转载
532阅读
0评论
0点赞
发布博客于 5 年前

C语言正则表达式详解 regcomp() regexec() regfree()详解

标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。C语言处理正则表达式常用的函数有regcomp()、regexec()、regfree()和regerror(),一般分为三个步骤,如下所示:
转载
3097阅读
0评论
0点赞
发布博客于 5 年前

sscanf 函数使用

sscanf编辑sscanf() - 从一个字符串中读进与指定格式相符的数据。swscanf()- 用于处理宽字符字符串,和sscanf功能相同。外文名sscanf类    别数据输入解    释字符串中读进相符的数据处    理宽字符字符串头文件#include目录1名称2头文件3返回值4说明5支持集合操作6例子
转载
1370阅读
0评论
1点赞
发布博客于 5 年前

(7)uboot详解——初始化SDRAM

(7)uboot详解——初始化SDRAM在开始这篇文章之前,我们先回顾一下(1)uboot详解——板子刚上电时都干了些什么,不管板子是从nandflash启动还是从norflash启动,它的开始代码都不是在SDRAM中运行的,要么在stepping stone中运行,要么在norflash中运行,但是stepping stone的4k片上内存显然是不够的,而且norflash可读不可写的特
原创
10807阅读
2评论
3点赞
发布博客于 5 年前

(6)uboot详解——关闭缓存和mmu

uboot详解——关闭缓存和mmu当设置完时钟分频以后,uboot就会执行cpu_init_crit汇编函数,这个函数的主要作用就是关闭缓存和mmu,然后调用lowlevel_init函数进行系统总线的初始化。为什么启动的时候,需要关闭缓存和mmu呢?我们先了解一下他们的作用。缓存是主存(内存)和CPU通用寄存器之间设置的一个高速的、容量相对较小的存储器,把正在执行的指令地址附近的
原创
5090阅读
0评论
2点赞
发布博客于 5 年前

(2.3)QCA atheros 无线配置命令——Beacon配置参数

参数命令格式DAOL描述ampdudensityget_ampdudensityiwpriv athNampdudensityMPDU_density  设置MPDU的精度,默认值是6#iwpriv ath0 ampdudensity 6#iwpriv ath0
原创
4276阅读
0评论
0点赞
发布博客于 6 年前

(2.2)QCA atheros 无线配置命令——iwpriv关联和ACL

参数命令格式DAOL描述addmacdelmacgetmacmaccmdget_maccmdiwpriv athN addmacmacaddriwpriv athN delmacmacaddriwpriv athN maccmdcmdYY这个参数用
原创
3105阅读
0评论
0点赞
发布博客于 6 年前

(2.1)QCA atheros 无线配置命令——iwpriv聚合和ANI参数

1.  iwpriv参数这部分将说明iwpriv每一层对应的参数,包括radio层和协议层,注意,有一些参数在这两层之间是重复的,所以当要设置重复的参数的时候,建议将radio层的参数覆盖协议层的参数,带宽模式的参数(HT20/40)和一些其他参数将应用于radio层。如果radio层的参数改变了,那么所有连接到对应wifiN接口上的VAPs都将受到影响。使用iwpriv命令时,所有的参数都有
原创
3536阅读
0评论
1点赞
发布博客于 6 年前

(5.3)uboot详解——PWM定时器(番外)

这篇文章是一些拓展内容,如果想了解uboot的启动过程,可以先跳过本章,如果需要掌握一些编写裸机程序或者内核与计时器相关的驱动的知识,可以了解一下。PWM定时器1.概述脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中——
原创
2155阅读
0评论
0点赞
发布博客于 6 年前

(1)QCA atheros 无线配置命令——iwconfig (athN)

AP驱动的命令行工具是由一系列无线工具组成的,他们可以用来修改无线驱动的环境变量。1.1 无线工具无线工具接口用来Linux下配置和操作WLAN接口的。这些工具是开源的,同时也需要驱动的指定的IOCTL接口的支持,QCA的WLAN驱动可以很好的与这些开源无线工具兼容,甚至在使用时不用做任何修改,任何一个高于28版本的无线工具都可以很好的配置qca atheros 的无线驱动。无线工具使
原创
5472阅读
0评论
0点赞
发布博客于 6 年前

shell命令收集

1.比较两个文件的时间戳可以用test的-nt选项, 比如 [ file1 -nt file ] && echo "file1 is newer than file2" ,然而 -ot 与之相反2.虚拟机 设置 选项 共享文件夹 mount -t vmhgfs .host:/ /mnt/hgfs/
原创
737阅读
0评论
0点赞
发布博客于 6 年前

(5.2)uboot详解——省电模式(番外)

(5.2)uboot详解——省电模式(番外)这篇文章将对uboot的省电模式进行分析
原创
1954阅读
0评论
0点赞
发布博客于 6 年前

(5.1)uboot详解——时钟分频

(5)uboot详解——时钟分频如果cpu是计算机的大脑,电流是计算机的血液,那么时钟则是计算机的心脏,时钟频率决定了处理器运算的快慢,它的每一次“跳动”都驱动着处理器不停的执行命令。不同的是,人的各个部位心率是一样的,但计算机却有多个频率,而且每个部位可能有不同的频率,比如“大脑”有一个频率,“手“有一个频率,“脚”使用的是另外一个频率,这样就产生了两个问题:怎么产生这些不同的频率?处理器怎
原创
3547阅读
0评论
1点赞
发布博客于 6 年前

(4.3)uboot详解——异常和异常向量

(4.3)uboot详解——异常和异常向量前面两节分析了外部中断和内部中断相关的内容,这篇文章对处理器的异常情况作一个总结。可以参考第二片文章(处理器工作模式),ARM处理器有七种工作模式,除了用户模式和系统模式以外,其他5中模式都是异常模式。人们都会生病,生病时我们可以依靠我们的免疫系统恢复过来,计算机也会“生病”,它“生病”的时候就会进入异常工作模式,依靠异常处理程序让cpu恢
原创
3374阅读
3评论
0点赞
发布博客于 6 年前