
linux
文章平均质量分 58
aaronjzhang_
1. 非常热爱软件开发行业,工作积极主动,责任心强,具有一定的项目管理水平。 <br/>2. 具有较强的沟通能力,技术能力、学习能力、分析解决问题能力、勇于攻克难题。<br/>3. 性格坚毅,能够承受较大的压力。 <br/>4. 熟悉UML,EA设计工具,较强的软件架构设计能力。 <br/>5. 精通C/C++,网络编程,多线程并发,服务端软件开发。 <br/>6. 熟悉stl,boost标准C++库。 <br/>7. 熟悉了解linux环境C++开发。<br/>8. 熟悉了解其他语言,如.net,python。
展开
-
debian无root权限,如何将用户添加到sudo组中去?
最近下载了debian6.0,在vmware中安装完成之后发现root用户无法登陆,用普通用户登陆后也无法使用su, 使用sudo是也报xxx is not in the sudoers file. This incident will be reported错误。网上一般的解决方法是切换到root权限下修改/etc/sudoers文件,但是前面我说过,无法使用su,怎么办呢?在google上搜索原创 2012-06-15 11:27:46 · 6385 阅读 · 0 评论 -
进程内存监控
我在上一家公司的负责的项目中有一个监视指定进程的内存的小工具,这个工具监视指定进程的内存占用,并写到xml文件,可以通过浏览器打开xml,显示内存占用曲线。这样很容易看出进程是否存在内存泄漏,泄漏是否严重。不过这工具是windows下的,现在在linux环境下工作,也想搞一个这样的工具。既然在Linux下工作,那就要充分利用linux的优势--各种强大的工具,通过管道将这些工具组合起来几乎可以原创 2013-03-11 15:34:39 · 2684 阅读 · 0 评论 -
tcmalloc源码阅读(三)---ThreadCache分析之线程局部缓存
线程局部缓存tcmalloc采用线程局部存储技术为每一个线程创建一个ThreadCache,所有这些ThreadCache通过链表串起来。线程局部缓存有两种实现:1. 静态局部缓存,通过__thread关键字定义一个静态变量。2. 动态局部缓存,通过pthread_key_create,pthread_setspecific,pthread_getspecific来实现。静态局原创 2013-04-02 15:02:52 · 3644 阅读 · 0 评论 -
TCMalloc介绍
动机TCMalloc是一个非常快速的内存管理库,它比glibc 2.3的malloc以及其他的一些内存管理库都要更高效。ptmalloc2在2.8GHz P4机器上执行一次malloc/free(分配释放小的内存块)大约耗时300纳秒。相同的执行操作,TCMalloc的实现只需要大约50纳秒。TCMalloc同时也为多线程编程减少了锁的竞争,对于小块内存分配,TCMalloc实际上没有锁开翻译 2013-03-20 14:18:36 · 4724 阅读 · 0 评论 -
TCMalloc源码阅读(一)
前言最近一直在折腾内存管理,先是自己实现了一个非常简单的内存管理,但是和malloc对比测试之后发现效率相差甚多。偶然在网上发现TCMalloc,下载下来之后与malloc做了简单的对比测试,惊奇的发现tcmalloc的速度果然如它自己所述,比glibc的malloc快了很多倍。遂果断扔掉自己实现的那个简单的内存管理,改用tcmalloc。同时也对tcmalloc的实现感到非常的好奇,因此决定原创 2013-03-21 11:02:01 · 6325 阅读 · 2 评论 -
TCMalloc源码阅读(二)--线程局部缓存ClassSize分析
TCMalloc小对象分配机制首先我们回顾下TCMalloc文档的小对象分配机制。文档中说明TCMalloc给每个线程都保存一个缓存池,缓存池里有各种大小的内存对象。小内存分配过程如下:1. 将要分配的大小映射到对应的对齐对象。2. 在当前线程的局部缓存中查找该对齐对象链表。3. 如果该链表不为空,删除链表第一个节点并返回给调用者。问题1. 小对象是如何划分的?2.原创 2013-03-21 17:21:21 · 3094 阅读 · 0 评论 -
给RedHat配置科大Linux镜像的yum源
RedHat安装完成后需要注册才能使用RedHat官方的yum源,当然注册时要钱的。不过没关系,有很多免费的可以使用。本文就记录下个人配置科大Linux镜像的CentOS的yum仓库。1. 从http://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=2下载科大的CentOS-Base.repo2. 将Cen原创 2013-04-09 11:14:26 · 2435 阅读 · 0 评论 -
VirtualBox设置共享文件夹
因工作需要linux32和linux64两种环境,而服务器上只有linux64环境,因此在windows上使用VirtualBox安装了一个RedHat5. winodws和virtualbox之间采用共享文件夹进行数据交换,本文记录VirtualBox设置共享文件夹过程。1. 点击VirtualBox左上角“控制”->“设置”菜单,会弹出设置界面,再点左边列表底部的“共享文件夹”,在原创 2013-04-09 15:39:08 · 1841 阅读 · 0 评论 -
linux下使用pyinstaller打包python脚本
最近给运维写一个系统维护的python脚本,但是被告知生产环境有很多服务器没有安装python解释器,于是在网上搜索多pyinstaller解决方案,本文简单记录之。1. 下载pyinstaller。最新的pyinstaller版本为2.0版本,官方网站http://www.pyinstaller.org。下载链接:http://jaist.dl.sourceforge.net/proje原创 2013-04-09 16:40:41 · 22388 阅读 · 7 评论 -
linux的bash shell编程笔记--脚本参数
前言自从接触linux以来,看过一些脚本,但是还从没正儿八经的写过一个脚本。这次本人被分配一个任务,写一个数据文件维护工具,数据文件是公司软件内部产生的一些记录,这些文件分散在各个目录。已经写了一个对单个文件处理的小工具,现在需要一个脚本遍历指定目录、指定类型的文件,对这些文件调用前述工具来进行处理。写下此文来总结此次编写脚本所涉及的bash shell知识。脚本参数因为脚本需要执行时原创 2013-04-11 15:26:47 · 1323 阅读 · 0 评论 -
TCMalloc源码阅读(四)--ThreadCache分析之空闲内存链表
前面几篇博文中已经描述了TCMalloc将内存从小到大划分成很多个固定大小的内存块,将每种大小的空闲内存块使用链表管理起来。本文就来分析下ThreadCache中空闲链表的实现。TreadCache::FreeList的代码如下: class FreeList { private: void* list_; // Linked list of nodes原创 2013-04-21 22:34:23 · 3197 阅读 · 0 评论 -
解决 vim Swqp file XXX already exists问题
问题描述:使用vim打开一个文件时vim报vim swap file xxx already exists。该问题不影响对文件的操作,但是每次都报的话比较烦人。问题原因:上一次使用vim编辑该文件时没有正常的关闭,例如直接关闭了terminate,导致在该文件目录下存在一个临时文件.xxx.swap。可用ls -al命令可以看到。解决办法:直接删除该.xxx.swap原创 2012-11-15 12:17:32 · 1940 阅读 · 1 评论 -
简明vim练级攻略
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类转载 2012-11-14 22:32:20 · 676 阅读 · 0 评论 -
读书笔记-阅读无锁List实现疑惑
看了IBM上一篇文章--《不用互斥锁的并发数据结构》http://www.ibm.com/developerworks/cn/aix/library/au-multithreaded_structures2/index.html 对照着自己打算写一个lock free list数据结构,实现过程中发现还是有潜在的问题,问题如下:T Stack::pop( ) { i原创 2012-10-27 12:58:34 · 819 阅读 · 0 评论 -
debian 安装gcc
1.编辑/ect/apt/sources.list,最前面的两句是设置cdroom为apt源的,将其注释。2. 输入apt-get install build-essential转载 2012-06-15 11:49:15 · 1406 阅读 · 0 评论 -
makefile解析
VERSION = 1.1.0.1# A:Alpha B:Beta RC:Release Candidate R:ReleaseSTAGE =CC=g++# "$" 变量替换OBJFILES:=$(shell find ./ -iname '*.o')DFILES:=$(DFILES1) $(DFILES2)#SOURCE CODE wildcard原创 2012-09-04 12:53:12 · 920 阅读 · 0 评论 -
linux查看系统资源
用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。top: 主要参数 d:指定更新的间隔,以秒计算。转载 2012-09-27 15:29:38 · 1824 阅读 · 0 评论 -
debian环境安装svn
DEBIAN下安装SVN来源: ChinaUnix博客 日期: 2008.08.27 11:39 (共有条评论) 我要评论 1.安装debian:/# aptitude install subversion subversion-tools apache2 libapache2-svn2.创建一个新的su转载 2012-09-11 22:22:08 · 863 阅读 · 0 评论 -
VIM命令列表
英文版原文链接: http://www.tuxfiles.org/linuxhelp/vimcheat.html小弟稍微翻译了一下,看中文可能会舒服一下。。。操纵文件Vim命令动作:e filename 打开一个新文件,可以用TAB键自动补全:w filename保存更改。如果不指定文件名,Vim会存为你正在编辑的文件。如果要存为不同的文件,需要指定文件名:q 退出转载 2012-09-16 14:07:55 · 860 阅读 · 0 评论 -
autoconf和automake
本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法。主要探讨了生成 Makefile 的来龙去脉及其机理,接着详细介绍了配置 Configure.in 的方法及其规则。引子无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make转载 2012-09-16 13:18:01 · 661 阅读 · 0 评论 -
linux下查看动态增长的log文件
在linux下查看动态增长的log文件可以使用命令 tail -f filename原创 2012-09-20 00:40:13 · 5432 阅读 · 0 评论 -
linux编程-守护进程编写
linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程转载 2012-09-20 00:38:50 · 1303 阅读 · 0 评论 -
设计不使用互斥锁的并发数据结构
简介本文是本系列的最后一篇,讨论两个主题:关于实现基于互斥锁的并发链表的设计方法和设计不使用互斥锁的并发数据结构。对于后一个主题,我选择实现一个并发堆栈并解释设计这种数据结构涉及的一些问题。用 C++ 设计独立于平台的不使用互斥锁的数据结构目前还不可行,所以我选用 GCC version 4.3.4 作为编译器并在代码中使用 GCC 特有的 __sync_* 函数。如果您是 WIndo转载 2012-10-27 10:58:34 · 1352 阅读 · 0 评论 -
linux查看帮助文档的小常识
man 分为1 2 3 4 5 6 7 8等级别1、Standard commands (标准命令)2、System calls (系统调用)3、Library functions (库函数)4、Special devices (设备说明)5、File formats (文件格式)6、Games and toys (游戏和娱乐)7、Miscellaneous (杂项)原创 2012-10-26 23:59:38 · 822 阅读 · 0 评论 -
linux环境下给BOOST库编译静态库加上-fPIC选项
在linux环境下,使用静态方式编译boost时,bjam没有添加-fPIC, 解决办法如下: 编辑tools/build/v2/tools/gcc.jam文件,将第391行的if( $link ) = shared 注释掉,如下图:原创 2014-09-28 16:00:54 · 6514 阅读 · 0 评论