chapter22:源码与Tarball之(3)-函数库的管理
一.函数库的两种类型
(1)静态函数库
扩展名为libxxx.a
在编译的时候整合到执行程序中.所以文件会相对比较大.
可以独立执行.
如果函数库升级,则整个程序都要重新编译.
(2)动态函数库
扩展名为libxxx.so
可执行文件在要用到函数库的时候才去读取,文件相对小些.
不能独立执行.函数库的目录也不能改变.
函数库升级后,可执行文件不用重新编译.所以升级方便.
目前Linux distribution一般使用动态函数库,因为升级方便.大多数函数库放在/usr/lib, /lib下面,还在很多的函数由kernel提供,也就是放在/lib/modules需.不同版本的内核的函数库很不一样,所以kernel 2.4版本系统不要想将内核升级到2.6.等,很容易因为函数库的不同的导致很多软件不能使用.
二.如何将函数库先加载到内存中以增加性能
使用ldconfig与/etc/ld.so.conf可以将常用的函数库先加载到内存中以提高性能.
三.如何判断一个可执行的程序含有什么动态函数库
可以使用ldd命令,如我们想要知道/usr/bin/passwod这个程序要用到什么动态函数库,可以这样
里面可以看到PAM(身份验证)模块.,我们再找出/lib/libc.so.6这个函数相关的函数库(注意它的路径)
四.验证软件的正确性
只说明下如何进行验证.
还是以ntp为例子.官网的md5为下图
下载后验证为
两者相同,因此安全.