存档

‘应用程序’ 分类的存档

linux环境下protobuf-c的编译使用

2016年3月12日 2 条评论 9,244 次浏览

1,下载protobuf-c源码,地址在这里: https://github.com/protobuf-c/protobuf-c 我这里下载protobuf-c-1.2.1.tar.gz,解压后在目录里执行:./autogen.sh 可能会报差一些库,对应的安装即可,比如ubuntu上: sudo apt-get install... [阅读更多]

火狐的分代垃圾回收机制

2014年9月25日 没有评论 4,529 次浏览

Mozilla Firefox 32.0.3于近几天发布,在Firefox的javascript引擎SpiderMonkey里启用了一个名为分代垃圾回收机制(Generational garbage collection... [阅读更多]

修改程序加载动态库搜寻路径的三种可行方法

2013年10月16日 没有评论 2,360 次浏览

1,影响整个系统里所有程序的修改 以ubuntu为例,在/etc/ld.so.conf.d目录下新增一个配置文件,名词任意,比如为mylib.conf: lenky@Ubuntu:/etc/ld.so.conf.d$ sudo vi mylib.conf password for lenky:... [阅读更多]

Lighttpd中CGI执行流程

2013年5月11日 没有评论 3,882 次浏览

这是2009年05月20日写在CU的博客上的文章,现在转过来,呵呵。 从下图中,我们可以看到对于客户端的每一个请求(动态页面,也就是需要CGI处理的),Lighttpd进程都是先fork一个CGI进程,然后将请求头(通过环境参数)和请求体(通过管道)传递给CGI程序,等待CGI处理并将从CGI进程那接收到的处理结果再响应给客户端,然后将CGI终止(通过发送SIGTERM信号)。 CGI的处理有一些缺点,先不说其它的,单从图中可以看到的就有:首先,对于客户端的每一个请求都需要fork一个CGI进程,然后在该请求处理结束后又将该CGI进程kill掉,性能自然是不高的。其次,Web... [阅读更多]

Linux线程相关概念

2013年2月6日 没有评论 3,793 次浏览

POSIX Threads,通常简称为Pthreads,它是指开放系统接口标准―POSIX线程,1995年规范的POSIX.1c,即线程扩展标准(IEEE Std... [阅读更多]

分类: *nix技术, 应用程序 标签: ,

Linux glibc源码升级

2013年2月6日 1 条评论 4,149 次浏览

1,准备工作:准备好系统,下载好glibc源代码,确保系统提供的gcc,make等满足glibc的要求(glibc的INSTALL文件内有明确说明)。 # uname -a Linux localhost.localdomain 3.7.0 #1 SMP Wed Jan 9 04:46:12 CST 2013... [阅读更多]

分类: *nix技术, 应用程序 标签: ,

关于ELF的辅助向量

2013年2月5日 没有评论 3,019 次浏览

elf是Linux系统下最通用的可执行程序的文件格式,关于elf文件的加载与动态链接已很多的相关资料,而本文尝试着重介绍一下其中的一个点,即辅助向量(Auxiliary... [阅读更多]

如何追踪函数的完整调用过程

2013年2月5日 2 条评论 5,249 次浏览

何追踪函数的完整调用过程?对于软件编程人员来说,这一个有趣的话题,而在stackoverflow上就恰好有这么一个讨论,本文就对这个讨论里的内容进行一下实际操作与转述。 我们知道两个命令,ltrace和strace,其中ltrace用于追踪记录动态库函数的调用执行,而strace用于追踪记录系统调用函数的调用执行,看示例: #... [阅读更多]

64位Linux下的系统调用

2013年2月4日 没有评论 4,323 次浏览

AMD64,由AMD公司提出来的64位技术,由于它能很好的向下兼容32位,因此在与Intel公司的纯64技术IA64(即无法向下兼容)进行竞争的过程中占据着绝对的市场优势,当然,Intel公司不会自甘落后,因此也相继推出了IA32E(后被正式命名为EM64T,Extended... [阅读更多]

32位Linux下的系统调用

2013年2月4日 没有评论 3,551 次浏览

我们知道,Linux系统分为用户态和内核态,当用户态的应用程序请求执行内核态代码获取相关内核服务时,需要通过系统调用的形式来完成,比如利用系统调用getuid()请求获取执行程序的真实用户ID号。 当然,getuid()只是glibc封装的库函数,我们也可以直接通过syscall函数(这里是指glibc库里的syscall接口,请和后面文章将提到的syscall指令区分开)进行调用: #... [阅读更多]