
Linux
文章平均质量分 64
mergerly
这个作者很懒,什么都没留下…
展开
-
Linux系统调用(syscall)原理
引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app、framework、native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到进入kernel函数的入口。本文主要讲解ARM架构相关源码:/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h/bionic/libc/arch-arm/syscalls/kill.S/kernel/arch/arm/kernel/calls.S/kerne.转载 2021-04-22 10:20:07 · 641 阅读 · 0 评论 -
利用gdb在汇编指令级调试C程序
关于GDB调试C程序的常用命令与手段就不多说了,这里主要介绍一下如何对C程序做到汇编指令级别的调试。首先是获取汇编代码,这可以通过disassemble命令或x命令或类似的命令:12345678910111213141516171819202122232425转载 2013-01-24 15:13:42 · 21282 阅读 · 1 评论 -
修改StartOS默认桌面
1.中文路径改为英文路径打开终端,在终端下输入命令:export LANG=en_USxdg-user-dirs-gtk-update这个时候会弹出一个配置界面,提示是否将中文目录切换为英文目录。选中不再提示,确定。系统会删除没有内容的中文目录,而有内容的目录会保持。将原中文目录的内容拷贝到相应英文目录,并删除中文目录即可。接下来再执行export LANG=zh_原创 2013-01-16 16:43:58 · 1184 阅读 · 0 评论 -
tcp和udp多线程的epoll服务器+客户端源代码
程序是从网上的一个epoll例子修改而来的 epoll tcp服务端 epoll_server.c: /*gcc -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I${ORACLE_HOME}/rdbms/public -I${ORACLE_HOME}/rdbms/demo -L${ORACLE_HOME}/lib -转载 2013-01-17 16:50:06 · 1941 阅读 · 0 评论 -
linux环境下 C++性能测试工具 gprof + kprof + gprof2dot
linux环境下 C++性能测试工具 gprof + kprof + gprof2dot1.gprof很有名了,google下很多教程g++ -pg -g -o test test.cc./test //会生成gmon.outgprof ./test > prof.log看一下对于我前面提到的huffman编码压缩+解码解压缩全部过程的一个程序对于转载 2013-05-30 15:59:52 · 1202 阅读 · 0 评论 -
linux下svn命令使用大全(share)
转自:http://blog.chinaunix.net/uid-22566367-id-1965771.html1、将文件checkout到本地目录 svn checkout path(path是服务器 上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件 svn add f转载 2014-03-12 13:23:43 · 956 阅读 · 0 评论 -
使用vim看代码:cscope
原文地址:使用vim看代码:cscope 作者:Bean_lee vim+cscope+ctags是Linux看代码利器,在网上搜vim教程一搜一大堆,很多讲的都不错,可惜自己都没学会。好早之前,我的老科长波哥曾经教过我一次,ctags我算是学会大概,cscope只能算是入门级水平,比如查看某个函数调用,还得用:cs find c function这种比较慢的转载 2014-03-13 13:37:08 · 1138 阅读 · 0 评论 -
一步步将vim改造成C/C++开发环境(IDE)
转载请注明出处lingdxuyan.blog.chinaunix.net 一步步将vim改造成C/C++开发环境(IDE)原文地址http://blog168.chinaunix.net/space.php?uid=23089249&do=blog&id=2855999【参考资料】吴垠的“手把手教你把Vim改装成一个IDE编程环境”在Fedora下成功将Vim打造成转载 2014-03-15 13:42:44 · 932 阅读 · 0 评论 -
详解MySQL字符的编码转换问题
今天我们同大家介绍一下"详解MySQL字符的编码转换问题",希望对大家有所帮助,并和大家一起来探讨、交流。 我们大家都知道容易过想搞好一个站的二次开发,可以用的原数据库的编码有两种,即gbk与lation1。而我用的是 gbk,就涉及到编码转换问题。这里在LiJun027’s Blog查到一个详细的编码比较,几种情况如下:一、实验:1、情况一数据库字段MyS转载 2014-03-19 14:50:03 · 4961 阅读 · 0 评论 -
Linux/Unix 下 替代svn Commit的可视化工具
1、配置个人home目录下的svn配置文件:~/.subversion/config,定位并配置为如下内容: [plain] view plaincopy[helpers] editor-cmd = /usr/bin/vim 保存退出,即可使用了。 这样,当预览自己的修改时,只需要运行:svn diff,其就会调用vim来显示原创 2014-03-31 16:16:59 · 2599 阅读 · 0 评论 -
Linux常用命令合集
搜索文件命令grep -Fnr class ./当前目录查找class并在结果中显示行号转载 2014-03-21 08:26:31 · 845 阅读 · 0 评论 -
通过中转机及ssh rsync 传输归档文件进行同步
目的:10.13.8.186 archived log 中转机器 。 需要从production节点mxrac01,03,04,05(10.13.67.171/172/174/175)上的任何一台中拷贝所有节点的归档文件, 然后传送到 RAC Standby机器上 (10.13.9.171/173/174 任何一台) 。 步骤: 1, 首先,要在中转机上生成pu转载 2014-04-02 17:34:46 · 1474 阅读 · 0 评论 -
linux下valgrind的使用概述
Valgrind简介: Valgrind是动态分析工具的框架。有很多Valgrind工具可以自动的检测许多内存管理和多进程/线程的bugs,在细节上剖析你的程序。你也可以利用Valgrind框架来实现自己的工具。 Valgrind通常包括6个工具:一个内存错误侦测工具,两个线程错误侦测工具,cache和分支预测的分析工具,堆的分析工具。 Val转载 2014-04-02 22:21:43 · 749 阅读 · 0 评论 -
防止内存泄露 Linux下用Valgrind做检查
用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行程序转载 2014-04-02 22:22:57 · 637 阅读 · 0 评论 -
Linux/Unix 下 替代svn diff的可视化工具
svn diff 替代工具 一. 使用vimdiff替换svn diff:对于多数linux下的开发者来说,vimdiff对文件差异的展示性显然要大大直观于svn diff。 那么我们能否用vimdiff来替代svn diff呢?所幸的是,svn对此作了考虑,并支持第三方程序作为对比差异。现在我们只需要一个简单的脚本就可以封装好此命令,使之使用第三方程序来做比 较。如下:转载 2014-03-22 13:50:31 · 1710 阅读 · 0 评论 -
Linux 终端访问 FTP 及 上传下载 文件
今天同事问我一个问题,在Linux下访问FTP,并将文件上传上去。我之前一直是用WinSCP工具的。先将文件从linux copy到windows下,然后在传到ftp上。google 一下。 方法也比较简单。 这里只讨论通过终端来连接,因为也可以通过IE或者其他工具。 1. Linux 终端连接FTP[oracle@Dave ~]$ ftp转载 2014-04-03 16:01:40 · 891 阅读 · 0 评论 -
游戏服务器之双线处理
双线处理,顾名思义是要处理两种连接:电信的连接和网通的连接。分开处理是为了让在同一种连接里面的玩家之间能够享受更好的 网络通信速度,达到更好的游戏体验。实现方式也比较简单。使用不同的两个物品网卡。 网关需要绑定接收所有的网卡地址的。网关绑定的是所有的地址,包括两个网关的不同的 iP地址。网关监听的是一个端口。struct sockaddr_in addr;转载 2014-04-22 11:42:33 · 978 阅读 · 0 评论 -
游戏服务器之被动连接线程池
本文内容是游戏服务器之被动连接线程池。顾名思义,被动连接线程池处理的是被动连接的会话的状态管理和数据收发。设计上:每个服务器对象有个接收连接线程池, 线程类型包括:验证线程、同步线程、网络接收发送线程、回收线程。会话正常流程步骤(正常状态切换流程):(1)程序主线程接收连接(监听连接)(2)验证线程(检查验证超时、验证发来消息的服务器id和服务器ip(服务器转载 2014-04-22 11:32:51 · 1421 阅读 · 0 评论 -
Linux netstat命令详解
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o servers)Proto Re转载 2014-05-08 17:30:56 · 922 阅读 · 0 评论 -
Linux UDP严重丢包问题的解决
测试系统在Linux上的性能发现丢包率极为严重,发210000条数据,丢包达110000之巨,丢包率超过50%。同等情形下Windows上测试,仅丢几条数据。形势严峻,必须解决。考虑可能是因为协议栈Buffer太低所致,于是先看看默认情况:sysctl -a |grep net.core发现net.core.rmem_max = 131071net.core.rme转载 2014-05-08 12:54:49 · 3199 阅读 · 1 评论 -
Linux 网卡丢包严重
生产中有一台linux设备并发比较大,droped包比较多,尤其是在跑游戏数据包的时候,存在严重的丢包现象,怀疑网卡性能不足,在更换设备前想能不有通过软件方法解决,通过网上一些资料显示,出现这种现象,也有可能是网卡buffer size 太小的原因,遂尝试更改buffer 大小解决,下面的设备运行了64天,丢包超过20多亿找了一些国外的文章,可以通过ethtool来修改网卡的buf转载 2014-05-08 17:31:31 · 13159 阅读 · 0 评论 -
四 100万并发连接服务器笔记之1M并发连接目标达成
第四个遇到的问题:tcp_mem在服务端,连接达到一定数量,诸如50W时,有些隐藏很深的问题,就不断的抛出来。 通过查看dmesg命令查看,发现大量TCP: too many of orphaned sockets错误,也很正常,下面到了需要调整tcp socket参数的时候了。第一个需要调整的是tcp_rmem,即TCP读取缓冲区,单位为字节,查看默认值cat /proc/s转载 2014-05-21 14:11:42 · 3160 阅读 · 2 评论 -
一 100万并发连接服务器笔记之准备篇
前言测试一个非常简单服务器如何达到100万(1M=1024K连接)的并发连接,并且这些连接一旦连接上服务器,就不会断开,一直连着。 环境受限,没有服务器,刚开始都是在自己的DELL笔记本上测试,凭借16G内存,和优秀的vmware workstation虚拟机配合,另外还得外借别人虚拟机使用,最终还得搭上两台2G内存的台式机(安装centos),最终才完成1M并发连接任务。测试转载 2014-05-21 14:05:36 · 2594 阅读 · 0 评论 -
五 100万并发连接服务器笔记之Java Netty处理1M连接会怎么样
前言每一种该语言在某些极限情况下的表现一般都不太一样,那么我常用的Java语言,在达到100万个并发连接情况下,会怎么样呢,有些好奇,更有些期盼。这次使用经常使用的顺手的netty NIO框架(netty-3.6.5.Final),封装的很好,接口很全面,就像它现在的域名 netty.io,专注于网络IO。整个过程没有什么技术含量,浅显分析过就更显得有些枯燥无聊,准备好,硬着头皮吧转载 2014-05-21 14:13:56 · 21976 阅读 · 5 评论 -
六 100万并发连接服务器笔记之Erlang完成1M并发连接目标
前言使用Erlang语言也写一个测试和前面大同小异的测试,在100万个并发连接用户情况下,就是想观察一下极显情况下的表现。这个测试使用了优秀的Erlang界的明星框架cowboy,加单易用的接口,避免了我们对HTTP栈再次进行闭门造车。测试Erlang服务器运行在VMWare Workstation 9中,64位Centos 6.4系统,分配14.9G内存左右,双核4个转载 2014-05-21 14:15:18 · 1651 阅读 · 0 评论 -
三 100万并发连接服务器笔记之测试端就绪
重新编写测试端程序测试端程序需要增加绑定本机IP和本地端口的功能,以尽可能的向外发出更多的tcp请求。需要对client1.c重构,增加参数传递。 下面是client2.c的代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849转载 2014-05-21 14:09:40 · 1955 阅读 · 0 评论 -
二 100万并发连接服务器笔记之处理端口数量受限问题
第二个遇到的问题:端口数量受限一般来说,单独对外提供请求的服务不用考虑端口数量问题,监听某一个端口即可。但是向提供代理服务器,就不得不考虑端口数量受限问题了。当前的1M并发连接测试,也需要在客户端突破6万可用端口的限制。单机端口上限为65536端口为16进制,那么2的16次方值为65536,在linux系统里面,1024以下端口都是超级管理员用户(如root)才可以使用,普转载 2014-05-21 14:07:05 · 4213 阅读 · 0 评论 -
破解Xen虚拟机密码
查看Xen镜像文件的位置:more /etc/xen/selboovirsh IM-243.30找到类似以下一句话:disk = ['file:/opt/disk/selboo.img,sda1,w']说明 镜像文件的位置在 /opt/disk/selboo.img关闭虚拟机:xm shutdown selboo2.进行挂载镜像文件:首先查转载 2014-06-05 20:46:35 · 1134 阅读 · 0 评论 -
ip rule 命令
linux 高级路由即基于策略的路由比传统路由在功能上更强大,使用也更灵活,它不仅能够根据目的地址来转发路径而且也能够根据报文大小、应用或ip源地址来选择路由转发路径从而让系统管理员能轻松做到:1、 管制某台计算机的带宽。2、 管制通向某台计算机的带宽3、 帮助你公平地共享带宽4、 保护你的网络不受DOS的攻击5、 保护你的Internet不受到你的客户的攻击6、 把多台服转载 2014-06-06 20:16:42 · 51832 阅读 · 0 评论 -
Linux系统Samba服务器架设全攻略
一点理论:在Windows中,我们都知道网络邻居,是Windows共享资源的方式。Linux写Windows互访与共享资源的方式是利用Samba服务,其实我觉得它更象一个软件。Windows与Linux通过Samba,可以相互共享资源,是互为服务器和客户端的关系。比如当装有Windows操作系统的机器,向装有Linux系统的机器存取文件,那Windows应该是客户机,而Linux则是服务器;如转载 2014-05-28 19:00:49 · 1240 阅读 · 0 评论 -
如何架设Samba服务器,用user共享方式
一点理论:在Windows中,我们都知道网络邻居,是Windows共享资源的方式。Linux写Windows互访与共享资源的方式是利用Samba服务,其实我觉得它更象一个软件。Windows与Linux通过Samba,可以相互共享资源,是互为服务器和客户端的关系。比如当装有Windows操作系统的机器,向装有Linux系统的机器存取文件,那Windows应该是客户机,而Linux则是服务器;如转载 2014-05-28 19:36:47 · 1827 阅读 · 0 评论 -
samba 找不到网络路径 解决办法
samab 配好后,windows 可以看到计算机,但时访问时总是出现,找不到网络路径 的错误,疯掉,根据以前经验, 这是估计又是selinux搞的鬼,所一条伟大的命行:setup ┌─────┤ 选择一种工具 ├─────┐ │转载 2014-07-03 13:51:52 · 14475 阅读 · 1 评论 -
关于Linux ulimit的设置问题
1)、使用ulimit -a命令可以查看ulimit设置,使用命令可以直接设置ulimit属性,但是如果需要设置永久生效,可以按照如下方式: vi /etc/security/limits.conf # 添加如下的行 * soft noproc 11000 * hard noproc 11000 * soft nofile 4100 * hard nofile 4100转载 2014-08-05 13:40:17 · 14077 阅读 · 0 评论 -
Linux非root用户如何使用80端口启动程序
默认情况下Linux的1024以下端口是只有root用户才有权限占用,我们的tomcat,apache,nginx等等程序如果想要用普通用户来占用80端口的话就会抛出java.net.BindException: Permission denied:80的异常。 解决办法有两种: 1.使用非80端口启动程序,然后再用iptables做一个端口转发。 iptables -转载 2014-09-23 14:51:16 · 9332 阅读 · 0 评论 -
linux下利用valgrind工具进行内存泄露检测和性能分析
valgrind通常用来成分析程序性能及程序中的内存泄露错误一 Valgrind工具集简绍Valgrind包含下列工具: 1、memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。 2、callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能。 3、cachegrind:分析CPU的cache命中率、丢失率转载 2014-08-18 11:52:49 · 886 阅读 · 0 评论 -
使用valgrind进行后台服务器的性能优化
使用valgrind进行后台服务器的性能优化2008-04-30一. Valgrind安装说明:先从http://valgrind.org/上将安装包down下来(使用3.2.0及以上版本),然后进行安装:./configure make make install (as "root" if needed) 二. 使用valgri转载 2014-08-18 12:02:49 · 7632 阅读 · 0 评论 -
多线程的内存分配器mt_alloc
A fixed-size, multi-thread optimized allocator原文URL:http://list.cs.brown.edu/people/jwicks/libstdc++/html/ext/mt_allocator.html简介mt allocator是一个固定大小(2的幂)内存的分配器,最初是为多线程应用程序(以下简称为MT程序)设计的。经过转载 2014-09-02 12:05:00 · 1253 阅读 · 0 评论 -
简单无锁队列的实现和使用
无锁队列越来越流行,在特定的场合使用不同的无锁队列,可以qid原创 2014-09-02 19:46:11 · 9311 阅读 · 1 评论 -
gcc内嵌汇编
最近在看“程序员的自我修养”,看到了gcc内嵌汇编,静态链接那章的示例程序比较有趣,于是准备学习一下AT&T语法的gcc内嵌汇编。以前学微机原理的时候学习过汇编,现在基本上还给了老师,还是复习一下吧。像大家一样先来介绍一下AT&T语法与Intel asm语法的不同(顺便也学学基本知识):在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀;而在 Intel 汇编格式中,寄存器转载 2014-09-02 16:07:18 · 1030 阅读 · 0 评论 -
内核循环缓冲区数据结构kfifo在用户态的使用
忘记了之前是有个什么事情一时想起好像需要用个cycler buffer,手头一时又没有,懒得自己实现。就向同学要了个。后来好像也没有用到,倒是一直记得好像老早以前看到ldd上提到双向链表的时候有提到个kfifo,只是一直没有用到这个,所以一直没看。倒是无聊的时候想起过printk是否用的就是这个数据结构。 昨天临下班的时候想到kfifo这个东东,今天就抽点时间看看。 刚开始是把转载 2014-09-02 13:43:51 · 4225 阅读 · 0 评论