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为下图

下载后验证为

两者相同,因此安全.

时间: 12-18

chapter22:源码与Tarball之(3)-函数库的管理的相关文章

[Go语言]从Docker源码学习Go——结构和函数的定义

Docker在最近很火,而作为Docker的开发语言-Go也再次被大家提到. 已经使用Docker一段时间了,但是对于源码,尤其是其开发语言Go却一直是一知半解. 最近准备利用空余时间从Docker源代码入手来学习一下Go,同时对Docker的实现也希望可以提高一个层次. 有兴趣的可以一起讨论,学习. 准备工作: 1. Docker源代码https://github.com/docker/docker (版本1.1.2) 2. 安装开发工具LiteIDE, 这个是官方的Go语言的IDE 3. G

nginx源码分析--ngx_http_optimize_servers()函数

这个函数做了连部分工作:1)以端口为入口点 将有用的信息存放到hash表内 2)调用ngx_http_init_listening()函数 对端口进行监听 1. 在ngx_http_core_main_conf_t结构体中有一个字段为ports,是一个数组,数组内存放的全是ngx_http_conf_port_t:对于每一个端口信息(ngx_http_conf_port_t),调用 ngx_http_server_names函数,同时也调用ngx_http_init_listening函数,这里

【源码笔记】BlogEngine.Net 中的权限管理

BlogEngine.Net 是个功能点很全面的开源博客系统,容易安装和实现定制,开放接口支持TrackBack,可以定义主题配置数据源等等.可谓五脏俱全,这里先记录一下它基于Membership的权限管理(一般只说到角色就没了). Membership是.net2.0的时候就出来了,现在的最新版本是Identity(微软已经将这个Asp.net项目开源 https://github.com/aspnet/Identity ).权限管理就是处理用户.角色.和具体权限的关系.用户和角色是多对多的关

Linux软件安装:源码与Tarball

一.开放源码的软件安装与升级简介 1.开放源码.编译程序与执行文件 开放源码:就是程序代码(写满了程序代码的纯文本文件): 编译程序:将程序代码与函数库做链接,并翻译成机器看得懂的语言: 可执行文件:机器看得懂的二进制执行文件. 图示三者关系: 2.函数库 函数库:类似子程序的角色,可以被调用来执行的一段功能函数. 图示外部动态函数库的调用情况: ·Linux内核提供了相当多的函数库来给硬件开发者利用(系统调用): ·由上面的图示可知识,硬件开发者可通过调用内核函数库来开发出与硬件特性相关的产品

CI框架源码阅读笔记3 全局函数Common.php

从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源码阅读笔记2 一切的入口 index

jquery源码之低调的回调函数队列--Callbacks

jQuery中有一个很实用的函数队列,可能我们很少用到,但他在jQuery内部却有着举足轻重的地位. 他就是Callbacks. jQuery作者用它构建了很多非常重要的模块.比如说$.Deferred. Callbacks 说白了就是个数组,里面存了很多函数对象.然而他真的 just so so么? 好吧,爱因斯坦也只是个人,但他真的仅仅是个普普通通的人吗?Callbacks也不是. 不说废话了,见源码. // String to Object options format cache var

[PHP源码阅读]array_pop和array_shift函数

上篇文章介绍了PHP添加元素到数组的函数,那么当然有从数组中删除元素.array_pop和array_shift只从数组的头或尾删除一个元素.经过阅读源码,发现这两个函数的实现都是调用了同一个函数--_phpi_pop来实现从数组中删除一个数组元素的功能.因此解读时将这两个函数一并讲了. 我在github上有对PHP源码更详细的注解.感兴趣的可以围观一下,给个star.PHP5.4源码注解.可以通过commit记录查看已添加的注解. 函数语法 array_pop mixed array_pop

网狐棋牌源码下载网狐6878、EWIN后台管理教程

在QPPlatformManagerDB数据库--Base_Users表里就是后台的帐号和密码,密码是MD5加密 换成:E10ADC3949BA59ABBE56E057F20F883E 这个密码就是123456 或者大家自己去在线MD5上加密解密. ps:所用源码来自网狐棋牌源码下载 maliwl.com EWIN: QPGameWeb  --- Base_Users 测试图片:

[PHP源码阅读]explode和implode函数

C%2B%2B%E6%B7%B7%E5%90%88%E7%BC%96%E7%A8%8B%E4%B9%8Bidlcpp%E6%95%99%E7%A8%8BLua%E7%AF%878 ???κ?c2taMSI0???????? ?????22t5AWFy????????? http://auto.315che.com/pnhuoche/qa23946125.htm?u0o ???g?4FRNuBaD????????? http://auto.315che.com/yiqimazida8/qa2393