- 博客(26)
- 资源 (2)
- 收藏
- 关注
原创 搭建内核态与用户态通信机制
Netlink相对于其他的通信机制具有以下优点:使用Netlink通过自定义一种新的协议并加入协议族即可通过socket API使用Netlink协议完成数据交换,而ioctl和proc文件系统均需要通过程序加入相应的设备或文件。 Netlink使用socket缓存队列,是一种异步通信机制,而ioctl是同步通信机制,如果传输的数据量较大,会影响系统性能。 Netlink支持多播,属于一个...
2020-05-06 11:18:25 364
原创 linux下搭建tftp服务
tftp服务器最简单安装配置1.安装tftp-serversudo apt-get install tftpd-hpasudo apt-get install tftp-hpa(如果不需要客户端可以不安装)tftp-hpa是客户端tftpd-hpa是服务器端2.配置TFTP服务器sudo vim /etc/default/tftpd-hpa将原来的内容改为:TF
2017-08-01 16:58:22 800
转载 Linux回环网卡驱动设计
注:来源:Linux社区 作者:chd-zhangbo回环网卡驱动1.回环网卡和普通网卡的区别是他是虚拟的不是实际的物理网卡,它相当于把普通网卡的发送端和接收端短接在一起。2.在内核源代码里的回环网卡程序(drivers/net/loopback.c)不是以一个模块的形式给出,但是他的初始化(loopback_net_init)和退出函数(loopback_dev_free)会
2017-07-04 10:06:10 590
转载 linux网络设备—PHY
一.结构体1.PHY设备struct phy_device { struct phy_driver *drv; //PHY设备驱动 struct mii_bus *bus; //对应的MII总线 struct device dev; //设备文件 u32 phy_id; //PHY ID enum phy_state state; //PHY状态 u32 dev_flags;
2017-06-30 09:53:17 885
转载 linux 下查看机器是cpu信息
more /proc/cpuinfo |grep "physical id"|uniq|wc -l每个cpu是几核(假设cpu配置相同)more /proc/cpuinfo |grep "physical id"|grep "0"|wc -lcat /proc/cpuinfo | grep processor1. 查看物理CPU的个数#cat /proc/cpuinfo |gr
2017-02-20 14:30:06 280
转载 svn命令与git命令对比
常用的svn与Git命令对比如下:svnadmin create ------------------------------> git initsvn co ------------------------------> git clonesvn update ------------------------------> git
2016-11-09 17:57:44 780
转载 vim高亮问题
在有些linux的版本中,在vim中搜索出来的关键字是不带高亮的,这样很不利于我们阅读。可以通过以下命令是关键字高亮。1.使一个关键字高亮先用vim打开你要阅读的文件,然后进入命令模式,即在非编辑状态下,按":"。然后使用下面命令:[/pattern/]: 这个参数是你要搜索的关键字。注:命令使用时,参数不要加[]例:在打开的文件中搜索所有的error,并使其高亮。:match S
2016-11-08 19:06:39 704 1
转载 setsockopt的几种用法
注:closesocket()是windows下的函数相当于linux下的关闭socket所使用的close()函数1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseadd
2016-11-02 11:21:05 244
原创 net-snmp扩展trap类型的私有mib
注:本文介绍的是静态编译的方法扩展的私有mib,别的方法请看本人整理的《net-snmp agent开发(用net-snmp扩展MIB库)》1. 首先创建一个简单的含有table变量的mib文件取名test-trap.mib,后缀名也可以是.txt 实际操作没有区别; TEST-TRAP-MIB DEFINITIONS ::= BEGIN IMPORT
2016-08-04 15:09:42 6712 5
原创 net-snmp扩展table类型的私有mib
注:本文介绍的是静态编译的方法扩展的私有mib,别的方法请看本人整理的《net-snmp agent开发(用net-snmp扩展MIB库)》1. 首先创建一个简单的含有table变量的mib文件取名test.mib,后缀名也可以是.txt 实际操作没有区别;TEST-DEVICE-MIB DEFINITIONS ::= BEGINIMPORTS MODULE-IDENT
2016-07-11 15:04:02 5132 1
转载 /usr/bin/ld: cannot find -lcrypto 错误的解决方法
Linux下 build code 时,要做 -lssl, -lcrypto 的链接,出现类似下面的错误:/usr/bin/ld: cannot find -lcrypto/usr/bin/ld: cannot find -lssl原因是没有找到 libssl.soyum info openssl,发现openssl 1.0.0已经安装了
2016-07-08 10:59:03 2898
转载 net-snmp移植项目总结
1、 项目移植总结1.1 交叉编译的configure参数的配置交叉编译参数的设置,这个部分是最基本的,如果参数设置的有问题,snmpd运行起来就会有问题。在x86环境下进行测试的时候,选用一个简单的编译参数,可以工作:LDFLAGS="-L/home/zmj/work/LNOS/mc218/lib/x86"LIBS="-lsqlite3 -lmc21
2016-07-04 11:22:27 1095
转载 Makefile选项CFLAGS,LDFLAGS,LIBS
CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include
2016-07-04 10:37:42 311
原创 linux获取当前系统时间与启动时间
linux当前系统时间:#include #include void main(){ time_t rawtime; struct tm * timeinfo; time(&rawtime); timeinfo = localtime(&rawtime); printf("The current date/time is:%d-%d-%d %d:%d:%d\n",timei
2016-06-30 11:00:57 1498
转载 关于C语言中的#if等
当注释掉大块代码时,使用"#if 0"比使用"/**/"要好,因为用"/**/"做大段的注释要防止被注释掉的代码中有嵌套的"/**/",这会导致注释掉的代码区域不是你想要的范围, 当被注释掉的代码很大时容易出现这种情况,特别是过一段时间后又修改该处代码时更是如此。 在这里顺便对条件编译(#ifdef, #else, #endif, #if等)进行说明。以下分3种情况: 1. 情
2016-06-20 10:45:56 568
转载 net-snmp中载入第三方mib库
Management Information Base(管理信息库,MIB)是一组对象,定义可对某个设备提出的查询。 我们所 用的snmp监控主机如果要轮询一个支持snmp的设备的某项数据,它必须发出被查询设备所能理解的查询命令,这个就需要监控主机载入被查询设备对应的 MIB,这个MIB将通知snmp监控主机有关由 MIB 模块化的数据的布局和组成。 Linux 中所使用的net-
2016-06-15 10:20:51 14499 3
原创 net-snmp agent开发(用net-snmp扩展MIB库)
注:本文经过http://blog.csdn.net/hepeng597/article/details/8782868原文以及网上资料进行归纳整理用net-snmp扩展MIB库,实现方法可归结为四种:1)一是静态库方式,通过修改配置头文件,在相应地方包含新引入的mib模块的.c和.h文件,然后重新编译库文件和扩展代码;这种方式不够灵活,每次修改扩展的MIB后,都需要重新编译snm
2016-06-06 15:17:44 9447
转载 结构体中char a[0]用法——柔性数组
有如下定义:typedef struct{ char a; char b[0]; }; 其中元素Char b[0];叫做柔性数组,主要用于使结构体包含可变长字段。详细内容如下:柔性数组; 【柔性数组结构成员 C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。柔性数组成员允许结构中包含一个大小
2016-05-21 10:27:18 4657
转载 quagga 命令定义的代码分析(DEFUN)
在quagga中有很多的命令,利用这些下面分析一下命令是怎么被读取和执行的。在quagga中定义的命令都是利用宏定义实现的,这个宏定义还是有点复杂,下面是命令的宏定义语句。#define DEFUN(funcname, cmdname, cmdstr, helpstr) \ DEFUN_CMD_FUNC_DECL(funcname) \ DEFUN_CMD_ELEMENT(func
2016-05-10 11:08:53 1506
转载 net-snmp的配置文件snmpd.conf配置说明
1. com2sec命令格式一: com2sec [-Cn context] sec.name source community功能:map the community name (COMMUNITY) into a security name,即将实体(community) 字符串映射为安全的名字,v1 和v2版本都是明文密码,也就无所谓安全性了。v3 中增加了安全性。参数说明:-C
2016-05-04 16:49:40 1931
原创 net_device剖析
网络设备接口层为了千变万化的设备定义了统一、抽象的数据结构net_device结构体来实现多种硬件在软件层次上的统一。net_device本身是一个巨型结构体,包含网络设备的属性描述和操作接口。(1)全局信息char name[IFNAMESIZ];name是网络设备的名称。int (*init)(struct net_device *dev);init 为设备初始化函数指针,
2016-04-08 16:52:00 1240
原创 of_find_property(np, name, lenp)等函数的理解
1.of_get_property(device, "compatible", &cplen);// 通过所给的名字找到相应节点的属性2.of_find_property(np, name, lenp);//这个函数与of_get_property()不同的是返回值变为property。3.for_each_compatible_node(np, N
2016-04-08 14:31:03 10900
原创 struct ethdr结构体剖析
在linux系统中,使用struct ethhdr结构体表示以太网帧的头部。这个struct ethhdr结构体位于linx内核include\linux\if_ether.h中。struct ethhdr结构体原型如下所示:struct ethhdr{ unsigned char h_dest[ETH_ALEN]; //目的MAC地址 unsigned ch
2016-04-06 13:25:18 1306
原创 sk_buff学习总结
sk_buff 源文件:linux-2.6.37/ include/ linux/ skbuff.h linux-2.6.37/ include/ linux/ skbuff.csk_buff数据结构:/* struct sk_buff - socket buffer */struct sk_buff {
2016-04-05 18:34:00 1089
原创 Netlink使用总结
1 概述 Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。 Netlink套接字可以使用标准的套接字APIs来创建。socket(), bind(), sendmsg(), recvmsg() 和 close()很容易地应用到 netlink socket。Netlink有如下优点: 使用Netlink通
2016-04-05 09:33:14 4408
原创 linux platform总线的相关总结
1 概述 1.1 简介 从Linux2.6起,引入了一套新的驱动管理和注册机制,包括三部分:Platform_bus,Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制,设备用platform_device表示,驱动用platform_driver表示。Platform bus属于内核的一部分,驱动程序可以不用关注,详细信息可以参考
2016-04-05 09:08:12 308
source insight 4.00.0087
2017-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人