随笔分类 -  GNU/Linux

摘要:我们一开始,先从Free命令说起。free 命令相对于top 提供了更简洁的查看系统内存使用情况:$ free total used free shared buffers cachedMem: 255268 238332 16936 0 85540 126384-/+ buffers/cache: 26408 228860Swap: 265000 0 265000Mem:表示物理内存统计-/+ buffers/cached:表示物理内存的缓存统计Swap:表示硬盘上交换分区的使用情况,这里我... 阅读全文
posted @ 2012-04-11 15:30 Charliee 阅读(517) 评论(0) 推荐(0)
摘要:Tips&TricksFeaturedArticle:/proc/meminfoExplainedMarch2003"Free,""buffer,""swap,""dirty."Whatdoesitallmean?Ifyousaid,"somethingtodowiththeSummerof'68",youmayneedaprimeron'meminfo'.Theentriesinthe/proc/meminfocanhelpexplainwhat'sgo 阅读全文
posted @ 2012-04-11 14:49 Charliee 阅读(1065) 评论(0) 推荐(0)
摘要:START-INFO-DIR-ENTRY * Gperf: (gperf). Perfect Hash Function Generator. END-INFO-DIR-ENTRY 介绍 ************ 'gperf'是一个用C++编写的完美的hash函数生成器.它通过一个完美的hash函数F转 换一个含有N元素的用户特定关键... 阅读全文
posted @ 2012-03-13 16:01 Charliee 阅读(665) 评论(0) 推荐(0)
摘要:http://news.zdnet.com.cn/zdnetnews/2008/0911/1121118.shtml 假设一个场景:你是一个自负的系统管理员,现在有一个全新的计算群组坐落在你面前, LINPACK已经安装完毕,一系列工作已经井然有序地开展。一切就位,用户也很开心,你开始处理其他未解决的问题。这时,你突然收到一封邮件:“为什么 运行速度变慢了?”或者一位项目经理来找你,并询问那个新款高价硬件是否已经安装。或许你在做来年的计划,因此需要知道近期的产品使用趋势。对系统进行监 控,以建立基线数据和群组当前的性能信息,上述问题将易于解决。 监控这一理念有多种解释方式。对于高性能计算(.. 阅读全文
posted @ 2012-02-25 20:39 Charliee 阅读(6051) 评论(0) 推荐(0)
摘要:加入某个聊天室 输入 /join #聊天室名称 退出某个聊天室 /part #聊天室名称 列出聊天室名称 /list 向某人发出密聊话语,或者对某个闲聊室的所有人说话 /msg 昵称 消息内容 /msg 消息内容 用来向某人发出密聊话语 /query 昵称 消息内容 用来向某人发出注意信息 /no... 阅读全文
posted @ 2012-02-25 18:12 Charliee 阅读(307) 评论(0) 推荐(0)
摘要:转载自:http://www.ibm.com/developerworks/cn/aix/library/1007_wuxh_libtool/介绍在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的看法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样。对于开发人员,如果尝试将使用动态库的软件在这些系统之间移植,需要参考枯涩难懂的系统手册,以及修改相应的 Makefile,这一工作是乏味的,并且具有一定的难度。使用 GNU Libtool 可以容易的在不同的系统中建立动态链接库。它通过一个称为 Libtool 库的抽象,隐藏了不同系统之间的差异,给开发人员 阅读全文
posted @ 2012-01-14 19:53 Charliee 阅读(273) 评论(0) 推荐(0)
摘要:Shared libraries are libraries that are loaded by programs when they start. When a shared library is installed properly, all programs that start afterwards automatically use the new shared library. It's actually much more flexible and sophisticated than this, because the approach used by Linux p 阅读全文
posted @ 2012-01-14 19:42 Charliee 阅读(436) 评论(0) 推荐(0)
摘要:一、相关概念的介绍什么是Makefile?怎么书写Makefile?竟然有工具可以自动生成Makefile?怎么生成啊?开始的时候,我有这么多疑问,所以,必须得先把基本的概念搞个清楚。1.Makefile makefile用来定义整个工程的编译规则。一个工程中的源文件计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile带来的好处就是——“自动化编译”,一旦写好,只需要.. 阅读全文
posted @ 2012-01-10 19:48 Charliee 阅读(356) 评论(0) 推荐(0)
摘要:共享的资源有a. 堆 由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)b. 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的c. 静态变量 虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的d. 文件等公用资源 这个是共享的,使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。独享的资源有a. 栈 栈是独享的b. 寄存器 这个可能会误解,因为电脑的寄存器是 阅读全文
posted @ 2011-12-05 20:38 Charliee 阅读(354) 评论(0) 推荐(0)
摘要:【如果在进行编译时(即:make),出现如下错误时:……/usr/local/lib/libz.a(crc32.o):relocationR_X86_64_32against`alocalsymbol'cannotbeusedwhenmakingasharedobject/usr/local/lib/libz.a:couldnotreadsymbols:Badvalue则在安装zlib-1.2.3.tar.gz时,该进行如下的步骤操作:#cdzlib-1.2.3//进入zlib目录#CFLAGS="-O3-fPIC"./configure//使用64位元的方法进行编 阅读全文
posted @ 2011-11-12 20:00 Charliee 阅读(689) 评论(0) 推荐(0)
摘要:你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。在Linux/Unix中,有这样几个概念:进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。会话期(session): 阅读全文
posted @ 2011-10-29 22:49 Charliee 阅读(5320) 评论(1) 推荐(0)
摘要:转自:http://lionwq.spaces.eepw.com.cn/articles/article/item/18555标题:浅析malloc()的几种实现方式2008-03-07 12:46:42上海交通大学计算机科学与工程系 孙高鑫malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统. 阅读全文
posted @ 2011-10-29 17:31 Charliee 阅读(742) 评论(0) 推荐(0)
摘要:1.最佳淘汰算法(OPT)2.先进先出的算法(FIFO)3.最近最久未使用算法(LRU)#include<stdio.h>#include<stdlib.h>#include<string.h>intmemory[4];//内存,存放页面位置intseq[205];//指令的执行顺序intseq_page[205];//用于OPT算法,存放各条指令所在的页面位置intP[4];//用于FIFO算法,存储装入主存中的页面的页号intk=0;//用于FIFO算法,指示当前调入新页时应淘汰页在页号表中的位置intQ[4];//用于LRU算法,页面淘汰队列intta 阅读全文
posted @ 2011-10-29 16:55 Charliee 阅读(836) 评论(0) 推荐(0)
摘要:1 先入先出法(FIFO) 最简单的页面置换算法是先入先出(FIFO)法。这种算法的实质是,总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。理由是:最早调入内存的页,其不再被使用的可能性比刚调入内存的可能性大。建立一个FIFO队列,收容所有在内存中的页。被置换页面总是在队列头上进行。当一个页面被放入内存时,就把它插在队尾上。 这种算法只是在按线性顺序访问地址空间时才是理想的,否则效率不高。因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去。 FIFO的另一个缺点是,它有一种异常现象,即在增加存储块的情况下,反而使缺页中断率... 阅读全文
posted @ 2011-10-29 16:54 Charliee 阅读(1265) 评论(0) 推荐(0)
摘要:1.基础知识2.常用字符集和字符编码2.1. ASCII字符集&编码2.2. GBXXXX字符集&编码2.3. BIG5字符集&编码3.伟大的创想Unicode3.1.UCS & UNICODE3.2.UTF-323.3.UTF-163.4.UTF-84.Accept-Charset/Accept-Encoding/Accept-Language/Content-Type/Content-Encoding/Content-Language参考文献&进一步阅读1.基础知识计算机中储存的信息都是用二进制数表示的;而我们在屏幕上看到的英文、汉字等字符是二进制数 阅读全文
posted @ 2011-10-28 23:12 Charliee 阅读(248) 评论(0) 推荐(0)
摘要:字符编码简介:ASCII,Unicode,UTF-8,GB23121. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制0 阅读全文
posted @ 2011-10-28 22:44 Charliee 阅读(348) 评论(0) 推荐(0)
摘要:使用select函数可以以非阻塞的方式和多个socket通信。程序只是演示select函数的使用,功能非常简单,即使某个连接关闭以后也不会修改当前连接数,连接数达到最大值后会终止程序。1. 程序使用了一个数组fd_A,通信开始后把需要通信的多个socket描述符都放入此数组。2. 首先生成一个叫sock_fd的socket描述符,用于监听端口。3. 将sock_fd和数组fd_A中不为0的描述符放入select将检查的集合fdsr。4. 处理fdsr中可以接收数据的连接。如果是sock_fd,表明有新连接加入,将新加入连接的socket描述符放置到fd_A。View Code#include& 阅读全文
posted @ 2011-10-28 10:34 Charliee 阅读(344) 评论(0) 推荐(0)
摘要:翻译来自http://blog.smr.co.in/linux/vim-recording/的文章关于vim的recording我经常会不小心地只按下“q”键什么的,然后就看到的烦人的“recording”字样显示在编辑器下边了。有时候在想退出编辑器时,出现这样的情况让我发疯。今天终于有空来研究一下个这“recording”到底是干什么的了。。。原来它是用来记录按键的,然后我们就可以在以后用这个记录了。如何用?在正常状态(正常状态 = !insert状态 && !visual状态)下,按q,再按下一个字母或数字,来标识将记录保存的位置。这时编辑器下边就显示“recording” 阅读全文
posted @ 2011-10-22 21:40 Charliee 阅读(12705) 评论(0) 推荐(0)
摘要:shell编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指定的文件或目录存在时返回真 -f 当file存在并且是正规文件时返回真 -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真 -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效 -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真 -p 当file存在并且是命令管道时返回为真 -r 当由pathname指... 阅读全文
posted @ 2011-10-20 12:19 Charliee 阅读(412) 评论(0) 推荐(0)
摘要:如同ls 命令可以接受目录等作为它的参数一样,在shell编程时同样可以使用参数。Shell有位置参数和内部参数。1、 位置参数由系统提供的参数称为位置参数。位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推。2、 内部参数上述过程中的$0是一个内部变量,它是必须的,而$1则可有可无。和$0一样的内部变量还有以下几个。 $# ----传递给程序的总的参数数目 $? ----上一个代码或.. 阅读全文
posted @ 2011-10-20 11:14 Charliee 阅读(201) 评论(0) 推荐(0)