自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

star

好记性不如烂笔头

  • 博客(16)
  • 收藏
  • 关注

原创 iptables 防火墙

iptables命令解析

2021-12-22 09:14:51 102

转载 多进程/多线程TCP server实现

socket在TCP/IP协议中,“IP地址+TCP/UDP端口号”表示唯一网络通信中的一个进程,IP地址+端口号称为socket。注意:字节序有大端和小端,在两台使用不同字节序的主机上通信,为了让两台主机间能正确的通信,发送端总是把字节序转成大端字节序数据后在发送,接收方知道接受的一定是大端字节序,然后根据自己的字节序进行转化就不会出错。调用函数int socket(int do...

2019-05-15 16:36:52 559

原创 crontab使用

1.语法介绍:分 时 天 月 周 命令每列表示意义a. 第一个*表示的是分钟1~59分钟,默认*表示的是每分钟都执行,x-y表示的是x~y这段每分钟都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z分钟都执行。b. 第二个*表示的是小时1~23小时,默认*表示的是每小时都执行,x-y表示的是x~y这段每小时都执行,*/n表示每n小时执行一次,x,y,z表示的是x,

2017-10-23 16:34:17 301

原创 epoll使用

1. int epoll_create(int size)创建一个epoll的句柄,size用来告诉内核这个监听的数目一共有多大(maxfd+1);当创建好epoll句柄后,它就是会占用一个fd值,在linux下如果查看/proc/进程id/fd/,是能够看到这个fd的,所以在使用完epoll后,必须调用close()关闭,否则可能导致fd被耗尽。2. int epoll_ctl(int

2017-10-09 14:54:10 268

原创 autotools工作原理

先按照一个简单的步骤实现一个automake的helloworld例子:1. 创建一个实验路径mkdir amhelloworld &&  cd amhelloworld2. 创建一个src目录mkdir -p src3. 创建一个简单的helloworld.c程序源文件vim amhelloworld.c[cpp] view plain

2017-09-25 10:07:24 1025

转载 Linux内核数据包处理流程-数据包接收(3)

五、队列层1、软中断与下半部当用中断处理的时候,为了减少中断处理的工作量,比如,一般中断处理时,需要屏蔽其它中断,如果中断处理时间过长,那么其它中断有可能得不到及时处理,也以,有一种机制,就是把“不必马上处理”的工作,推迟一点,让它在中断处理后的某一个时刻得到处理。这就是下半部。下半部只是一个机制,它在Linux中,有多种实现方式,其中一种对时间要求最严格的实现方式,叫

2017-08-29 09:40:50 440

转载 Linux内核数据包处理流程-数据包接收(2)

四、网卡的数据接收内核如何从网卡接受数据,传统的经典过程:1、数据到达网卡;2、网卡产生一个中断给内核;3、内核使用I/O指令,从网卡I/O区域中去读取数据;我们在许多网卡驱动中,都可以在网卡的中断函数中见到这一过程。但是,这一种方法,有一种重要的问题,就是大流量的数据来到,网卡会产生大量的中断,内核在中断上下文中,会浪费大量的资源来处理中断本身。所以,一个问题

2017-08-29 09:39:51 662

转载 Linux内核数据包处理流程-数据包接收(1)

数据包的接收作者:kendoKernel:2.6.12一、从网卡说起这并非是一个网卡驱动分析的专门文档,只是对网卡处理数据包的流程进行一个重点的分析。这里以Intel的e100驱动为例进行分析。大多数网卡都是一个PCI设备,PCI设备都包含了一个标准的配置寄存器,寄存器中,包含了PCI设备的厂商ID、设备ID等等信息,驱动程序使用来描述这些寄存器的标识符。如

2017-08-29 09:38:17 2375

转载 bitmap

概述所谓bitmap就是用一个bit位来标记某个元素对应的value,而key即是这个元素。由于采用bit为单位来存储数据,因此在可以大大的节省存储空间算法思想32位机器上,一个整形,比如int a;在内存中占32bit,可以用对应的32个bit位来表示十进制的0-31个数,bitmap算法利用这种思想处理大量数据的排序与查询优点: 效率高,

2017-02-23 16:07:31 205

转载 makefile中变量调试

转载:http://blog.youkuaiyun.com/u011923747/article/details/21193887对于Makefile中的各种变量,可能是我们比较头痛的事了。我们要查看他们并不是很方便,需要修改makefile加入echo命令。这有时候很不方便。其实我们可以制作下面一个专门用来输出变量的makefile(假设名字叫:vars.mk)vars.mk

2017-02-18 14:10:23 1422

原创 内核编译

根据要编译的内核运行的架构,选择ARCH和CROSS_COMPILE,下面以mips交叉编译为例:1. 配置内核时时,使用make  ARCH=mips  CROSS_COMPILE=mips-linux-  menuconfig2. 编译内核时使用make  ARCH=mips  CROSS_COMPILE=mips-linux- 内核配置

2017-02-16 16:50:07 416

原创 虚拟机联网及组网

参考网址:http://blog.youkuaiyun.com/u010738184/article/details/52131548通过Vmvare创建虚拟机,并通过3种方式(bridge,NAT,host-only)实现联网1、bridge:让主机和虚拟机在同一个网段,设置为bridge,并虚拟机网卡和主机的网卡桥接在一起2、NAT:使用NAT联网,ip地址的获

2017-02-16 09:25:24 270

原创 Makefile知识总结

1、.PHONY:声明为伪目标,当目标不依赖于任何文件时,在执行make的时候会认为该目标(没有变化)已经存在,不再执行底下的命令。    例如:clean:             @rm -f main2.o  2、wildcard:匹配指定模式的文件   $(wildcard *.c):匹配所有的.c文件3、define:定义一个命令包,在执行make时,命令包中

2017-02-16 09:15:35 471

原创 linux上运行程序问题,提示cannot open shared object file错误的解决办法

linux上运行程序问题,提示:./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory问题原因:没有找到动态连接库的路径解决办法:1. 找到so的路径,将路径添加到/etc/ld.so.conf文件最后一行,如/

2017-02-16 09:08:41 13801

原创 ubuntu上安装smb,将linux文件映射到windows下

ubuntu上安装smb#sudo apt-get install samba#sudo apt-get install smbclient开启smb服务:#vim /etc/samba/smb.conf   在文件结尾添加如下行:[share]comment=this is Linux share directorypath=/public=yeswrit

2017-02-16 09:06:22 825

原创 vagrant安装及配置文件

vagrant用于创建和部署虚拟化开发环境。以下是在ubuntu系统上进行操作1.vagrant 安装   apt-get install vagrant ----安装agrant   vagrant box add   puppetlabs/ubuntu-14.04-64-nocm ----添加vagrant box   apt-get install virtualbox-5.

2016-11-18 09:24:49 1226

空空如也

空空如也

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

TA关注的人

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