瑞风轻拂

Record, Summarize, Share
私信 关注
wuruixn
码龄12年
  • 635,120
    被访问量
  • 42
    原创文章
  • 13,851
    作者排名
  • 89
    粉丝数量
  • 于 2008-12-13 加入CSDN
获得成就
  • 获得63次点赞
  • 内容获得51次评论
  • 获得221次收藏
荣誉勋章
TA的专栏
  • Web
    9篇
  • TCP/IP
    13篇
  • Android
    3篇
  • C/C++
    15篇
  • JAVA
  • BugFix
    2篇
  • Network
    15篇
  • xDSL
    1篇
  • Linux-net
    7篇
  • Linux-kernel
    6篇
  • Linux-file
    10篇
  • Linux-app
    2篇
  • IPTables
    9篇
  • Linux-tool
    1篇
  • Linux-develop
    14篇
  • Reading-notes
    1篇
  • Makefile
    2篇
  • 悟人生
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Linux平台如何获取储存设备唯一标识符

通常情况可以通过vendorID和productID来标识,但是同时插入多个u盘或移动设备到Linux设备平台,就无法通过VID和PID来区分,因为同一个厂商和型号的u盘或移动存储设备的vid和pid是相同的。所以得通过其他方法来唯一标识存储设备,如下方式即可。U盘和其他移动存储设备都有唯一标识设备的序列号,注意usb 3G或4G卡不一定有,因厂商而定。所以可以通过序列号来唯一识别u盘或移动存
原创
11018阅读
1评论
0点赞
发布博客于 6 年前

SNMP相关

snmp配置1. lan/wan端访问终端设备(网元)2. 设置读写团体名,一般public对应read, private对应write3. 设置Trap测试1. 软件:Manage Engine MibBrowser Free Tool2. 设置ip、端口号,已经对应的读写团体名称3. 执行get getBulk等等操作Bug:执行getBul
原创
973阅读
0评论
0点赞
发布博客于 7 年前

makefile学习——编译生成动态库文件

Linux下生成动态库文件:         之前已经介绍了.o,.a,.so文件类型的含义,.so后缀的文件是动态库文件。        下面介绍在编译过程中链接到动态库文件的方法:一.   源码文件:so_test.h:void test_a();void test_b();void test_c();
转载
1090阅读
0评论
0点赞
发布博客于 7 年前

makefile学习——编译生成静态库文件

Lunix下编译静态库文件:.o后缀文件:编译生成的中间代码文件;.a后缀文件:静态库文件,编译的时候会合到可执行程序中,文件比较大;.so后缀文件:动态库文件,只是一个指向,不会合到可执行程序中,当要调用函数库的时候才使用; 用一个简单的例子阐述下在lunix环境下生成静态库文件的过程:一.   源码文件:so_test.h:voi
转载
997阅读
0评论
0点赞
发布博客于 7 年前

Linux下静态库和动态库(共享库)的制作与使用

Linux下静态库和动态库(共享库)的制作与使用 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。 静态函数库:  这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需
转载
825阅读
0评论
0点赞
发布博客于 7 年前

嵌入式linux应用程序移植方法总结

前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟。江浩写的《CAPWAP移植进展.docx》对openCapwap的移植过程有了比较详细的描述,所以在此就不涉及技术细节了,本文档主要以openCapwap的移植为例,总结嵌入式linux应用程序移植的一般方法和步骤,为以后可能需要的移植工作提
转载
937阅读
1评论
0点赞
发布博客于 7 年前

交叉编译库依赖问题的解决方法

http://jianbo.de/b/archives/503在交叉编译移植程序的时候,我们常常会遇到这样的情况:要编译的程序依赖于某个动态/静态链接库。而这个库也需要我们编译移植。在编译没有别的依赖的链接库的时候很简单,设置好交叉工具链、目标架构就可以了。而在编译有依赖需求的程序的时候,我们常常遇到找不到头文件、找不到库文件的问题。很是烦人。要解决这个问题,其实还是很
转载
4502阅读
0评论
1点赞
发布博客于 7 年前

Linux中select()函数分析

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式
转载
568阅读
0评论
0点赞
发布博客于 7 年前

Process与Socket,Select与Accept关系

Socket只是一个系统函数接口,Process
原创
4645阅读
0评论
0点赞
发布博客于 7 年前

Include文件易犯编译错误

项目中编译总是报include文件编译错误,ru
原创
1532阅读
0评论
0点赞
发布博客于 7 年前

Vlan相关知识杂记

划分Vlan的目的还真就以为划分VLAN的目的就是为了隔离不同VLAN不让他们互访(其实这是非常多人的误区,当然这可以通过ACL做到,但并不是划分VLAN的目的,这个最多可以理解成这是划分VLAN之后的一种应用并不是最终目的)。其实划分VLAN的目的就两个:1.提高安全性----------举个例子:没有划分VLAN前,交换机端口连接下的所有PC都处于一个VLAN中即一个广播域
原创
724阅读
0评论
0点赞
发布博客于 7 年前

避免使用不当pthread_create函数造成内存泄露

pthread_create使用不当会造成内存泄漏,
原创
3222阅读
2评论
0点赞
发布博客于 7 年前

linux进程之内存泄漏分析

