![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux学习
文章平均质量分 95
阿鹏哥哥01
这个作者很懒,什么都没留下…
展开
-
linux库函数mmap()原理
目录1.mmap基本概念2.mmap内存映射原理3.mmap和常规文件操作的区别4.mmap优点总结5.mmap相关函数6.mmap使用细节7.mmap使用demo1.mmap基本概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用re转载 2021-08-23 10:13:39 · 190 阅读 · 0 评论 -
关于网络编程中MTU、TCP、UDP优化配置的一些总结
首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Data)在应用层 它们的关系是 数据帧{IP包{TCP或UDP包{Data}}} -----------------------------------------转载 2017-02-09 16:59:43 · 464 阅读 · 0 评论 -
linux /etc/crontab 和 /var/spool/cron区别
linux /etc/crontab 和 /var/spool/cron区别1./var/spool/cron/这个目录是以账号来区分每个用户自己的执行计划-rw-------. /var/spool/cron/root-rw-------. /var/spool/cron/user1-rw-------. /var/spool/cron/user2转载 2016-10-10 16:14:20 · 10599 阅读 · 0 评论 -
页游安全
原文链接:http://netsecurity.51cto.com/art/201211/364775.htm页游,最最核心的就是客户端(swf)与服务端的游戏通信了。游戏通信产生的封包,内容是否可识别,可篡改,可重放,处理逻辑是否有漏洞,都决定了这款游戏是否有重大的漏洞。AD: 网页游戏的安全问题,在刚入职接触的时候,写过两篇比较浅显的文章。虽然页游转载 2016-06-29 21:11:30 · 1472 阅读 · 0 评论 -
TCP和UDP的"保护消息边界"
在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。 对于UDP转载 2016-06-05 19:17:46 · 292 阅读 · 0 评论 -
解决TCP网络传输“粘包”问题
当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagram protocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的转载 2016-06-05 19:16:21 · 332 阅读 · 0 评论 -
linux /etc/security/limits.conf的相关说明
linux limits.conf 配置 limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。limits.conf的格式如下:username|@groupname type resource limitusername|@gro转载 2016-06-05 14:32:34 · 2201 阅读 · 0 评论 -
Linux服务器上监控网络带宽的18个常用命令
Linux服务器上监控网络带宽的18个常用命令本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。【51CTO精选译文】本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度转载 2016-05-26 10:24:16 · 10588 阅读 · 0 评论 -
Unix域套接字
管道由于只能实现具有亲缘进程的进程间通信,使用受到了很大的限制,命名管道解决了这一问题。但是,无论是管道还是命名管道,都只能实现单向通信(在只创建一个管道的情况下)。使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。这里所指的使用套接字实现进程间通信,是由将通信域指定为PF_UNIX来实现的。该函数的形式如下:int socke转载 2016-04-07 10:52:19 · 260 阅读 · 0 评论 -
PHP扩展库安装遇到的问题总结
首先来说明下遇到的问题,公司用php做游戏服务器开发语言,当然还用了php传说中不擅长的长连接(个人觉得开发效率高于机器成本,现在分布式网络集群时代,没必要省那么点钱),我们涉及到php5.3版本升级到5.6的时候,有的php扩展不能用了,蛋疼;涉及到的模块有libevent,对,就是它,这是干吗用的呢?应为我们是长连接,必然是高并发的io密集型应用程序,所以,用libevent做io原创 2017-02-13 16:13:33 · 1557 阅读 · 0 评论 -
scp命令
游戏或者项目自动化运维管理的时候,scp是推送文件的好工具转载 2017-02-14 10:38:40 · 876 阅读 · 0 评论 -
详解Linux服务器最大tcp连接数 网络编程 在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少?
详解Linux服务器最大tcp连接数网络编程在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少?如何标识一个TCP连接在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,rem转载 2017-12-15 10:46:08 · 828 阅读 · 0 评论 -
PHP之pthread拓展使用以及坑
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]PHP是为WEB开发而生,以前PHP是没有线程的说法,直到pthread的出现,这样php增加了活力; 资料来源:http://php.net/manual/zh/book.pthreads.php一. 线程的创建和使用1. Thread类基本的创建和使用转载 2017-12-01 14:56:45 · 1197 阅读 · 0 评论 -
【Unity技巧】四元数(Quaternion)和旋转
四元数介绍旋转,应该是三种坐标变换——缩放、旋转和平移,中最复杂的一种了。大家应该都听过,有一种旋转的表示方法叫四元数。按照我们的习惯,我们更加熟悉的是另外两种旋转的表示方法——矩阵旋转和欧拉旋转。矩阵旋转使用了一个4*4大小的矩阵来表示绕任意轴旋转的变换矩阵,而欧拉选择则是按照一定的坐标轴顺序(例如先x、再y、最后z)、每个轴旋转一定角度来变换坐标或向量,它实际上是一系列坐标转载 2017-10-20 19:25:50 · 683 阅读 · 0 评论 -
ab测试
AB测试# 进入AB工具目录cd /usr/local/httpd/bin# ab命令 -c 并发数 -n 请求次数 测试网址(必须带文件)./ab -c 1000 -n 50000 http://172.20.17.211/index.html# 结果分析Percentage of the requests served within a certain time (ms转载 2017-06-20 13:32:29 · 480 阅读 · 0 评论 -
/var/spool/cron/和/etc/crontab的区别
crontab -e 也许有些人用的最多了,简单方便 root用户执行的就会在/var/spool/cron/下面创建root文件 因为网站有需求,我用root执行的crontab -e写的PHP计划任务,没有指定用户权限,导致php脚本生成的内容是root权限,也导致ftp操作不了,因为ftp那么是压制的web的权限 那么crontab -e 指定用户会不会生效呢,毕竟crontab转载 2017-06-20 13:27:50 · 4647 阅读 · 0 评论 -
CentOS下如何查看并杀死僵尸进程
ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'CentOS下如何查看并杀死僵尸进程昨天服务器到期,之前的服务器由于空间小,不能满足现在的服务要求,就新购买了一个服务器,目前正在调试安装中!在调试过程中,发现系统中有很多僵尸进程,现在就是找出这些僵尸进程,并将其杀死。用top查看系统中的僵尸进程情况再看看这些僵尸是什么程序来的ps -A -o sta转载 2017-06-07 10:21:59 · 12832 阅读 · 0 评论 -
TOP中只查看某个或某些进程的信息
TOP中只查看某个或某些进程的信息top中使用CPU或MEM排序,还是看不到我们想了解的进程的相关信息;这时就可以指定对某个或某些进程进行TOP信息显示;1、查看某个进程的信息例:mysqld的信息(1)得到mysqld进程的pid[root@6 ~]# pidof mysqld21538(2)top指定查看PID[root@6 ~]# to转载 2017-05-11 12:17:11 · 12348 阅读 · 0 评论 -
mysql连接时间设置:
mysql连接时间设置:产生问题的原因,服务器启动后,每个进程都会主动连接到mysql要是长时间没有数据交互,mysql会自动断开连接;需要修改mysql连接断开时间,改成大概二十多天就好了;查看连接:ps:腾讯云服务器最大时间只能是一天,这个是数据库的自我保护机制,连接在一定时间能没交互就把你切断了;为嘛没有个好的重连方法;show processlist; 只展原创 2017-03-31 14:16:41 · 9795 阅读 · 0 评论 -
skynet lua加密方法
最近在看skynet的代码,总体感觉跟 erlang很像,理念都是基于Actor模型,即万物皆Actor,Actor之间通过发送消息进行通信。(这里说的“万物”倾向于表示有能动作用,有独立行为的个体。)不同的是,skynet使用 c 和 lua实现,这两个语言相较erlang比较流行。skynet的Actor是指skynet服务,skynet服务类似erlang进程,调度方式也转载 2016-03-14 12:55:35 · 1343 阅读 · 0 评论 -
进程地址空间
下图是x86_64下linux进程的默认内存布局形式:下面逐一分析以上各个地址段的含义。 text 代码段代码段,从虚拟内存地址00400000开始,使用pmap $$可以查看到,这个地址是固定的:linux # pmap $$27729: bashSTART SIZE RSS PSS DIRTY转载 2016-04-06 12:12:26 · 286 阅读 · 0 评论 -
signal和sigaction的分析比较
signal函数每次设置具体的信号处理函数(非SIG_IGN)只能生效一次,每次在进程响应处理信号时,随即将信号处理函数恢复为默认处理方式.所以如果想多次相同方式处理某个信号,通常的做法是,在响应函数开始,再次调用signal设置,如下图: int sig_int(); //My signal handler ... signal转载 2016-01-18 12:10:52 · 374 阅读 · 0 评论 -
signal signal函数每次设置具体的信号处理函数(非SIG_IGN)只能生效一次,多次调用需要调用时在加类似监听的方法!!! 最好用sigaction
signal()函数理解在 这个头文件中。signal(参数1,参数2);参数1:我们要进行处理的信号。系统的信号我们可以再终端键入 kill -l查看(共64个)。其实这些信号时系统定义的宏。参数2:我们处理的方式(是系统默认还是忽略还是捕获)。一般有3中方式进行操作。(1)eg: signal(SIGINT ,SIG_ING );//SI转载 2016-01-18 12:00:36 · 2840 阅读 · 0 评论 -
linux下纯C简单的HTTP POST请求 客户端模型
其实无非要实现有两点,TCP客户端的模型HTTP POST协议先来看看我的TCP模型的实现 #ifndef _TUOBAO_TCP_CLIENT_ #define _TUOBAO_TCP_CLIENT_#include #include typedef struct _tuobao_tcpclient{转载 2015-12-30 00:19:42 · 4068 阅读 · 0 评论 -
epoll详解
linux epoll 详解转载 2015-12-29 20:51:09 · 217 阅读 · 0 评论 -
魔兽世界私服架设
都说魔兽世界是最经典的网游,可惜我沉迷于程序的世界,都没有机会去体会一下!正好看了别人一篇blog,写着怎么架设魔兽世界,想想我就自己动手架一个看看了!等弄完之后,发现,那个服务器是2.3的客户端吧,好像!现在都3.13了,根本没用,后来到去sf.net找了一下,用svn把代码down下来,都很老了。后来啃了一点英文,才发现,现在源码管理已经迁移到git上面了。题外话,这个就是linux之转载 2015-12-29 20:35:40 · 16166 阅读 · 0 评论 -
Epoll模型详解
Epoll模型详解 Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在 我用的2.6.15-25转载 2015-12-28 17:33:20 · 246 阅读 · 0 评论 -
linux 动态静态链接库生成与调用方法
.o file - the unlinked output of the compiler - an object file.a - out of using ar to "pack" several .o files into an object archive file. It is an efficient way of keeping track of and being ab转载 2015-01-04 16:00:09 · 373 阅读 · 0 评论 -
gcc and g++
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件 2.将预处理后的文件不转换成汇编语言,生成文件.s 3.有汇编变为目标代码(机器代码)生成.o的文件 4.连接目标代码,生成可执行程序 [参数详解] -x language filename 设定文件所使用的转载 2015-01-04 15:27:38 · 436 阅读 · 0 评论 -
linux无锁化编程--__sync_fetch_and_add系列原子操作函数
标签: linux无锁化编程__sync_fetch_and_add原子操作函数linux支持的哪些操作是具有原子特性的?知道这些东西是理解和设计无锁化编程算法的基础。下面的东西整理自网络。先感谢大家的分享! __sync_fetch_and_add系列的命令,发现这个系列命令讲的最好的一篇文章,英文好的同学可以直接去看原文。Multithreade转载 2016-01-19 18:30:12 · 379 阅读 · 0 评论 -
makefile
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会转载 2016-01-27 16:51:58 · 236 阅读 · 0 评论 -
Linux进程间通信
Linux进程间通信一、进程间通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。D、转载 2016-04-06 11:58:11 · 384 阅读 · 0 评论 -
centos环境下为php安装sysvmsg扩展
这里以sysvmsg为例子1.进入php安装文件的目录cd /home/soft/php-5.3.17/ext 这里我们需要安装sysvmsg,则cd sysvmsg/再执行再执行 /usr/local/php/bin/phpize 会返回如下信息:(假设我的php安装在/usr/local/php这个目录)Configuring for:PHP Api转载 2016-04-01 17:24:19 · 2576 阅读 · 0 评论 -
phpredis
PHP-redis中文文档phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:下载地址如下:https://github.com/owlient/phpredis(支持redis 2.0.4)Redis::__construct构造函数$redis = ne转载 2016-04-05 14:58:46 · 250 阅读 · 0 评论 -
服务器常用的内核调优
/etc/sysctl.conf参数解释来自《深入理解Nginx模块开发与架构解析》 P9#表示进程(例如一个worker进程)可能同时打开的最大句柄数,直接限制最大并发连接数fs.file max = 999999#1代表允许将状态为TIME-WAIT状态的socket连接重新用于新的连接。对于服务器来说有意义,因为有大量的TIME-WAIT状态的连接net.ipv4.t转载 2016-04-01 16:59:50 · 416 阅读 · 0 评论 -
Centos6修改sysctl.conf报错解决方法
这几天一直在折腾VPS优化,openvz构架的,在做linux内核优化的时候,执行/sbin/sysctl -p老报错:error: "net.bridge.bridge-nf-call-ip6tables" is an unknown keyerror: "net.bridge.bridge-nf-call-iptables" is an unknown keyerror: "net转载 2016-04-01 17:04:02 · 8673 阅读 · 1 评论 -
linux无锁话编程,原子
linux支持的哪些操作是具有原子特性的?知道这些东西是理解和设计无锁化编程算法的基础。下面的东西整理自网络。先感谢大家的分享! __sync_fetch_and_add系列的命令,发现这个系列命令讲的最好的一篇文章,英文好的同学可以直接去看原文。Multithreaded simple data type access and atomic variables__转载 2016-03-08 15:42:34 · 459 阅读 · 0 评论 -
Linux中的线程局部存储
转载请说明出处:http://blog.csdn.net/cywosp/article/details/26469435 在Linux系统中使用C/C++进行多线程编程时,我们遇到最多的就是对同一变量的多线程读写问题,大多情况下遇到这类问题都是通过锁机制来处理,但这对程序的性能带来了很大的影响,当然对于那些系统原生支持原子操作的数据类型来说,我们可以使用原子操作来处理,这能对程转载 2016-03-07 17:44:22 · 374 阅读 · 0 评论 -
写给那些让我糊里糊涂的HTTP、TCP、UDP、Socket
先来一个讲TCP、UDP和HTTP关系的,注意红色mark的部分 1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。因此,HTTP本身就是一个协议,是从Web服务器传输超文转载 2016-01-14 17:39:03 · 248 阅读 · 0 评论 -
linux编译cpp 动态库 等等
在linux系统中,lib文件分为static lib 和shared lib。一般以后缀来标示,静态库以*.a标示,共享库以*.so标示。1.生成static lib 建立两个头文件,plus.h minor.h定义函数int plus(int a, int b), int minor(int a, int b),然后分别在plus.cpp minor.cpp中实现这两个函转载 2015-01-04 11:38:59 · 554 阅读 · 0 评论