目的:总结linux进程内存泄漏导致crash的分析方法及解决过程背景:简单使用dlna,但对其源码并无了解关键节点:1.问题复现2.寻找突破口3.分析日志4.分析主进程及子进程代码过程:节点1——
原创
2733阅读
0评论
0点赞
发布博客于 7 年前

samba系列问题之分析解决过程

目的:讲述linux应用进程开发过程中问题:
原创
3637阅读
0评论
0点赞
发布博客于 7 年前

转义字符及字符串示例

function: revert ' to \' on the string varValue when include 'void cgiRevertStr(char* varValue){   char *tmp = NULL;   char *tmpMov = NULL;   char tempVar[BUFLEN_1024] = {0};   char de
原创
785阅读
0评论
0点赞
发布博客于 7 年前

Linux内核之GDB基本调试方法

一般单板软件Linux内核出现crash如何采用GDB工具进行调试? 基本方法过程如下:1. 为了测试GDB操作,故意在kernel/linux/fs/ioctl.c文件的do_vfs_ioctl方法中加入空指针操作代码,然后编译image烧入单板,启动单板,内核crash,部分log如下:CPU 0 Unable to handle kernel paging request a
原创
10543阅读
1评论
0点赞
发布博客于 7 年前

Linux服务器开发初步

服务器开发需要考虑的内容很多,比如服务器的架构、稳定性、性能以及负载能力等等。事实上,在开发服务器的过程中,需要综合考虑各种因素,比如就客户端连接时间较短却又比较频繁的服务器(例如HTTP服务器)而言,在可选的服务器结构中,预先派生进/线程的结构就要比并发式结构高效,这一点将在后续的文章中对其进行详细的介绍。然后就是服务器实现方面的细节,比如是否需要支持跨平台的能力、采用什么样的开发语言和开发工具
转载
836阅读
0评论
1点赞
发布博客于 7 年前

linux中fork函数详解

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来
转载
632阅读
0评论
0点赞
发布博客于 7 年前

SPI防火墙及应用测试

SPI防火墙设置,防火墙的作用防外不防内,也就是说对不是由你向internet发出的连接一律拦截。他可保证你的计算机的相对安全。如果你已经有软件防火墙了,如瑞星,诺顿什么的,你完全可以不用设置,因为现在的软件防火墙的功能远远比硬件防火墙的功能要高,当然设置更好。SPI(StatefulPacket Inspection) 为全状态数据包检测型防火墙,说明路由器自带全状态数据检测。SPI全状
原创
2890阅读
2评论
1点赞
发布博客于 7 年前

hotplug启动过程之call_usermodehelper分析

背景:系统启动后,应用层
原创
3371阅读
0评论
0点赞
发布博客于 7 年前

Ubuntu13.10 安装Chrome

一、添加PPA从Google Linux Repository(http://www.google.com/linuxrepositories/)下载安装Key,或把下面的代码复制进终端,回车,需要管理员密码wget -q -O -https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add
原创
1120阅读
0评论
0点赞
发布博客于 7 年前

Linux内核态与用户态通信的常用方法

前言最近做的事情很多地方用到Linux驱动层与应用层的通信,在此总结下常见的并且在我工作中用到的通信方法。总结由于每种方法都可以找到大量的示例代码,同时还有详细的函数手册,我就不贴代码了。只列下相关的方法和一个链接。procfsnetlinksyscallsyscall的范围就广了,通过注册字符设备可以使用mmap和ioctl等来进行操作,要注意
转载
19322阅读
1评论
4点赞
发布博客于 7 年前

linux与android架构基础

我们以下图为基础,说明Linux的架构(architecture)。 最内层是我们的硬件,最外层是我们常用的各种应用,比如说使用firefox浏览器,打开evolution查看邮件,运行一个计算流体模型等等。硬件是我们的物质基础,而应用是我们所要奋斗的目标,但在两者之间,还要经过一番周折。还记得我们在Linux启动的时候。首先会启动内核 (kernel),内
原创
1629阅读
0评论
0点赞
发布博客于 7 年前

UPnP基本原理以及在NAT中的应用

1      摘要随着计算机产业以及计算机网络技术的迅猛发展,越来越多嵌入式设备的出现和家庭网络的发展,实现各种设备的互联互通已经成为人们的迫切需求,而实现家庭网络互联互通的关键是家庭网络的中间件技术。业界各大厂商都提出了自己的解决方案,其中以微软提出的UPnP最具有发展前途,也获得了最广泛的支持,目前UPnP基本是家庭网络设备必须支持的特性之一。UPnP是通用即插即用(Universal
转载
1432阅读
5评论
0点赞
发布博客于 7 年前

简单服务发现协议SSDP

SSDP:Simple Sever Discovery Protocol,简单服务发现协议,此协议为网络客户提供一种无需任何配置、管理和维护网络设备服务的机制。此协议采用基于通知和发现路由的多播发现方式实现。协议客户端在保留的多播地址:239.255.255.250:1900(IPV4)发现服务,(IPv6 是:FF0x::C)同时每个设备服务也在此地址上上监听服务发现请求。如果服务监听到的发现请
转载
2544阅读
0评论
0点赞
发布博客于 7 年前

WDS、WPS及WIFI2.4/5G相关

WEP是Wired Equivalent Privacy的简称,有线等效保密(WEP)协议是对在两台设备间无线传输的数据进行加密的方式,用以防止非法用户窃听或侵入无线网络。
原创
8404阅读
1评论
0点赞
发布博客于 7 年前

Chinese En/Decode for filesystem

1.        En/Decode for Chinese pathFor theusb storage service on router UI, there may be Chinese path when access somefolder on usb disk, it will show messy code if there is no related deal work.
原创
770阅读
0评论
0点赞
发布博客于 7 年前

宽字符和多字节字符(mbtowc/wctomb)

C 语言原本是在英文环境中设计的,主要的字符集是7 位的ASCII 码。从此开始,8 位的byte(字节)变成最常见的字符编码单位,但是国际化软件必须能够表示不同的字符,而这些字符数量庞大,无法使用一个字节编码,于是世界上使用各式 各样多字节的字符编码集合已经有数十年了,比如用来表示“非拉丁字母”以及“非字母”的中、日、韩文字系统。在1994 年,“Normative Addendum 1”(基准
转载
3797阅读
1评论
1点赞
发布博客于 7 年前

html文件的中文乱码问题与在浏览器中的显示

在网页中,中文乱码的问题时常出现。以前我遇到乱码问题时,就是不停的尝试不同的编码方式,直到成功。昨天项目又遇到了这个问题,我于是做了简单的测试。    html文件是有编码方式的,比如"UTF-8"、"GBK"等等。这些在记事本中或许看不出来,但是在eclipse中,可以设置html文件的编码方式,以下的图片中会有说明。    测试一:    以"UTF-8"方式保存html文件,
转载
1541阅读
0评论
0点赞
发布博客于 7 年前

TCP连接、Http连接与Socket连接

1、TCP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须
转载
4692阅读
3评论
3点赞
发布博客于 8 年前

Linux GCC常用命令

1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。
转载
530阅读
0评论
0点赞
发布博客于 8 年前

Linux Shell编程入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的She
转载
542阅读
0评论
0点赞
发布博客于 8 年前

嵌入式开发中格式化usb设备为ext3/4文件格式及文件系统掉电修复

1. 首先移植e2fsprogs1.41.4源码,new一个文件夹build或者release,在该目录下进行交叉编译。2.在misc目录下会生成可执行文件blkid, fsck, mke2fs,tune2fs等,编译image时将需要用到的可执行文件cp到开发板根文件系统的/sbin或者usr/sbin等目录下。完成上面两步之后,启动板子,在shell控制台输入mke2fs会有使用说明,
原创
4070阅读
0评论
0点赞
发布博客于 8 年前

FAT文件系统学习

转自http://blog.chinaunix.net/uid-23141914-id-211775.html这些天在看关于FAT文件系统的一些资料,思路有时混乱,有时又变得清晰起来。我想大抵学习的过程就是这样子吧。首先在深入的了解FAT的linux源码之前,需要了解一些FAT的原理。http://www.sjhf.net/pdf/fat.pdf  《FAT文件系统原理》从这个
转载
1248阅读
0评论
0点赞
发布博客于 8 年前

linux文件系统之mount流程分析

本质上,Ext3 mount的过程实际上是inode被替代的过程。例如,/dev/sdb块设备被mount到/mnt/alan目录。那么mount这个过程所需要解决的问题就是将/mnt/alan的dentry目录项所指向的inode屏蔽掉,然后重新定位到/dev/sdb所表示的inode索引节点。在没有分析阅读linux vfs mount代码的时候,我的想法是修改dentry所指向的inod
转载
18085阅读
2评论
3点赞
发布博客于 8 年前

html中出现%u554a和%E5%95%8A之类的字符串编码

在html页面中加入如下代码:结果还是同时出现%u554a和%E5%95%8A之类的表示中文的字符串编码,导致出现乱码。“啊” 的unicode编码表示为%u554a,utf-8编码表示为%E5%95%8A,该编码也成为URI编码。为了方便存储和显示中文,一般都采用charset=UTF-8方式,如碰到上述情况,可使用js方法encodeURI ()将unicode
原创
3756阅读
0评论
1点赞
发布博客于 8 年前

GB2312 Unicode转换表

源程序编辑软件将中文转化为GB2312编码,再下列的GB2312 Unicode转换表转为unicode。实现2维数值,GB2312编码为递增,适合用二分法查找由GB2312码找Unicode码。 只含基本的汉字,符号未包括。说明unit16 为16位的无符号整数unsigend short int#typedef  unsigned short int   u
转载
4461阅读
1评论
2点赞
发布博客于 8 年前

Unicode和UTF-8之间的转换详解

通过这几天的研究,终于明白了Unicode和UTF-8之间编码的区别。Unicode是一个字符集,而UTF-8   是Unicode的其中一种,Unicode是定长的都为双字节,而UTF-8是可变的,对于汉字来说Unicode  占有的字节比UTF-8占用的字节少1个字节。Unicode为双字节,而UTF-8中汉字占三个字节。                        网魂
转载
1248阅读
0评论
1点赞
发布博客于 8 年前

Busybox支持中文的解决办法

在嵌入式linux系统中,busybox是最常见的用来构建文件系统的。可是从busybox1.17.0以上之后,对ls命令不做修改是无法显示中文的。就算是内核设置了支持中文的话,在shell下用ls命令也是无法显示中文的,这是因为busybox1.17.0以后版本对中文的支持进行了限制。现在就来讲讲如何修改让busybox1.17.0以上版本支持中文,要想让busybox1.17.0以上支持中文,
转载
940阅读
0评论
0点赞
发布博客于 8 年前

linux 之fdisk分区及格式化操作

一、fdisk 的介绍;  fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具;本人译的不太好,也没有看中文文档;其实就是分区工具;  fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux 、fat32、 linux 、linux swap 、fat16 以及其实类Un
转载
784阅读
0评论
0点赞
发布博客于 8 年前

linux内核之文件系统

本文主要是基于百度文库的《Linux2.4.30内核文件系统学习(多图).doc》和360doc的《Linux内核虚拟文件系统》修改而来,当然还参考了其他的一些文档,在此就不一一列出了。本来在看到这些文章后,都没有勇气再写点文件系统方面的东西了,这些文章实在太精彩了。最后还是鼓足勇气决定把整理的资料增加了一点自己的理解写下来,主要目的是让各位高手看看我的理解是否正确,另外就是备忘。 1、如
转载
738阅读
0评论
0点赞
发布博客于 8 年前

linux文件系统初识

文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识。    本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录、挂载基本原理、文件存储结构、软链接硬链接、和常见目录的介绍。相信有了这些知识对于深入的学习linux会有一定的帮助。文章例子主要是基于ubuntu发行版。    如有不对之处请大家多多指出。1.Linux磁盘分区和目
转载
659阅读
0评论
0点赞
发布博客于 8 年前

c++ 时间类型详解 time_t

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广告采用。目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Unix时
转载
662阅读
0评论
0点赞
发布博客于 8 年前

Linux stat函数讲解(获取文件详细信息)

Linux stat函数讲解:表头文件:    #include                      #include 定义函数:    int stat(const char *file_name, struct stat *buf);函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:     执行成功则返回0
转载
9689阅读
0评论
0点赞
发布博客于 8 年前

C语言getopt()函数的使用

getopt(分析命令行参数)   相关函数表头文件        #include定义函数        int getopt(int argc,char * const argv[ ],const char * optstring);函数说明        getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和
转载
772阅读
0评论
0点赞
发布博客于 8 年前

META http-equiv="refresh" 实现网页自动跳转

***.html自动跳转文件代码如下:.js" type="text/javascript">document.write('' + wizard_pls_wait + '')使用说明: 刷新内容   x 是刷新的时间,单位是秒。*.* 是刷新的文件。 利用标签实现Web的自动跳转。
原创
39562阅读
0评论
2点赞
发布博客于 8 年前

ASCII码表

ASCII码表信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。 八进制
原创
1144阅读
0评论
4点赞
发布博客于 8 年前

linux c语言字符串函数replace,indexOf,substring等的实现

c语言没有像java那么丰富的字符串操作函数,很多有用的函数得自己写,写几个常用函数,留着以后有用。[cpp] view plaincopy#include   #include   /*将str1字符串中第一次出现的str2字符串替换成str3*/  void replaceFirst(char *str1,char *str2,char *s
转载
956阅读
0评论
0点赞
发布博客于 8 年前

fdisk 和 df 命令

一、df命令;    df是来自于busybox/coreutils软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;   举例:    [root@localhost beinan]# df -lh    Filesystem            容量 已用可用已用%挂载点    /dev/hda8
转载
958阅读
0评论
0点赞
发布博客于 8 年前

Kconfig文件结构

Kconfig文件结构(图文)简介1 Kconfig和Makefile毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。基本上,Linux 内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。Kconfig和Makefile就好似一个城市的地图,地图引导我们去 认识一个城市,而Kconfig和Makefile则可以让我
转载
777阅读
0评论
0点赞
发布博客于 8 年前

strtok和strtok_r的使用原理

strtok_r是linux平台下的strtok函数的线程安全版。windows的string.h中并不包含它。要想使用这个函数,上网搜其linux下的实现源码,复制到你的程序中即可。别的方式应该也有,比如使用GNU C Library。我下载了GNU C Library,在其源代码中找到了strtok_r的实现代码,复制过来。strtok和strtok_r的源代码这两
转载
915阅读
0评论
0点赞
发布博客于 8 年前

linux用mknod创建设备(节点)

mknod命令用于创建一个设备文件,即特殊文件首先要明白什么是设备文件,简单的我们说 操作系统与外部设备(入磁盘驱动器,打印机,modern,终端 等等)都是通过设备文件来进行通信的,在Unix/Linux系统与外部设备通讯之前,这个设备必须首先要有一个设备文件,设备文件均放在/dev目录下一般情况下在安装系统的时候系统自动创建了很多已检测到的设备的设备文件,但有时候我们也需要自己手动创建,命
原创
8493阅读
0评论
0点赞
发布博客于 8 年前

WebDAV相关

WebDAV(Web-based Distributed Authoring and Versioning)是基于 HTTP 1.1 的一个通信协议。它为 HTTP 1.1 添加了一些扩展(就是在 GET、POST、HEAD 等几个 HTTP 标准方法以外添加了一些新的方法),使得应用程序可以直接将文件写到 Web Server 上,并且在写文件时候可以对文件加锁,写完后对文件解锁,还可以支持
转载
849阅读
0评论
0点赞
发布博客于 8 年前

如何编译Linux内核

内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。本文将以RedHat Linux 6.0(kernel 2.2.
转载
668阅读
0评论
0点赞
发布博客于 8 年前

通过纯JS和css实现自定义弹出对话框

需求:实现通过一个弹出对话框来选择下拉列表中对应值进行参数设置操作,及弹出对话框中需要有一个下拉列表输入和一个确定按钮即可,要求弹出对话框后,背部界面不能够操作或者被屏蔽灰掉。思路:1.开始以为so so much simple,毫不犹豫考虑prompt弹出对话框,结果发现prompt只能进行简单的文本输入操作,不能进行下拉列表选择输入操作,于是放弃。2.很多BS模式系统中弹出对话
原创
15806阅读
6评论
0点赞
发布博客于 8 年前

CSS计数器在display为none时无法正确使用的解决方法

问题:界面html代码如下,ol里面的内容需要事先隐藏,并给ol加上一个计数器,将该页面ol从隐藏变为显示时,序号全部为0或1,而不是递增序号,所有浏览器都是如此。;......解决办法:首先是查看计数器css属性counter-reset、counter-increment等的使用方法,发现如果使用 "display: none",则无法重置计数器。如果使用 "vis
原创
1639阅读
0评论
0点赞
发布博客于 8 年前

IE8及低版本浏览器不支持CSS3 media queries的解决方法

最近在解决UI问题时碰到以下浏览器不兼容性问题(本人属于UI业余操作者,很多想法就很业余了):问题:IE8及其以下低版本IE浏览器在缩小窗口时,UI没有按照相应的要求显示窗口缩小时对应的布局;其他浏览器正常。定位过程:其实开始拿到问题时是无从下手,不知所以然,根本就没听说还有media这个CSS属性,就更不知道它的功能了。但是对于解决UI问题,有自己的一套思路,就是首先要思考为什么会错
原创
37694阅读
5评论
1点赞
发布博客于 8 年前

WIN7升级IE9或IE10后打开网页即出现白屏(空白)的处理方法

由于IE9或IE10使用GPU加速,一些不支持的显卡打开网页显示白屏,大家可以试着通过以下方法进行设置:解决方法:点击“工具”菜单(位于页面关闭按钮右下方或者直接点击菜单栏上的“工具”),在下拉菜单中打开Internet选项,切换到高级,找到“使用软件渲染而不是GPU”选项,然后“确定”,再重启IE即可。如果还是没有解决有可能是由于第三方插件引起的,建议您先禁用加载项并再次尝试。即
原创
8749阅读
0评论
0点赞
发布博客于 8 年前

看一遍那些晦涩的网络术语都弄明白

计算机主机网关的作用是什么?假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远
转载
1172阅读
0评论
0点赞
发布博客于 8 年前

android2.3平台上web页面(html5中使用frame)不能滑动的解决方法

问题描述web页面采用html5技术实现,在系统登录页面中使用frameset、frame来嵌套另一个页面,结果当android2.3移动设备访问该页面时触摸屏不能上下滑动页面。解决方法1.首先将该页面简单化,去掉frame相关标签,结果可以滑动页面,但是根据系统设计需要,frame相关标签不能去掉;2.折腾很久未果,最后发现代码里有viewport的注释痕迹,于是尝试使用html
原创
8542阅读
0评论
0点赞
发布博客于 8 年前

fopen中r,w,a,+的含义

fopen(path, mode);r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,
原创
9824阅读
0评论
4点赞
发布博客于 8 年前

match之-m limit,-m state,--icmp-type参数匹配

-m limit这个匹配操作必须由-m limit明确指定才能使用。有了它的帮助,就可以对指定 的规则的日志数量加以限制,以免你被信息的洪流淹没哦。比如,你可以事先设定一个限定值,当符合条件 的包的数量不超过它时,就记录;超过了,就不记录了。我们可以控制某条规则在一段时间内的匹配次数 (也就是可以匹配的包的数量),这样就能够减少DoS syn flood攻击的影响。这 是它的主要作用,当然
原创
1041阅读
0评论
0点赞
发布博客于 8 年前

TCP/IP协议号大全

IP协议号   IP首部中有8位协议号,用于指明IP的上层协议。0 HOPOPT IPv6 逐跳选项 1 ICMP Internet 控制消息 2 IGMP Internet 组管理 3 GGP 网关对网关 4 IP IP 中的 IP(封装) 5 ST 流 6 TCP 传输控制 7 CBT CBT 8 EGP 外部网关协议 9 IGP 任何专用内部网关
原创
20376阅读
1评论
0点赞
发布博客于 8 年前

Linux下Shell输出重定向到空设备文件1>/dev/null 2>&1

Linux下使用shell命令时经常使用类似这样的Shell输出重定向:1>/dev/null 2>&1在Shell命令的结尾,我们可以通过>符号来重定向输出。1. 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为22. /dev/null 空设备文件,相当于垃圾桶3. 重定向符号:>逐一
转载
23904阅读
1评论
2点赞
发布博客于 8 年前

Linux系统.ko文件与.so文件

1、Linux系统下.ko文件是什么文件?.so文件是什么文件? .ko  -- kernel object,内核模块,可以在Linux内核起来之后动态的加载和卸载,内核使用的动态连接文件的后缀名。  .so  -- shared object,用户层的动态库 (共享库),用于动态连接的,和dll差不多。使用同一个.so的程序在运行时只需要该.so的同一份拷贝,如果编译安装了模块,还会
原创
4432阅读
0评论
0点赞
发布博客于 8 年前

NAT loopback

DMZ和Virtual server做的都是DNAT,即从wan口访问router/gate-way的某服务端口,其实是向router/gate-way内部网络的某设备/pc上的相对应的服务。且只能是wan端的客户访问lan端的服务才有这种端口转发/端口映射的关系,lan端的客户以router/gate-way的wan端地址是访问不了lan端的服务的(如果要实现此功能,也即所谓的NAT loo
转载
4708阅读
0评论
0点赞
发布博客于 8 年前

路由表和默认网关

linux 路由表维护查看 Linux 内核路由表使用下面的 route 命令可以查看 Linux 内核路由表。# routeDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.0 * 255.255.
转载
5020阅读
0评论
1点赞
发布博客于 8 年前

路由下一跳与出站接口区别

用出站接口,意思就是去往指定目标网络从这个接口丢出去,适用于点到点网络,和ARP无关,点到点网络本身是可以不需要地址的。除了你就是我,除了我就是,你要不要地址、寻址根本没什么意思。所以用出站接口写静态路由,路由表里显示的是直连。    用下一跳IP地址,下一跳IP地址,叫递归静态路由,路由器在转发数据包到目标网络的时候,首先要先解析下一跳的可达性,换句话说总共要解析两次,从转发效率上来说低
原创
9461阅读
0评论
0点赞
发布博客于 8 年前

Nmap扫描原理与用法

1     Nmap介绍Nmap扫描原理与用法PDF:下载地址Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具
转载
1161阅读
0评论
0点赞
发布博客于 8 年前

SNAT策略、应用及MASQUERADE

SNAT(Source Network Address Translation,源地址转换)是Linux防火墙的一种地址转换操作,也是iptables命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的源IP地址。1.1、SNAT策略概述随着Internet网络在全世界范围内的快速发展,Ipv4协议支持的可用IP地址资源逐渐变得山穷水尽,资源匮乏使得许多企业难以申请更多的公网I
转载
1627阅读
0评论
0点赞
发布博客于 8 年前

Wireshark: The NPF driver isn’t running

Wireshark一个强大的数据抓包分析工具,在Win7 64位系统上第一次使用时,可能会出现意外的情况。 The NPF driver isn’t running. 这个情况可能是因为没有安装Winpcap驱动或者安装Winpcap时没有选中开机自动启动winpcap选项。解决方法:1. 没有安装Winpcap,通常在 Wireshark的安装目录内都有带一个Winpcap的安装包,
转载
3942阅读
0评论
0点赞
发布博客于 8 年前

CSS 选择器nth-child

前端的哥们想必都接触过css中一个神奇的玩意,可以轻松选取你想要的标签并给与修改添加样式,是不是很给力,它就是“:nth-child”。下面我将用几个典型的实例来给大家讲解:nth-child的实际用途:还用低版本的IE浏览器的哥们请绕过!支持IE9及以后版本。IE7、IE8支持first-child伪类,不支持last-child。:nth-child(2)选取第几个标签
原创
898阅读
0评论
0点赞
发布博客于 8 年前

Netfilter之连接跟踪的执行流程分析

一、连接跟踪的预备知识    连接跟踪的概念及作用,这里都不做介绍了。下面先说一下连接跟踪在Netfilter中起效的hook点以及对应的hook函数。[Copy to clipboard] [ - ]CODE:/* Connection tracking may drop packets, but never alters them, so   make it the f
转载
1160阅读
0评论
0点赞
发布博客于 9 年前

如何理解Netfilter中的连接跟踪机制

连接跟踪定义很简单:用来记录和跟踪连接的状态。为什么又需要连接跟踪功能呢?因为它是状态防火墙和NAT的实现基础。Neftiler为了实现基于数据连接状态侦测的状态防火墙功能和NAT地址转换功能才开发出了连接跟踪这套机制。那就意思是说:如果编译内核时开启了连接跟踪选项,那么Linux系统就会为它收到的每个数据包维持一个连接状态用于记录这条数据连接的状态。接下来我们就来研究一下Netfilte
转载
2375阅读
0评论
0点赞
发布博客于 9 年前

DMZ及其设置相关

1.什么是DMZ?DMZ是网络的一个区域,介于外网与内网之间的一个特殊区域,既然说他特殊,就有他的特殊性,也成隔离区,,在传统意义上,安装了防火墙后,外部网络是不能访问内部网络的,要不还要防火墙干啥,假如说外部网络想要访问内部网络,比如内部网络有台WEB主机,对外提供服务,就得解决安装防火墙之后的矛盾了,一般情况下,外部网络访问内部网络有两种方法:一,主机放在内部网络LAN中,在路由器或者
转载
6459阅读
0评论
1点赞
发布博客于 9 年前

从SNAT/DNAT角度分析数据包流转

DNAT target    这个target是用来做目的网络地址转换的,就是重写包的目的IP地址。如果一个包被匹配了,那么和它属于同一个流的所有的包都会被自动转换,然后就可以被路由到正确的主机或网络。DNAT target是非常有用的。比如,你的web服务器在LAN内部,而且没有可以在Internet上使用的真实IP地址,那就可以使用这个target让防火墙把所有到它自己HTTP端口的包
转载
3489阅读
0评论
0点赞
发布博客于 9 年前

Netfilter的Mangle机制

Mangle是一个比较容易被人忽略的机制,而且Mangle的使用机会并不是很多,但如果需要时又不懂Mangle机制,也是件很麻烦的事,在此还是要说明一下Mangle机制。Mangle通过标记特定的IP数据流后,为Filter、NAT和、路由、Queue提供标记后的IP数据流。Mangle特点不管是QoS、防火墙、nat规则和路由,在许多特殊的应用中都会使用Man
转载
2159阅读
0评论
0点赞
发布博客于 9 年前

Port Forwarding & Port Triggering

在使用NAT的网络中,内部终端的IP地址为私网地址,发出去的IP包在NAT网关处进行地址转换,以公网地址与外部联系。在转换过程中,网关建立映射表,并维护对应连接的状态。当来自公网的包返回时,按照目的地址查找映射表,找到对应的私网地址,然后再次转换后发送给内部终端。这样,映射表中条目的增加是由内部发往外部的数据流触发的。因此,如果外部想直接访问内部是不可能的。    在实际应用中,被NAT网
转载
12895阅读
1评论
1点赞
发布博客于 9 年前

交换机和路由器的数据包转发流程简述

当交换机收到一个数据包时;交换机会将这个数据包包头的目的MAC信息提取出来,与自身的MAC地址表比较;情况一:如果找到对应项,则按MAC表进行转发;情况二:如果没找到对应项,则在除了接收到数据包以外的所有端口进行转发(广播);解释:MAC地址表 是MAC地址与端口对应的关系表;即某个MAC地址连接在某个端口;问题:当情况二发生时,需要在其他所有端口进行广播(这样做其实很不好
转载
36204阅读
5评论
8点赞
发布博客于 9 年前

ETHERNET中MAC通过MII总线控制PHY的过程

一些芯片资料常常遇到MAC MODE 和PHY MODE 不知什么意思?一般以太网芯片中涉及,一般交换芯片(比如ks8993吗,8305sb等)可以选择两种模式,mac和phy。应该就是针对不同的外部接口采用的不同模式吧,主要是区别在于针对OSI七层协议中数据链路层中处理信息所处的层不一样,也就导致处理的对象不一样。以下资料来自网络是针对有关MAC、PHY和MII 的详细解
转载
5981阅读
0评论
2点赞
发布博客于 9 年前

网络驱动移植之例解netdev_priv函数

1. 函数netdev_priv分析[cpp] view plaincopyinclude/linux/netdevice.h  #define NETDEV_ALIGN        32  #define NETDEV_ALIGN_CONST  (NETDEV_ALIGN - 1)  static inline void
转载
815阅读
0评论
0点赞
发布博客于 9 年前

一个最简单的Linux 2.6内核驱动模块

/* hello.c */        #include linux/module.h>       /* Needed by all modules */        #include linux/config.h>       /* Needed for KERN_ALERT */        #include          /* Needed for
转载
502阅读
0评论
0点赞
发布博客于 9 年前

socket与文件描述符

在Linux编程时,无论是在操作文件还是网络操作时都能够通过文件描述符来read或者write。Linux这一套文件机制就相当于面向对象里面的多态,拿到一个文件描述符都可以进行read或者write。但是具体的read和write却跟对应文件描述符的具体实现不同。比如socket的就是走网络,常用skfd表示文件描述符,普通文件的就是走磁盘IO,常用fd表示文件描述符。
转载
1847阅读
0评论
0点赞
发布博客于 9 年前

printf、sprintf与fprintf 的区别

1: fprintf()#include  int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如    char name[20] = "Mary";    FILE
转载
1053阅读
0评论
0点赞
发布博客于 9 年前

C语言字符串,字符转数字,数字转字符

在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串。字符串是以“/0”作为结束符。C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数。  ● 字符串输出函数puts。  ● 字符串输出函数gets。  ● 字符串连接函数strcat。  ● 字符串复制函数strcpy。  ● 测字符串长度函数strlen。字符串是面试的
转载
21336阅读
0评论
4点赞
发布博客于 9 年前

DHCP协议原理及其实现流程

DHCP(Dynamic Host Configuration Protocol):动态主机配置协议在常见的小型网络中(例如家庭网络和学生宿舍网),网络管理员都是采用手工分配IP地址的方法,而到了中、大型网络,这种方法就不太适用了。在中、大型网络,特别是大型网络中,往往有超过100台的客户机,手动分配IP地址的方法就不太合适了。因此,我们必须引入一种高效的IP地址分配方法,幸好,DHCP(Dy
原创
29492阅读
4评论
21点赞
发布博客于 9 年前

Linux 流量控制工具 TC 详解

名称:tc - 显示/维护流量控制设置 一、命令格式: tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ] tc class [ add | change
转载
23061阅读
0评论
2点赞
发布博客于 9 年前

Linux下QoS模块之tc(traffic control)操作简介

Linux从kernel 2.1.105开始支持QOS,不过,需要重新编译内核。运行 'make config'时将 EXPERIMENTAL _OPTIONS 设置成 'y',并且将 Class Based Queueing (CBQ), Token Bucket Flow, Traffic Shapers 设置为 'y' ,运行 'make dep; make clean; m
转载
11899阅读
0评论
0点赞
发布博客于 9 年前

Linux 2.4.x内核中网络协议栈QoS模块(TC)的设计与实现

本文描述了linux 2.4.x内核中对QoS支持的设计与实现,并且对缺省的数据包调度机制PFIFO进行了详细的分析。在传统的TCP/IP网络的路由器中,所有的IP数据包的传输都是采用FIFO(先进先出),尽最大努力传输的处理机制。在早期网络数据量和关键业务数据不多的时候,并没有体现出非常大的缺点,路由器简单的把数据报丢弃来处理拥塞。但是随着计算机网络的发展, 数据量的急剧增长,以及多媒体,V
转载
1536阅读
0评论
0点赞
发布博客于 9 年前

iptables常用命令

常用命令列表:命令 -A, --append范例 iptables -A INPUT ...说明 新增规则到某个规则炼中,该规则将会成为规则炼中的最后一条规则。命令 -D, --delete范例 iptables -D INPUT --dport 80 -j DROPiptables -D INPUT 1 说明 从某个规则炼中删除一条规则,可以输入完整规则,或直接指定规
转载
598阅读
0评论
0点赞
发布博客于 9 年前

TCP: SYN ACK FIN RST PSH URG 详解

三次握手Three-way Handshake (引自:http://hi.baidu.com/netzhou/blog/item/f13e32823f2418b96d811900.html)一个虚拟连接的建立是通过三次握手来实现的 1. (B) --> [SYN] --> (A) 假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchroni
转载
711阅读
0评论
0点赞
发布博客于 9 年前

基于TCP半连接SYN Flooding攻击原理及防范

说起安全,不得不说一下当前最为流行的一种 DDOS 的攻击方式,从目前看来,这种攻击仍然是危害性相当大,并且没有办法彻底防范的一种攻击方式。而且,凡是基于 TCP 的高层应用,都有可能受到这种致命的攻击。       在“可靠的”传输层,在这里打上引号,是因为传输层并不是真正的可靠的,而只是相对的。为什么这么说呢,因为在 2 端的通信中,如果由于通信链路的故障,或者是某一端的故障,造成了通信的
转载
2321阅读
0评论
0点赞
发布博客于 9 年前

ebtables基本使用

ebtables和iptables类似,都是Linux系统下网络数据包过滤的配置工具。既然称之为配置工具,就是说过滤功能是由内核底层提供支持的,这两个工具只是负责制定过滤的rules.ebtables即是以太网桥防火墙,以太网桥工作在数据链路层,ebtables来过滤数据链路层数据包。 2.6内核内置了ebtables,要使用它必须先安装ebtables的用户空间工具(ebtables-v2.
原创
27745阅读
4评论
2点赞
发布博客于 9 年前

IPTABLES中SNAT和MASQUERADE的区别

IPtables中可以灵活的做各种网络地址转换(NAT)网络地址转换主要有两种:SNAT和DNAT SNAT是source network address translation的缩写即源地址目标转换比如,多个PC机使用ADSL路由器共享上网每个PC机都配置了内网IPPC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip当外部网络的服务器
转载
5220阅读
0评论
1点赞
发布博客于 9 年前

RFC2516中文翻译版(PPPOE)

Network Working Group                                        L. MamakosRequest for Comments: 2516                                      K. LidlCategory: Informational
原创
2456阅读
0评论
0点赞
发布博客于 9 年前

SLIP协议和PPP协议

SLIP协议和PPP协议都是数据链路层协议。SLIP和PPP是串行线上最常用的两个链路层通信协议,它们为在点对点链路上直接相连的两个设备之间提供一种传送数据报的方法。互联的两端设备可以是主机与主机、路由器和路由器、主机和路由器。SLIP协议        串行线路网际协议SLIP(Serial Line Internet Protocol)是在串行通信线路上支持TCP/IP协议的一种点对点
原创
8044阅读
0评论
1点赞
发布博客于 9 年前

IPTables工具及其与netfilter关系介绍

IPTables概述        IPTables是基于Netfilter基本架构实现的一个可扩展的数据报高级管理系统或核外配置工具,利用table、chain、rule三级来存储数据报的各种规则。Netfilter-iptables由两部分组成,一部分是Netfilter的"钩子",另一部分则是知道这些钩子函数如何工作的一套规则--这些规则存储在被称为iptables的数据结构之中。钩子函
原创
4513阅读
0评论
1点赞
发布博客于 9 年前

Linux内核中Netfilter架构介绍

Netfilter概述         Netfilter/IPTables是Linux2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块IPTables从用户态的iptables连接到内核态的Netfilter的架构中,Netfilter与IP协议栈是无缝契合的,并允许使用者对数据报进行过滤、地址转换
原创
24872阅读
0评论
13点赞
发布博客于 9 年前

TCP/IP详解学习笔记(7)-TCP交互数据流,成块数据流

目前建立在TCP协议上的网络协议特别多,有telnet,ssh,有ftp,有http等等。这些协议又可以根据数据吞吐量来大致分成两大类:(1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等。(2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提高效率。针对这两种情
转载
1036阅读
0评论
0点赞
发布博客于 9 年前

TCP/IP详解学习笔记(6)-TCP协议概述

终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读。前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西。TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后
转载
663阅读
0评论
0点赞
发布博客于 9 年前